Merge branch 'public'
This commit is contained in:
commit
52fe2a02a3
13
.github/workflows/build.yml
vendored
13
.github/workflows/build.yml
vendored
@ -10,14 +10,23 @@ jobs:
|
|||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- name: build disk image
|
- name: build disk image
|
||||||
run: make image.bin
|
run: make image.bin
|
||||||
llvm:
|
llvm:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- name: Install lld
|
- name: Install lld
|
||||||
run: sudo apt-get install -y lld
|
run: sudo apt-get install -y lld
|
||||||
- name: LLVM build
|
- name: LLVM build
|
||||||
run: make LLVM=on image.bin
|
run: make LLVM=on image.bin
|
||||||
|
macos:
|
||||||
|
runs-on: macos-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: install llvm
|
||||||
|
run: brew install llvm x86_64-elf-binutils x86_64-elf-gcc
|
||||||
|
- name: LLVM build
|
||||||
|
run: make LLVM=on image.bin
|
||||||
|
|
||||||
|
|||||||
18
Makefile
18
Makefile
@ -10,13 +10,14 @@ OBJCOPY=x86_64-elf-objcopy
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
CFLAGS = -fno-pic -ffreestanding -static -fno-builtin -fno-strict-aliasing \
|
CFLAGS = -fno-pic -ffreestanding -static -fno-builtin -fno-strict-aliasing \
|
||||||
|
-mno-sse \
|
||||||
-Wall -ggdb -m32 -Werror -fno-omit-frame-pointer
|
-Wall -ggdb -m32 -Werror -fno-omit-frame-pointer
|
||||||
CFLAGS += $(shell $(CC) -fno-stack-protector -E -x c /dev/null >/dev/null 2>&1 && echo -fno-stack-protector)
|
CFLAGS += $(shell $(CC) -fno-stack-protector -E -x c /dev/null >/dev/null 2>&1 && echo -fno-stack-protector)
|
||||||
ASMFLAGS = -m32 -ffreestanding -c -g
|
ASMFLAGS = -m32 -ffreestanding -c -g
|
||||||
|
|
||||||
ifeq ($(LLVM),on)
|
ifeq ($(LLVM),on)
|
||||||
#AS=llvm-as
|
#AS=llvm-as
|
||||||
LD=ld.lld
|
LD=PATH=/usr/local/opt/llvm/bin:$(PATH) ld.lld
|
||||||
CC=clang
|
CC=clang
|
||||||
CFLAGS += -target elf-i386
|
CFLAGS += -target elf-i386
|
||||||
ASMFLAGS = -target elf-i386 -ffreestanding -c -g
|
ASMFLAGS = -target elf-i386 -ffreestanding -c -g
|
||||||
@ -33,6 +34,21 @@ run: image.bin
|
|||||||
run-nox: image.bin
|
run-nox: image.bin
|
||||||
qemu-system-i386 -nographic -drive format=raw,file=$< -serial mon:stdio
|
qemu-system-i386 -nographic -drive format=raw,file=$< -serial mon:stdio
|
||||||
|
|
||||||
|
ejudge.sh: image.bin
|
||||||
|
echo >$@ "#!/bin/sh"
|
||||||
|
echo >>$@ "base64 -d <<===EOF | gunzip >image.bin"
|
||||||
|
gzip <$^ | base64 >>$@
|
||||||
|
echo >>$@ "===EOF"
|
||||||
|
echo >>$@ "exec qemu-system-i386 -nographic -drive format=raw,file=image.bin -serial mon:stdio"
|
||||||
|
chmod +x $@
|
||||||
|
|
||||||
|
diag:
|
||||||
|
-uname -a
|
||||||
|
-$(CC) --version
|
||||||
|
-$(LD) -v
|
||||||
|
-gcc --version
|
||||||
|
-ld -v
|
||||||
|
|
||||||
debug-boot-nox: image.bin mbr.elf
|
debug-boot-nox: image.bin mbr.elf
|
||||||
qemu-system-i386 -nographic -drive format=raw,file=$< -s -S &
|
qemu-system-i386 -nographic -drive format=raw,file=$< -s -S &
|
||||||
$(GDB) mbr.elf \
|
$(GDB) mbr.elf \
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user