From: John Found <johnfound@asm32.info>
To: musl@lists.openwall.com
Subject: Re: Compiling 32bit executables on 64bit system with MUSL
Date: Sun, 2 Sep 2018 19:11:29 +0300 [thread overview]
Message-ID: <20180902191129.392daf930821f98b1c96a0bf@asm32.info> (raw)
In-Reply-To: <20180902151801.GJ4418@port70.net>
On Sun, 2 Sep 2018 17:18:01 +0200
Szabolcs Nagy <nsz@port70.net> wrote:
> * John Found <johnfound@asm32.info> [2018-09-02 16:01:25 +0300]:
> > $musl-gcc -o hello ./hello.c
> > /usr/bin/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/32/crtbegin.o: direct GOT relocation R_386_GOT32X against `_ITM_deregisterTMCloneTable' without base register can not be used when making a shared object
> > /usr/bin/ld: final link failed: nonrepresentable section on output
> > collect2: error: ld returned 1 exit status
> >
> > Actually my C programming skills are very low, so I can't even understand what the linker is talking about.
> >
> > The version of GCC is 8.2.0;
>
> your toolchain is probably default-pie (gcc -v will
> show --enable-default-pie)
>
> this means linking an executable will be linked like
> a shared library and all object files have to be
> position independent, but your specs file uses
> crtbegin.o, which is non-pie, instead of crtbeginS.o
> so linking fails (try passing -no-pie at link time
> to gcc).
Instead of using -no-pie, I tried to replace crtbegin.o
with crtbeginS.o (and respective crtend.o to crtendS.o)
Is it a correct fix?
After this the simple hello world compiles and runs properly.
Now I am trying to compile bigger project (sqlite3 library)
with variable success.
In order to make it compile I was forced to use
"-fno-stack-protector" option. I am not sure whether or not
this is a MUSL issue. The errors was like:
sqlite3.c:(.text+0x106f): undefined reference to `__stack_chk_fail_local'
Is the used workaround correct?
Also, after compiling with -O3 the library compiles but not working then.
Which is strange, but probably an issue for the sqlite mailing list.
--
John Found <johnfound@asm32.info>
prev parent reply other threads:[~2018-09-02 16:11 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-02 13:01 John Found
2018-09-02 15:18 ` Szabolcs Nagy
2018-09-02 16:11 ` John Found [this message]
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=20180902191129.392daf930821f98b1c96a0bf@asm32.info \
--to=johnfound@asm32.info \
--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).