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 +;