This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
C ABI changes between gcc 2.96 and gcc 3.2?
- From: "H. J. Lu" <hjl at lucon dot org>
- To: gcc at gcc dot gnu dot org
- Cc: GNU C Library <libc-alpha at sources dot redhat dot com>
- Date: Mon, 14 Oct 2002 17:02:06 -0700
- Subject: C ABI changes between gcc 2.96 and gcc 3.2?
I was investigating an odd crash after modifying mips.c in gcc 3.2.
I built a gcc 3.2 cross compiler on Linux/x86, using gcc 3.2. After
I modified mips.c, I tried to rebuild the cross compiler. I got
./xgcc -B./ -B/export/tools-3.2/mipsel-linux/bin/ -isystem
/export/tools-3.2/mipsel-linux/include -isystem
/export/tools-3.2/mipsel-linux/sys-include -O2 -DIN_GCC -DCROSS_COMPILE -W
-Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem
./include -I. -I. -I/export/linux/src/tools-3.2/tools/gcc
-I/export/linux/src/tools-3.2/tools/gcc/.
-I/export/linux/src/tools-3.2/tools/gcc/config
-I/export/linux/src/tools-3.2/tools/gcc/../include -g0
-finhibit-size-directive -fno-inline-functions -fno-exceptions \
-c /export/linux/src/tools-3.2/tools/gcc/crtstuff.c -DCRT_BEGIN \
-o crtbegin.o
/export/linux/src/tools-3.2/tools/gcc/crtstuff.c: In function
`__do_global_dtors_aux':
/export/linux/src/tools-3.2/tools/gcc/crtstuff.c:286: internal error:
Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
It turned out that I recompiled mips.c with gcc 2.96 by accident and
targetm in mips.c had a different layout from the one compiled with
gcc 3.2. I got
(gdb) p targetm
...
cannot_modify_jumps_p = 0x1}
instead of
(gdb) p targetm
...
cannot_modify_jumps_p = 0x8212df0 <hook_void_bool_false>}
Is that a known issue? I guess I can extract a testcase out of it. I
think it may impact people who try to use gcc 2.96 with glibc compiled
with gcc 3.2.
H.J.