hrev53572 adds 3 changesets to branch 'master'
old head: 9ad59bd84166b6df63ed2910424fca890022df1b
new head: 8fd4412d889b3a58525b0ade6b572ee04f1c2366
overview:
https://git.haiku-os.org/haiku/log/?qt=range&q=8fd4412d889b+%5E9ad59bd84166
----------------------------------------------------------------------------
494acd218560: m68k: update build to support MultiBootSubDirSetup
Change-Id: Idbbbb089286ad7d76f61993670a20d240bfe773c
9efa7fd520c3: kernel/m68k: Fix a few build regressions around types
Change-Id: I17e5452bc6abd6311c9631f88d199cb9c4f501c4
8fd4412d889b: m68k: update bootstrap packages versions
Change-Id: I484ee07d8a916581f5b3c94d137e5e2b26cc2fc9
[ François Revol <revol@xxxxxxx> ]
----------------------------------------------------------------------------
7 files changed, 247 insertions(+), 231 deletions(-)
build/jam/ArchitectureRules | 2 +-
build/jam/repositories/HaikuPortsCross/m68k | 11 +-
src/system/boot/Jamfile | 79 +++++++++++
src/system/boot/arch/m68k/Jamfile | 96 +++++++------
src/system/boot/platform/amiga_m68k/Jamfile | 118 +++++++---------
src/system/boot/platform/atari_m68k/Jamfile | 170 ++++++++----------------
src/system/kernel/arch/m68k/arch_elf.cpp | 2 +-
############################################################################
Commit: 494acd21856003503ff1fab8ffa5febb5146f126
URL: https://git.haiku-os.org/haiku/commit/?id=494acd218560
Author: François Revol <revol@xxxxxxx>
Date: Sat Nov 10 19:30:10 2018 UTC
m68k: update build to support MultiBootSubDirSetup
Change-Id: Idbbbb089286ad7d76f61993670a20d240bfe773c
----------------------------------------------------------------------------
diff --git a/build/jam/ArchitectureRules b/build/jam/ArchitectureRules
index 1ea26991d7..8ae0113531 100644
--- a/build/jam/ArchitectureRules
+++ b/build/jam/ArchitectureRules
@@ -323,7 +323,7 @@ rule KernelArchitectureSetup architecture
case m68k :
HAIKU_KERNEL_PLATFORM ?= atari_m68k ;
- HAIKU_BOOT_TARGETS += atari_m68k ;
+ HAIKU_BOOT_TARGETS += amiga_m68k atari_m68k ;
switch $(HAIKU_KERNEL_PLATFORM) {
case atari_m68k :
{
diff --git a/build/jam/repositories/HaikuPortsCross/m68k
b/build/jam/repositories/HaikuPortsCross/m68k
index 6aa82af2d0..af22126a4c 100644
--- a/build/jam/repositories/HaikuPortsCross/m68k
+++ b/build/jam/repositories/HaikuPortsCross/m68k
@@ -20,6 +20,8 @@ BootstrapPackageRepository HaikuPortsCross
:
# source packages
+ binutils_bootstrap
+ gcc_bootstrap
libsolv_bootstrap
zlib_bootstrap
:
diff --git a/src/system/boot/Jamfile b/src/system/boot/Jamfile
index c55e2b3293..826c677197 100644
--- a/src/system/boot/Jamfile
+++ b/src/system/boot/Jamfile
@@ -150,6 +150,71 @@ actions BuildUImageScript1
rm -f $(<).txt
}
+# the bootsector on haiku_loader.amiga_m68k must be checksummed
+rule ChecksumAmigaLoader
+{
+ local haikuLoader = $(1) ;
+ local checksummer = <build>fixup_amiga_boot_checksum ;
+
+ Depends $(haikuLoader) : $(checksummer) ;
+
+ TARGET_CHECKSUM on $(haikuLoader) = $(checksummer) ;
+}
+
+actions ChecksumAmigaLoader bind TARGET_CHECKSUM
+{
+ $(TARGET_CHECKSUM) $(1)
+}
+
+# the bootsector on haiku_loader.atari_m68k must be checksummed
+rule ChecksumAtariLoader
+{
+ local haikuLoader = $(1) ;
+ local checksummer = <build>fixup_tos_boot_checksum ;
+
+ Depends $(haikuLoader) : $(checksummer) ;
+
+ TARGET_CHECKSUM on $(haikuLoader) = $(checksummer) ;
+}
+
+actions ChecksumAtariLoader bind TARGET_CHECKSUM {
+ $(TARGET_CHECKSUM) $(1)
+}
+
+
+
+# atari_m68k: AUTO folder PRG target
+# based on KernelLd
+rule AtariBootPrgLd
+{
+ # AtariBootPrgLd <name> : <objs> : <linkerscript> : <args> ;
+
+ LINK on $(1) = $(TARGET_LD_$(TARGET_PACKAGING_ARCH)) ;
+
+ LINKFLAGS on $(1) = $(4) ;
+ if $(3) { LINKFLAGS on $(1) += --script=$(3) ; }
+
+ # Remove any preset LINKLIBS
+ LINKLIBS on $(1) = ;
+
+ # TODO: Do we really want to invoke SetupKernel here? The objects should
+ # have been compiled with KernelObjects anyway, so we're doing that
twice.
+ SetupKernel $(2) ;
+
+ # Show that we depend on the libraries we need
+ LocalClean clean : $(1) ;
+ LocalDepends all : $(1) ;
+ Depends $(1) : $(2) ;
+
+ MakeLocateDebug $(1) ;
+
+}
+
+actions AtariBootPrgLd
+{
+ $(LINK) $(LINKFLAGS) -o "$(1)" "$(2)" $(LINKLIBS) ;
+}
+
local extraSources = ;
if $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) = 2 {
@@ -265,6 +330,20 @@ for platform in [ MultiBootSubDirSetup ] {
-n 'Haiku $(TARGET_KERNEL_ARCH)
floppyboot' ;
BuildUImageScript boot.scr :
$(HAIKU_MMC_UBOOT_SCRIPT) ;
+ case amiga_m68k :
+ BuildBiosLoader
haiku_loader.$(TARGET_BOOT_PLATFORM) : boot_loader_$(TARGET_BOOT_PLATFORM) ;
+ ChecksumAmigaLoader
haiku_loader.$(TARGET_BOOT_PLATFORM) ;
+
+ case atari_m68k :
+ BuildBiosLoader
haiku_loader.$(TARGET_BOOT_PLATFORM) : boot_loader_$(TARGET_BOOT_PLATFORM) ;
+ ChecksumAtariLoader
haiku_loader.$(TARGET_BOOT_PLATFORM) ;
+
+ AtariBootPrgLd haiku.prg :
+ boot_loader_$(TARGET_BOOT_PLATFORM)
+ :
$(HAIKU_TOP)/src/system/ldscripts/$(TARGET_ARCH)/boot_prg_$(TARGET_BOOT_PLATFORM).ld
+ : -Bstatic
+ ;
+
case * :
Exit "Currently unsupported haiku_loader:"
$(TARGET_BOOT_PLATFORM) ;
}
diff --git a/src/system/boot/arch/m68k/Jamfile
b/src/system/boot/arch/m68k/Jamfile
index e6e5b947a6..3460f071f7 100644
--- a/src/system/boot/arch/m68k/Jamfile
+++ b/src/system/boot/arch/m68k/Jamfile
@@ -1,43 +1,57 @@
SubDir HAIKU_TOP src system boot arch m68k ;
-DEFINES += _BOOT_MODE ;
-
-# TODO: Is there any reason to recompile arch_string.S here?
-local librootArchObjects =
-# <src!system!libroot!posix!string!arch!$(TARGET_ARCH)>arch_string.o
- arch_string.S
-;
-
-local kernelLibArchObjects =
- <src!system!kernel!lib!arch!$(TARGET_ARCH)>byteorder.o
- <src!system!kernel!lib!arch!$(TARGET_ARCH)>memset.o
-;
-
-BootMergeObject boot_arch_$(TARGET_KERNEL_ARCH).o :
- arch_elf.cpp
- $(librootArchObjects)
- :
- :
- $(kernelLibArchObjects)
-;
-
-BootMergeObject boot_arch_m68k_030.o :
- mmu_030.cpp
- : -Wno-unused -mcpu=68030
-;
-
-BootMergeObject boot_arch_m68k_040.o :
- mmu_040.cpp
- : -Wno-unused -mcpu=68040 -Wa,-m68040
-;
-
-BootMergeObject boot_arch_m68k_060.o :
- mmu_060.cpp
- : -Wno-unused -mcpu=68060
-;
-
-SEARCH on [ FGristFiles arch_elf.cpp ]
- = [ FDirName $(HAIKU_TOP) src system kernel arch $(TARGET_KERNEL_ARCH) ] ;
-
-SEARCH on [ FGristFiles $(librootArchObjects) ]
- = [ FDirName $(HAIKU_TOP) src system libroot posix string arch
$(TARGET_ARCH) ] ;
+local platform ;
+for platform in [ MultiBootSubDirSetup amiga_m68k atari_m68k ] {
+ on $(platform) {
+ DEFINES += _BOOT_MODE ;
+
+ local kernelArchSources =
+ arch_elf.cpp
+ ;
+
+ local librootStringArchSources =
+ arch_string.S
+ ;
+
+ local librootOsArchSources =
+ byteorder.S
+ ;
+
+ local librootStringGenericSources =
+ #memcpy.c
+ memset.c
+ ;
+
+ BootMergeObject [ FGristFiles boot_arch_$(TARGET_KERNEL_ARCH).o
] :
+ $(kernelArchSources)
+ $(librootStringArchSources)
+ $(librootOsArchSources)
+ $(librootStringGenericSources)
+ :
+ ;
+
+ BootMergeObject boot_arch_m68k_030.o :
+ mmu_030.cpp
+ : -Wno-unused -mcpu=68030
+ ;
+
+ BootMergeObject boot_arch_m68k_040.o :
+ mmu_040.cpp
+ : -Wno-unused -mcpu=68040 -Wa,-m68040
+ ;
+
+ BootMergeObject boot_arch_m68k_060.o :
+ mmu_060.cpp
+ : -Wno-unused -mcpu=68060
+ ;
+
+ SEARCH on [ FGristFiles $(kernelArchSources) ]
+ = [ FDirName $(HAIKU_TOP) src system kernel arch m68k ]
;
+ SEARCH on [ FGristFiles $(librootStringArchSources) ]
+ = [ FDirName $(HAIKU_TOP) src system libroot posix
string arch m68k ] ;
+ SEARCH on [ FGristFiles $(librootOsArchSources) ]
+ = [ FDirName $(HAIKU_TOP) src system libroot os arch
m68k ] ;
+ SEARCH on [ FGristFiles $(librootStringGenericSources) ]
+ = [ FDirName $(HAIKU_TOP) src system libroot posix
string arch generic ] ;
+ }
+}
diff --git a/src/system/boot/platform/amiga_m68k/Jamfile
b/src/system/boot/platform/amiga_m68k/Jamfile
index e923167fe0..def1729c43 100644
--- a/src/system/boot/platform/amiga_m68k/Jamfile
+++ b/src/system/boot/platform/amiga_m68k/Jamfile
@@ -1,8 +1,8 @@
SubDir HAIKU_TOP src system boot platform amiga_m68k ;
-SubDirHdrs $(HAIKU_TOP) headers private kernel boot platform
$(TARGET_BOOT_PLATFORM) ;
+SubDirHdrs $(HAIKU_TOP) headers private kernel boot platform amiga_m68k ;
-UsePrivateHeaders [ FDirName kernel boot platform $(TARGET_BOOT_PLATFORM) ] ;
+UsePrivateHeaders [ FDirName kernel boot platform amiga_m68k ] ;
UsePrivateHeaders [ FDirName kernel platform $(TARGET_BOOT_PLATFORM) ] ;
UsePrivateHeaders [ FDirName kernel disk_device_manager ] ;
UsePrivateHeaders [ FDirName graphics common ] ;
@@ -17,74 +17,56 @@ UsePrivateHeaders [ FDirName storage ] ;
SubDirC++Flags $(defines) -fno-rtti ;
}
-#SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src add-ons accelerants common ] ;
-
-BootMergeObject boot_platform_amiga_m68k_shell.o :
- shell.S
- : -Wa,--pcrel
-;
-
-
-BootMergeObject boot_platform_amiga_m68k_other.o :
-# shell.S
- start.cpp
- rom_calls.cpp
- debug.cpp
- #bios.S
- console.cpp
- #serial.cpp
- Handle.cpp
- devices.cpp
- keyboard.cpp
- menu.cpp
- mmu.cpp
- cpu.cpp
- #smp.cpp
- #smp_trampoline.S
-# support.S
- video.cpp
- #apm.cpp
-
- # VESA/DDC EDID
- #decode_edid.c
- #dump_edid.c
-
- : #-Wa,--pcrel
- : boot_platform_generic.a
-;
-
-
-BootMergeObject boot_platform_amiga_m68k.o :
- : :
- boot_platform_amiga_m68k_shell.o
- boot_platform_amiga_m68k_other.o
- boot_arch_m68k_030.o
- boot_arch_m68k_040.o
-;
-
-
-# the bootsector in haiku_loader must be checksummed
-rule ChecksumAmigaLoader
-{
- local haikuLoader = $(1) ;
- local checksummer = <build>fixup_amiga_boot_checksum ;
-
- Depends $(haikuLoader) : $(checksummer) ;
-
- TARGET_CHECKSUM on $(haikuLoader) = $(checksummer) ;
-
-}
-
-
-actions ChecksumAmigaLoader bind TARGET_CHECKSUM
-{
- $(TARGET_CHECKSUM) $(1)
+local platform ;
+for platform in [ MultiBootSubDirSetup amiga_m68k ] {
+ on $(platform) {
+ #SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src add-ons
accelerants common ] ;
+
+ BootMergeObject boot_platform_amiga_m68k_shell.o :
+ shell.S
+ : -Wa,--pcrel
+ ;
+
+
+ BootMergeObject boot_platform_amiga_m68k_other.o :
+ # shell.S
+ start.cpp
+ rom_calls.cpp
+ debug.cpp
+ #bios.S
+ console.cpp
+ #serial.cpp
+ Handle.cpp
+ devices.cpp
+ keyboard.cpp
+ menu.cpp
+ mmu.cpp
+ cpu.cpp
+ #smp.cpp
+ #smp_trampoline.S
+ # support.S
+ video.cpp
+ #apm.cpp
+
+ # VESA/DDC EDID
+ #decode_edid.c
+ #dump_edid.c
+
+ : #-Wa,--pcrel
+ : boot_platform_generic_amiga_m68k.a
+ ;
+
+
+ BootMergeObject boot_platform_amiga_m68k.o :
+ : :
+ boot_platform_amiga_m68k_shell.o
+ boot_platform_amiga_m68k_other.o
+ boot_arch_m68k_030.o
+ boot_arch_m68k_040.o
+ ;
+ }
}
-
-ChecksumAmigaLoader haiku_loader ;
-
-
SEARCH on [ FGristFiles $(genericPlatformSources) ]
= [ FDirName $(HAIKU_TOP) src system boot platform generic ] ;
diff --git a/src/system/boot/platform/atari_m68k/Jamfile
b/src/system/boot/platform/atari_m68k/Jamfile
index 0332881c8c..a8b5ba5fe7 100644
--- a/src/system/boot/platform/atari_m68k/Jamfile
+++ b/src/system/boot/platform/atari_m68k/Jamfile
@@ -1,6 +1,6 @@
SubDir HAIKU_TOP src system boot platform atari_m68k ;
-SubDirHdrs $(HAIKU_TOP) headers private kernel boot platform
$(TARGET_BOOT_PLATFORM) ;
+SubDirHdrs $(HAIKU_TOP) headers private kernel boot platform atari_m68k ;
UsePrivateHeaders [ FDirName kernel boot platform $(TARGET_BOOT_PLATFORM) ] ;
UsePrivateHeaders [ FDirName kernel platform $(TARGET_BOOT_PLATFORM) ] ;
@@ -17,123 +17,61 @@ UsePrivateHeaders [ FDirName storage ] ;
SubDirC++Flags $(defines) -fno-rtti ;
}
-#SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src add-ons accelerants common ] ;
-
-BootMergeObject boot_platform_atari_m68k_shell.o :
- shell.S
- : -Wa,--pcrel
-;
-
-
-# cpu-specific stuff
-# should be moved to boot/arch/m68k/...
-# TODO: add 020+68851 support
-
-
-BootMergeObject boot_platform_atari_m68k_other.o :
-# shell.S
- start.cpp
- toscalls.cpp
- debug.cpp
- #bios.S
- console.cpp
- #serial.cpp
- Handle.cpp
- devices.cpp
- keyboard.cpp
- menu.cpp
- mmu.cpp
- cpu.cpp
- #smp.cpp
- #smp_trampoline.S
-# support.S
- video.cpp
- #apm.cpp
-
- # VESA/DDC EDID
- #decode_edid.c
- #dump_edid.c
-
- : #-Wa,--pcrel
- : boot_platform_generic.a
-;
-
-
-BootMergeObject boot_platform_atari_m68k.o :
- : :
- boot_platform_atari_m68k_shell.o
- boot_platform_atari_m68k_other.o
- boot_arch_m68k_030.o
- boot_arch_m68k_040.o
-;
-
-
-# the bootsector in haiku_loader must be checksummed
-
-
-rule ChecksumAtariLoader
-{
- local haikuLoader = $(1) ;
- local checksummer = <build>fixup_tos_boot_checksum ;
-
- Depends $(haikuLoader) : $(checksummer) ;
-
- TARGET_CHECKSUM on $(haikuLoader) = $(checksummer) ;
-
-}
-
-
-actions ChecksumAtariLoader bind TARGET_CHECKSUM {
- $(TARGET_CHECKSUM) $(1)
-}
-
-
-ChecksumAtariLoader haiku_loader ;
-
-
-# AUTO folder PRG target
-
-
-# based on KernelLd
-rule AtariBootPrgLd
-{
- # AtariBootPrgLd <name> : <objs> : <linkerscript> : <args> ;
-
- LINK on $(1) = $(TARGET_LD_$(TARGET_PACKAGING_ARCH)) ;
-
- LINKFLAGS on $(1) = $(4) ;
- if $(3) { LINKFLAGS on $(1) += --script=$(3) ; }
-
- # Remove any preset LINKLIBS
- LINKLIBS on $(1) = ;
-
- # TODO: Do we really want to invoke SetupKernel here? The objects should
- # have been compiled with KernelObjects anyway, so we're doing that
twice.
- SetupKernel $(2) ;
-
- # Show that we depend on the libraries we need
- LocalClean clean : $(1) ;
- LocalDepends all : $(1) ;
- Depends $(1) : $(2) ;
-
- MakeLocateDebug $(1) ;
-
-}
-
-
-actions AtariBootPrgLd
-{
- $(LINK) $(LINKFLAGS) -o "$(1)" "$(2)" $(LINKLIBS) ;
+local platform ;
+for platform in [ MultiBootSubDirSetup atari_m68k ] {
+ on $(platform) {
+ #SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src add-ons
accelerants common ] ;
+
+ BootMergeObject boot_platform_atari_m68k_shell.o :
+ shell.S
+ : -Wa,--pcrel
+ ;
+
+
+ # cpu-specific stuff
+ # should be moved to boot/arch/m68k/...
+ # TODO: add 020+68851 support
+
+
+ BootMergeObject boot_platform_atari_m68k_other.o :
+ # shell.S
+ start.cpp
+ toscalls.cpp
+ debug.cpp
+ #bios.S
+ console.cpp
+ #serial.cpp
+ Handle.cpp
+ devices.cpp
+ keyboard.cpp
+ menu.cpp
+ mmu.cpp
+ cpu.cpp
+ #smp.cpp
+ #smp_trampoline.S
+ # support.S
+ video.cpp
+ #apm.cpp
+
+ # VESA/DDC EDID
+ #decode_edid.c
+ #dump_edid.c
+
+ : #-Wa,--pcrel
+ : boot_platform_generic.a
+ ;
+
+
+ BootMergeObject boot_platform_atari_m68k.o :
+ : :
+ boot_platform_atari_m68k_shell.o
+ boot_platform_atari_m68k_other.o
+ boot_arch_m68k_030.o
+ boot_arch_m68k_040.o
+ ;
+ }
}
-
-AtariBootPrgLd haiku.prg :
- boot_loader_$(TARGET_BOOT_PLATFORM)
- :
$(HAIKU_TOP)/src/system/ldscripts/$(TARGET_ARCH)/boot_prg_$(TARGET_BOOT_PLATFORM).ld
- : -Bstatic
-;
-
-
SEARCH on [ FGristFiles $(genericPlatformSources) ]
= [ FDirName $(HAIKU_TOP) src system boot platform generic ] ;
############################################################################
Commit: 9efa7fd520c33cf264363fd016d297d33eb0a9b1
URL: https://git.haiku-os.org/haiku/commit/?id=9efa7fd520c3
Author: François Revol <revol@xxxxxxx>
Date: Sat Nov 2 11:09:40 2019 UTC
kernel/m68k: Fix a few build regressions around types
Change-Id: I17e5452bc6abd6311c9631f88d199cb9c4f501c4
----------------------------------------------------------------------------
diff --git a/src/system/kernel/arch/m68k/arch_elf.cpp
b/src/system/kernel/arch/m68k/arch_elf.cpp
index 2a53554622..5545b8398b 100644
--- a/src/system/kernel/arch/m68k/arch_elf.cpp
+++ b/src/system/kernel/arch/m68k/arch_elf.cpp
@@ -148,7 +148,7 @@ arch_elf_relocate_rela(struct elf_image_info *image,
int i;
Elf32_Sym *sym;
int vlErr;
- addr_t S = 0; // symbol address
+ elf_addr S = 0; // symbol address
addr_t R = 0; // section relative symbol address
addr_t G = 0; // GOT address
############################################################################
Revision: hrev53572
Commit: 8fd4412d889b3a58525b0ade6b572ee04f1c2366
URL: https://git.haiku-os.org/haiku/commit/?id=8fd4412d889b
Author: François Revol <revol@xxxxxxx>
Date: Sun Nov 3 02:26:12 2019 UTC
m68k: update bootstrap packages versions
Change-Id: I484ee07d8a916581f5b3c94d137e5e2b26cc2fc9
----------------------------------------------------------------------------
diff --git a/build/jam/repositories/HaikuPortsCross/m68k
b/build/jam/repositories/HaikuPortsCross/m68k
index af22126a4c..6f57116464 100644
--- a/build/jam/repositories/HaikuPortsCross/m68k
+++ b/build/jam/repositories/HaikuPortsCross/m68k
@@ -5,12 +5,13 @@ BootstrapPackageRepository HaikuPortsCross
haikuporter-0-1
:
# repository architecture packages (stage 0)
- gcc_bootstrap-5.4.0_2016_06_04-1
- gcc_bootstrap_syslibs-5.4.0_2016_06_04-1
- gcc_bootstrap_syslibs_devel-5.4.0_2016_06_04-1
+ gcc_bootstrap-8.3.0_2019_05_24-1
+ gcc_bootstrap_syslibs-8.3.0_2019_05_24-1
+ gcc_bootstrap_syslibs_devel-8.3.0_2019_05_24-1
+
:
# repository architecture packages (stage 1)
- binutils_bootstrap-2.26.1_2016_02_29-1
+ binutils_bootstrap-2.28.1_2017_08_05-1
zlib_bootstrap-1.2.11-1
zlib_bootstrap_devel-1.2.11-1
: