On 06/27/2011 12:23 PM, Richard Henderson wrote: > On 06/27/2011 12:11 PM, Richard Henderson wrote: >> gcc -c -DUSE_LIBUNWIND_EXCEPTIONS -g -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE >> -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes >> -Wmissing-prototypes -Wmissing-format-attribute -pedantic -Wno-long-long >> -Wno-variadic-macros -Wno-overlength-strings -Wold-style-definition >> -Wc++-compat -fno-common -DHAVE_CONFIG_H -I. -I. -I../../comb/gcc >> -I../../comb/gcc/. -I../../comb/gcc/../include >> -I../../comb/gcc/../libcpp/include -I../../comb/gcc/../libdecnumber >> -I../../comb/gcc/../libdecnumber/dpd -I../libdecnumber \ >> ../../comb/gcc/config/ia64/ia64.c -o ia64.o >> ../../comb/gcc/config/ia64/ia64.c: In function ‘ia64_init_builtins’: >> ../../comb/gcc/config/ia64/ia64.c:10136:7: warning: implicit declaration of >> function ‘vms_patch_builtins’ [-Wimplicit-function-declaration] > > And of course alpha-linux is broken for the same reason. > You cannot call a function in config/vms.c without ifdef protection.
Fixed thus. r~
* config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition. * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins inside ifdef. diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index 5d656f1..962f020 100644 --- a/gcc/config/alpha/alpha.c +++ b/gcc/config/alpha/alpha.c @@ -198,6 +198,8 @@ static rtx alpha_emit_xfloating_compare (enum rtx_code *, rtx, rtx); #if TARGET_ABI_OPEN_VMS static void alpha_write_linkage (FILE *, const char *, tree); static bool vms_valid_pointer_mode (enum machine_mode); +#else +#define vms_patch_builtins() gcc_unreachable() #endif #ifdef TARGET_ALTERNATE_LONG_DOUBLE_MANGLING diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c index b0d9dc8..c06903d 100644 --- a/gcc/config/ia64/ia64.c +++ b/gcc/config/ia64/ia64.c @@ -10131,10 +10131,9 @@ ia64_init_builtins (void) "__float128"); /* Fwrite on VMS is non-standard. */ - if (TARGET_ABI_OPEN_VMS) - { - vms_patch_builtins (); - } +#if TARGET_ABI_OPEN_VMS + vms_patch_builtins (); +#endif #define def_builtin(name, type, code) \ add_builtin_function ((name), (type), (code), BUILT_IN_MD, \