diff options
-rw-r--r-- | Makefile | 18 | ||||
-rw-r--r-- | crt/rcrt1.c | 2 | ||||
-rw-r--r-- | ldso/dlstart.c (renamed from src/ldso/dlstart.c) | 4 | ||||
-rw-r--r-- | ldso/dynlink.c (renamed from src/ldso/dynlink.c) | 2 | ||||
-rw-r--r-- | src/ldso/tlsdesc.c | 4 |
5 files changed, 11 insertions, 19 deletions
diff --git a/Makefile b/Makefile index 3a60cfc0..7c2cd77b 100644 --- a/Makefile +++ b/Makefile @@ -22,6 +22,8 @@ BASE_OBJS = $(patsubst $(srcdir)/%,%.o,$(basename $(BASE_SRCS))) ARCH_SRCS = $(wildcard $(srcdir)/src/*/$(ARCH)/*.[csS]) ARCH_OBJS = $(patsubst $(srcdir)/%,%.o,$(basename $(ARCH_SRCS))) REPLACED_OBJS = $(sort $(subst /$(ARCH)/,/,$(ARCH_OBJS))) +LDSO_SRCS = $(sort $(wildcard $(srcdir)/ldso/*.c)) +LDSO_OBJS = $(patsubst $(srcdir)/%,obj/%.lo,$(basename $(LDSO_SRCS))) OBJS = $(addprefix obj/, $(filter-out $(REPLACED_OBJS), $(sort $(BASE_OBJS) $(ARCH_OBJS)))) LOBJS = $(OBJS:.o=.lo) GENH = obj/include/bits/alltypes.h @@ -72,7 +74,7 @@ endif all: $(ALL_LIBS) $(ALL_TOOLS) -OBJ_DIRS = $(sort $(patsubst %/,%,$(dir $(ALL_LIBS) $(ALL_TOOLS) $(OBJS) $(GENH) $(GENH_INT))) $(addprefix obj/, crt crt/$(ARCH) include)) +OBJ_DIRS = $(sort $(patsubst %/,%,$(dir $(ALL_LIBS) $(ALL_TOOLS) $(OBJS) $(LDSO_OBJS) $(GENH) $(GENH_INT))) $(addprefix obj/, crt crt/$(ARCH) include)) $(ALL_LIBS) $(ALL_TOOLS) $(CRT_LIBS:lib/%=obj/crt/%) $(OBJS) $(LOBJS) $(GENH) $(GENH_INT): | $(OBJ_DIRS) @@ -95,11 +97,11 @@ obj/src/internal/version.h: $(wildcard $(srcdir)/VERSION $(srcdir)/.git) obj/src/internal/version.o obj/src/internal/version.lo: obj/src/internal/version.h -obj/crt/rcrt1.o obj/src/ldso/dlstart.lo obj/src/ldso/dynlink.lo: $(srcdir)/src/internal/dynlink.h $(srcdir)/arch/$(ARCH)/reloc.h +obj/crt/rcrt1.o obj/ldso/dlstart.lo obj/ldso/dynlink.lo: $(srcdir)/src/internal/dynlink.h $(srcdir)/arch/$(ARCH)/reloc.h -obj/crt/crt1.o obj/crt/scrt1.o obj/crt/rcrt1.o obj/src/ldso/dlstart.lo: $(srcdir)/arch/$(ARCH)/crt_arch.h +obj/crt/crt1.o obj/crt/scrt1.o obj/crt/rcrt1.o obj/ldso/dlstart.lo: $(srcdir)/arch/$(ARCH)/crt_arch.h -obj/crt/rcrt1.o: $(srcdir)/src/ldso/dlstart.c +obj/crt/rcrt1.o: $(srcdir)/ldso/dlstart.c obj/crt/Scrt1.o obj/crt/rcrt1.o: CFLAGS_ALL += -fPIC @@ -117,12 +119,12 @@ NOSSP_SRCS = $(wildcard crt/*.c) \ src/env/__libc_start_main.c src/env/__init_tls.c \ src/thread/__set_thread_area.c src/env/__stack_chk_fail.c \ src/string/memset.c src/string/memcpy.c \ - src/ldso/dlstart.c src/ldso/dynlink.c + ldso/dlstart.c ldso/dynlink.c $(NOSSP_SRCS:%.c=obj/%.o) $(NOSSP_SRCS:%.c=obj/%.lo): CFLAGS_ALL += $(CFLAGS_NOSSP) $(CRT_LIBS:lib/%=obj/crt/%): CFLAGS_ALL += -DCRT -$(LOBJS): CFLAGS_ALL += -fPIC -DSHARED +$(LOBJS) $(LDSO_OBJS): CFLAGS_ALL += -fPIC CC_CMD = $(CC) $(CFLAGS_ALL) -c -o $@ $< @@ -151,10 +153,10 @@ obj/%.lo: $(srcdir)/%.S obj/%.lo: $(srcdir)/%.c $(GENH) $(IMPH) $(CC_CMD) -lib/libc.so: $(LOBJS) +lib/libc.so: $(LOBJS) $(LDSO_OBJS) $(CC) $(CFLAGS_ALL) $(LDFLAGS_ALL) -nostdlib -shared \ -Wl,-e,_dlstart -Wl,-Bsymbolic-functions \ - -o $@ $(LOBJS) $(LIBCC) + -o $@ $(LOBJS) $(LDSO_OBJS) $(LIBCC) lib/libc.a: $(OBJS) rm -f $@ diff --git a/crt/rcrt1.c b/crt/rcrt1.c index 9be117fd..e763d0ab 100644 --- a/crt/rcrt1.c +++ b/crt/rcrt1.c @@ -1,7 +1,7 @@ #define SHARED #define START "_start" #define _dlstart_c _start_c -#include "../src/ldso/dlstart.c" +#include "../ldso/dlstart.c" int main(); void _init() __attribute__((weak)); diff --git a/src/ldso/dlstart.c b/ldso/dlstart.c index 46f50114..4482d525 100644 --- a/src/ldso/dlstart.c +++ b/ldso/dlstart.c @@ -1,8 +1,6 @@ #include <stddef.h> #include "dynlink.h" -#ifdef SHARED - #ifndef START #define START "_dlstart" #endif @@ -146,5 +144,3 @@ void _dlstart_c(size_t *sp, size_t *dynv) GETFUNCSYM(&dls2, __dls2, base+dyn[DT_PLTGOT]); dls2((void *)base, sp); } - -#endif diff --git a/src/ldso/dynlink.c b/ldso/dynlink.c index e328679b..26a60b4c 100644 --- a/src/ldso/dynlink.c +++ b/ldso/dynlink.c @@ -1,4 +1,3 @@ -#ifdef SHARED #define _GNU_SOURCE #include <stdio.h> #include <stdlib.h> @@ -1930,4 +1929,3 @@ static void error(const char *fmt, ...) __dl_vseterr(fmt, ap); va_end(ap); } -#endif diff --git a/src/ldso/tlsdesc.c b/src/ldso/tlsdesc.c index 4bc654fa..a2985cb6 100644 --- a/src/ldso/tlsdesc.c +++ b/src/ldso/tlsdesc.c @@ -1,5 +1,3 @@ -#ifdef SHARED - #include <stddef.h> #include "libc.h" @@ -12,5 +10,3 @@ ptrdiff_t __tlsdesc_static() } weak_alias(__tlsdesc_static, __tlsdesc_dynamic); - -#endif |