Date: Thu, 3 Oct 1996 10:49:38 -0700 (PDT) From: John Polstra <jdp> To: CVS-committers, cvs-all, cvs-user Subject: cvs commit: src/contrib/gcc/config/i386 i386.h src/contrib/gcc/cp except.c Message-ID: <199610031749.KAA11232@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
jdp 96/10/03 10:49:37
Modified: contrib/gcc/config/i386 i386.h
contrib/gcc/cp except.c
Log:
Fix a bug that caused incorrect PIC code to be generated for exceptions.
The symptom was an assembler warning
"GOT relocation burb: `___EXCEPTION_TABLE__' should be global"
followed (sometimes) by a core dump. The fix makes the compiler
generate the correct GOTOFF addressing for that symbol, rather than the
GOT addressing it was emitting before.
Warning: There is still at least one serious bug in the i386 exception
code for PIC. The exception code that is generated clobbers the GOT
register (%ebx) and then tries to use it later. That leads to core
dumps at program execution time. I know where the problem is, but I do
not have a fix for it at this time. Until it is fixed, exceptions will
not work in PIC code. This is a general problem for all i386 platforms;
it is not specific to FreeBSD.
Revision Changes Path
1.2 +16 -0 src/contrib/gcc/config/i386/i386.h
1.2 +7 -1 src/contrib/gcc/cp/except.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199610031749.KAA11232>
