:: commit c934aa50bbfcb4a72d66ea8e4ee8150c8f3b4530

mintsuki <mintsuki@users.noreply.github.com> — 2021-04-16 11:03

parents: e1c6ab55e6

Binary release v2.3.1

diff --git a/BOOTX64.EFI b/BOOTX64.EFI
index fec40007..68b6fb48 100755
Binary files a/BOOTX64.EFI and b/BOOTX64.EFI differ
diff --git a/Makefile b/Makefile
index 1e21cada..fa462ca4 100644
--- a/Makefile
+++ b/Makefile
@@ -4,7 +4,6 @@ OBJCOPY = objcopy
 PREFIX = /usr/local
 DESTDIR =
 
-OBJCOPY_ARCH = default
 LIMINE_HDD_BIN = limine-hdd.bin
 BUILD_DIR = $(shell realpath .)
 
@@ -26,11 +25,7 @@ install: all
 	install -m 644 BOOTX64.EFI "$(DESTDIR)$(PREFIX)/share/limine/"
 
 clean:
-	rm -f limine-hdd.o limine-install limine-install.exe
+	rm -f limine-install limine-install.exe
 
-limine-install: limine-install.c limine-hdd.o
-	$(CC) $(CFLAGS) -std=c11 $^ -o $@
-
-limine-hdd.o: $(shell echo "$(LIMINE_HDD_BIN)" | sed 's/ /\\ /g')
-	cd "`dirname $^`" && \
-	  $(OBJCOPY) -B i8086 -I binary -O $(OBJCOPY_ARCH) "`basename $^`" "$(BUILD_DIR)/$@"
+limine-install: limine-install.c inc.S $(LIMINE_HDD_BIN)
+	$(CC) $(CFLAGS) -std=c11 -DLIMINE_HDD_BIN='"$(LIMINE_HDD_BIN)"' limine-install.c inc.S -o $@
diff --git a/inc.S b/inc.S
new file mode 100644
index 00000000..a431be17
--- /dev/null
+++ b/inc.S
@@ -0,0 +1,29 @@
+
+#if defined (__APPLE__)
+
+.data
+.global __binary_limine_hdd_bin_start
+__binary_limine_hdd_bin_start:
+    .incbin LIMINE_HDD_BIN
+.global __binary_limine_hdd_bin_end
+__binary_limine_hdd_bin_end:
+
+#elif defined (__MINGW32__)
+
+.section .data
+.global __binary_limine_hdd_bin_start
+__binary_limine_hdd_bin_start:
+    .incbin LIMINE_HDD_BIN
+.global __binary_limine_hdd_bin_end
+__binary_limine_hdd_bin_end:
+
+#elif defined (__linux__) || defined (__unix__)
+
+.section .data
+.global _binary_limine_hdd_bin_start
+_binary_limine_hdd_bin_start:
+    .incbin LIMINE_HDD_BIN
+.global _binary_limine_hdd_bin_end
+_binary_limine_hdd_bin_end:
+
+#endif
diff --git a/limine-cd.bin b/limine-cd.bin
index e09de6f6..56c6228f 100644
Binary files a/limine-cd.bin and b/limine-cd.bin differ
diff --git a/limine-eltorito-efi.bin b/limine-eltorito-efi.bin
index dfb95e4f..5207dfb3 100644
Binary files a/limine-eltorito-efi.bin and b/limine-eltorito-efi.bin differ
diff --git a/limine-hdd.bin b/limine-hdd.bin
index ad3f3846..2fb75c1f 100644
Binary files a/limine-hdd.bin and b/limine-hdd.bin differ
diff --git a/limine-install-linux-x86_32 b/limine-install-linux-x86_32
index 08dc683e..eed49baa 100755
Binary files a/limine-install-linux-x86_32 and b/limine-install-linux-x86_32 differ
diff --git a/limine-install-linux-x86_64 b/limine-install-linux-x86_64
index d703daec..88a7ba08 100755
Binary files a/limine-install-linux-x86_64 and b/limine-install-linux-x86_64 differ
diff --git a/limine-install-win32.exe b/limine-install-win32.exe
index 06aea28e..d65850c0 100755
Binary files a/limine-install-win32.exe and b/limine-install-win32.exe differ
diff --git a/limine-install.c b/limine-install.c
index 022dc7f9..32cf720e 100644
--- a/limine-install.c
+++ b/limine-install.c
@@ -261,23 +261,13 @@ static bool _device_write(const void *buffer, uint64_t loc, size_t count) {
             goto cleanup;                       \
     } while (0)
 
-#ifdef __MINGW32__
-extern uint8_t binary_limine_hdd_bin_start[], binary_limine_hdd_bin_end[];
-#else
 extern uint8_t _binary_limine_hdd_bin_start[], _binary_limine_hdd_bin_end[];
-#endif
 
 int main(int argc, char *argv[]) {
     int      ok = 1;
-#ifdef __MINGW32__
-    uint8_t *bootloader_img = binary_limine_hdd_bin_start;
-    size_t   bootloader_file_size =
-        (size_t)binary_limine_hdd_bin_end - (size_t)binary_limine_hdd_bin_start;
-#else
     uint8_t *bootloader_img = _binary_limine_hdd_bin_start;
     size_t   bootloader_file_size =
         (size_t)_binary_limine_hdd_bin_end - (size_t)_binary_limine_hdd_bin_start;
-#endif
     uint8_t  orig_mbr[70], timestamp[6];
 
     if (sizeof(off_t) != 8) {
@@ -421,7 +411,7 @@ int main(int argc, char *argv[]) {
             fprintf(stderr, "GPT partition NOT specified. Attempting GPT embedding.\n");
 
             ssize_t max_partition_entry_used = -1;
-            for (ssize_t i = 0; i < gpt_header.number_of_partition_entries; i++) {
+            for (ssize_t i = 0; i < (ssize_t)gpt_header.number_of_partition_entries; i++) {
                 struct gpt_entry gpt_entry;
                 device_read(&gpt_entry,
                     (gpt_header.partition_entry_lba * lb_size)
diff --git a/limine-pxe.bin b/limine-pxe.bin
index 757728ed..92ea2197 100644
Binary files a/limine-pxe.bin and b/limine-pxe.bin differ
diff --git a/limine.sys b/limine.sys
index d283e511..4b13488a 100755
Binary files a/limine.sys and b/limine.sys differ
tab: 248 wrap: offon