bug-gnu-utils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ld is unable to link the Linux kernel for ARM


From: Nick Clifton
Subject: Re: ld is unable to link the Linux kernel for ARM
Date: Fri, 30 May 2003 09:08:41 +0100
User-agent: Gnus/5.1001 (Gnus v5.10.1) Emacs/21.2 (gnu/linux)

Hi Nicolas,

> Here you go.  The input files are attached.
>
> Just try:
>
>       arm-linux-ld -r -o out.o foo.o bar.o

Right.  foo.o is an empty archive and bar.o is an empty object file.
Hence the linker cannot find a section onto which it can attach the
interworking stubs.  Of course given that the input is empty  the
linker is not going to have to create any stubs, so please try the
patch below.

Cheers
        Nick

2003-05-30  Nick Clifton  <address@hidden>

        * emultempl/armelf.em (arm_elf_before_allocation): Replace ASSERT
        with a test for a NULL bfd_for_interworking.

Index: ld/emultempl/armelf.em
===================================================================
RCS file: /cvs/src/src/ld/emultempl/armelf.em,v
retrieving revision 1.33
diff -c -3 -p -r1.33 armelf.em
*** ld/emultempl/armelf.em      28 Feb 2003 01:32:31 -0000      1.33
--- ld/emultempl/armelf.em      30 May 2003 08:16:11 -0000
*************** arm_elf_before_allocation ()
*** 108,118 ****
        tem->output_has_begun = FALSE;
  
        lang_for_each_statement (arm_elf_set_bfd_for_interworking);
-       ASSERT (bfd_for_interwork != NULL);
        for (tem = link_info.input_bfds; tem != NULL; tem = tem->link_next)
        tem->output_has_begun = FALSE;
  
!       bfd_elf32_arm_get_bfd_for_interworking (bfd_for_interwork, &link_info);
      }
    /* We should be able to set the size of the interworking stub section.  */
  
--- 108,122 ----
        tem->output_has_begun = FALSE;
  
        lang_for_each_statement (arm_elf_set_bfd_for_interworking);
        for (tem = link_info.input_bfds; tem != NULL; tem = tem->link_next)
        tem->output_has_begun = FALSE;
  
!       /* If bfd_for_interwork is NULL, then there are no loadable sections
!        with real contents to be linked, so we are not going to have to
!        create any interworking stubs, so it is OK not to call
!        bfd_elf32_arm_get_bfd_for_interworking.  */
!       if (bfd_for_interwork != NULL)
!       bfd_elf32_arm_get_bfd_for_interworking (bfd_for_interwork, &link_info);
      }
    /* We should be able to set the size of the interworking stub section.  */
  
        





reply via email to

[Prev in Thread] Current Thread [Next in Thread]