This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/12485] New: MIPS -mxgot causes "bad" exception handling code.


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12485

           Summary: MIPS -mxgot causes "bad" exception handling code.
           Product: gcc
           Version: 3.4
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: ddaney at avtrex dot com
                CC: gcc-bugs at gcc dot gnu dot org,rsandifo at redhat dot
                    com
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: mipsisa32el-linux

$ mipsel-linux-gcc --version                                     
mipsel-linux-gcc (GCC) 3.4 20030930 (experimental)


When compiling libgcj for the mipsisa32el-linux target I have to use -mxgot to
avoid GOT overflow problems.

However the use of -mxgot results in a reference to "__cxa_call_unexpected" to
be generated which in turn requires linking against libsupc++ and libstdc++.

The use of libgcj should not cause dependencies on these extra libraries.

I reduced the problem to the test case I will attach.


When I compile like this:
[daney@dl proton]$ mipsel-linux-gcc -fnon-call-exceptions -mxgot -c natFileXX.cc 
[daney@dl proton]$ mipsel-linux-nm natFileXX.o
         U __cxa_call_unexpected
00000000 V DW.ref.__gxx_personality_v0
         U _gp_disp
         U __gxx_personality_v0
00000000 W stat
         U _Unwind_Resume
         U __xstat
00000000 T _ZN4File5_statEi
00000090 T _ZN4File7canReadEv
00000000 V _ZTI4File
00000000 V _ZTS4File
00000000 V _ZTV4File
         U _ZTVN10__cxxabiv117__class_type_infoE

I get a reference to "__cxa_call_unexpected" (BAD).

If I compile like this:
[daney@dl proton]$ mipsel-linux-gcc -fnon-call-exceptions -c natFileXX.cc 
[daney@dl proton]$ mipsel-linux-nm natFileXX.o
00000000 V DW.ref.__gxx_personality_v0
         U _gp_disp
         U __gxx_personality_v0
00000000 W stat
         U __xstat
00000000 T _ZN4File5_statEi
00000088 T _ZN4File7canReadEv
00000000 V _ZTI4File
00000000 V _ZTS4File
00000000 V _ZTV4File
         U _ZTVN10__cxxabiv117__class_type_infoE

I get no references to "__cxa_call_unexpected" (GOOD).


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]