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
+1 -2
View File
@@ -466,8 +466,7 @@ rule KernelArchitectureSetup architecture
# kernel add-on glue code
HAIKU_KERNEL_ADDON_BEGIN_GLUE_CODE = <$(architecture)>crtbeginS.o
<src!system!glue!$(architecture)>haiku_version_glue.o ;
HAIKU_KERNEL_ADDON_END_GLUE_CODE
= $(HAIKU_GCC_LIBGCC_$(architecture)) <$(architecture)>crtendS.o ;
HAIKU_KERNEL_ADDON_END_GLUE_CODE = <$(architecture)>crtendS.o ;
}
+4 -2
View File
@@ -54,9 +54,11 @@ rule BootLd
# libsupc++ is opt-out.
local libs ;
if ! [ on $(1) return $(HAIKU_NO_LIBSUPC++) ] {
libs += $(TARGET_BOOT_LIBSUPC++) ;
libs += [ TargetBootLibsupc++ true ] ;
Depends $(1) : [ TargetBootLibsupc++ ] ;
}
LINKLIBS on $(1) = $(libs) $(TARGET_BOOT_LIBGCC) ;
LINKLIBS on $(1) = $(libs) [ TargetBootLibgcc true ] ;
Depends $(1) : [ TargetBootLibgcc ] ;
# TODO: Do we really want to invoke SetupBoot here? The objects should
# have been compiled with BootObjects anyway, so we're doing that twice.
+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) ;
+2 -1
View File
@@ -8,7 +8,8 @@ rule AddSharedObjectGlueCode
on $(1) {
platform = $(PLATFORM) ;
if $(platform) = haiku {
local stdLibs = [ MultiArchDefaultGristFiles libroot.so ] ;
local stdLibs = [ MultiArchDefaultGristFiles libroot.so ]
[ TargetLibgcc ] ;
local type = EXECUTABLE ;
if $(2) != true {
type = LIBRARY ;
+1 -2
View File
@@ -89,8 +89,7 @@ rule HaikuImageGetSystemLibs
return
# libs with special grist
[ MultiArchDefaultGristFiles libroot.so : revisioned ]
$(HAIKU_SHARED_LIBSTDC++_$(TARGET_PACKAGING_ARCH))
$(HAIKU_SHARED_LIBSUPC++_$(TARGET_PACKAGING_ARCH))
[ Libstdc++ForImage ]
# libs with standard grist
[ MultiArchDefaultGristFiles [ FFilterByBuildFeatures
libbe.so libbsd.so libbnetapi.so
+1 -2
View File
@@ -62,8 +62,7 @@ rule HaikuImageGetSystemLibs
return
# libs with special grist
[ MultiArchDefaultGristFiles libroot.so : revisioned ]
$(HAIKU_SHARED_LIBSTDC++_$(TARGET_PACKAGING_ARCH))
$(HAIKU_SHARED_LIBSUPC++_$(TARGET_PACKAGING_ARCH))
[ Libstdc++ForImage ]
# libs with standard grist
[ MultiArchDefaultGristFiles [ FFilterByBuildFeatures
libalm.so
+2 -2
View File
@@ -48,8 +48,8 @@ for stage in _stage1 "" {
[ MultiArchDefaultGristFiles libbsd.so ]
[ MultiArchDefaultGristFiles libroot.so : revisioned ]
[ MultiArchDefaultGristFiles libnetwork.so ]
$(HAIKU_SHARED_LIBSTDC++_$(architecture))
$(HAIKU_SHARED_LIBSUPC++_$(architecture))
[ TargetLibstdc++ ]
[ TargetLibsupc++ ]
$(additionalLibraries$(stage))
;