:: commit dd6f38f632cf81fb1858bb31fb5885c98de32900

mintsuki <mintsuki@protonmail.com> — 2020-09-13 13:20

parents: 5663169aa6

Ship reproducible prebuilt bootloader and make 'make all' only build limine-install

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 <stddef.h>
 #include <inttypes.h>
 
-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 00000000..52db9c0f
Binary files /dev/null and b/limine.bin differ
diff --git a/src/Makefile b/src/Makefile
index efba6e88..3f04c413 100644
--- a/src/Makefile
+++ b/src/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
 
@@ -35,8 +36,8 @@ all: limine.bin
 
 limine.bin: $(OBJ)
 	$(LD) $(OBJ) $(LDFLAGS) $(INTERNAL_LDFLAGS) -o stage2.elf
-	objcopy -O binary stage2.elf stage2.bin
-	gzip -9 < stage2.bin > 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 $@
tab: 248 wrap: offon