diff --git a/src/system/boot/platform/amiga_m68k/Jamfile b/src/system/boot/platform/amiga_m68k/Jamfile index ef50560e99..70ec645992 100644 --- a/src/system/boot/platform/amiga_m68k/Jamfile +++ b/src/system/boot/platform/amiga_m68k/Jamfile @@ -19,6 +19,7 @@ UsePrivateHeaders [ FDirName storage ] ; #SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src add-ons accelerants common ] ; + KernelMergeObject boot_platform_amiga_m68k_shell.o : shell.S : -Wa,--pcrel @@ -55,6 +56,7 @@ KernelMergeObject boot_platform_amiga_m68k_other.o : : -fno-pic #-Wa,--pcrel ; + KernelMergeObject boot_platform_amiga_m68k.o : : : boot_platform_amiga_m68k_shell.o @@ -63,9 +65,10 @@ KernelMergeObject boot_platform_amiga_m68k.o : boot_arch_m68k_040.o ; -# the bootsector in haiku_loader must be checksummed -rule ChecksumAmigaLoader { +# the bootsector in haiku_loader must be checksummed +rule ChecksumAmigaLoader +{ local haikuLoader = $(1) ; local checksummer = fixup_amiga_boot_checksum ; @@ -75,7 +78,9 @@ rule ChecksumAmigaLoader { } -actions ChecksumAmigaLoader bind TARGET_CHECKSUM { + +actions ChecksumAmigaLoader bind TARGET_CHECKSUM +{ $(TARGET_CHECKSUM) $(1) } diff --git a/src/system/boot/platform/amiga_m68k/amicalls.cpp b/src/system/boot/platform/amiga_m68k/amicalls.cpp index 408cde29ef..79ee468dba 100644 --- a/src/system/boot/platform/amiga_m68k/amicalls.cpp +++ b/src/system/boot/platform/amiga_m68k/amicalls.cpp @@ -21,15 +21,22 @@ extern "C" status_t exec_error(int32 err) { switch (err) { - case IOERR_OPENFAIL: return B_DEV_BAD_DRIVE_NUM; - case IOERR_ABORTED: return EINTR; - case IOERR_NOCMD: return EINVAL; - case IOERR_BADLENGTH: return EINVAL; - case IOERR_BADADDRESS: return EFAULT; - case IOERR_UNITBUSY: return B_DEV_NOT_READY; - case IOERR_SELFTEST: return B_ERROR; - default: - return B_ERROR; + case IOERR_OPENFAIL: + return B_DEV_BAD_DRIVE_NUM; + case IOERR_ABORTED: + return EINTR; + case IOERR_NOCMD: + return EINVAL; + case IOERR_BADLENGTH: + return EINVAL; + case IOERR_BADADDRESS: + return EFAULT; + case IOERR_UNITBUSY: + return B_DEV_NOT_READY; + case IOERR_SELFTEST: + return B_ERROR; + default: + return B_ERROR; } } diff --git a/src/system/boot/platform/atari_m68k/Jamfile b/src/system/boot/platform/atari_m68k/Jamfile index 8bae15782a..3d08428e64 100644 --- a/src/system/boot/platform/atari_m68k/Jamfile +++ b/src/system/boot/platform/atari_m68k/Jamfile @@ -19,11 +19,13 @@ UsePrivateHeaders [ FDirName storage ] ; #SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src add-ons accelerants common ] ; + KernelMergeObject 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 @@ -59,6 +61,7 @@ KernelMergeObject boot_platform_atari_m68k_other.o : : -fno-pic #-Wa,--pcrel ; + KernelMergeObject boot_platform_atari_m68k.o : : : boot_platform_atari_m68k_shell.o @@ -70,7 +73,9 @@ KernelMergeObject boot_platform_atari_m68k.o : # the bootsector in haiku_loader must be checksummed -rule ChecksumAtariLoader { + +rule ChecksumAtariLoader +{ local haikuLoader = $(1) ; local checksummer = fixup_tos_boot_checksum ; @@ -80,6 +85,7 @@ rule ChecksumAtariLoader { } + actions ChecksumAtariLoader bind TARGET_CHECKSUM { $(TARGET_CHECKSUM) $(1) } @@ -90,6 +96,7 @@ ChecksumAtariLoader haiku_loader ; # AUTO folder PRG target + # based on KernelLd rule AtariBootPrgLd { @@ -116,11 +123,13 @@ rule AtariBootPrgLd } + actions AtariBootPrgLd { $(LINK) $(LINKFLAGS) -o "$(1)" "$(2)" $(LINKLIBS) ; } + AtariBootPrgLd haiku.prg : boot_loader_$(TARGET_BOOT_PLATFORM) : $(HAIKU_TOP)/src/system/ldscripts/$(TARGET_ARCH)/boot_prg_$(TARGET_BOOT_PLATFORM).ld