This is the mail archive of the gcc@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]

Re: gcc 2.8.0 is broken on linux/x86 and more bug



  In message <m0xgM3M-0004ecC@ocean.lucon.org>you write:
  > __register_frame () change in gcc 2.8.0 causes a big problem.
  > Since __register_frame () called in crtbegin.o is in libgcc2.c and
  > gcc -shared includes crtbegin.o and -lgcc, any libc.so built by
  > previous gcc has __register_frame () in libc.so. Now the ABI for
  > __register_frame () is changed, that is a big mess for Linux since
  > shared libraries are used a lot. When the ABI of a function in
  > shared library is changed like this, it doesn't work too well.
It seems to me that we need two interfaces one with the old way one
with the new way.

Furthermore, we must avoid calling "free" on any of the objects which
come from static storage instead of malloc.  Thus, we have to keep track
of which interface was used for each object so that we know whether or
not its memory should be free'd.

The compiler should always emit calls to the new interfaces; the old
interfaces would be for existing copies of ld.so which use the old
interfaces.

jeff


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