Skip to content

Commit

Permalink
option to disable the symbol table
Browse files Browse the repository at this point in the history
  • Loading branch information
theverygaming committed Jul 7, 2024
1 parent b5b11bb commit e89acb6
Show file tree
Hide file tree
Showing 7 changed files with 28 additions and 22 deletions.
2 changes: 1 addition & 1 deletion kernel/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ alldefconfig: scripts/kconfig/Makefile

# clean targets
clean: modclean
@rm -f kernel.o kernel.bin symtab.s symtab.os kernel_partial.o
@rm -f kernel.o kernel.bin symtab.S symtab.oS kernel_partial.o
@find ./arch ./drivers ./fs ./include ./kernel ./net ./mm ./stdlibs ./tests ./abi ./rust \( -name '*.oasm' -o -name '*.onasm' -o -name '*.oc' -o -name '*.ocpp' -o -name '*.ors' -o -name '*.rlib' -o -name '*.o' -o -name '*.os' -o -name '*.oS' \) -type f -delete

distclean: clean
Expand Down
12 changes: 6 additions & 6 deletions kernel/arch/m68k/archlink.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ if [ "$CONFIG_PLAIN_BINARY" == "y" ]; then
fi

${INT_LD} ${INT_LDFLAGS} -T ${ldscript} kernel_partial.o -o kernel.o
${INT_NM} --format=bsd -n kernel.o | python3 scripts/gensyms.py .long > symtab.s
${INT_CXX} ${INT_CXXFLAGS} -c symtab.s -o symtab.os
${INT_LD} ${INT_LDFLAGS} -T ${ldscript} kernel_partial.o symtab.os -o kernel.o
${INT_NM} --format=bsd -n kernel.o | python3 scripts/gensyms.py .long > symtab.S
${INT_CXX} ${INT_CXXFLAGS} -c symtab.S -o symtab.oS
${INT_LD} ${INT_LDFLAGS} -T ${ldscript} kernel_partial.o symtab.oS -o kernel.o

${INT_NM} --format=bsd -n kernel.o | python3 scripts/gensyms.py .long > symtab.s
${INT_CXX} ${INT_CXXFLAGS} -c symtab.s -o symtab.os
${INT_LD} ${INT_LDFLAGS} -T ${ldscript} kernel_partial.o symtab.os -o kernel.o
${INT_NM} --format=bsd -n kernel.o | python3 scripts/gensyms.py .long > symtab.S
${INT_CXX} ${INT_CXXFLAGS} -c symtab.S -o symtab.oS
${INT_LD} ${INT_LDFLAGS} -T ${ldscript} kernel_partial.o symtab.oS -o kernel.o

${INT_OBJCOPY} -O binary kernel.o kernel.bin
12 changes: 6 additions & 6 deletions kernel/arch/x86/archlink.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@ if [ "$CONFIG_ENABLE_KERNEL_64" == "y" ]; then
fi

${INT_LD} ${INT_LDFLAGS} -T ${ldscript} kernel_partial.o -o kernel.o
${INT_NM} --format=bsd -n kernel.o | python3 scripts/gensyms.py ${ptrsize} > symtab.s
${INT_CXX} ${INT_CXXFLAGS} -c symtab.s -o symtab.os
${INT_LD} ${INT_LDFLAGS} -T ${ldscript} kernel_partial.o symtab.os -o kernel.o
${INT_NM} --format=bsd -n kernel.o | python3 scripts/gensyms.py ${ptrsize} > symtab.S
${INT_CXX} ${INT_CXXFLAGS} -c symtab.S -o symtab.oS
${INT_LD} ${INT_LDFLAGS} -T ${ldscript} kernel_partial.o symtab.oS -o kernel.o

${INT_NM} --format=bsd -n kernel.o | python3 scripts/gensyms.py ${ptrsize} > symtab.s
${INT_CXX} ${INT_CXXFLAGS} -c symtab.s -o symtab.os
${INT_LD} ${INT_LDFLAGS} -T ${ldscript} kernel_partial.o symtab.os -o kernel.o
${INT_NM} --format=bsd -n kernel.o | python3 scripts/gensyms.py ${ptrsize} > symtab.S
${INT_CXX} ${INT_CXXFLAGS} -c symtab.S -o symtab.oS
${INT_LD} ${INT_LDFLAGS} -T ${ldscript} kernel_partial.o symtab.oS -o kernel.o

${INT_OBJCOPY} -O binary kernel.o kernel.bin
12 changes: 6 additions & 6 deletions kernel/arch/xtensa/archlink.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
set -e

${INT_LD} ${INT_LDFLAGS} -T arch/xtensa/linker.ld kernel_partial.o -o kernel.o
${INT_NM} --format=bsd -n kernel.o | python3 scripts/gensyms.py .long > symtab.s
${INT_CXX} ${INT_CXXFLAGS} -c symtab.s -o symtab.os
${INT_LD} ${INT_LDFLAGS} -T arch/xtensa/linker.ld kernel_partial.o symtab.os -o kernel.o
${INT_NM} --format=bsd -n kernel.o | python3 scripts/gensyms.py .long > symtab.S
${INT_CXX} ${INT_CXXFLAGS} -c symtab.S -o symtab.oS
${INT_LD} ${INT_LDFLAGS} -T arch/xtensa/linker.ld kernel_partial.o symtab.oS -o kernel.o

${INT_NM} --format=bsd -n kernel.o | python3 scripts/gensyms.py .long > symtab.s
${INT_CXX} ${INT_CXXFLAGS} -c symtab.s -o symtab.os
${INT_LD} ${INT_LDFLAGS} -T arch/xtensa/linker.ld kernel_partial.o symtab.os -o kernel.o
${INT_NM} --format=bsd -n kernel.o | python3 scripts/gensyms.py .long > symtab.S
${INT_CXX} ${INT_CXXFLAGS} -c symtab.S -o symtab.oS
${INT_LD} ${INT_LDFLAGS} -T arch/xtensa/linker.ld kernel_partial.o symtab.oS -o kernel.o
4 changes: 4 additions & 0 deletions kernel/kernel/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -51,4 +51,8 @@ config ENABLE_BUILTIN_FONT
default y if ARCH_AARCH64
bool "Compile font into kernel"

config ENABLE_SYMBOL_TABLE
default y
bool "Enable symbol table"

endmenu
4 changes: 3 additions & 1 deletion kernel/kernel/Makefile
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
obj-y += kernel.ocpp sched.ocpp stdio.ocpp time.ocpp kprintf.ocpp symbols.ocpp interrupts.ocpp elf.ocpp
obj-y += kernel.ocpp sched.ocpp stdio.ocpp time.ocpp kprintf.ocpp interrupts.ocpp elf.ocpp

obj-$(CONFIG_FB_SUPPORT) += framebuffer.ocpp psf.ocpp

obj-$(CONFIG_ENABLE_BUILTIN_FONT) += unifont.bin.ocpp

obj-$(CONFIG_ENABLE_SYMBOL_TABLE) += symbols.ocpp

$(objtree)/%.bin.cpp: ../fonts/Unifont-APL8x16-15.0.01.psf
@echo " BIN2C $<"
@xxd -i $< $@
4 changes: 2 additions & 2 deletions kernel/scripts/gensyms.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/usr/bin/python3
import sys

print(".section .sym_table\n.global symtab_start\nsymtab_start:")
print("#include <config.h>\n.section .sym_table\n.global symtab_start\nsymtab_start:\n#ifdef CONFIG_ENABLE_SYMBOL_TABLE")

for line in sys.stdin:
line = line.rstrip()
Expand All @@ -11,4 +11,4 @@
print(f"{sys.argv[1]} 0x{symadr}\n.ascii \"{symname}\\0\"")

print(f"{sys.argv[1]} 0x0\n.ascii \"\\0\"")
print(".global symtab_end\nsymtab_end:")
print("#endif // CONFIG_ENABLE_SYMBOL_TABLE\n.global symtab_end\nsymtab_end:")

0 comments on commit e89acb6

Please sign in to comment.