In the course of building GNU Tar 1.27.1 on Tru64 5.1 with the vendor C
compiler, I encountered the following error:

  CC       wordsplit.o
cc: Error: /tg/freeport/src/tar/tar--1.27.1/lib/wordsplit.h, line 37: Invalid 
member declaration. (badmember)
                   __attribute__ ((__format__ (__printf__, 1, 2)));
-------------------^
cc: Error: /tg/freeport/src/tar/tar--1.27.1/lib/wordsplit.h, line 39: Invalid 
member declaration. (badmember)
                   __attribute__ ((__format__ (__printf__, 1, 2)));
-------------------^
cc: Error: /tg/freeport/src/tar/tar--1.27.1/lib/wordsplit.c, line 64: Error 
parsing parameter list. Found "(" when expecting one of: <type-specifier>, 
<identifier>, "...", ")". (notexpecting)
static void __attribute__ ((__format__ (__printf__, 1, 2)))
---------------------------^
cc: Info: ../gnu/stdlib.h, line 1203: In this declaration, type "unsigned long 
long" is a language extension. (longlongtype)
_GL_FUNCDECL_SYS (strtoull, unsigned long long,
^
Makefile:1266: recipe for target 'wordsplit.o' failed
make: *** [wordsplit.o] Error 1
*** Exit 2
Stop.


Apparently, the configure script neglected to check whether the compiler
supports the __attribute__() directive, as the file compiles without
error if I #define that away:

$ cc -DHAVE_CONFIG_H -I. -I/tg/freeport/src/tar/tar--1.27.1/lib -I.. 
-I/tg/freeport/src/tar/tar--1.27.1/gnu -I../ -I../gnu -std1 -warnprotos 
-readonly_strings -fast -O4 -c -o wordsplit.o 
/tg/freeport/src/tar/tar--1.27.1/lib/wordsplit.c '-D__attribute__(x)='
cc: Info: ../gnu/stdlib.h, line 1203: In this declaration, type "unsigned long 
long" is a language extension. (longlongtype)
_GL_FUNCDECL_SYS (strtoull, unsigned long long,
^
$ echo $?
0


--Daniel


-- 
Daniel Richard G. || sk...@iskunk.org
My ASCII-art .sig got a bad case of Times New Roman.

Reply via email to