GCC Bugzilla – Bug 21751
[csl-arm-branch and HEAD] fails to bootstrap with EABI
Last modified: 2009-04-29 16:40:59 UTC
Compiling csl-arm-branch with --with-abi=iwmmxt fails in csl_arm_branch as of
gcc/crtstuff.c: In function `__do_global_dtors_aux':
gcc/crtstuff.c:260: error: `__DTOR_LIST__' undeclared (first use in this
gcc/crtstuff.c:260: error: (Each undeclared identifier is reported only once
gcc/crtstuff.c:260: error: for each function it appears in.)
make: *** [crtbegin.o] Error 1
The problem is that crtstuff.c (__do_global_dtors_aux()) uses __DTOR_LIST__
whenever FINI_ARRAY_SECTION_ASM_OP isn't set (which is the case for arm w/
EABI), but DTOR_LIST_BEGIN isn't #defined to define __DTOR_LIST__ if
__ARM_EABI__ is defined (gcc/config/arm/arm.h).
Created attachment 8966 [details]
Attaching a patch that makes it compile and (at least to me) looks like it'll
generate the right code.
The patch itself is definitely wrong though (breaks other arches) - it's
probably a matter of adding the right #include somewhere (not familiar with gcc
internals to figure out what exactly should be done).
This is reproducable on HEAD branch as well; it's not limited to
The patch I've attached is not sufficient to fix it; the resulting compiler
sort of works, but produces something like this:
descriptor_test.o(.text+0xc88): In function `global constructors keyed to
descriptor_test.cpp: undefined reference to `__aeabi_atexit'
warning: .fini_array section has zero size
when building C++ libraries.
You haven't said how you configured GCC. I'm guessing you configured for
arm-linux, but with an AAPCS-compatible ABI; you can't do that. The error isn't
the greatest, but it's hard to guard against all possible misuses of --with options.
The target is arm-none-linux-gnueabi, or arm-none-linuxeabi.
The later error is because your glibc does not include EABI support. Please see
the libc-alpha list archives for patches, or the source tarballs available from
my company's ARM toolchains for an already-patched version of glibc:
Yes, configuration was
../confiugre --prefix=/usr --target=armv5tel-ark-linux --with-abi=iwmmxt
Trying with -gnueabi now -- but shouldn't --with-abi=iwmmxt imply that
Subject: Re: [csl-arm-branch and HEAD] fails to bootstrap with EABI
On Fri, May 27, 2005 at 08:57:59PM -0000, bero at arklinux dot org wrote:
> Yes, configuration was
> ../confiugre --prefix=/usr --target=armv5tel-ark-linux --with-abi=iwmmxt
> --with-arch=iwmmxt --with-cpu=iwmmxt
> Trying with -gnueabi now -- but shouldn't --with-abi=iwmmxt imply that
You still won't be able to build it without the glibc patches...
I don't know if it should or not.
Is the csl-arm-branch still alive ? Can we clear this one up otherwise?
GLIBC patches are no longer required and I know folks have built iwmmxt-targeted ARM Linux toolchains since this was filed.