ibm-capi/pslse

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)
$(call Q,AR, $(AR) rcs $@ $^, $@)
bash-4.1$

looks like I pulled this fix when addressing issue 83.