bug-binutils
[Top][All Lists]
Advanced

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

[Bug binutils/25355] nm reports data variable as "T" with -flto


From: marxin.liska at gmail dot com
Subject: [Bug binutils/25355] nm reports data variable as "T" with -flto
Date: Tue, 11 Feb 2020 13:50:14 +0000

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

--- Comment #27 from Martin Liška <marxin.liska at gmail dot com> ---
> 
> Works for me on master branch.  Please try master branch to see if
> it works for you.

It looks one needs a system setup to have multiple plug-in which cause that:

$ ls /usr/bin/../bin/../lib/bfd-plugins
liblto_plugin.so.0.0.0  LLVMgold.so

Now I put breakpoint here: try_load_plugin
and I see:

Breakpoint 2, try_load_plugin (pname=pname@entry=0x5555555653f0
"/usr/bin/../bin/../lib/bfd-plugins/liblto_plugin.so.0.0.0",
abfd=abfd@entry=0x555555564a70, has_plugin_p=has_plugin_p@entry=0x7fffffffd97c)
at ../../bfd/plugin.c:593
593     {
(gdb) fin
Run till exit from #0  try_load_plugin (pname=pname@entry=0x5555555653f0
"/usr/bin/../bin/../lib/bfd-plugins/liblto_plugin.so.0.0.0",
abfd=abfd@entry=0x555555564a70, has_plugin_p=has_plugin_p@entry=0x7fffffffd97c)
at ../../bfd/plugin.c:593
load_plugin (abfd=0x555555564a70) at ../../bfd/plugin.c:844
844                           if (has_plugin <= 0)
Value returned is $15 = 0

(gdb) list
839                       if (stat (full_name, &st) == 0 && S_ISREG
(st.st_mode))
840                         {
841                           int valid_plugin;
842     
843                           found = try_load_plugin (full_name, abfd,
&valid_plugin);
844                           if (has_plugin <= 0)
845                             has_plugin = valid_plugin;
846                         }
847                       free (full_name);
848                       if (found)
(gdb) n
845                             has_plugin = valid_plugin;
(gdb) 
847                       free (full_name);
(gdb) p full_name
$16 = 0x5555555653f0
"/usr/bin/../bin/../lib/bfd-plugins/liblto_plugin.so.0.0.0"
(gdb) p current_plugin->plugin_name
$17 = 0x5555555653f0
"/usr/bin/../bin/../lib/bfd-plugins/liblto_plugin.so.0.0.0"

So the free for full_name is called, but the pointer is stored in
current_plugin->plugin_name. And later compared with..

-- 
You are receiving this mail because:
You are on the CC list for the bug.


reply via email to

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