bug-binutils
[Top][All Lists]
Advanced

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

[Bug binutils/23928] ar crash within LLVMgold.so module


From: wl at gnu dot org
Subject: [Bug binutils/23928] ar crash within LLVMgold.so module
Date: Tue, 11 Dec 2018 23:33:43 +0000

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

--- Comment #5 from Werner Lemberg <wl at gnu dot org> ---
> > I installed all necessary debug symbols; however, the very last call is
> > still shown as `??' in the backtrace (deep in dlopened stuff).  
> 
> What about the function before the '??'.   That will probably give you a 
> clue as to where the problem is occurring.

Well, here's the topmost output of `bt full':

#0  0x0000000000010d40 in ?? ()
No symbol table info available.
#1  0x00007ffff7dea1ea in call_init (l=<optimized out>,
                                     address@hidden,
                                     address@hidden, 
                                     address@hidden) at
dl-init.c:72
        j = <optimized out>
        jm = <optimized out>
        addrs = <optimized out>
        init_array = <optimized out>
        j = <optimized out>
        jm = <optimized out>
        addrs = <optimized out>
#2  0x00007ffff7dea2d3 in call_init (env=0x7fffffffd9e8,
                                     argv=0x7fffffffd9b8,
                                     argc=5,
                                     l=<optimized out>)
    at dl-init.c:30
        init_array = <optimized out>
        init_array = <optimized out>
        j = <optimized out>
        jm = <optimized out>
        addrs = <optimized out>
#3  _dl_init (address@hidden,
              argc=5,
              argv=0x7fffffffd9b8,
              env=0x7fffffffd9e8) at dl-init.c:120
        preinit_array = <optimized out>
        preinit_array_size = <optimized out>
        i = 4
#4  0x00007ffff7dee718 in dl_open_worker (address@hidden) at
dl-open.c:564
        args = 0x7fffffffb078
        file = <optimized out>
        mode = <optimized out>
        call_map = <optimized out>
        dst = <optimized out>
        new = <optimized out>
        __PRETTY_FUNCTION__ = "dl_open_worker"
        r = <optimized out>
        reloc_mode = <optimized out>
        nmaps = <optimized out>
        l = <optimized out>
        maps = <optimized out>
        relocation_in_progress = <optimized out>
        any_tls = <optimized out>
        first_static_tls = <optimized out>
#5  0x00007ffff7dea0a4 in _dl_catch_error
(address@hidden, 
                                          
address@hidden,
                                          
address@hidden, 
                                           address@hidden
<dl_open_worker>,
                                           address@hidden) at
dl-error.c:187
        errcode = 32767
        c = {objname = 0x7fffffffb068,
             errstring = 0x7fffffffb070,
             malloced = 0x7fffffffb067, 
             errcode = 0x7fffffffaf54,
             env = {{__jmpbuf = {140737488335224, -4992220596282808245,
2147483650, 6396560,
                                 140737488345528, 5, -4992220595683022773,
-4992238454207240117},
                     __mask_was_saved = -134257408, 
                     __saved_mask = {__val = {4160710744, 0, 140737354097920,
140737354097920, 2,
                                     7, 140737353841376, 140737351926218,
140733193388853,
                                     140737344040720, 140737354097920,
140737488335016, 
                                     140737488335012, 0, 5,
140737354097920}}}}}
        catchp = 0x7ffff7ffdfa0 <data>
        old = <optimized out>
#6  0x00007ffff7dede7b in _dl_open (file=0x619a90
"/usr/bin/../bin/../lib/bfd-plugins/LLVMgold.so", 
                                    mode=-2147483646,
                                    caller_dlopen=<optimized out>,
                                    nsid=-2,
                                    argc=5,
                                    argv=0x7fffffffd9b8,
                                    env=0x7fffffffd9e8) at dl-open.c:649
        args = {file = 0x619a90
"/usr/bin/../bin/../lib/bfd-plugins/LLVMgold.so",
                mode = -2147483646, 
                caller_dlopen = 0x7ffff78be9af,
                caller_dl_open = 0x7ffff70a8eeb <dlopen_doit+91>,
                map = 0x621a90, 
                nsid = 0,
                argc = 5,
                argv = 0x7fffffffd9b8,
                env = 0x7fffffffd9e8}
        objname = 0x7ffff765ef10 ""
        errstring = 0x7ffff7ff6500 ""
        malloced = false
        errcode = <optimized out>
        __PRETTY_FUNCTION__ = "_dl_open"
[...]
#11 0x00007ffff78be9af in try_load_plugin (pname=<optimized out>,
                                           abfd=0x615530,
                                           has_plugin_p=0x7fffffffb37c) at
../../bfd/plugin.c:228
[...]

The address of function #1 looks very suspicious...

> > What do you recommend to make ar and LLVMgold.so spit out more debugging
> > information?
> 
> Recompile them with the -g debugging option enabled.  (I am guessing that
> they were compiled without it, at least in the environment that you are
> using).

Uh, oh.  This definitely costs too much time, sigh.

> > BTW, what I would like to have for such situations is an option to disable
> > plugins with a command line option, for example `--plugin=""'.
> 
> Sadly I do not believe that such an option exists.  You can however capture
> the command line being used to invoke the plugin, and then just replay it
> with the plugin options removed.

`Plugin options removed'?  How shall this work?  As far as I can see,
`ar' automatically uses LLVMgold.so if present – I can't prevent that!
Compiling without plugin support enabled is obviously not helpful in finding
the
bug...

> > Finally, where can I find a description of the differences between
> > `LLVMgold.so' and gcc's `liblto_plugin'?  Even a more intensive search in
> > the internet didn't show up anything useful...
> 
> I do not think that such a document exists.

Pfft.

> The only real recourse is to read the source code for each of them, and
> compare how they work.

Honestly, I can't believe that I have to do that.  Sigh.

-- 
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]