From 379ad6d0372d6b3242b4a56925f5b8512d63500f Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Thu, 9 Oct 2008 23:47:01 +0000 Subject: [PATCH] * Moved the arch specific stuff in src/system/kernel/lib into arch/... subdirectories. Also moved the x86 kernel arch_string.S there. * Moved memcpy.c from src/system/libroot/posix/string into the arch/generic subdirectory. * Dealt with the consequences of moving things around. Affected are also the boot loader and runtime loader builds. Adjust the m68k and ppc parts, too, but only the x86 build is tested. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27947 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/boot/Jamfile | 2 -- src/system/boot/arch/m68k/Jamfile | 9 ++++- src/system/boot/arch/ppc/Jamfile | 14 +++++--- src/system/boot/arch/x86/Jamfile | 15 ++++++-- src/system/kernel/arch/x86/Jamfile | 3 +- src/system/kernel/lib/Jamfile | 31 +++------------- .../generic}/kernel_longjmp_return.c | 0 .../generic}/kernel_setjmp_save_sigs.c | 0 src/system/kernel/lib/arch/m68k/Jamfile | 32 +++++++++++++++++ src/system/kernel/lib/arch/ppc/Jamfile | 31 ++++++++++++++++ src/system/kernel/lib/arch/x86/Jamfile | 35 +++++++++++++++++++ .../kernel/{ => lib}/arch/x86/arch_string.S | 0 src/system/libroot/posix/string/Jamfile | 10 +----- .../posix/string/{ => arch/generic}/memcpy.c | 0 .../libroot/posix/string/arch/m68k/Jamfile | 7 ++++ .../libroot/posix/string/arch/ppc/Jamfile | 9 +++++ .../posix/string/arch/ppc/arch_string.S | 0 .../libroot/posix/string/arch/x86/Jamfile | 8 +++++ src/system/runtime_loader/Jamfile | 12 +++---- src/system/runtime_loader/arch/m68k/Jamfile | 15 ++++++++ src/system/runtime_loader/arch/ppc/Jamfile | 15 ++++++++ src/system/runtime_loader/arch/x86/Jamfile | 16 +++++++++ 22 files changed, 208 insertions(+), 56 deletions(-) rename src/system/kernel/lib/{ => arch/generic}/kernel_longjmp_return.c (100%) rename src/system/kernel/lib/{ => arch/generic}/kernel_setjmp_save_sigs.c (100%) create mode 100644 src/system/kernel/lib/arch/m68k/Jamfile create mode 100644 src/system/kernel/lib/arch/ppc/Jamfile create mode 100644 src/system/kernel/lib/arch/x86/Jamfile rename src/system/kernel/{ => lib}/arch/x86/arch_string.S (100%) rename src/system/libroot/posix/string/{ => arch/generic}/memcpy.c (100%) create mode 100644 src/system/libroot/posix/string/arch/m68k/Jamfile create mode 100644 src/system/libroot/posix/string/arch/ppc/Jamfile delete mode 100644 src/system/libroot/posix/string/arch/ppc/arch_string.S create mode 100644 src/system/libroot/posix/string/arch/x86/Jamfile create mode 100644 src/system/runtime_loader/arch/m68k/Jamfile create mode 100644 src/system/runtime_loader/arch/ppc/Jamfile create mode 100644 src/system/runtime_loader/arch/x86/Jamfile diff --git a/src/system/boot/Jamfile b/src/system/boot/Jamfile index 21a720216c..3eac06be88 100644 --- a/src/system/boot/Jamfile +++ b/src/system/boot/Jamfile @@ -2,13 +2,11 @@ SubDir HAIKU_TOP src system boot ; local librootFunctions = abs.o - byteorder.o ctype.o qsort.o kernel_vsprintf.o memset.o memcmp.o - memcpy.o memmove.o strdup.o strlen.o diff --git a/src/system/boot/arch/m68k/Jamfile b/src/system/boot/arch/m68k/Jamfile index 7724b75334..d2d4cc7cdb 100644 --- a/src/system/boot/arch/m68k/Jamfile +++ b/src/system/boot/arch/m68k/Jamfile @@ -2,15 +2,22 @@ SubDir HAIKU_TOP src system boot arch m68k ; DEFINES += _BOOT_MODE ; +# TODO: Is there any reason to recompile arch_string.S here? local librootArchObjects = # arch_string.o arch_string.S ; -KernelMergeObject boot_arch_m68k.o : +local kernelLibArchObjects = + byteorder.o +; + +KernelMergeObject boot_arch_$(TARGET_ARCH).o : arch_elf.cpp $(librootArchObjects) : -fno-pic + : + $(kernelLibArchObjects) ; SEARCH on [ FGristFiles arch_elf.cpp ] diff --git a/src/system/boot/arch/ppc/Jamfile b/src/system/boot/arch/ppc/Jamfile index ab6410c3ac..394995e00b 100644 --- a/src/system/boot/arch/ppc/Jamfile +++ b/src/system/boot/arch/ppc/Jamfile @@ -2,13 +2,17 @@ SubDir HAIKU_TOP src system boot arch ppc ; DEFINES += _BOOT_MODE ; -#local librootArchObjects = -# arch_string.o -#; +local kernelLibArchObjects = + byteorder.o + memcpy.o +; -KernelMergeObject boot_arch_ppc.o : +KernelMergeObject boot_arch_$(TARGET_ARCH).o : arch_elf.cpp -# $(librootArchObjects) + : # additional flags + : + $(kernelArchObjects) + $(kernelLibArchObjects) ; SEARCH on [ FGristFiles arch_elf.cpp ] diff --git a/src/system/boot/arch/x86/Jamfile b/src/system/boot/arch/x86/Jamfile index 072e34c1fe..8d02a54913 100644 --- a/src/system/boot/arch/x86/Jamfile +++ b/src/system/boot/arch/x86/Jamfile @@ -4,19 +4,30 @@ DEFINES += _BOOT_MODE ; local kernelArchSources = arch_elf.c - arch_string.S ; local kernelArchObjects = cpuid.o ; -KernelMergeObject boot_arch_x86.o : +local kernelLibArchSources = + arch_string.S +; + +local kernelLibArchObjects = + byteorder.o +; + +KernelMergeObject boot_arch_$(TARGET_ARCH).o : $(kernelArchSources) + $(kernelLibArchSources) : # additional flags : $(kernelArchObjects) + $(kernelLibArchObjects) ; SEARCH on [ FGristFiles $(kernelArchSources) ] = [ FDirName $(HAIKU_TOP) src system kernel arch $(TARGET_ARCH) ] ; +SEARCH on [ FGristFiles $(kernelLibArchSources) ] + = [ FDirName $(HAIKU_TOP) src system kernel lib arch $(TARGET_ARCH) ] ; diff --git a/src/system/kernel/arch/x86/Jamfile b/src/system/kernel/arch/x86/Jamfile index 8984977d75..ff40f326cf 100644 --- a/src/system/kernel/arch/x86/Jamfile +++ b/src/system/kernel/arch/x86/Jamfile @@ -23,7 +23,6 @@ KernelMergeObject kernel_arch_x86.o : # arch_selector.c arch_real_time_clock.c arch_smp.c - arch_string.S arch_thread.cpp arch_timer.c arch_vm.cpp @@ -37,7 +36,7 @@ KernelMergeObject kernel_arch_x86.o : cpuid.S syscall.S vm86.cpp - + x86_pit.c x86_apic.c x86_hpet.c diff --git a/src/system/kernel/lib/Jamfile b/src/system/kernel/lib/Jamfile index d63b0f4ac3..eaa70e1b6a 100644 --- a/src/system/kernel/lib/Jamfile +++ b/src/system/kernel/lib/Jamfile @@ -13,7 +13,7 @@ KernelMergeObject kernel_os_main.o : SEARCH on [ FGristFiles driver_settings.c find_directory.c - fs_info.c + fs_info.c wait_for_objects.cpp ] = [ FDirName $(HAIKU_TOP) src system libroot os ] ; @@ -85,7 +85,6 @@ KernelMergeObject kernel_lib_posix.o : # string memchr.c memcmp.c - memcpy.c memmove.c memset.c strcasecmp.c @@ -114,31 +113,7 @@ KernelMergeObject kernel_lib_posix.o : : $(TARGET_KERNEL_PIC_CCFLAGS) ; -# TODO: Move the following arch specific part into arch/$(TARGET_ARCH) subdirs! - -SEARCH_SOURCE += [ FDirName $(librootSources) os arch $(TARGET_ARCH) ] ; - -KernelMergeObject kernel_os_arch_$(TARGET_ARCH).o : - atomic.S - byteorder.S - system_time_asm.S - system_time.c - - : $(TARGET_KERNEL_PIC_CCFLAGS) -; - -SEARCH_SOURCE += [ FDirName $(posixSources) arch $(TARGET_ARCH) ] ; -SEARCH_SOURCE += [ FDirName $(posixSources) string arch $(TARGET_ARCH) ] ; - -KernelMergeObject kernel_lib_posix_arch_$(TARGET_ARCH).o : - siglongjmp.S - sigsetjmp.S - kernel_longjmp_return.c - kernel_setjmp_save_sigs.c - arch_string.S # TODO: Not needed for X86! - - : $(TARGET_KERNEL_PIC_CCFLAGS) -; +# misc UsePrivateHeaders shared ; @@ -149,3 +124,5 @@ KernelMergeObject kernel_misc.o : : $(TARGET_KERNEL_PIC_CCFLAGS) ; + +HaikuSubInclude arch $(TARGET_ARCH) ; diff --git a/src/system/kernel/lib/kernel_longjmp_return.c b/src/system/kernel/lib/arch/generic/kernel_longjmp_return.c similarity index 100% rename from src/system/kernel/lib/kernel_longjmp_return.c rename to src/system/kernel/lib/arch/generic/kernel_longjmp_return.c diff --git a/src/system/kernel/lib/kernel_setjmp_save_sigs.c b/src/system/kernel/lib/arch/generic/kernel_setjmp_save_sigs.c similarity index 100% rename from src/system/kernel/lib/kernel_setjmp_save_sigs.c rename to src/system/kernel/lib/arch/generic/kernel_setjmp_save_sigs.c diff --git a/src/system/kernel/lib/arch/m68k/Jamfile b/src/system/kernel/lib/arch/m68k/Jamfile new file mode 100644 index 0000000000..638b487410 --- /dev/null +++ b/src/system/kernel/lib/arch/m68k/Jamfile @@ -0,0 +1,32 @@ +SubDir HAIKU_TOP src system kernel lib arch m86k ; + +SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; + +local librootSources = [ FDirName $(HAIKU_TOP) src system libroot ] ; +local posixSources = [ FDirName $(librootSources) posix ] ; + +SEARCH_SOURCE += [ FDirName $(librootSources) os arch $(TARGET_ARCH) ] ; + +KernelMergeObject kernel_os_arch_$(TARGET_ARCH).o : + atomic.S + byteorder.S + system_time_asm.S + system_time.c + + : $(TARGET_KERNEL_PIC_CCFLAGS) +; + +SEARCH_SOURCE += [ FDirName $(posixSources) arch $(TARGET_ARCH) ] ; +SEARCH_SOURCE += [ FDirName $(posixSources) string arch generic ] ; +SEARCH_SOURCE += [ FDirName $(posixSources) string arch $(TARGET_ARCH) ] ; + +KernelMergeObject kernel_lib_posix_arch_$(TARGET_ARCH).o : + siglongjmp.S + sigsetjmp.S + kernel_longjmp_return.c + kernel_setjmp_save_sigs.c + + arch_string.S + + : $(TARGET_KERNEL_PIC_CCFLAGS) +; diff --git a/src/system/kernel/lib/arch/ppc/Jamfile b/src/system/kernel/lib/arch/ppc/Jamfile new file mode 100644 index 0000000000..047099d474 --- /dev/null +++ b/src/system/kernel/lib/arch/ppc/Jamfile @@ -0,0 +1,31 @@ +SubDir HAIKU_TOP src system kernel lib arch ppc ; + +SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; + +local librootSources = [ FDirName $(HAIKU_TOP) src system libroot ] ; +local posixSources = [ FDirName $(librootSources) posix ] ; + +SEARCH_SOURCE += [ FDirName $(librootSources) os arch $(TARGET_ARCH) ] ; + +KernelMergeObject kernel_os_arch_$(TARGET_ARCH).o : + atomic.S + byteorder.S + system_time_asm.S + system_time.c + + : $(TARGET_KERNEL_PIC_CCFLAGS) +; + +SEARCH_SOURCE += [ FDirName $(posixSources) arch $(TARGET_ARCH) ] ; +SEARCH_SOURCE += [ FDirName $(posixSources) string arch generic ] ; + +KernelMergeObject kernel_lib_posix_arch_$(TARGET_ARCH).o : + siglongjmp.S + sigsetjmp.S + kernel_longjmp_return.c + kernel_setjmp_save_sigs.c + + memcpy.c + + : $(TARGET_KERNEL_PIC_CCFLAGS) +; diff --git a/src/system/kernel/lib/arch/x86/Jamfile b/src/system/kernel/lib/arch/x86/Jamfile new file mode 100644 index 0000000000..3d0c3ff173 --- /dev/null +++ b/src/system/kernel/lib/arch/x86/Jamfile @@ -0,0 +1,35 @@ +SubDir HAIKU_TOP src system kernel lib arch x86 ; + +# find the generated asm_offsets.h +SubDirHdrs [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR) system kernel arch + $(TARGET_ARCH) ] ; + +SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; + +local librootSources = [ FDirName $(HAIKU_TOP) src system libroot ] ; +local posixSources = [ FDirName $(librootSources) posix ] ; + +SEARCH_SOURCE += [ FDirName $(librootSources) os arch $(TARGET_ARCH) ] ; + +KernelMergeObject kernel_os_arch_$(TARGET_ARCH).o : + atomic.S + byteorder.S + system_time_asm.S + system_time.c + + : $(TARGET_KERNEL_PIC_CCFLAGS) +; + +SEARCH_SOURCE += [ FDirName $(posixSources) arch $(TARGET_ARCH) ] ; +SEARCH_SOURCE += [ FDirName $(posixSources) string arch generic ] ; + +KernelMergeObject kernel_lib_posix_arch_$(TARGET_ARCH).o : + siglongjmp.S + sigsetjmp.S + kernel_longjmp_return.c + kernel_setjmp_save_sigs.c + + arch_string.S + + : $(TARGET_KERNEL_PIC_CCFLAGS) +; diff --git a/src/system/kernel/arch/x86/arch_string.S b/src/system/kernel/lib/arch/x86/arch_string.S similarity index 100% rename from src/system/kernel/arch/x86/arch_string.S rename to src/system/kernel/lib/arch/x86/arch_string.S diff --git a/src/system/libroot/posix/string/Jamfile b/src/system/libroot/posix/string/Jamfile index 00404fbc6d..23ceedaa2f 100644 --- a/src/system/libroot/posix/string/Jamfile +++ b/src/system/libroot/posix/string/Jamfile @@ -8,7 +8,6 @@ MergeObject posix_string.o : memccpy.c memchr.c memcmp.c - memcpy.c memmove.c memset.c stpcpy.c @@ -39,11 +38,4 @@ MergeObject posix_string.o : strxfrm.c ; -SubDir HAIKU_TOP src system libroot posix string arch $(TARGET_ARCH) ; - -UsePrivateSystemHeaders ; - -MergeObject posix_string_arch_$(TARGET_ARCH).o : - arch_string.S -; - +HaikuSubInclude arch $(TARGET_ARCH) ; diff --git a/src/system/libroot/posix/string/memcpy.c b/src/system/libroot/posix/string/arch/generic/memcpy.c similarity index 100% rename from src/system/libroot/posix/string/memcpy.c rename to src/system/libroot/posix/string/arch/generic/memcpy.c diff --git a/src/system/libroot/posix/string/arch/m68k/Jamfile b/src/system/libroot/posix/string/arch/m68k/Jamfile new file mode 100644 index 0000000000..4badb72e70 --- /dev/null +++ b/src/system/libroot/posix/string/arch/m68k/Jamfile @@ -0,0 +1,7 @@ +SubDir HAIKU_TOP src system libroot posix string arch m68k ; + +UsePrivateSystemHeaders ; + +MergeObject posix_string_arch_$(TARGET_ARCH).o : + arch_string.S +; diff --git a/src/system/libroot/posix/string/arch/ppc/Jamfile b/src/system/libroot/posix/string/arch/ppc/Jamfile new file mode 100644 index 0000000000..ffa9d82101 --- /dev/null +++ b/src/system/libroot/posix/string/arch/ppc/Jamfile @@ -0,0 +1,9 @@ +SubDir HAIKU_TOP src system libroot posix string arch ppc ; + +UsePrivateSystemHeaders ; + +SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; + +MergeObject posix_string_arch_$(TARGET_ARCH).o : + memcpy.c +; diff --git a/src/system/libroot/posix/string/arch/ppc/arch_string.S b/src/system/libroot/posix/string/arch/ppc/arch_string.S deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/system/libroot/posix/string/arch/x86/Jamfile b/src/system/libroot/posix/string/arch/x86/Jamfile new file mode 100644 index 0000000000..bbaee0d9d0 --- /dev/null +++ b/src/system/libroot/posix/string/arch/x86/Jamfile @@ -0,0 +1,8 @@ +SubDir HAIKU_TOP src system libroot posix string arch x86 ; + +UsePrivateSystemHeaders ; + +MergeObject posix_string_arch_$(TARGET_ARCH).o : + arch_string.S +; + diff --git a/src/system/runtime_loader/Jamfile b/src/system/runtime_loader/Jamfile index 5237153eda..fc0b655219 100644 --- a/src/system/runtime_loader/Jamfile +++ b/src/system/runtime_loader/Jamfile @@ -25,8 +25,6 @@ StaticLibrary libruntime_loader.a : : syscalls.o sem.o - atomic.o - thread.o errno.o @@ -37,7 +35,6 @@ StaticLibrary libruntime_loader.a : memchr.o memcmp.o - memcpy.o memmove.o memset.o strcasecmp.o @@ -57,7 +54,6 @@ StaticLibrary libruntime_loader.a : strrchr.o strspn.o strstr.o - arch_string.o [ FGristFiles kernel_vsprintf.o ] ; @@ -69,20 +65,20 @@ SEARCH on [ FGristFiles kernel_vsprintf.c ] SEARCH on [ FGristFiles KMessage.cpp ] = [ FDirName $(HAIKU_TOP) src system kernel messaging ] ; -SEARCH_SOURCE += [ FDirName $(SUBDIR) arch $(TARGET_ARCH) ] ; - Objects runtime_loader.c elf.cpp export.c heap.cpp utility.cpp - arch_relocate.c ; Ld runtime_loader : - [ FGristFiles runtime_loader.o elf.o export.o heap.o utility.o arch_relocate.o ] + [ FGristFiles runtime_loader.o elf.o export.o heap.o utility.o ] libruntime_loader.a + libruntime_loader_$(TARGET_ARCH).a $(TARGET_GCC_LIBGCC) : $(HAIKU_TOP)/src/system/ldscripts/$(TARGET_ARCH)/runtime_loader.ld ; + +HaikuSubInclude arch $(TARGET_ARCH) ; diff --git a/src/system/runtime_loader/arch/m68k/Jamfile b/src/system/runtime_loader/arch/m68k/Jamfile new file mode 100644 index 0000000000..e7cafc8107 --- /dev/null +++ b/src/system/runtime_loader/arch/m68k/Jamfile @@ -0,0 +1,15 @@ +SubDir HAIKU_TOP src system runtime_loader arch m68k ; + +UsePrivateHeaders runtime_loader ; +UsePrivateSystemHeaders ; + +SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) $(DOTDOT) ] ; + +StaticLibrary libruntime_loader_$(TARGET_ARCH).a : + arch_relocate.c + : + atomic.o + thread.o + + arch_string.o +; diff --git a/src/system/runtime_loader/arch/ppc/Jamfile b/src/system/runtime_loader/arch/ppc/Jamfile new file mode 100644 index 0000000000..312ec91be6 --- /dev/null +++ b/src/system/runtime_loader/arch/ppc/Jamfile @@ -0,0 +1,15 @@ +SubDir HAIKU_TOP src system runtime_loader arch ppc ; + +UsePrivateHeaders runtime_loader ; +UsePrivateSystemHeaders ; + +SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) $(DOTDOT) ] ; + +StaticLibrary libruntime_loader_$(TARGET_ARCH).a : + arch_relocate.c + : + atomic.o + thread.o + + memcpy.o +; diff --git a/src/system/runtime_loader/arch/x86/Jamfile b/src/system/runtime_loader/arch/x86/Jamfile new file mode 100644 index 0000000000..3a1b880215 --- /dev/null +++ b/src/system/runtime_loader/arch/x86/Jamfile @@ -0,0 +1,16 @@ +SubDir HAIKU_TOP src system runtime_loader arch x86 ; + +UsePrivateHeaders runtime_loader ; +UsePrivateSystemHeaders ; + +SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) $(DOTDOT) ] ; + +StaticLibrary libruntime_loader_$(TARGET_ARCH).a : + arch_relocate.c + : + atomic.o + thread.o + +# memcpy.o + arch_string.o +;