diff --git a/tests/iso/Tupfile b/tests/iso/Tupfile index 8e32789f5..d599f2a75 100644 --- a/tests/iso/Tupfile +++ b/tests/iso/Tupfile @@ -1,35 +1,48 @@ include_rules export SYSLINUX -: config |> \ - echo %f | awk -f a.awk >> %o; \ - echo %f | awk -f b.awk >> %o; \ - echo %f | awk -f c.awk >> %o; \ +BOOT_MODULES = \ + config \ + $(GENODE_DIR)/repos/os/src/init/init \ + $(GENODE_DIR)/repos/base/src/test/log/test-log \ + +ifeq (@(TUP_ARCH),i386) + ADDR_TYPE = .long +endif +ifeq (@(TUP_ARCH),x86_64) + ADDR_TYPE = .quad +endif + +AWK_IT = awk -v RS=" " -v ADDR_TYPE="$(ADDR_TYPE)" + +: $(BOOT_MODULES) \ +|> \ + echo -n %f | $(AWK_IT) -f a.awk >> %o; \ + echo -n %f | $(AWK_IT) -f b.awk >> %o; \ + echo -n %f | $(AWK_IT) -f c.awk >> %o; \ |> modules.s -: modules.s |> $(CC) $(CC_MARCH) -c %f -o %o |> boot_modules.o +: modules.s | $(BOOT_MODULES) |> $(CC) $(CC_MARCH) -c %f -o %o |> boot_modules.o LINK_ADDRESS = 0x01000000 -: boot_modules.o | \ - $(GENODE_DIR)/repos/base-nova/ \ +: boot_modules.o | $(GENODE_DIR)/repos/base-nova/ \ |> \ - $(CXX) $(CC_MARCH) -nostdlib \ - -Wl,-T -Wl,$(GENODE_DIR)/repos/base/src/ld/genode.ld \ - -Wl,-z -Wl,max-page-size=0x1000 \ - -Wl,-Ttext=$(LINK_ADDRESS) -Wl,-gc-sections \ - -Wl,-nostdlib \ - -Wl,--whole-archive -Wl,--start-group \ - % %f \ - -Wl,--no-whole-archive \ - -Wl,--end-group \ - `$(CXX) $(CC_MARCH) -print-libgcc-file-name` \ - -o %o \ + $(CXX) $(CC_MARCH) -nostdlib \ + -Wl,-T -Wl,$(GENODE_DIR)/repos/base/src/ld/genode.ld \ + -Wl,-z -Wl,max-page-size=0x1000 \ + -Wl,-Ttext=$(LINK_ADDRESS) -Wl,-gc-sections \ + -Wl,-nostdlib \ + -Wl,--whole-archive -Wl,--start-group \ + % %f \ + -Wl,--no-whole-archive \ + -Wl,--end-group \ + `$(CXX) $(CC_MARCH) -print-libgcc-file-name` \ + -o %o; \ + strip %o; \ |> image.elf -: image.elf |> gzip --keep %f |> %b.gz - -: hypervisor image.elf.gz |> \ +: $(GENODE_DIR)/repos/base-nova/src/NOVA/build/hypervisor-x86_64 image.elf |> \ mkdir -p tmp/syslinux; \ cp \ $SYSLINUX/share/syslinux/isolinux.bin \ diff --git a/tests/iso/a.awk b/tests/iso/a.awk index 0a9d6c015..0e7143e07 100644 --- a/tests/iso/a.awk +++ b/tests/iso/a.awk @@ -12,9 +12,9 @@ BEGIN { } { - print ".quad _boot_module_"NR"_name"; - print ".quad _boot_module_"NR"_begin"; - print ".quad _boot_module_"NR"_end - _boot_module_"NR"_begin"; + print ADDR_TYPE" _boot_module_"NR"_name"; + print ADDR_TYPE" _boot_module_"NR"_begin"; + print ADDR_TYPE" _boot_module_"NR"_end - _boot_module_"NR"_begin"; print ""; } diff --git a/tests/iso/isolinux.cfg b/tests/iso/isolinux.cfg index b85df64af..991d448e1 100644 --- a/tests/iso/isolinux.cfg +++ b/tests/iso/isolinux.cfg @@ -2,4 +2,4 @@ SERIAL DEFAULT 0 LABEL 0 KERNEL mboot.c32 - APPEND /hypervisor serial novga --- /image_elf.gz + APPEND /hypervisor_x86_64 iommu novpid serial --- /image.elf