In file included from /src/gcc-4.5.0/libiberty/pex-common.c:23:0: /src/gcc-4.5.0/libiberty/pex-common.h:73:3: error: expected specifier-qualifier-list before 'pid_t'
the code: /* pid_t is may defined by config.h or sys/types.h needs to be included. */ #if !defined(pid_t) && defined(HAVE_SYS_TYPES_H) #include <sys/types.h> #endif proposed/tested fix: #ifdef __vms #include <unistd.h> #endif or similar. This then hits: /usr/local/lib/gcc/alpha-dec-vms/4_5_0/../../../../alpha-dec-vms/include/unistd.h:475:22: error: macro "geteuid" passed 1 arguments, but takes just 0 /usr/local/lib/gcc/alpha-dec-vms/4_5_0/../../../../alpha-dec-vms/include/unistd.h:476:22: error: macro "getuid" passed 1 arguments, but takes just 0 make[2]: *** [pex-common.o] Error 1 But I say that's a bug in the VMS headers and I patch it: #if __USE_LONG_GID_T # pragma __extern_prefix __save # pragma __extern_prefix "__long_gid_" #elif __CRTL_VER>= 70000000 && !defined(_VMS_V6_SOURCE) # if __CAN_USE_EXTERN_PREFIX # pragma __extern_prefix __save # pragma __extern_prefix "__unix_" # else -# define geteuid() __unix_geteuid() -# define getuid() __unix_getuid() +# define geteuid __unix_geteuid +# define getuid __unix_getuid # endif #endif __uid_t geteuid (void); __uid_t getuid (void); I did the same thing in the VMS header unixlib.h. Maybe something for fixincludes? (along with #define __NEW_STARLET, #define __int64 long long...) (Alternate interpretation is that gcc should implement __CAN_USE_EXTERN_PREFIX and the #pragmas. I'd be willing to #define __USE_LONG_GID_T but I assume the pragmas are a problem.) - Jay