diff options
author | Eric Andersen <andersen@codepoet.org> | 2002-12-12 22:22:03 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2002-12-12 22:22:03 +0000 |
commit | 26ac73a7de1ba347046f7d23400439e682e79ed5 (patch) | |
tree | e5d8c117f4610cb987bbed7a62f4b6e00a247be7 /ldso/libdl/Makefile | |
parent | 774a6c5c91078aed0e926cc6817aa10a2f5d2281 (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/Makefile | 32 |
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 |