* Build libsupc++.so and libstdc++.so only when they aren't provided by the
compiler. Fixes #5322 (the ones in /boot/develop would be overwritten). * Simplified the Jamfile building these libraries. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35396 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
+18
-8
@@ -402,23 +402,33 @@ HAIKU_PRIVATE_KERNEL_HEADERS =
|
|||||||
# Add some grist to the libgcc objects
|
# Add some grist to the libgcc objects
|
||||||
HAIKU_GCC_LIBGCC_OBJECTS = $(HAIKU_GCC_LIBGCC_OBJECTS:G=libgcc) ;
|
HAIKU_GCC_LIBGCC_OBJECTS = $(HAIKU_GCC_LIBGCC_OBJECTS:G=libgcc) ;
|
||||||
|
|
||||||
# the C++ library
|
# the C++ standard library
|
||||||
|
HAIKU_BUILD_SHARED_LIBSTDC++ = ;
|
||||||
if $(HAIKU_SHARED_LIBSTDC++) {
|
if $(HAIKU_SHARED_LIBSTDC++) {
|
||||||
HAIKU_LIBSTDC++ = $(HAIKU_SHARED_LIBSTDC++) ;
|
HAIKU_LIBSTDC++ = $(HAIKU_SHARED_LIBSTDC++) ;
|
||||||
} else if $(HAIKU_STATIC_LIBSTDC++) {
|
|
||||||
HAIKU_LIBSTDC++ = $(HAIKU_STATIC_LIBSTDC++) ;
|
|
||||||
} else {
|
} else {
|
||||||
HAIKU_LIBSTDC++ = libstdc++.r4.so ;
|
# no shared library available with the compiler -- build it
|
||||||
|
if $(HAIKU_GCC_VERSION[1]) = 2 {
|
||||||
|
HAIKU_LIBSTDC++ = libstdc++.r4.so ;
|
||||||
|
} else {
|
||||||
|
HAIKU_LIBSTDC++ = libstdc++.so ;
|
||||||
|
}
|
||||||
HAIKU_SHARED_LIBSTDC++ = $(HAIKU_LIBSTDC++) ;
|
HAIKU_SHARED_LIBSTDC++ = $(HAIKU_LIBSTDC++) ;
|
||||||
|
HAIKU_BUILD_SHARED_LIBSTDC++ = 1 ;
|
||||||
}
|
}
|
||||||
|
|
||||||
# the C++ support library
|
# the C++ support (runtime) library
|
||||||
|
HAIKU_BUILD_SHARED_LIBSUPC++ = ;
|
||||||
if $(HAIKU_SHARED_LIBSUPC++) {
|
if $(HAIKU_SHARED_LIBSUPC++) {
|
||||||
HAIKU_LIBSUPC++ = $(HAIKU_SHARED_LIBSUPC++) ;
|
HAIKU_LIBSUPC++ = $(HAIKU_SHARED_LIBSUPC++) ;
|
||||||
} else if $(HAIKU_STATIC_LIBSUPC++) {
|
|
||||||
HAIKU_LIBSUPC++ = $(HAIKU_STATIC_LIBSUPC++) ;
|
|
||||||
} else {
|
} else {
|
||||||
HAIKU_LIBSUPC++ = ;
|
# no shared library available with the compiler -- build it for gcc 4
|
||||||
|
if $(HAIKU_GCC_VERSION[1]) != 2 {
|
||||||
|
HAIKU_SHARED_LIBSUPC++ = libsupc++.so ;
|
||||||
|
HAIKU_BUILD_SHARED_LIBSUPC++ = 1 ;
|
||||||
|
}
|
||||||
|
|
||||||
|
HAIKU_LIBSUPC++ = $(HAIKU_SHARED_LIBSUPC++) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
# network libraries
|
# network libraries
|
||||||
|
|||||||
@@ -1,49 +1,23 @@
|
|||||||
SubDir HAIKU_TOP src libs stdc++ current ;
|
SubDir HAIKU_TOP src libs stdc++ current ;
|
||||||
|
|
||||||
|
|
||||||
|
rule CreateSharedC++LibraryFromArchive sharedLib : staticLib
|
||||||
# create libstdc++.so from the libstdc++.a build with the compiler
|
|
||||||
rule CreateLibStdC++FromArchive
|
|
||||||
{
|
{
|
||||||
local _lib = $(1) ;
|
LINKFLAGS on $(sharedLib) = [ on $(sharedLib) return $(LINKFLAGS) ]
|
||||||
local neededLibs ;
|
-Xlinker --strip-debug -Xlinker --whole-archive ;
|
||||||
|
|
||||||
if ! [ IsPlatformSupportedForTarget $(1) ] {
|
|
||||||
return ;
|
|
||||||
}
|
|
||||||
|
|
||||||
MainFromObjects $(_lib) : $(2) ;
|
SharedLibraryFromObjects $(sharedLib) : : $(staticLib) ;
|
||||||
LINKFLAGS on $(_lib) = [ on $(_lib) return $(LINKFLAGS) ]
|
|
||||||
-nostart -Xlinker -soname=\"$(_lib:G=)\"
|
|
||||||
-Xlinker --strip-debug
|
|
||||||
-Xlinker --whole-archive ;
|
|
||||||
LinkAgainst $(_lib) : $(3) ;
|
|
||||||
|
|
||||||
AddSharedObjectGlueCode $(_lib) : false ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CreateLibStdC++FromArchive $(HAIKU_SHARED_LIBSTDC++)
|
|
||||||
: $(HAIKU_STATIC_LIBSTDC++) ;
|
# create libstdc++.so from the libstdc++.a built with the compiler
|
||||||
|
if $(HAIKU_BUILD_SHARED_LIBSTDC++) {
|
||||||
|
CreateSharedC++LibraryFromArchive $(HAIKU_SHARED_LIBSTDC++)
|
||||||
|
: $(HAIKU_STATIC_LIBSTDC++) ;
|
||||||
|
}
|
||||||
|
|
||||||
# create libsupc++.so from the libsupc++.a build with the compiler
|
# create libsupc++.so from the libsupc++.a build with the compiler
|
||||||
rule CreateLibSupC++FromArchive
|
if $(HAIKU_BUILD_SHARED_LIBSUPC++) {
|
||||||
{
|
CreateSharedC++LibraryFromArchive $(HAIKU_SHARED_LIBSUPC++)
|
||||||
local _lib = $(1) ;
|
: $(HAIKU_STATIC_LIBSUPC++) ;
|
||||||
local neededLibs ;
|
|
||||||
|
|
||||||
if ! [ IsPlatformSupportedForTarget $(1) ] {
|
|
||||||
return ;
|
|
||||||
}
|
|
||||||
|
|
||||||
MainFromObjects $(_lib) : $(2) ;
|
|
||||||
LINKFLAGS on $(_lib) = [ on $(_lib) return $(LINKFLAGS) ]
|
|
||||||
-nostart -Xlinker -soname=\"$(_lib:G=)\"
|
|
||||||
-Xlinker --strip-debug
|
|
||||||
-Xlinker --whole-archive ;
|
|
||||||
LinkAgainst $(_lib) : $(3) ;
|
|
||||||
|
|
||||||
AddSharedObjectGlueCode $(_lib) : false ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CreateLibSupC++FromArchive $(HAIKU_SHARED_LIBSUPC++)
|
|
||||||
: $(HAIKU_STATIC_LIBSUPC++) ;
|
|
||||||
|
|||||||
Reference in New Issue
Block a user