Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date: Sun, 2 Sep 2018 19:11:29 +0300
From: John Found <johnfound@...32.info>
To: musl@...ts.openwall.com
Subject: Re: Compiling 32bit executables on 64bit system with MUSL

On Sun, 2 Sep 2018 17:18:01 +0200
Szabolcs Nagy <nsz@...t70.net> wrote:

> * John Found <johnfound@...32.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@...32.info>

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.