]> xenbits.xensource.com Git - mini-os.git/commitdiff
Mini-OS: hide all symbols not exported via EXPORT_SYMBOLS()
authorJuergen Gross <jgross@suse.com>
Mon, 27 Nov 2023 10:25:23 +0000 (11:25 +0100)
committerJulien Grall <jgrall@amazon.com>
Mon, 4 Dec 2023 16:52:57 +0000 (16:52 +0000)
When doing the final linking of the Mini-OS kernel only keep the
symbols visible which have been marked via EXPORT_SYMBOL().

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Makefile

index 588496cb6c84e52c4b01d6f58dfccb4696769a5e..456aed0bf169d8a801cfd69a60b19945dd91c8b3 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -167,6 +167,7 @@ $(OBJ_DIR)/arch/x86/minios-x86%.lds:  arch/x86/minios-x86.lds.S
 $(OBJ_DIR)/$(TARGET)-kern.o: $(OBJS) arch_lib $(OBJ_DIR)/$(TARGET_ARCH_DIR)/minios-$(MINIOS_TARGET_ARCH).lds
        $(LD) -r $(LDFLAGS) $(HEAD_OBJ) $(OBJS) $(LDARCHLIB) -o $@
        $(OBJCOPY) --dump-section .export_symbol=$(OBJ_DIR)/syms $@
+       $(OBJCOPY) -w -G $(GLOBAL_PREFIX)* --keep-global-symbols=$(OBJ_DIR)/syms --remove-section=.export_symbol $@ $@
 
 $(OBJ_DIR)/$(TARGET): $(OBJ_DIR)/$(TARGET)-kern.o $(APP_O)
        $(LD) -r $(LDFLAGS) $(OBJ_DIR)/$(TARGET)-kern.o $(APP_O) $(LDLIBS) -o $@.o