[PATCH] LTO: Ignore undefined symbols without relocation

H.J. Lu hjl.tools@gmail.com
Fri Jul 31 11:43:23 GMT 2020


On Fri, Jul 31, 2020 at 4:02 AM Alan Modra <amodra@gmail.com> wrote:
>
> On Fri, Jul 31, 2020 at 11:07:53AM +0100, Nick Clifton wrote:
> > Hi Alan,
> >
> > > Nick, would you please check that this cures the Fedora build problem?
> >
> > It works in my local tests.  I am going to try a scratch build in Fedora and see if that shows up any problems.
>
> OK, that's good enough for me.  Local testing here didn't show any
> problems either.  Patch pushed to master.
>

I compared the results of my fix vs yours:

  text    data     bss     dec     hex filename
  46357    1408     712   48477    bd5d yours
  45731    1408     712   47851    baeb mine

 One difference is that my fix doesn't have

+                 U abort@@GLIBC_2.2.5
+                 U access@@GLIBC_2.2.5
+                 U __assert_fail@@GLIBC_2.2.5
+                 U bfd_arch_list
+                 U bfd_close_all_done
+                 U bfd_iterate_over_targets
+                 U bfd_printable_arch_mach
+                 U bfd_scan_vma
+                 U getenv@@GLIBC_2.2.5
+                 U memset@@GLIBC_2.2.5
+                 U mkdtemp@@GLIBC_2.2.5
+                 U mkstemps@@GLIBC_2.11
+                 U __realpath_chk@@GLIBC_2.4
+                 U strcpy@@GLIBC_2.2.5
+                 U strdup@@GLIBC_2.2.5
+                 U strncmp@@GLIBC_2.2.5

in dynamic symbol table.   There are no dynamic relocations against
these symbols.  These are caused by GCC bug:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96385

My patch removes these symbol from dynamic symbol table:

https://sourceware.org/bugzilla/show_bug.cgi?id=26324

-- 
H.J.


More information about the Binutils mailing list