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:
@@ -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
@@ -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.
|
||||
|
||||
@@ -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) ;
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user