This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
RE: [COMMITTED PATCH] Use __ehdr_start, if available, as fallback for AT_PHDR.
- From: Steve Ellcey <Steve dot Ellcey at imgtec dot com>
- To: Roland McGrath <roland at hack dot frob dot com>, "GNU C. Library" <libc-alpha at sourceware dot org>
- Date: Mon, 1 Apr 2013 23:58:53 +0000
- Subject: RE: [COMMITTED PATCH] Use __ehdr_start, if available, as fallback for AT_PHDR.
- References: <20130328231733 dot 3F8F12C0A5 at topped-with-meat dot com>
> From: Roland McGrath [roland@hack.frob.com]
> Subject: [COMMITTED PATCH] Use __ehdr_start, if available, as fallback for AT_PHDR.
>
> * csu/libc-start.c (__libc_start_main) [!SHARED]: If _dl_aux_init
> didn't do it already, then set _dl_phdr and _dl_phnum based on the
> magic __ehdr_start linker symbol if it's defined.
> * sysdeps/mach/hurd/i386/init-first.c (init1) [!SHARED]: Don't set
> them up here if it was already done.
Roland, my MIPS glibc build has started failing with this patch, the failure I get when building glibc for
mips64r2 (n64 ABI) is below, the mips32 builds still seem to work fine.
mips-mti-linux-gnu-gcc -EB -mips64r2 -mno-mips16 -mhard-float -mabi=64 -nostdlib -nostartfiles -static -o /local/home/sellcey/nightly2/obj-mips-mti-linux-gnu/glibc/obj-EB-mips64r2-mno-mips16-mhard-float-mabi64/elf/sln /local/home/sellcey/nightly2/obj-mips-mti-linux-gnu/glibc/obj-EB-mips64r2-mno-mips16-mhard-float-mabi64/csu/crt1.o /local/home/sellcey/nightly2/obj-mips-mti-linux-gnu/glibc/obj-EB-mips64r2-mno-mips16-mhard-float-mabi64/csu/crti.o `mips-mti-linux-gnu-gcc -EB -mips64r2 -mno-mips16 -mhard-float -mabi=64 --print-file-name=crtbeginT.o` /local/home/sellcey/nightly2/obj-mips-mti-linux-gnu/glibc/obj-EB-mips64r2-mno-mips16-mhard-float-mabi64/elf/sln.o /local/home/sellcey/nightly2/obj-mips-mti-linux-gnu/glibc/obj-EB-mips64r2-mno-mips16-mhard-float-mabi64/elf/static-stubs.o -Wl,--start-group /local/home/sellcey/nightly2/obj-mips-mti-linux-gnu/glibc/obj-EB-mips64r2-mno-mips16-mhard-float-mabi64/libc.a -lgcc -Wl,--end-group `mips-mti-linux-gnu-gcc -EB -mips64r2 -mno-mips16 -mhard-float -mabi=64 --print-file-name=crtend.o` /local/home/sellcey/nightly2/obj-mips-mti-linux-gnu/glibc/obj-EB-mips64r2-mno-mips16-mhard-float-mabi64/csu/crtn.o
/local/home/sellcey/nightly2/install-mips-mti-linux-gnu/lib/gcc/mips-mti-linux-gnu/4.9.0/../../../../mips-mti-linux-gnu/bin/ld: BFD (GNU Binutils) 2.23.52.20130401 assertion fail /local/home/sellcey/nightly2/src/binutils/bfd/elfxx-mips.c:3457
collect2: error: ld returned 1 exit status
make[2]: *** [/local/home/sellcey/nightly2/obj-mips-mti-linux-gnu/glibc/obj-EB-mips64r2-mno-mips16-mhard-float-mabi64/elf/sln] Error 1
make[2]: Leaving directory `/local/home/sellcey/nightly2/src/glibc/elf'
I am using the ToT GCC and binutils to build with. The assertion I am hitting is in mips_elf_create_local_got_entry
in elfxx-mips.c:
/* This function shouldn't be called for symbols that live in the global
area of the GOT. */
BFD_ASSERT (h == NULL || h->global_got_area == GGA_NONE);
Any ideas on what the problem might be?
Steve Ellcey
sellcey@imgtec.com