Underlinkage: libcxl.so is underlinked and does not show libpthread using ldd
Closed this issue · 1 comments
bash-4.1$ ldd ../../pslse/libcxl/libcxl.so
linux-vdso.so.1 => (0x00007fffb81d7000)
libc.so.6 => /lib64/libc.so.6 (0x00002b228488b000)
/lib64/ld-linux-x86-64.so.2 (0x00000030df800000)
bash-4.1$
This enforces that all applications using this must do a -pthread to avoid problems during linkage.
Better is this:
bash-4.1$ ldd libcxl.so
linux-vdso.so.1 => (0x00007fff551d8000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00002b12ca601000)
libc.so.6 => /lib64/libc.so.6 (0x00002b12ca81f000)
/lib64/ld-linux-x86-64.so.2 (0x00000030df800000)
bash-4.1$
Using this:
diff --git a/libcxl/Makefile b/libcxl/Makefile
index a956dc6..46f17be 100644
--- a/libcxl/Makefile
+++ b/libcxl/Makefile
@@ -4,6 +4,7 @@ include Makefile.vars
include Makefile.rules
OBJS = libcxl.o debug.o utils.o
+LDLIBS = -pthread
all: libcxl.so libcxl.a
@@ -17,7 +18,7 @@ endif
libcxl.o: $(COMMON_DIR)/misc/cxl.h
libcxl.so: $(OBJS)
-
$(call Q,CC, $(CC) $(CFLAGS) -shared $^ -o $@, $@) -Wl,--version-script symver.map
-
$(call Q,CC, $(CC) $(CFLAGS) -shared $^ -o $@ $(LDLIBS), $@) -Wl,--version-script symver.map
libcxl.a: $(OBJS)
bash-4.1$
looks like I pulled this fix when addressing issue 83.