summaryrefslogtreecommitdiffstats
path: root/ldso
diff options
context:
space:
mode:
authorPeter S. Mazinger <ps.m@gmx.net>2005-10-19 20:19:47 +0000
committerPeter S. Mazinger <ps.m@gmx.net>2005-10-19 20:19:47 +0000
commit5e48b8b628e885ffd0772c991a6efa5a74946b9e (patch)
tree623d69ed093dd0e5ac75a75f50018b991734b513 /ldso
parentb6cfa5f080db02f4e7426457511278d3e2d96d67 (diff)
downloaduClibc-alpine-5e48b8b628e885ffd0772c991a6efa5a74946b9e.tar.bz2
uClibc-alpine-5e48b8b628e885ffd0772c991a6efa5a74946b9e.tar.xz
Add the current implementation to review
Diffstat (limited to 'ldso')
-rw-r--r--ldso/ldso/Makefile.in59
-rw-r--r--ldso/libdl/Makefile.in21
2 files changed, 70 insertions, 10 deletions
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)