misc: BIOS linker script fixes for LLD

This commit is contained in:
mintsuki 2022-05-20 05:17:46 +02:00
parent 6051fdf564
commit 65c9ddaa6f
2 changed files with 9 additions and 20 deletions

View File

@ -215,7 +215,7 @@ $(call MKESCAPE,$(BUILDDIR))/stage2.bin.gz: $(call MKESCAPE,$(BUILDDIR))/stage2.
gzip -n -9 < '$(call SHESCAPE,$<)' > '$(call SHESCAPE,$@)'
$(call MKESCAPE,$(BUILDDIR))/stage2.bin: $(call MKESCAPE,$(BUILDDIR))/limine.sys
dd if='$(call SHESCAPE,$<)' bs=$$(( 0x$$("$(LIMINE_READELF)" -S '$(call SHESCAPE,$(BUILDDIR))/limine.elf' | $(GREP) .stage3.text | $(SED) 's/^.*] //' | $(AWK) '{print $$3}' | $(SED) 's/^0*//') - 0x8000 )) count=1 of='$(call SHESCAPE,$@)' 2>/dev/null
dd if='$(call SHESCAPE,$<)' bs=$$(( 0x$$("$(LIMINE_READELF)" -S '$(call SHESCAPE,$(BUILDDIR))/limine.elf' | $(GREP) .text.stage3 | $(SED) 's/^.*] //' | $(AWK) '{print $$3}' | $(SED) 's/^0*//') - 0x8000 )) count=1 of='$(call SHESCAPE,$@)' 2>/dev/null
$(call MKESCAPE,$(BUILDDIR))/stage2.map.o: $(call MKESCAPE,$(BUILDDIR))/limine_stage2only.elf
cd '$(call SHESCAPE,$(BUILDDIR))' && \

View File

@ -15,24 +15,16 @@ SECTIONS
{
. = 0x8000;
.entry : {
.text.stage2 : {
*(.entry)
} :text_s2
.realmode : {
*(.realmode)
} :text_s2
.stage2.text : {
*.s2.o(.text .text.*)
} :text_s2
.stage2.build-id : {
.data.stage2 : {
build_id_s2 = .;
*build-id.s2.o(*)
} :data_s2
.stage2.data : {
*.s2.o(.no_unwind)
s2_data_begin = .;
*.s2.o(.data .data.*)
@ -59,17 +51,15 @@ SECTIONS
} :data_s2
#ifndef LINKER_STAGE2ONLY
.stage3.text : {
.text.stage3 : {
stage3_addr = .;
*(.text .text.*)
} :text_s3
.stage3.build-id : {
.data.stage3 : {
build_id_s3 = .;
*build-id.s3.o(*)
} :data_s3
.stage3.data : {
*(.rodata .rodata.*)
#ifdef LINKER_NOMAP
full_map = .;
@ -82,7 +72,10 @@ SECTIONS
} :data_s3
#endif
limine_sys_size = . - 0x8000;
.note.gnu.build-id : {
*(.note.gnu.build-id)
limine_sys_size = . - 0x8000;
} :data_s3
.bss : {
bss_begin = .;
@ -92,10 +85,6 @@ SECTIONS
data_end = .;
} :data_s3
.note.gnu.build-id 0 : {
*(.note.gnu.build-id)
} :null
.symtab 0 : {
*(.symtab)
} :null