misc: Better integration of aarch64 port and test mechanism
This commit is contained in:
parent
86ebf0b453
commit
ebbf8d7bed
1
.github/workflows/release.yml
vendored
1
.github/workflows/release.yml
vendored
@ -93,7 +93,6 @@ jobs:
|
||||
- name: Release
|
||||
uses: softprops/action-gh-release@v1
|
||||
with:
|
||||
prerelease: true
|
||||
body_path: rel_notes.txt
|
||||
files: |
|
||||
limine-*.tar.*
|
||||
|
@ -152,7 +152,7 @@ ifneq ($(BUILD_LIMINE_DEPLOY),no)
|
||||
$(MAKE) limine-deploy
|
||||
endif
|
||||
|
||||
$(call MKESCAPE,$(BINDIR))/limine-cd-efi.bin: $(if @BUILD_UEFI_IA32@, $(call MKESCAPE,$(BUILDDIR))/common-uefi-ia32/BOOTIA32.EFI) $(if @BUILD_UEFI_X86_64@, $(call MKESCAPE,$(BUILDDIR))/common-uefi-x86-64/BOOTX64.EFI)
|
||||
$(call MKESCAPE,$(BINDIR))/limine-cd-efi.bin: $(if @BUILD_UEFI_IA32@, $(call MKESCAPE,$(BUILDDIR))/common-uefi-ia32/BOOTIA32.EFI) $(if @BUILD_UEFI_X86_64@, $(call MKESCAPE,$(BUILDDIR))/common-uefi-x86-64/BOOTX64.EFI) $(if @BUILD_UEFI_AARCH64@, $(call MKESCAPE,$(BUILDDIR))/common-uefi-aarch64/BOOTAA64.EFI)
|
||||
ifneq ($(BUILD_CD_EFI),no)
|
||||
$(MKDIR_P) '$(call SHESCAPE,$(BINDIR))'
|
||||
rm -f '$(call SHESCAPE,$(BINDIR))/limine-cd-efi.bin'
|
||||
@ -160,6 +160,8 @@ ifneq ($(BUILD_CD_EFI),no)
|
||||
( mformat -i '$(call SHESCAPE,$(BINDIR))/limine-cd-efi.bin' -f 1440 :: && \
|
||||
mmd -D s -i '$(call SHESCAPE,$(BINDIR))/limine-cd-efi.bin' ::/EFI && \
|
||||
mmd -D s -i '$(call SHESCAPE,$(BINDIR))/limine-cd-efi.bin' ::/EFI/BOOT && \
|
||||
( ( [ -f '$(call SHESCAPE,$(BUILDDIR))/common-uefi-aarch64/BOOTAA64.EFI' ] && \
|
||||
mcopy -D o -i '$(call SHESCAPE,$(BINDIR))/limine-cd-efi.bin' '$(call SHESCAPE,$(BUILDDIR))/common-uefi-aarch64/BOOTAA64.EFI' ::/EFI/BOOT ) || true ) && \
|
||||
( ( [ -f '$(call SHESCAPE,$(BUILDDIR))/common-uefi-x86-64/BOOTX64.EFI' ] && \
|
||||
mcopy -D o -i '$(call SHESCAPE,$(BINDIR))/limine-cd-efi.bin' '$(call SHESCAPE,$(BUILDDIR))/common-uefi-x86-64/BOOTX64.EFI' ::/EFI/BOOT ) || true ) && \
|
||||
( ( [ -f '$(call SHESCAPE,$(BUILDDIR))/common-uefi-ia32/BOOTIA32.EFI' ] && \
|
||||
@ -499,13 +501,13 @@ pxe-test:
|
||||
sudo cp -rv test/* test_image/boot/
|
||||
qemu-system-x86_64 -smp 4 -netdev user,id=n0,tftp=./test_image,bootfile=boot/limine-pxe.bin -device rtl8139,netdev=n0,mac=00:00:00:11:11:11 -debugcon stdio
|
||||
|
||||
.PHONY: uefi-test
|
||||
uefi-test:
|
||||
.PHONY: uefi-x86-64-test
|
||||
uefi-x86-64-test:
|
||||
$(MAKE) ovmf-x64
|
||||
$(MAKE) test-clean
|
||||
$(MAKE) test.hdd
|
||||
$(MAKE) limine-uefi-x86-64
|
||||
$(MAKE) -C test
|
||||
$(MAKE) -C test CROSS_FILE='$(call SHESCAPE,$(BUILDDIR))/cross-files/x86_64-toolchain.mk'
|
||||
rm -rf test_image/
|
||||
mkdir test_image
|
||||
sudo losetup -Pf --show test.hdd > loopback_dev
|
||||
@ -529,7 +531,7 @@ uefi-aa64-test:
|
||||
$(MAKE) test-clean
|
||||
$(MAKE) test.hdd
|
||||
$(MAKE) limine-uefi-aarch64
|
||||
$(MAKE) -C test
|
||||
$(MAKE) -C test CROSS_FILE='$(call SHESCAPE,$(BUILDDIR))/cross-files/aarch64-toolchain.mk'
|
||||
rm -rf test_image/
|
||||
mkdir test_image
|
||||
sudo losetup -Pf --show test.hdd > loopback_dev
|
||||
@ -553,7 +555,7 @@ uefi-ia32-test:
|
||||
$(MAKE) test-clean
|
||||
$(MAKE) test.hdd
|
||||
$(MAKE) limine-uefi-ia32
|
||||
$(MAKE) -C test
|
||||
$(MAKE) -C test CROSS_FILE='$(call SHESCAPE,$(BUILDDIR))/cross-files/x86_64-toolchain.mk'
|
||||
rm -rf test_image/
|
||||
mkdir test_image
|
||||
sudo losetup -Pf --show test.hdd > loopback_dev
|
||||
|
@ -1,11 +1,13 @@
|
||||
CC = cc
|
||||
CFLAGS = -O2 -g -Wall -Wextra -Wpedantic
|
||||
LDFLAGS =
|
||||
LD = ld
|
||||
QEMU = qemu-system-x86_64
|
||||
QEMUFLAGS = -m 1G -enable-kvm -cpu host
|
||||
include $(CROSS_FILE)
|
||||
|
||||
INTERNALLDFLAGS := \
|
||||
override CC := $(CROSS_CC)
|
||||
CFLAGS = -O2 -g -Wall -Wextra
|
||||
LDFLAGS =
|
||||
override LD := $(CROSS_LD)
|
||||
override QEMU := qemu-system-x86_64
|
||||
QEMUFLAGS = -m 1G -enable-kvm -cpu host
|
||||
|
||||
override INTERNALLDFLAGS := \
|
||||
-Tlinker.ld \
|
||||
-nostdlib \
|
||||
-zmax-page-size=0x1000 \
|
||||
@ -14,51 +16,53 @@ INTERNALLDFLAGS := \
|
||||
--no-dynamic-linker \
|
||||
-ztext
|
||||
|
||||
INTERNAL_LD_FLAGS_MULTIBOOT2 := \
|
||||
override INTERNAL_LD_FLAGS_MULTIBOOT2 := \
|
||||
-m elf_i386 \
|
||||
-Tmultiboot2.ld \
|
||||
-nostdlib \
|
||||
-zmax-page-size=0x1000 \
|
||||
-static
|
||||
|
||||
INTERNAL_LD_FLAGS_MULTIBOOT1 := \
|
||||
override INTERNAL_LD_FLAGS_MULTIBOOT1 := \
|
||||
-m elf_i386 \
|
||||
-Tmultiboot.ld \
|
||||
-nostdlib \
|
||||
-zmax-page-size=0x1000 \
|
||||
-static
|
||||
|
||||
INTERNALCFLAGS := \
|
||||
-I. \
|
||||
-I.. \
|
||||
override INTERNALCFLAGS := \
|
||||
-std=c11 \
|
||||
-g \
|
||||
-ffreestanding \
|
||||
-fno-stack-protector \
|
||||
-fno-stack-check \
|
||||
-fno-lto \
|
||||
-fpie \
|
||||
-mabi=sysv \
|
||||
-mno-80387 \
|
||||
-mno-mmx \
|
||||
-mno-sse \
|
||||
-mno-sse2 \
|
||||
-mno-red-zone
|
||||
|
||||
INTERNALCFLAGS_MB := \
|
||||
-mgeneral-regs-only \
|
||||
-mno-red-zone \
|
||||
-I. \
|
||||
-I.. \
|
||||
-I../common/protos \
|
||||
-I..
|
||||
|
||||
override INTERNALCFLAGS_MB := \
|
||||
-std=c11 \
|
||||
-m32 \
|
||||
-g \
|
||||
-ffreestanding \
|
||||
-fno-stack-protector \
|
||||
-fno-stack-check \
|
||||
-fno-lto \
|
||||
-fno-pie \
|
||||
-fno-pic \
|
||||
-m32 \
|
||||
-march=i686 \
|
||||
-mabi=sysv \
|
||||
-mno-80387 \
|
||||
-mno-mmx \
|
||||
-mno-sse \
|
||||
-mno-sse2
|
||||
-I. \
|
||||
-I.. \
|
||||
-I../common/protos
|
||||
|
||||
ifneq ($(findstring 86,$(CROSS_CC)),)
|
||||
all: test.elf multiboot2.elf multiboot.elf
|
||||
else
|
||||
all: test.elf
|
||||
endif
|
||||
|
||||
test.elf: limine.o e9print.o memory.o
|
||||
$(LD) $^ $(LDFLAGS) $(INTERNALLDFLAGS) -o $@
|
||||
|
@ -9,7 +9,9 @@ static const char CONVERSION_TABLE[] = "0123456789abcdef";
|
||||
void e9_putc(char c) {
|
||||
if (limine_print != NULL)
|
||||
limine_print(&c, 1);
|
||||
#if defined (__x86_64__) || defined (__i386__)
|
||||
__asm__ __volatile__ ("outb %0, %1" :: "a" (c), "Nd" (0xe9) : "memory");
|
||||
#endif
|
||||
}
|
||||
|
||||
void e9_print(const char *msg) {
|
||||
|
@ -1,7 +1,7 @@
|
||||
ENTRY(_start)
|
||||
|
||||
SECTIONS {
|
||||
. = 0x10000;
|
||||
. = 1M;
|
||||
|
||||
.boot :
|
||||
{
|
||||
@ -18,7 +18,7 @@ SECTIONS {
|
||||
. = ALIGN(4K);
|
||||
.rodata :
|
||||
{
|
||||
*(.rodata.*)
|
||||
*(.rodata .rodata.*)
|
||||
}
|
||||
|
||||
. = ALIGN(4K);
|
||||
|
@ -18,7 +18,7 @@ SECTIONS {
|
||||
. = ALIGN(4K);
|
||||
.rodata :
|
||||
{
|
||||
*(.rodata.*)
|
||||
*(.rodata .rodata.*)
|
||||
}
|
||||
|
||||
. = ALIGN(4K);
|
||||
|
Loading…
x
Reference in New Issue
Block a user