summaryrefslogtreecommitdiff
path: root/libc/misc
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2002-02-18 08:45:53 +0000
committerEric Andersen <andersen@codepoet.org>2002-02-18 08:45:53 +0000
commitc35cde1edbe9d3375ed880fe8bb7d0fffba2f000 (patch)
tree8eb890508a7c6f00aeaa035dbb23a687e0a4cae4 /libc/misc
parent5305b3df0ac3b6970947180fa9b2fcad0b6e6364 (diff)
Make shared libs properly list the correct ld.so in the interp
field by being sneaky.
Diffstat (limited to 'libc/misc')
-rw-r--r--libc/misc/internals/Makefile15
1 files changed, 12 insertions, 3 deletions
diff --git a/libc/misc/internals/Makefile b/libc/misc/internals/Makefile
index 8e4d160a9..29ffdec7b 100644
--- a/libc/misc/internals/Makefile
+++ b/libc/misc/internals/Makefile
@@ -35,17 +35,26 @@ endif
COBJS=$(patsubst %.c,%.o, $(CSRC))
OBJS=$(COBJS)
-all: $(OBJS) $(LIBC)
+all: $(OBJS) interp.o $(LIBC)
-$(LIBC): ar-target
+$(LIBC): interp.c ar-target
ar-target: $(OBJS)
$(AR) $(ARFLAGS) $(LIBC) $(OBJS)
+interp.c: Makefile
+ echo "/* Force shared libraries to know about the correct library loader */" > interp.c
+ echo "const char __dl_ldso__[] __attribute__ ((section " \
+ "(\".interp\"))) =\""$(DYNAMIC_LINKER)"\";" >> interp.c
+
$(COBJS): %.o : %.c
$(CC) $(CFLAGS) -c $< -o $@
$(STRIPTOOL) -x -R .note -R .comment $*.o
+interp.o: %.o : %.c
+ $(CC) $(CFLAGS) -c $< -o $@
+ $(STRIPTOOL) -x -R .note -R .comment $*.o
+
clean:
- rm -f *.[oa] *~ core
+ rm -f *.[oa] interp.c *~ core