From 550f2171c1a220a1ca55bb3f7b9c85c915bd455e Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Fri, 2 Feb 2007 09:42:22 +0000 Subject: [PATCH] Mostly aesthetical changes. "jam pxehaiku" worked here before and still does. Marcus, what problem did you encounter? The BuildPXEstage1 actions use "as" ATM, which is not correct, since it should actually use the target platform assembler (i.e. cross-compilation won't work). It should be replaced by $(TARGET_CC), but that results in the following errors, when compiling with gcc 2.95.3: /home/bonefish/develop/haiku/haiku/src/system/boot/platform/pxe_ia32/pxe_stage1.S: Assembler messages: /home/bonefish/develop/haiku/haiku/src/system/boot/platform/pxe_ia32/pxe_stage1.S:39: Error: missing ')' /home/bonefish/develop/haiku/haiku/src/system/boot/platform/pxe_ia32/pxe_stage1.S:96: Error: `0x6(%edx)' is not a valid 16 bit base/index expression /home/bonefish/develop/haiku/haiku/src/system/boot/platform/pxe_ia32/pxe_stage1.S:102: Error: `0xa(%edx)' is not a valid 16 bit base/index expression /home/bonefish/develop/haiku/haiku/src/system/boot/platform/pxe_ia32/pxe_stage1.S:127: Error: `2(%edx)' is not a valid 16 bit base/index expression /home/bonefish/develop/haiku/haiku/src/system/boot/platform/pxe_ia32/pxe_stage1.S:128: Error: `0(%edx)' is not a valid 16 bit base/index expression /home/bonefish/develop/haiku/haiku/src/system/boot/platform/pxe_ia32/pxe_stage1.S:147: Error: `16(%ebx)' is not a valid 16 bit base/index expression /home/bonefish/develop/haiku/haiku/src/system/boot/platform/pxe_ia32/pxe_stage1.S:149: Error: `20(%ebx)' is not a valid 16 bit base/index expression /home/bonefish/develop/haiku/haiku/src/system/boot/platform/pxe_ia32/pxe_stage1.S:173: Error: `2(%edx)' is not a valid 16 bit base/index expression /home/bonefish/develop/haiku/haiku/src/system/boot/platform/pxe_ia32/pxe_stage1.S:174: Error: `0(%edx)' is not a valid 16 bit base/index expression /home/bonefish/develop/haiku/haiku/src/system/boot/platform/pxe_ia32/pxe_stage1.S:298: Error: `(%esi)' is not a valid 16 bit base/index expression /home/bonefish/develop/haiku/haiku/src/system/boot/platform/pxe_ia32/pxe_stage1.S:299: Error: `(%edi)' is not a valid 16 bit base/index expression /home/bonefish/develop/haiku/haiku/src/system/boot/platform/pxe_ia32/pxe_stage1.S:306: Error: `(%esi)' is not a valid 16 bit base/index expression /home/bonefish/develop/haiku/haiku/src/system/boot/platform/pxe_ia32/pxe_stage1.S:307: Error: `(%edi)' is not a valid 16 bit base/index expression For the gcc 4 configuration all but the first errors disappear. It looks like these are bugs in older assembler version. Any reasonable work-around? git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20043 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/boot/platform/pxe_ia32/Jamfile | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/system/boot/platform/pxe_ia32/Jamfile b/src/system/boot/platform/pxe_ia32/Jamfile index 2f936639c8..42c6014849 100644 --- a/src/system/boot/platform/pxe_ia32/Jamfile +++ b/src/system/boot/platform/pxe_ia32/Jamfile @@ -55,19 +55,20 @@ KernelMergeObject boot_platform_pxe_ia32.o : ; -rule BuildPXEstage1 { - local bin = $(1) ; - local source = $(2) ; - +rule BuildPXEstage1 bin : source { + SEARCH on $(source) = $(SEARCH_SOURCE) ; Depends $(bin) : $(source) ; MakeLocateDebug $(bin) ; + LocalClean clean : $(bin) ; } +# TODO: "as" should be replaced by $(TARGET_CC), but it fails for older GNU As +# versions. actions BuildPXEstage1 { rm -f $(1) - as -o $(1).o $(2) - ld --oformat binary --Ttext 0x7C00 -o $(1) $(1).o + as -o $(1).o $(2) && + $(TARGET_LD) --oformat binary --Ttext 0x7C00 -o $(1) $(1).o } BuildPXEstage1 pxehaiku : pxe_stage1.S ; @@ -84,5 +85,3 @@ SEARCH on [ FGristFiles $(bios_ia32_edid_src) ] # We also need the bios_ia32 stage1.bin for building bin/makebootable SEARCH on stage1.bin = [ FDirName $(SUBDIR) $(DOTDOT) bios_ia32 ] ; - -SEARCH on pxe_stage1.S = $(SUBDIR) ;