tinycc-devel
[Top][All Lists]
Advanced

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

[Tinycc-devel] Overflows in the dynamic linker on x86_64 when using a tc


From: Petr Skocik
Subject: [Tinycc-devel] Overflows in the dynamic linker on x86_64 when using a tcc-built shared library along with others
Date: Thu, 28 Jun 2018 16:23:17 +0200

Hi. I found another bug. (And this one's more annoying. :D)

I'm experiencing some dynamic-linker problems when running my project's executables on x86_64 
(but not 32-bit x86) if those executables were built with tcc.

Essentially, I'm getting runtime, dynamic linker errors such as:

Symbol `__dso_handle' causes overflow in R_X86_64_PC32 relocation
Symbol `fstatat' causes overflow in R_X86_64_PC32 relocation
Symbol `fstat' causes overflow in R_X86_64_PC32 relocation
Symbol `mknod' causes overflow in R_X86_64_PC32 relocation
Symbol `pthread_atfork' causes overflow in R_X86_64_PC32 relocation

I tried to make an MCVE (minimal, complete, verifiable example) and this one should do it:

#!/bin/sh -eu
cat > liblib.c <<EOF
#include <pthread.h>
void prepare(){} void parent(){} void child(){}
void f() { pthread_atfork(prepare,parent,child); }
EOF
cat > main.c <<EOF
void f();
int main()
{
f();
return 0;
}
EOF
: ${CC:=tcc}
$CC liblib.c -fPIC -c 
$CC -o liblib.so liblib.o -shared -lpthread
$CC main.c $PWD/liblib.so
LD_LIBRARY_PATH=$PWD ./a.out

On my x86_64 Linux Mint/Ubuntu, the above is giving me

./a.out: Symbol `__dso_handle' causes overflow in R_X86_64_PC32 relocation
./a.out: Symbol `__dso_handle' causes overflow in R_X86_64_PC32 relocation
Segmentation fault (core dumped)

I'm not getting any of the "Symbol `*` causes overflow in R_X86_64_PC32 relocation" messages on my 32-bit
Linux netbook, but the above example still segfaults there when built with tcc (but not with gcc or clang).

Again, I'm posting it here in case anybody knows how to fix it.
If this is a bad place to post such bug reports, please let me know. 
(Should  I post bug reports on https://savannah.nongnu.org/bugs/?group=tinycc or elsewhere instead?) 

Best regards,
Petr Skocik


reply via email to

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