[haiku-commits] haiku: hrev51809 - in src/system/runtime_loader: . arch/m68k arch/ppc arch/arm arch/x86

  • From: jerome.duval@xxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sun, 25 Feb 2018 02:38:50 -0500 (EST)

hrev51809 adds 1 changeset to branch 'master'
old head: befa252fbf9f9d2eff18bb500a0211461ce8ac57
new head: 4bd0c1066b227cec4b79883bdef697c7a27f2e90
overview: 
http://cgit.haiku-os.org/haiku/log/?qt=range&q=4bd0c1066b22+%5Ebefa252fbf9f

----------------------------------------------------------------------------

4bd0c1066b22: runtime_loader: add hybrid support.

                                   [ Jérôme Duval <jerome.duval@xxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev51809
Commit:      4bd0c1066b227cec4b79883bdef697c7a27f2e90
URL:         http://cgit.haiku-os.org/haiku/commit/?id=4bd0c1066b22
Author:      Jérôme Duval <jerome.duval@xxxxxxxxx>
Date:        Sun Feb 25 07:29:51 2018 UTC

----------------------------------------------------------------------------

6 files changed, 199 insertions(+), 163 deletions(-)
src/system/runtime_loader/Jamfile             | 224 +++++++++++-----------
src/system/runtime_loader/arch/arm/Jamfile    |  27 +--
src/system/runtime_loader/arch/m68k/Jamfile   |  30 +--
src/system/runtime_loader/arch/ppc/Jamfile    |  29 +--
src/system/runtime_loader/arch/x86/Jamfile    |  27 +--
src/system/runtime_loader/arch/x86_64/Jamfile |  25 ++-

----------------------------------------------------------------------------

diff --git a/src/system/runtime_loader/Jamfile 
b/src/system/runtime_loader/Jamfile
index 3a19cf1372..71a80b2215 100644
--- a/src/system/runtime_loader/Jamfile
+++ b/src/system/runtime_loader/Jamfile
@@ -1,109 +1,119 @@
 SubDir HAIKU_TOP src system runtime_loader ;
 
-local architecture = $(TARGET_PACKAGING_ARCH) ;
-
-UsePrivateHeaders libroot runtime_loader shared ;
-UsePrivateHeaders kernel ;
-       # for <util/KMessage.h>
-UsePrivateHeaders libroot os ;
-       # for "PathBuffer.h"
-UsePrivateSystemHeaders ;
-
-ObjectHdrs find_directory.cpp : $(HAIKU_TOP)/src/system/libroot/os ;
-
-# Don't let gcc inject built-in function code. This will cause dependencies
-# to libroot, which we don't link against.
-SubDirCcFlags -fno-builtin ;
-SubDirC++Flags -fno-builtin -fno-exceptions ;
-
-DEFINES +=
-       KMESSAGE_CONTAINER_ONLY
-       _LOADER_MODE
-       USING_LIBGCC=1
-;
-
-AddResources runtime_loader : runtime_loader.rdef ;
-
-# needed for "runtime_loader" only
-StaticLibrary libruntime_loader.a :
-       kernel_vsprintf.cpp
-       kernel_cpp.cpp
-       KMessage.cpp
-       find_directory.cpp
-       :
-       <src!system!libroot!os!$(architecture)>mutex.o
-       <src!system!libroot!os!$(architecture)>recursive_lock.o
-       <src!system!libroot!os!$(architecture)>syscalls.o
-       <src!system!libroot!os!$(architecture)>sem.o
-       <src!system!libroot!os!arch!$(TARGET_ARCH)!$(architecture)>tls.o
-
-       <src!system!libroot!posix!$(architecture)>errno.o
-       <src!system!libroot!posix!$(architecture)>fcntl.o
-
-       <src!system!libroot!posix!locale!$(architecture)>ctype.o
-       <src!system!libroot!posix!locale!$(architecture)>LocaleData.o
-
-       <src!system!libroot!posix!string!$(architecture)>memchr.o
-       <src!system!libroot!posix!string!$(architecture)>memcmp.o
-       <src!system!libroot!posix!string!$(architecture)>memmove.o
-       <src!system!libroot!posix!string!$(architecture)>strcasecmp.o
-       <src!system!libroot!posix!string!$(architecture)>strcat.o
-       <src!system!libroot!posix!string!$(architecture)>strchr.o
-       <src!system!libroot!posix!string!$(architecture)>strcmp.o
-       <src!system!libroot!posix!string!$(architecture)>strcpy.o
-       <src!system!libroot!posix!string!$(architecture)>strcspn.o
-       <src!system!libroot!posix!string!$(architecture)>strdup.o
-       <src!system!libroot!posix!string!$(architecture)>strerror.o
-       <src!system!libroot!posix!string!$(architecture)>strlcat.o
-       <src!system!libroot!posix!string!$(architecture)>strlcpy.o
-       <src!system!kernel!lib>strlen.o
-       <src!system!libroot!posix!string!$(architecture)>strncmp.o
-       <src!system!libroot!posix!string!$(architecture)>strnlen.o
-       <src!system!libroot!posix!string!$(architecture)>strpbrk.o
-       <src!system!libroot!posix!string!$(architecture)>strrchr.o
-       <src!system!libroot!posix!string!$(architecture)>strspn.o
-       <src!system!libroot!posix!string!$(architecture)>strstr.o
-
-       [ FGristFiles kernel_vsprintf.o ]
-;
-
-SEARCH on [ FGristFiles kernel_cpp.cpp ]
-       = [ FDirName $(HAIKU_TOP) src system kernel util ] ;
-SEARCH on [ FGristFiles kernel_vsprintf.cpp ]
-       = [ FDirName $(HAIKU_TOP) src system kernel lib ] ;
-SEARCH on [ FGristFiles KMessage.cpp ]
-       = [ FDirName $(HAIKU_TOP) src system kernel messaging ] ;
-SEARCH on [ FGristFiles find_directory.cpp ]
-       = [ FDirName $(HAIKU_TOP) src system libroot os ] ;
-
-local sources =
-       add_ons.cpp
-       elf.cpp
-       elf_haiku_version.cpp
-       elf_load_image.cpp
-       elf_symbol_lookup.cpp
-       elf_tls.cpp
-       elf_versioning.cpp
-       pe.cpp
-       errors.cpp
-       export.cpp
-       heap.cpp
-       images.cpp
-       runtime_loader.cpp
-       utility.cpp
-;
-
-Objects $(sources) ;
-
-Ld runtime_loader :
-       [ FGristFiles $(sources:S=$(SUFOBJ)) ]
-       libruntime_loader.a
-       libruntime_loader_$(TARGET_ARCH).a
-       [ TargetKernelLibsupc++ ]
-       [ TargetKernelLibgcc ]
-       [ TargetKernelLibgcceh ]
-       : $(HAIKU_TOP)/src/system/ldscripts/$(TARGET_ARCH)/runtime_loader.ld
-       : --no-undefined -shared -soname=runtime_loader
-;
-
-HaikuSubInclude arch $(TARGET_ARCH) ;
+
+local architectureObject ;
+for architectureObject in [ MultiArchSubDirSetup ] {
+       on $(architectureObject) {
+               local architecture = $(TARGET_PACKAGING_ARCH) ;
+
+               UsePrivateHeaders libroot runtime_loader shared ;
+               UsePrivateHeaders kernel ;
+                       # for <util/KMessage.h>
+               UsePrivateHeaders libroot os ;
+                       # for "PathBuffer.h"
+               UsePrivateSystemHeaders ;
+
+               ObjectHdrs find_directory.cpp : 
$(HAIKU_TOP)/src/system/libroot/os ;
+
+               # Don't let gcc inject built-in function code. This will cause
+               # dependencies to libroot, which we don't link against.
+               SubDirCcFlags -fno-builtin ;
+               SubDirC++Flags -fno-builtin -fno-exceptions ;
+
+               DEFINES +=
+                       KMESSAGE_CONTAINER_ONLY
+                       _LOADER_MODE
+                       USING_LIBGCC=1
+               ;
+
+               AddResources [ MultiArchDefaultGristFiles runtime_loader ]
+                       : runtime_loader.rdef ;
+
+               # needed for "runtime_loader" only
+               StaticLibrary <$(architecture)>libruntime_loader.a :
+                       kernel_vsprintf.cpp
+                       kernel_cpp.cpp
+                       KMessage.cpp
+                       find_directory.cpp
+                       :
+                       <src!system!libroot!os!$(architecture)>mutex.o
+                       <src!system!libroot!os!$(architecture)>recursive_lock.o
+                       <src!system!libroot!os!$(architecture)>syscalls.o
+                       <src!system!libroot!os!$(architecture)>sem.o
+                       
<src!system!libroot!os!arch!$(TARGET_ARCH)!$(architecture)>tls.o
+
+                       <src!system!libroot!posix!$(architecture)>errno.o
+                       <src!system!libroot!posix!$(architecture)>fcntl.o
+
+                       <src!system!libroot!posix!locale!$(architecture)>ctype.o
+                       
<src!system!libroot!posix!locale!$(architecture)>LocaleData.o
+
+                       
<src!system!libroot!posix!string!$(architecture)>memchr.o
+                       
<src!system!libroot!posix!string!$(architecture)>memcmp.o
+                       
<src!system!libroot!posix!string!$(architecture)>memmove.o
+                       
<src!system!libroot!posix!string!$(architecture)>strcasecmp.o
+                       
<src!system!libroot!posix!string!$(architecture)>strcat.o
+                       
<src!system!libroot!posix!string!$(architecture)>strchr.o
+                       
<src!system!libroot!posix!string!$(architecture)>strcmp.o
+                       
<src!system!libroot!posix!string!$(architecture)>strcpy.o
+                       
<src!system!libroot!posix!string!$(architecture)>strcspn.o
+                       
<src!system!libroot!posix!string!$(architecture)>strdup.o
+                       
<src!system!libroot!posix!string!$(architecture)>strerror.o
+                       
<src!system!libroot!posix!string!$(architecture)>strlcat.o
+                       
<src!system!libroot!posix!string!$(architecture)>strlcpy.o
+                       
<src!system!libroot!posix!string!$(architecture)>strlen.o
+                       
<src!system!libroot!posix!string!$(architecture)>strncmp.o
+                       
<src!system!libroot!posix!string!$(architecture)>strnlen.o
+                       
<src!system!libroot!posix!string!$(architecture)>strpbrk.o
+                       
<src!system!libroot!posix!string!$(architecture)>strrchr.o
+                       
<src!system!libroot!posix!string!$(architecture)>strspn.o
+                       
<src!system!libroot!posix!string!$(architecture)>strstr.o
+               ;
+
+               SEARCH on [ FGristFiles kernel_cpp.cpp ]
+                       = [ FDirName $(HAIKU_TOP) src system kernel util ] ;
+               SEARCH on [ FGristFiles kernel_vsprintf.cpp ]
+                       = [ FDirName $(HAIKU_TOP) src system kernel lib ] ;
+               SEARCH on [ FGristFiles KMessage.cpp ]
+                       = [ FDirName $(HAIKU_TOP) src system kernel messaging ] 
;
+               SEARCH on [ FGristFiles find_directory.cpp ]
+                       = [ FDirName $(HAIKU_TOP) src system libroot os ] ;
+
+               local sources =
+                       add_ons.cpp
+                       elf.cpp
+                       elf_haiku_version.cpp
+                       elf_load_image.cpp
+                       elf_symbol_lookup.cpp
+                       elf_tls.cpp
+                       elf_versioning.cpp
+                       pe.cpp
+                       errors.cpp
+                       export.cpp
+                       heap.cpp
+                       images.cpp
+                       runtime_loader.cpp
+                       utility.cpp
+               ;
+
+               Objects $(sources) ;
+
+               Ld [ MultiArchDefaultGristFiles runtime_loader ] :
+                       [ FGristFiles $(sources:S=$(SUFOBJ)) ]
+                       <$(architecture)>libruntime_loader.a
+                       <$(architecture)>libruntime_loader_$(TARGET_ARCH).a
+                       [ TargetKernelLibsupc++ ]
+                       [ TargetKernelLibgcc ]
+                       [ TargetKernelLibgcceh ]
+                       : 
$(HAIKU_TOP)/src/system/ldscripts/$(TARGET_ARCH)/runtime_loader.ld
+                       : --no-undefined -shared -soname=runtime_loader
+               ;
+       }
+}
+
+
+local arch ;
+for arch in $(TARGET_ARCHS) {
+       HaikuSubInclude arch $(arch) ;
+}
+
diff --git a/src/system/runtime_loader/arch/arm/Jamfile 
b/src/system/runtime_loader/arch/arm/Jamfile
index 86d9d2b648..2533a32e49 100644
--- a/src/system/runtime_loader/arch/arm/Jamfile
+++ b/src/system/runtime_loader/arch/arm/Jamfile
@@ -1,17 +1,22 @@
 SubDir HAIKU_TOP src system runtime_loader arch arm ;
 
-local architecture = $(TARGET_PACKAGING_ARCH) ;
+local architectureObject ;
+for architectureObject in [ MultiArchSubDirSetup arm ] {
+       on $(architectureObject) {
+               local architecture = $(TARGET_PACKAGING_ARCH) ;
 
-UsePrivateHeaders runtime_loader ;
-UsePrivateSystemHeaders ;
+               UsePrivateHeaders runtime_loader ;
+               UsePrivateSystemHeaders ;
 
-SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) $(DOTDOT) ] ;
+               SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) $(DOTDOT) ] ;
 
-StaticLibrary libruntime_loader_$(TARGET_ARCH).a :
-       arch_relocate.cpp
-       :
-       <src!system!libroot!os!arch!$(TARGET_ARCH)!$(architecture)>thread.o
+               StaticLibrary 
<$(architecture)>libruntime_loader_$(TARGET_ARCH).a :
+                       arch_relocate.cpp
+                       :
+                       
<src!system!libroot!os!arch!$(TARGET_ARCH)!$(architecture)>thread.o
 
-       
<src!system!libroot!posix!string!arch!$(TARGET_ARCH)!$(architecture)>arch_string.o
-       
<src!system!libroot!posix!string!arch!$(TARGET_ARCH)!$(architecture)>memset.o
-       ;
+                       
<src!system!libroot!posix!string!arch!$(TARGET_ARCH)!$(architecture)>arch_string.o
+                       
<src!system!libroot!posix!string!arch!$(TARGET_ARCH)!$(architecture)>memset.o
+                       ;
+       }
+}
diff --git a/src/system/runtime_loader/arch/m68k/Jamfile 
b/src/system/runtime_loader/arch/m68k/Jamfile
index a47443abe3..1dc43f5c38 100644
--- a/src/system/runtime_loader/arch/m68k/Jamfile
+++ b/src/system/runtime_loader/arch/m68k/Jamfile
@@ -1,18 +1,24 @@
 SubDir HAIKU_TOP src system runtime_loader arch m68k ;
 
-local architecture = $(TARGET_PACKAGING_ARCH) ;
+local architectureObject ;
+for architectureObject in [ MultiArchSubDirSetup m68k ] {
+       on $(architectureObject) {
+               local architecture = $(TARGET_PACKAGING_ARCH) ;
 
-UsePrivateHeaders runtime_loader ;
-UsePrivateSystemHeaders ;
+               UsePrivateHeaders runtime_loader ;
+               UsePrivateSystemHeaders ;
 
-SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) $(DOTDOT) ] ;
+               SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) $(DOTDOT) ] ;
 
-StaticLibrary libruntime_loader_$(TARGET_ARCH).a :
-       arch_relocate.cpp
-       :
-       <src!system!libroot!os!arch!$(TARGET_ARCH)!$(architecture)>atomic.o
-       <src!system!libroot!os!arch!$(TARGET_ARCH)!$(architecture)>thread.o
+               StaticLibrary 
<$(architecture)>libruntime_loader_$(TARGET_ARCH).a :
+                       arch_relocate.cpp
+                       :
+                       
<src!system!libroot!os!arch!$(TARGET_ARCH)!$(architecture)>atomic.o
+                       
<src!system!libroot!os!arch!$(TARGET_ARCH)!$(architecture)>thread.o
+
+                       
<src!system!libroot!posix!string!arch!$(TARGET_ARCH)!$(architecture)>arch_string.o
+                       
<src!system!libroot!posix!string!arch!$(TARGET_ARCH)!$(architecture)>memset.o
+                       ;
+       }
+}
 
-       
<src!system!libroot!posix!string!arch!$(TARGET_ARCH)!$(architecture)>arch_string.o
-       
<src!system!libroot!posix!string!arch!$(TARGET_ARCH)!$(architecture)>memset.o
-       ;
diff --git a/src/system/runtime_loader/arch/ppc/Jamfile 
b/src/system/runtime_loader/arch/ppc/Jamfile
index 0010afde37..6bc521b45e 100644
--- a/src/system/runtime_loader/arch/ppc/Jamfile
+++ b/src/system/runtime_loader/arch/ppc/Jamfile
@@ -1,18 +1,23 @@
 SubDir HAIKU_TOP src system runtime_loader arch ppc ;
 
-local architecture = $(TARGET_PACKAGING_ARCH) ;
+local architectureObject ;
+for architectureObject in [ MultiArchSubDirSetup ppc ] {
+       on $(architectureObject) {
+               local architecture = $(TARGET_PACKAGING_ARCH) ;
 
-UsePrivateHeaders runtime_loader ;
-UsePrivateSystemHeaders ;
+               UsePrivateHeaders runtime_loader ;
+               UsePrivateSystemHeaders ;
 
-SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) $(DOTDOT) ] ;
+               SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) $(DOTDOT) ] ;
 
-StaticLibrary libruntime_loader_$(TARGET_ARCH).a :
-       arch_relocate.cpp
-       :
-       <src!system!libroot!os!arch!$(TARGET_ARCH)!$(architecture)>atomic.o
-       <src!system!libroot!os!arch!$(TARGET_ARCH)!$(architecture)>thread.o
+               StaticLibrary 
<$(architecture)>libruntime_loader_$(TARGET_ARCH).a :
+                       arch_relocate.cpp
+                       :
+                       
<src!system!libroot!os!arch!$(TARGET_ARCH)!$(architecture)>atomic.o
+                       
<src!system!libroot!os!arch!$(TARGET_ARCH)!$(architecture)>thread.o
 
-       
<src!system!libroot!posix!string!arch!$(TARGET_ARCH)!$(architecture)>memcpy.o
-       
<src!system!libroot!posix!string!arch!$(TARGET_ARCH)!$(architecture)>memset.o
-       ;
+                       
<src!system!libroot!posix!string!arch!$(TARGET_ARCH)!$(architecture)>memcpy.o
+                       
<src!system!libroot!posix!string!arch!$(TARGET_ARCH)!$(architecture)>memset.o
+                       ;
+       }
+}
diff --git a/src/system/runtime_loader/arch/x86/Jamfile 
b/src/system/runtime_loader/arch/x86/Jamfile
index 9b59368cc5..444c3211b0 100644
--- a/src/system/runtime_loader/arch/x86/Jamfile
+++ b/src/system/runtime_loader/arch/x86/Jamfile
@@ -1,17 +1,22 @@
 SubDir HAIKU_TOP src system runtime_loader arch x86 ;
 
-local architecture = $(TARGET_PACKAGING_ARCH) ;
+local architectureObject ;
+for architectureObject in [ MultiArchSubDirSetup x86 x86_gcc2 ] {
+       on $(architectureObject) {
+               local architecture = $(TARGET_PACKAGING_ARCH) ;
 
-UsePrivateHeaders runtime_loader ;
-UsePrivateSystemHeaders ;
+               UsePrivateHeaders runtime_loader ;
+               UsePrivateSystemHeaders ;
 
-SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) $(DOTDOT) ] ;
+               SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) $(DOTDOT) ] ;
 
-StaticLibrary libruntime_loader_$(TARGET_ARCH).a :
-       arch_relocate.cpp
-       :
-       <src!system!libroot!os!arch!$(TARGET_ARCH)!$(architecture)>atomic.o
-       <src!system!libroot!os!arch!$(TARGET_ARCH)!$(architecture)>thread.o
+               StaticLibrary 
<$(architecture)>libruntime_loader_$(TARGET_ARCH).a :
+                       arch_relocate.cpp
+                       :
+                       
<src!system!libroot!os!arch!$(TARGET_ARCH)!$(architecture)>atomic.o
+                       
<src!system!libroot!os!arch!$(TARGET_ARCH)!$(architecture)>thread.o
 
-       
<src!system!libroot!posix!string!arch!$(TARGET_ARCH)!$(architecture)>arch_string.o
-       ;
+                       
<src!system!libroot!posix!string!arch!$(TARGET_ARCH)!$(architecture)>arch_string.o
+                       ;
+       }
+}
diff --git a/src/system/runtime_loader/arch/x86_64/Jamfile 
b/src/system/runtime_loader/arch/x86_64/Jamfile
index 42e72d4b75..009713d953 100644
--- a/src/system/runtime_loader/arch/x86_64/Jamfile
+++ b/src/system/runtime_loader/arch/x86_64/Jamfile
@@ -1,15 +1,20 @@
 SubDir HAIKU_TOP src system runtime_loader arch x86_64 ;
 
-local architecture = $(TARGET_PACKAGING_ARCH) ;
+local architectureObject ;
+for architectureObject in [ MultiArchSubDirSetup x86_64 ] {
+       on $(architectureObject) {
+               local architecture = $(TARGET_PACKAGING_ARCH) ;
 
-UsePrivateHeaders runtime_loader ;
-UsePrivateSystemHeaders ;
+               UsePrivateHeaders runtime_loader ;
+               UsePrivateSystemHeaders ;
 
-SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) $(DOTDOT) ] ;
+               SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) $(DOTDOT) ] ;
 
-StaticLibrary libruntime_loader_$(TARGET_ARCH).a :
-       arch_relocate.cpp
-       :
-       <src!system!libroot!os!arch!$(TARGET_ARCH)!$(architecture)>thread.o
-       
<src!system!libroot!posix!string!arch!$(TARGET_ARCH)!$(architecture)>arch_string.o
-       ;
+               StaticLibrary 
<$(architecture)>libruntime_loader_$(TARGET_ARCH).a :
+                       arch_relocate.cpp
+                       :
+                       
<src!system!libroot!os!arch!$(TARGET_ARCH)!$(architecture)>thread.o
+                       
<src!system!libroot!posix!string!arch!$(TARGET_ARCH)!$(architecture)>arch_string.o
+                       ;
+       }
+}


Other related posts:

  • » [haiku-commits] haiku: hrev51809 - in src/system/runtime_loader: . arch/m68k arch/ppc arch/arm arch/x86 - jerome . duval