ia64.h does not honor SUBTARGET_EXTRA_SPECS like most of other architectures do. FreeBSD depends on this feature to specify a path to dynamic loader to be used depending on FreeBSD major version. Environment: System: FreeBSD k8.dnsalias.net 5.2-CURRENT FreeBSD 5.2-CURRENT #0: Mon Jul 12 00:28:33 EDT 2004 kan@k8.dnsalias.net:/usr/src/sys/amd64/compile/KAN amd64 <machine, os, target, libraries (multiple lines)> host: x86_64-portbld-freebsd5.2 build: x86_64-portbld-freebsd5.2 target: x86_64-portbld-freebsd5.2 configured with: ./..//gcc-3.4-20040709/configure --disable-nls --with-system-zlib --with-libiconv-prefix=/usr/local --program-suffix=34 --with-gxx-include-dir=/usr/local/lib/gcc/x86_64-portbld-freebsd5.2/3.4.2/include/c++/ --disable-shared --disable-libgcj --prefix=/usr/local x86_64-portbld-freebsd5.2 How-To-Repeat: Bootstrap 3.4.x on FreeBSD/ia64 and see it fail.
Fix: The patch below brings ia64.h in line with other architectures in respect to SUBTARGET_EXTRA_SPECS usage. Index: config/ia64/ia64.h =================================================================== RCS file: /usr/download/ncvs/src/contrib/gcc/config/ia64/ia64.h,v retrieving revision 1.1.1.5 diff -u -r1.1.1.5 ia64.h --- config/ia64/ia64.h 20 Mar 2004 04:06:08 -0000 1.1.1.5 +++ config/ia64/ia64.h 13 Jul 2004 16:33:01 -0000 @@ -43,8 +43,13 @@ builtin_define("__BIG_ENDIAN__"); \ } while (0) +#ifndef SUBTARGET_EXTRA_SPECS +#define SUBTARGET_EXTRA_SPECS +#endif + #define EXTRA_SPECS \ - { "asm_extra", ASM_EXTRA_SPEC }, + { "asm_extra", ASM_EXTRA_SPEC }, \ + SUBTARGET_EXTRA_SPECS #define CC1_SPEC "%(cc1_cpu) "
As usually patches goto gcc-patches@gcc.gnu.org.
Fixed. Zack approved and checked in the patch after it was posted to gcc-patches.
Subject: Re: ia64 does not honor SUBTARGET_EXTRA_SPECS pinskia at gcc dot gnu dot org wrote: > Target Milestone|--- |3.5.0 Er wait, this should have been fixed in gcc-3.4.x. I am following up with Zack. If he doesn't add the patch to gcc-3.4.x, then I will.
I've applied it to 3.4 now.