diff --git a/build/jam/OptionalPackages b/build/jam/OptionalPackages index 53a5ca6b2d..5ae41482f7 100644 --- a/build/jam/OptionalPackages +++ b/build/jam/OptionalPackages @@ -383,9 +383,13 @@ if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] && $(TARGET_ARCH) = x86 { # kernel AddFilesToHaikuHybridImage $(abiDirTokens) lib : kernel.so : _KERNEL_ ; + # additional libraries + local developmentLibs = libroot_debug.so ; + AddFilesToHaikuHybridImage system lib : $(developmentLibs) : : true ; + # library symlinks local lib ; - for lib in $(SYSTEM_LIBS) $(SYSTEM_LIBS_LIBGL_ALIASES) { + for lib in $(SYSTEM_LIBS) $(SYSTEM_LIBS_LIBGL_ALIASES) $(developmentLibs) { AddSymlinkToHaikuHybridImage $(abiDirTokens) lib : /system/lib $(lib:BS) : : true ; } diff --git a/src/system/libroot/Jamfile b/src/system/libroot/Jamfile index 1d480b2321..3e56ff2c3b 100644 --- a/src/system/libroot/Jamfile +++ b/src/system/libroot/Jamfile @@ -15,7 +15,6 @@ local librootObjects = posix_crypt.o posix_locale.o posix_main.o - posix_malloc.o posix_pthread.o posix_signal.o posix_stdio.o @@ -40,9 +39,19 @@ local librootObjects = posix_unistd.o ; +local librootDebugObjects = + posix_malloc_debug.o +; + +local librootNoDebugObjects = + posix_malloc.o +; + DONT_LINK_AGAINST_LIBROOT on libroot.so = true ; +DONT_LINK_AGAINST_LIBROOT on libroot_debug.so = true ; SetVersionScript libroot.so : libroot_versions ; +SetVersionScript libroot_debug.so : libroot_versions ; SharedLibrary libroot.so : @@ -50,6 +59,21 @@ SharedLibrary libroot.so : $(TARGET_GCC_LIBGCC_OBJECTS) $(librootObjects:G=nogrist) + $(librootNoDebugObjects:G=nogrist) + $(TARGET_STATIC_LIBSUPC++) +; + +# Use the standard libroot.so soname, so when the debug version is pre-loaded +# it prevents the standard version to be loaded as well. +HAIKU_SONAME on libroot_debug.so = libroot.so ; + +SharedLibrary libroot_debug.so + : + libroot_init.c + : + $(TARGET_GCC_LIBGCC_OBJECTS) + $(librootObjects:G=nogrist) + $(librootDebugObjects:G=nogrist) $(TARGET_STATIC_LIBSUPC++) ; @@ -61,6 +85,10 @@ if $(TARGET_PLATFORM) = haiku { MakeLocate libroot.so : [ FDirName $(TARGET_DEBUG_$(DEBUG)_LOCATE_TARGET) revisioned ] ; CopySetHaikuRevision libroot.so : libroot.so ; + + MakeLocate libroot_debug.so + : [ FDirName $(TARGET_DEBUG_$(DEBUG)_LOCATE_TARGET) revisioned ] ; + CopySetHaikuRevision libroot_debug.so : libroot_debug.so ; } diff --git a/src/system/libroot/posix/Jamfile b/src/system/libroot/posix/Jamfile index f9488b8bcb..67cf18c683 100644 --- a/src/system/libroot/posix/Jamfile +++ b/src/system/libroot/posix/Jamfile @@ -35,7 +35,7 @@ SubInclude HAIKU_TOP src system libroot posix arch $(TARGET_ARCH) ; SubInclude HAIKU_TOP src system libroot posix crypt ; SubInclude HAIKU_TOP src system libroot posix locale ; SubInclude HAIKU_TOP src system libroot posix malloc ; -#SubInclude HAIKU_TOP src system libroot posix malloc_debug ; +SubInclude HAIKU_TOP src system libroot posix malloc_debug ; SubInclude HAIKU_TOP src system libroot posix pthread ; SubInclude HAIKU_TOP src system libroot posix signal ; SubInclude HAIKU_TOP src system libroot posix stdio ; diff --git a/src/system/libroot/posix/malloc_debug/Jamfile b/src/system/libroot/posix/malloc_debug/Jamfile index b840d214fa..4def90d325 100644 --- a/src/system/libroot/posix/malloc_debug/Jamfile +++ b/src/system/libroot/posix/malloc_debug/Jamfile @@ -3,6 +3,6 @@ SubDir HAIKU_TOP src system libroot posix malloc_debug ; UsePrivateSystemHeaders ; UsePrivateHeaders shared ; -MergeObject posix_malloc.o : +MergeObject posix_malloc_debug.o : heap.cpp ;