|
From: Nicholas N. <nj...@cs...> - 2005-02-13 18:42:23
|
Hi,
I'm trying to get self-hosting to work on my machine. I just switched to
recent versions of gcc (3.4.3) and ld (binutils 2.15) which support PIE.
But once I built Valgrind, I get a seg fault at startup. Diagnostic printfs
tell me that things are ok until at least the just before the call to
jmp_with_stack() at the end of stage1.c:main2(). But the seg fault
manifests before the first statement in vg_main.c:main() executes.
The distro on the machine is an oldish Debian one; in particular the glibc
version is 2.2.5:
[~/grind/head2] /lib/libc.so.6
GNU C Library stable release version 2.2.5, by Roland McGrath et al.
Copyright (C) 1992-2001, 2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 2.95.4 20011002 (Debian prerelease).
Compiled on a Linux 2.4.18 system on 2005-01-07.
Available extensions:
GNU libio by Per Bothner
crypt add-on version 2.1 by Michael Glad and others
linuxthreads-0.9 by Xavier Leroy
BIND-8.2.3-T5B
libthread_db work sponsored by Alpha Processor Inc
NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk
Report bugs using the `glibcbug' script to <bu...@gn...>.
Is it possible that the dynamic linker is too old to handle PIE executables?
But a toy program compiled with "gcc -fpie a.c" worked ok.
Kernel version is 2.4.29, in case that's relevant:
[~/grind/head2] uname -a
Linux charco.cs.utexas.edu 2.4.29 #1 SMP Mon Jan 24 09:20:36 CST 2005 i686
unknown
Valgrind was working fine with older, non-PIE versions of gcc and ld.
Any suggestions what the problem might be, or how to hunt it down? Thanks.
N
|