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.