home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #16 / NN_1992_16.iso / spool / gnu / g / lib / bug / 429 < prev    next >
Encoding:
Text File  |  1992-07-23  |  2.5 KB  |  63 lines

  1. Newsgroups: gnu.g++.lib.bug
  2. Path: sparky!uunet!cis.ohio-state.edu!rooney.fstrf.ORG!niemira
  3. From: niemira@rooney.fstrf.ORG (niemira.jim)
  4. Subject: losing compile on DEC5000 w/ g++2.2.2
  5. Message-ID: <9207202106.AA13580@rooney.fstrf.org>
  6. Sender: gnulists@ai.mit.edu
  7. Organization: GNUs Not Usenet
  8. Distribution: gnu
  9. Date: Mon, 20 Jul 1992 13:06:58 GMT
  10. Approved: bug-lib-g++@prep.ai.mit.edu
  11. Lines: 50
  12.  
  13. Gentle Readers,
  14.  
  15.     While attempting to compile libg++-2.2 with gcc-2.2.2 on a 
  16. DECstation 5000/240 (and DECstation 5000/125) running Ug^Hltrix4.2A, I came
  17. across the following:
  18.  
  19. >Script started on Mon Jul 20 15:02:17 1992
  20. >94 rooney>gmake
  21. >gmake[1]: Nothing to be done for `all'.
  22. >/local/sys/src/libg++-2.2/libg++/../gcc/gcc -B/local/sys/src/libg++-2.2/libg++/../gcc/ -g  -I. -I.. -I. -I./../src -I./../g++-include -c -I/local/sys/src/libg++-2.2/libg++/../gcc/include sbufvform.C
  23. >sbufvform.C: In method `int  streambuf::vform (const char *, char *)':
  24. >sbufvform.C:248: warning: implicit declaration of function `__builtin_alignof'
  25. >sbufvform.C:248: parse error before `4'
  26. >sbufvform.C:248: parse error before `4'
  27. >sbufvform.C:248: parse error before `['
  28. >#...
  29. >#similarly for lines 260, 300, 309, 323,370, 380, 392, 398, 422, 427
  30. >#...
  31. >gmake[1]: *** [sbufvform.o] Error 1
  32. >gmake: *** [in-io] Error 1
  33. >95 rooney>^D
  34. >script done on Mon Jul 20 15:02:27 1992
  35.  
  36. I have traced this to the macro expansion of va_arg in /usr/include/stdarg.h,
  37. which looks like this:
  38.  
  39. >        /* va_arg aligns list and points past data */
  40. >#define va_arg(list, mode) ((mode *)(list =\
  41. > (va_list) ((((int)list + (__builtin_alignof(mode)<=4?3:7)) &\
  42. > (__builtin_alignof(mode)<=4?-4:-8))+sizeof(mode))))[-1]
  43.  
  44. which results in line 248 of sbufvform.C being translated into:
  45.  
  46. >            if ((width =  ((int *)(ap = (va_list) ((((int)ap + (__builtin_alignof(int)<=4?3:7)) & (__builtin_alignof(int)<=4?-4:-8))+sizeof(int))))[-1]) >= 0)
  47.  
  48. The implicit declaration error is (I believe) because the 'ccom' part of DEC's
  49. C compiler contains '__builtin_alignof' (detected via a 'strings'), while
  50. gcc/g++ does not.  The string appears in no other part of the compiler, nor
  51. in any other file under /usr/include[/sys].
  52.  
  53. a) Am I doing anything wrong?
  54. b) I expect the problem is the way DEC has their stdarg.h written (go figure).
  55.    Is this inconsistent with other OS's stdarg.h's? (I have no other boxes
  56.    to compare to)
  57. c) Any clues?  Anyone?
  58.  
  59. |  . . ) /   | It breathes fire. -more-  | Jim Niemira
  60. | (_(_/  |   | It breathes fire. -more-  | Senior SysOp, Frontier Sci
  61. |    (   '   | You are not happy. -more- | niemira@karloff.fstrf.org
  62.  
  63.