From dd6f38f632cf81fb1858bb31fb5885c98de32900 Mon Sep 17 00:00:00 2001 From: mintsuki Date: Sun, 13 Sep 2020 15:20:53 +0200 Subject: [PATCH] Ship reproducible prebuilt bootloader and make 'make all' only build limine-install --- Makefile | 13 +++++++------ limine-install.c | 6 +++--- limine.bin | Bin 0 -> 32768 bytes src/Makefile | 5 +++-- src/decompressor/Makefile | 3 ++- 5 files changed, 15 insertions(+), 12 deletions(-) create mode 100644 limine.bin diff --git a/Makefile b/Makefile index 353fd3a8..39498d6a 100644 --- a/Makefile +++ b/Makefile @@ -6,10 +6,14 @@ CC = cc OBJCOPY = objcopy CFLAGS = -O2 -pipe -Wall -Wextra -.PHONY: all install clean echfs-test ext2-test test.img +.PHONY: all limine install clean echfs-test ext2-test test.img all: limine-install +limine: + $(MAKE) -C src all + cp src/limine.bin ./ + install: all install -s limine-install $(DESTDIR)$(PREFIX)/bin/ @@ -17,11 +21,8 @@ clean: rm -f limine-install $(MAKE) -C src clean -src/limine.bin: - $(MAKE) -C src all - -limine-install: src/limine.bin limine-install.c - $(OBJCOPY) -I binary -O default src/limine.bin limine.o +limine-install: limine.bin limine-install.c + $(OBJCOPY) -I binary -O default limine.bin limine.o $(CC) $(CFLAGS) limine.o limine-install.c -o limine-install test.img: diff --git a/limine-install.c b/limine-install.c index 4441373a..a7e59b30 100644 --- a/limine-install.c +++ b/limine-install.c @@ -4,7 +4,7 @@ #include #include -extern char _binary_src_limine_bin_start[]; +extern char _binary_limine_bin_start[]; int main(int argc, char *argv[]) { if (argc < 2) { @@ -34,11 +34,11 @@ int main(int argc, char *argv[]) { // Write the bootsector from the bootloader to the device fseek(device, 0, SEEK_SET); - fwrite(&_binary_src_limine_bin_start[0], 1, 512, device); + fwrite(&_binary_limine_bin_start[0], 1, 512, device); // Write the rest of stage 2 to the device fseek(device, stage2_sect * 512, SEEK_SET); - fwrite(&_binary_src_limine_bin_start[512], 63, 512, device); + fwrite(&_binary_limine_bin_start[512], 63, 512, device); // Hardcode in the bootsector the location of stage 2 fseek(device, 0x1b0, SEEK_SET); diff --git a/limine.bin b/limine.bin new file mode 100644 index 0000000000000000000000000000000000000000..52db9c0fe4537082814734c2ae6e3e92a884cda7 GIT binary patch literal 32768 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 stage2.bin.gz + $(OBJCOPY) -O binary stage2.elf stage2.bin + gzip -n -9 < stage2.bin > stage2.bin.gz $(MAKE) -C decompressor cd bootsect && nasm bootsect.asm -fbin -o ../limine.bin diff --git a/src/decompressor/Makefile b/src/decompressor/Makefile index f5f0f3a4..602d4457 100644 --- a/src/decompressor/Makefile +++ b/src/decompressor/Makefile @@ -1,5 +1,6 @@ CC = ../../toolchain/bin/i386-elf-gcc LD = ../../toolchain/bin/i386-elf-gcc +OBJCOPY = ../../toolchain/bin/i386-elf-objcopy CFLAGS = -flto -Os -pipe -Wall -Wextra @@ -34,7 +35,7 @@ all: decompressor.bin decompressor.bin: $(OBJ) $(LD) $(OBJ) $(LDFLAGS) $(INTERNAL_LDFLAGS) -o decompressor.elf - objcopy -O binary decompressor.elf decompressor.bin + $(OBJCOPY) -O binary decompressor.elf decompressor.bin %.o: %.c $(CC) $(CFLAGS) $(INTERNAL_CFLAGS) -c $< -o $@