mailing list of musl libc
 help / color / mirror / code / Atom feed
From: Jens <jensl@laas.mine.nu>
To: musl@lists.openwall.com
Subject: Re: problems with dynamic linking since 0.9.1
Date: Wed, 14 Aug 2013 16:51:05 +0200 (CEST)	[thread overview]
Message-ID: <alpine.LNX.2.10.1308141641390.10050@laas.mine.nu> (raw)
In-Reply-To: <20130814142710.GN221@brightrain.aerifal.cx>



On Wed, 14 Aug 2013, Rich Felker wrote:

> On Wed, Aug 14, 2013 at 11:06:29AM +0200, Jens wrote:
>>
>>>>> ld should be able to handle it (eg file libc.so, readelf -a
>>>>> libc.so, nm -D libc.so, or just ./libc.so)
>>>>>
>>>>> since you use landley's weird toolchain it may be a
>>>>> problem with the old binutils
>>>>
>>>> Thanks! You nailed it in one. If I use newer binutils it works.
>>>>
>>>> (In response to the wrapper problem, I let REALGCC point to the real
>>>> gcc and not the wrapper).
>>>>
>>>> Thanks again,
>>>> Jens
>>>>
>>>>>
>>>>>> bash-4.1# musl-gcc -c t.c
>>>>>> bash-4.1# musl-gcc t.o
>>>>>> /opt/musl/lib/libc.so: file not recognized: File format not recognized
>>>>>> collect2: ld returned 1 exit status
>>>>>
>>>
>>> It would be nice to get to the bottom of this, still. It's not my
>>> intent to require new binutils for linking against musl. Any idea why
>>> it might have been failing? Are there verbosity level options to ld
>>> that might help track this down?
>>
>> strace attached as trace.txt
>>
>> bash-4.1# strace -f -o /tmp/trace.txt musl-gcc t.o
>> /opt/musl/lib/libc.so: file not recognized: File format not recognized
>> collect2: ld returned 1 exit status
>>
>> verbose ld output attached as ld.txt
>>
>> bash-4.1# ld --verbose -dynamic-linker /lib/ld-musl-x86_64.so.1
>> -nostdlib /opt/musl/lib/crt1.o /opt/musl/lib/crti.o
>> /usr/gcc/lib/crtbegin.o -L/opt/musl/lib -L /lib/. t.o
>> /usr/gcc/lib/libgcc.a /usr/gcc/lib/libgcc_eh.a -lc
>> /usr/gcc/lib/libgcc.a /usr/gcc/lib/libgcc_eh.a &> /tmp/ld.txt
>>
>>>
>>> By the way, how old were those binutils? I saw "firmware Linux"
>>> mentioned, which was the predecessor of Aboriginal, so unless that's
>>> just still landley's dir name, maybe these are a lot older than I
>>> thought..
>>
>> bash-4.1# ld -V
>> GNU ld version 2.17
>>   Supported emulations:
>>    elf_x86_64
>>    elf_i386
>>    i386linux
>>
>> Hope this helps.
>
> Thanks. I don't see anything obviously wrong in the trace or verbose
> output. Unless /lib is where you have musl installed (which doesn't
> seem to be the case, the -L /lib/. probably should not be there, but
> it doesn't seem related to the problem. Have you run the file command
> and/or readelf -a on libc.so as a sanity check? Perhaps something
> about the toolchain or existing wrapper messed up the link of libc.so.

bash-4.1# ls -l /lib/ld-musl-x86_64.so.1
lrwxrwxrwx    1 0        0              21 Aug 13 22:28 
/lib/ld-musl-x86_64.so.1 -> /opt/musl/lib/libc.so
bash-4.1# ls -l /opt/musl/lib/libc.so
-rwxr-xr-x    1 0        0         2718991 Sep 23  2012 
/opt/musl/lib/libc.so

readelf -a /opt/musl/lib/libc.so
outputs a _lot_ of stuff that I cannot interpret.

bash-4.1# file /opt/musl/lib/libc.so
/opt/musl/lib/libc.so: ELF 64-bit LSB shared object, x86-64, version 1 
(SYSV), dynamically linked, not stripped

If I install newer binutils (musl + gcc is the same), the linking will 
succeed.

Im happy that I have a workaround (or actually two, since I can link 
statically).

Cheers,
Jens

>
> Rich
>


  parent reply	other threads:[~2013-08-14 14:51 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-13 10:39 Jens
2013-08-13 11:07 ` Szabolcs Nagy
2013-08-13 11:18   ` Jens
2013-08-13 14:53     ` Szabolcs Nagy
2013-08-13 16:00       ` Rich Felker
2013-08-15  3:14         ` Rob Landley
2013-08-13 17:14       ` Jens
2013-08-13 18:03         ` Rich Felker
2013-08-14  9:06           ` Jens
2013-08-14 14:27             ` Rich Felker
2013-08-14 14:49               ` Szabolcs Nagy
2013-08-14 14:51                 ` Rich Felker
2013-08-14 20:47                   ` Jens
2013-08-14 20:58                     ` Rich Felker
2013-08-15 21:19                 ` Rob Landley
2013-08-14 14:51               ` Jens [this message]
2013-08-15  3:43         ` Rob Landley
2013-08-15  9:05           ` Jens
2013-08-16  8:28             ` Rob Landley
2013-08-15  2:17       ` Rob Landley
2013-08-15  3:29 ` Rob Landley
2013-08-14 22:26 writeonce

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=alpine.LNX.2.10.1308141641390.10050@laas.mine.nu \
    --to=jensl@laas.mine.nu \
    --cc=musl@lists.openwall.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).