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

[3.1] More regressions on S/390 - revert lib64 patch


Hello Mark,

we've unfortunately discovered another serious regression on s390, this
time caused by the recent change to support /usr/lib64 systems.

Due to this change, the start files (crti.o etc.) are now always used
from the absolute path given (/usr/lib/crti.o or /usr/lib64/crti.o).
This differs from the previous behaviour where the compiler driver
searched various directories (hard-coded /usr/lib as well as prefixes
specified by the backend and -B command line switches) for a file
named crti.o.

Unfortunately, current glibc versions rely on this search algorithm:
when building libpthread.so, it is necessary to use a special variant
of crti.o, which calls additional initialization routines, instead of
the system crti.o.  The glibc Makefile achieves this by passing an
-B argument specifying the libpthread build directory to the gcc
driver when linking libpthread.so.  This caused the crti.o file found
there to be used.

After the recent patch, the gcc driver always uses the system crti.o
file, which means that the special libpthread init routines are not
called when libpthread.so is loaded.  This causes a variety of serious
problems with any application using threads (often crashes on startup).


It appears that a proper fix for this problem is not easy; therefore
I'd like to simply revert this patch for the 3.1 release.  OK?


Mit freundlichen Gruessen / Best Regards

Ulrich Weigand

--
  Dr. Ulrich Weigand
  Linux for S/390 Design & Development
  IBM Deutschland Entwicklung GmbH, Schoenaicher Str. 220, 71032 Boeblingen
  Phone: +49-7031/16-3727   ---   Email: Ulrich.Weigand@de.ibm.com


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