summaryrefslogtreecommitdiff
path: root/ldso/libdl/Makefile
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2002-12-12 22:22:03 +0000
committerEric Andersen <andersen@codepoet.org>2002-12-12 22:22:03 +0000
commit26ac73a7de1ba347046f7d23400439e682e79ed5 (patch)
treee5d8c117f4610cb987bbed7a62f4b6e00a247be7 /ldso/libdl/Makefile
parent774a6c5c91078aed0e926cc6817aa10a2f5d2281 (diff)
Rework things such that staticly linked applications can use
dlopen and have it be successful. This required moving some things out of ldso.c into readelflib1.c, and directly including hash.c and readelflib1.c into dlib.c when building the static version of the library. -Erik
Diffstat (limited to 'ldso/libdl/Makefile')
-rw-r--r--ldso/libdl/Makefile32
1 files changed, 21 insertions, 11 deletions
diff --git a/ldso/libdl/Makefile b/ldso/libdl/Makefile
index 1727c7d5e..1109d9966 100644
--- a/ldso/libdl/Makefile
+++ b/ldso/libdl/Makefile
@@ -16,42 +16,52 @@
# You should have received a copy of the GNU Library General Public License
# along with this program; if not, write to the Free Software Foundation, Inc.,
# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-#
-# Derived in part from the Linux-8086 C library, the GNU C Library, and several
-# other sundry sources. Files within this library are copyright by their
-# respective copyright holders.
TOPDIR=../../
include $(TOPDIR)Rules.mak
+XXFLAGS+=-DUCLIBC_TARGET_PREFIX=\"$(TARGET_PREFIX)\" \
+ -DUCLIBC_DEVEL_PREFIX=\"$(DEVEL_PREFIX)\" \
+ -DUCLIBC_BUILD_DIR=\"$(shell cd $(TOPDIR) && pwd)\"
+ifeq ($(strip $(SUPPORT_LD_DEBUG)),y)
+XXFLAGS+=-D__SUPPORT_LD_DEBUG__
+endif
+
LIBDL=libdl.a
+LIBDL_PIC=libdl_pic.a
LIBDL_SHARED=libdl.so
LIBDL_SHARED_FULLNAME=libdl-$(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL).so
-CSRC= dlib.c
-OBJS=$(patsubst %.c,%.o, $(CSRC))
+CSRC=dlib.c
+OBJS=dlib.o
+PIC_OBJS=dlib_pic.o
all: $(OBJS) $(LIBDL) shared
$(LIBDL): ar-target
-ar-target: $(OBJS)
- $(AR) $(ARFLAGS) $(LIBDL) $(OBJS)
+ar-target: $(OBJS) $(PIC_OBJS)
+ $(AR) $(ARFLAGS) $(LIBDL) ../ldso/$(TARGET_ARCH)/resolve.o $(OBJS)
+ $(AR) $(ARFLAGS) $(LIBDL_PIC) $(PIC_OBJS)
install -d $(TOPDIR)lib
rm -f $(TOPDIR)lib/$(LIBDL)
install -m 644 $(LIBDL) $(TOPDIR)lib
-$(OBJS): %.o : %.c
- $(CC) -I../ldso -I../ldso/$(TARGET_ARCH) $(CFLAGS) -c $< -o $@
+dlib.o: dlib.c
+ $(CC) -I../ldso -I../ldso/$(TARGET_ARCH) $(CFLAGS_NOPIC) $(XXFLAGS) -c dlib.c -o dlib.o
+ $(STRIPTOOL) -x -R .note -R .comment $*.o
+
+dlib_pic.o: dlib.c
+ $(CC) -I../ldso -I../ldso/$(TARGET_ARCH) $(CFLAGS) -c dlib.c -o dlib_pic.o
$(STRIPTOOL) -x -R .note -R .comment $*.o
$(OBJ): Makefile
shared:
$(LD) $(LDFLAGS) -soname=$(LIBDL_SHARED).$(MAJOR_VERSION) \
- -o $(LIBDL_SHARED_FULLNAME) --whole-archive $(LIBDL) \
+ -o $(LIBDL_SHARED_FULLNAME) --whole-archive $(LIBDL_PIC) \
--no-whole-archive $(TOPDIR)/libc/misc/internals/interp.o \
-L$(TOPDIR)/lib -lc;
install -d $(TOPDIR)lib