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
This commit is contained in:
Ingo Weinhold
2007-02-02 09:42:22 +00:00
parent 4be51fe314
commit 550f2171c1
+7 -8
View File
@@ -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) ;