OSDN Git Service

#include "dl-startup.c into ldso.c, making ldso one compilation unit.
authorJoakim Tjernlund <joakim.tjernlund@transmode.se>
Fri, 27 Aug 2004 11:08:35 +0000 (11:08 -0000)
committerJoakim Tjernlund <joakim.tjernlund@transmode.se>
Fri, 27 Aug 2004 11:08:35 +0000 (11:08 -0000)
Now all functions and vaiables can be made static to reduce relocs.
Basicly, all variables should be merged into one struct variable
and then export that struct. Exported functions should be exported
as functions pointers in the above struct. This will reduce the
number of relocs inside ldso to a handful.

Add -Bsymbolic to linker for ldso. This will resolve all functions
(all JMP_SLOT goes away) and the remaining relocs are transformed into
RELATIVE relocs.

ldso/ldso/Makefile
ldso/ldso/ldso.c

index dde68bd..90f44ba 100644 (file)
@@ -40,10 +40,10 @@ XXFLAGS+= $(XARCH_CFLAGS) $(CPU_CFLAGS) $(PICFLAG) \
 XXFLAGS :=$(XXFLAGS:-O0=-O1)
 
 XXFLAGS+=$(shell $(CC) -print-search-dirs | sed -ne "s/install: *\(.*\)/-I\1include/gp")
-LDFLAGS=$(CPU_LDFLAGS-y) -shared --warn-common --export-dynamic --sort-common \
+LDFLAGS=$(CPU_LDFLAGS-y) -Bsymbolic -shared --warn-common --export-dynamic --sort-common \
        -z combreloc --discard-locals --discard-all --no-undefined
 
-CSRC= ldso.c dl-startup.c
+CSRC= ldso.c
 COBJS=$(patsubst %.c,%.o, $(CSRC))
 ASRC=$(shell ls $(TARGET_ARCH)/*.S)
 AOBJS=$(patsubst %.S,%.o, $(ASRC))
index dbb5b87..d781788 100644 (file)
@@ -59,6 +59,7 @@ char *_dl_debug_bindings  = 0;
 int   _dl_debug_file      = 2;
 #endif
 
+#include "dl-startup.c"
 /* Forward function declarations */
 static int _dl_suid_ok(void);