Use libstdc++, libsupc++ and libgcc from gcc_syslibs.

* Instead of faking libstdc++.so from libstdc++.a, use libstdc++.so
  from the gcc_syslibs build feature for everything except x86_gcc2.
* Use libgcc_s.so from the gcc_syslibs build feature for everything but
  x86_gcc2 (which still carries libgcc as part of libroot.so).
* Drop filtering of libgcc objects for libroot, as that is no longer
  necessary since we're only using libgcc-as-single-object for libroot
  with x86_gcc2, where the filtered object file doesn't exist. Should
  the objects that used to be filtered cause any problems as part of
  libgcc_s.so, we can always filter them as part of the gcc build.
* Use libsupc++.so from the gcc_syslibs build feature for everything but
  x86_gcc2.
* Adjust all Jamfiles accordingly.
* Deactivate building of faked libstdc++.so for non-x86-gcc2. For
  x86_gcc2, we still build libstdc++.so from the sources in the Haiku
  source tree as part of the Haiku build .
* Put gcc_syslibs package onto the image, when needed.
This commit is contained in:
Oliver Tappe
2014-08-13 13:32:44 +02:00
parent 77253e671b
commit 220d040227
450 changed files with 581 additions and 601 deletions
+6 -3
View File
@@ -48,9 +48,11 @@ rule KernelLd
# libsupc++ is opt-out.
local libs ;
if ! [ on $(1) return $(HAIKU_NO_LIBSUPC++) ] {
libs += $(TARGET_KERNEL_LIBSUPC++) ;
libs += [ TargetKernelLibsupc++ true ] ;
Depends $(1) : [ TargetKernelLibsupc++ ] ;
}
LINKLIBS on $(1) = $(libs) $(TARGET_KERNEL_LIBGCC) ;
LINKLIBS on $(1) = $(libs) [ TargetKernelLibgcc true ] ;
Depends $(1) : [ TargetKernelLibgcc ] ;
HAIKU_TARGET_IS_EXECUTABLE on $(1) = 1 ;
@@ -119,7 +121,8 @@ rule KernelAddon
if $(PLATFORM) = haiku {
kernel = <nogrist>kernel.so ;
beginGlue = $(HAIKU_KERNEL_ADDON_BEGIN_GLUE_CODE) ;
endGlue = $(HAIKU_KERNEL_ADDON_END_GLUE_CODE) ;
endGlue
= [ TargetKernelLibgcc ] $(HAIKU_KERNEL_ADDON_END_GLUE_CODE) ;
} else if $(PLATFORM) = haiku_host {
kernel = /boot/develop/lib/x86/kernel.so ;
beginGlue = $(HAIKU_KERNEL_ADDON_BEGIN_GLUE_CODE) ;