From 5e48b8b628e885ffd0772c991a6efa5a74946b9e Mon Sep 17 00:00:00 2001 From: "Peter S. Mazinger" Date: Wed, 19 Oct 2005 20:19:47 +0000 Subject: Add the current implementation to review --- ldso/ldso/Makefile.in | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++ ldso/libdl/Makefile.in | 21 +++++++++--------- 2 files changed, 70 insertions(+), 10 deletions(-) create mode 100644 ldso/ldso/Makefile.in (limited to 'ldso') diff --git a/ldso/ldso/Makefile.in b/ldso/ldso/Makefile.in new file mode 100644 index 000000000..a272e771b --- /dev/null +++ b/ldso/ldso/Makefile.in @@ -0,0 +1,59 @@ +# Makefile for uClibc +# +# Licensed under LGPL v2.1, see the file COPYING.LIB in this tarball for details. +# + +LIB_NAME:=ld-uClibc + +# psm: I do not know if the order of includes is relevant +# to be sure I have put them first +CFLAGS:=-I$(top_srcdir)ldso/include -I. $(CFLAGS) $(PICFLAG) $(SSP_DISABLE_FLAGS) + +CFLAGS+=-DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" -DUCLIBC_LDSO=\"$(UCLIBC_LDSO)\" + +ifeq ($(SUPPORT_LD_DEBUG),y) +CFLAGS+=-D__SUPPORT_LD_DEBUG__ +endif + +ifeq ($(SUPPORT_LD_DEBUG_EARLY),y) +CFLAGS+=-D__SUPPORT_LD_DEBUG_EARLY__ +endif + +ifeq ($(DODEBUG),y) +# Not really much point in including debugging info, since gdb +# can't really debug ldso, since gdb requires help from ldso to +# debug things.... +# psm: keep this in sync w/ Rules.mak +CFLAGS:=$(CFLAGS:-O0 -g3=-Os -g) +endif + +# BEWARE!!! At least mips* will die if -O0 is used!!! +ifeq ($(TARGET_ARCH),mips) +CFLAGS:=$(CFLAGS:-O0=-O1) +endif + +# This stuff will not work with -fomit-frame-pointer +CFLAGS:=$(CFLAGS:-fomit-frame-pointer=) + +ifeq ($(SUPPORT_LD_DEBUG),y) +LDFLAGS:=$(LDFLAGS_NOSTRIP) +endif + +srcdir=$(top_srcdir)ldso/ldso +$(LIB_NAME)_DIR:=$(top_builddir)ldso/ldso + +$(LIB_NAME)_SRC:=$(srcdir)/ldso.c + +$(LIB_NAME)_SSRC:=$(wildcard $(srcdir)/$(TARGET_ARCH)/*.S) +$(LIB_NAME)_SOBJ:=$(patsubst $(srcdir)/$(TARGET_ARCH)/%.S,$($(LIB_NAME)_DIR)/$(TARGET_ARCH)/%.o,$($(LIB_NAME)_SSRC)) + +EXTRA_LINK_OPTS:=-e _start -z now -Bsymbolic --export-dynamic --sort-common --discard-locals --discard-all --no-undefined +EXTRA_LINK_LIBS:=$(LIBGCC) # $(LDADD_LIBFLOAT) + +libso-$(HAVE_SHARED)+=$(top_builddir)lib/$(LIB_NAME).so +libclean-y+=$(LIB_NAME)_clean $(LIB_NAME)_arch_clean + +$(LIB_NAME)_arch_clean: + $(RM) $($(LIB_NAME)_DIR)/*/*.{o,os} + +include $(top_srcdir)Makefile.libs diff --git a/ldso/libdl/Makefile.in b/ldso/libdl/Makefile.in index b3dca7d9c..389484e9b 100644 --- a/ldso/libdl/Makefile.in +++ b/ldso/libdl/Makefile.in @@ -3,7 +3,13 @@ # Licensed under LGPL v2.1, see the file COPYING.LIB in this tarball for details. # -CFLAGS+=$(SSP_ALL_CFLAGS) -DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" +LIB_NAME:=libdl + +# psm: I do not know if the order of includes is relevant +# to be sure I added them first +CFLAGS:=-I$(top_builddir)ldso/include -I$(top_builddir)ldso/ldso $(CFLAGS) $(SSP_ALL_CFLAGS) + +CFLAGS+=-DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" ifeq ($(SUPPORT_LD_DEBUG),y) CFLAGS+=-D__SUPPORT_LD_DEBUG__ @@ -14,30 +20,28 @@ ifeq ($(TARGET_ARCH),mips) CFLAGS:=$(CFLAGS:-O0=-O1) endif -CFLAGS:=-I$(top_srcdir)ldso/include -I$(top_srcdir)ldso/ldso $(CFLAGS) - CFLAGS-.os=-DSHARED # we adapt CFLAGS, because libdl.a has an additional object ifeq ($(DOPIC),y) CFLAGS-.o=$(PICFLAG) -resolv:=$(top_builddir)ldso/$(TARGET_ARCH)/resolv.os +resolv:=$(top_builddir)ldso/ldso/$(TARGET_ARCH)/resolve.os else -resolv:=$(top_builddir)ldso/$(TARGET_ARCH)/resolv.o +resolv:=$(top_builddir)ldso/ldso/$(TARGET_ARCH)/resolve.o endif EXTRA_LINK_OPTS:=-fini dl_cleanup -#EXTRA_LINK_LIBS:=$(interp) -L$(top_builddir)lib -lc $(LDADD_LIBFLOAT) $(top_builddir)lib/$(UCLIBC_LDSO) $(LIBGCC) # we need for all cases a "full" libdl.a the pic version used to build libdl.so misses $(resolv) # because it is linked against ld.so DOPIC=n -LIB_NAME:=libdl srcdir=$(top_srcdir)ldso/$(LIB_NAME) $(LIB_NAME)_DIR:=$(top_builddir)ldso/$(LIB_NAME) $(LIB_NAME)_SRC:=$(srcdir)/libdl.c +$(LIB_NAME)_A_ADD:=$(resolv) + libso-$(HAVE_SHARED)+=$(top_builddir)lib/$(LIB_NAME).so liba-$(HAVE_SHARED)+=$(top_builddir)lib/$(LIB_NAME).a libclean-y+=$(LIB_NAME)_clean @@ -46,6 +50,3 @@ include $(top_srcdir)Makefile.libs # !!! these lines have to come after including Makefile.libs !!! EXTRA_LINK_LIBS+=$(top_builddir)lib/$(UCLIBC_LDSO) - -# should only go into libdl.a, OBJ_PIC is not modified here -$(LIB_NAME)_OBJ+=$(resolv) -- cgit v1.2.3