With glibc 2.21 (Debian/unstable on x86_64), on any code compiled by tcc
segfaults. This occurs with both old tcc (tcc 0.9.27~git20140923.9d7fb33-3
Debian package) and mob. I wonder whether this is a bug in tcc or in the
glibc.

For instance:

ypig% cat conftest.c
int main (void)
{ return 0; }
ypig% tcc conftest.c -o conftest
ypig% ./conftest
zsh: segmentation fault (core dumped)  ./conftest

In the "objdump -S" output of conftest, I notice the following
difference:

libc6 2.19:

0000000000400430 <_init>:
  400430:       48 83 ec 08             sub    $0x8,%rsp
  400434:       48 8b 05 4d 01 20 00    mov    0x20014d(%rip),%rax        # 
600588 <_init+0x200158>
[...]

libc6 2.21:

00000000004003f0 <_init>:
  4003f0:       48 83 ec 08             sub    $0x8,%rsp
  4003f4:       48 8b 05 00 00 00 00    mov    0x0(%rip),%rax        # 4003fb 
<_init+0xb>

The 0x20014d(%rip) has changed to 0x0(%rip).

My bug report for Debian:

  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=808008

-- 
Vincent Lefèvre <vinc...@vinc17.net> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)

_______________________________________________
Tinycc-devel mailing list
Tinycc-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/tinycc-devel

Reply via email to