Print this page
crt: Need a position-independent CRT for PIE
- Implement the greatest possible part of the crt1 in C
- Implement SPARC versions of the ASM sections of crt1
- Build crt1 position-independently, minor ASM updates to be position
  independent
- Implement crt1 with the hook expected by modern GCC to support
  profiling, make gcrt1 a symlink for source compatibility (older GCC
  initializes profiling at firsnt use of _mcount if necessary, so
  doesn't need the gcrt)
- Split the CRT out of developer/library/lint into a separate c-runtime package

*** 998,1017 **** TRACEOBJS= \ plockstat.o # NOTE: libc.so.1 must be linked with the minimal crti.o and crtn.o ! # modules whose source is provided in the $(SRC)/lib/common directory. # This must be done because otherwise the Sun C compiler would insert # its own versions of these modules and those versions contain code # to call out to C++ initialization functions. Such C++ initialization # functions can call back into libc before thread initialization is # complete and this leads to segmentation violations and other problems. # Since libc contains no C++ code, linking with the minimal crti.o and # crtn.o modules is safe and avoids the problems described above. OBJECTS= $(CRTI) $(MOSTOBJS) $(CRTN) ! CRTSRCS= ../../common/sparcv9 # include common library definitions include $(SRC)/lib/Makefile.lib include $(SRC)/lib/Makefile.lib.64 --- 998,1017 ---- TRACEOBJS= \ plockstat.o # NOTE: libc.so.1 must be linked with the minimal crti.o and crtn.o ! # modules whose source is provided in the $(SRC)/lib/crt directory. # This must be done because otherwise the Sun C compiler would insert # its own versions of these modules and those versions contain code # to call out to C++ initialization functions. Such C++ initialization # functions can call back into libc before thread initialization is # complete and this leads to segmentation violations and other problems. # Since libc contains no C++ code, linking with the minimal crti.o and # crtn.o modules is safe and avoids the problems described above. OBJECTS= $(CRTI) $(MOSTOBJS) $(CRTN) ! CRTSRCS= ../../crt/sparcv9 # include common library definitions include $(SRC)/lib/Makefile.lib include $(SRC)/lib/Makefile.lib.64