This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
PATCH: Fix ELF (Re: The Linux binutils 2.11.92.0.12 is released.)
- From: "H . J . Lu" <hjl at lucon dot org>
- To: Johannes Stezenbach <js at convergence dot de>
- Cc: linux-mips at oss dot sgi dot com, binutils at sourceware dot cygnus dot com
- Date: Tue, 27 Nov 2001 10:16:22 -0800
- Subject: PATCH: Fix ELF (Re: The Linux binutils 2.11.92.0.12 is released.)
- References: <20011126212859.A17557@lucon.org> <20011127180022.A6897@convergence.de>
On Tue, Nov 27, 2001 at 06:00:22PM +0100, Johannes Stezenbach wrote:
> Hi,
>
> On Mon, Nov 26, 2001 at 09:28:59PM -0800, H . J . Lu wrote:
> > Please report any bugs related to binutils 2.11.92.0.12 to hjl@lucon.org.
>
> I tried to use binutils-2.11.92.0.12 with gcc-3.0.2 to compile
> the linux kernel from linux-mips.sourceforge.net for a VR4121 CPU
> (littel endian, target mipsel-linux).
>
> a) The linker chrashes trying to create the object file for the
> embedded initrd ramdisk:
>
> make CFLAGS="-I /home/js/MIPS/kernel/build/linux-2.4.14-mips/include/asm/gcc -D__KERNEL__ -I/home/js/MIPS/kernel/build/linux-2.4.14-mips/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -G 0 -mno-abicalls -fno-pic -mips2 -Wa,-m4100,--trap -pipe " -C arch/mips/ramdisk
> make[1]: Entering directory `/home/js/MIPS/kernel/build/linux-2.4.14-mips/arch/mips/ramdisk'
> echo "O_FORMAT: " elf32-tradlittlemips
> O_FORMAT: elf32-tradlittlemips
> mipsel-linux-ld -G 0 -T ld.script -b binary --oformat elf32-tradlittlemips -o ramdisk.o ramdisk.gz
> make[1]: *** [ramdisk.o] Segmentation fault
> make[1]: *** Deleting file `ramdisk.o'
>
> The same ramdisk.gz worked with binutils-2.11.92.0.10. The ld.script is:
> OUTPUT_ARCH(mips)
> SECTIONS
> {
> .initrd :
> {
> *(.data)
> }
> }
>
>
I am going to check in this patch to fix it.
H.J.
----
2001-11-27 H.J. Lu <hjl@gnu.org>
* elflink.h (elf_bfd_discard_info): Skip if the input bfd isn't
ELF.
Index: elflink.h
===================================================================
RCS file: /work/cvs/gnu/binutils/bfd/elflink.h,v
retrieving revision 1.96.2.1
diff -u -p -r1.96.2.1 elflink.h
--- elflink.h 2001/11/25 19:55:57 1.96.2.1
+++ elflink.h 2001/11/27 18:14:32
@@ -8079,6 +8079,9 @@ elf_bfd_discard_info (info)
return false;
for (abfd = info->input_bfds; abfd != NULL; abfd = abfd->link_next)
{
+ if (bfd_get_flavour (abfd) != bfd_target_elf_flavour)
+ continue;
+
bed = get_elf_backend_data (abfd);
if ((abfd->flags & DYNAMIC) != 0)