On
Mon, May 20, 2019 at 10:26 AM Ben Cotton <bcotton@xxxxxxxxxxxxxxxxx>
wrote:
[ 99%] Linking CXX executable gahp_server
/usr/bin/ld: CMakeFiles/gahp_server.dir/gahp_server.cpp.o: undefined
reference to symbol 'dlopen@@GLIBC_2.2.5'
/usr/bin/ld: /usr/lib/gcc/x86_64-redhat-linux/9/../../../../lib64/libdl.so:
error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
From what I can tell on Stack Overflow et al, the solution is a change
to the arguments to ld, but I'm not sure what or where to make those
changes. This also affects 8.6.11 building on F30 (presumably it's a
change in behavior between glibc 2.28 (in F29) and 2.29 (in F30 and
rawhide)
Hokay!
So I wrote a patch that gets me through the compile:
https://src.fedoraproject.org/rpms/condor/blob/master/f/libdl.patch
This
doesn't seem to be in the idiom of HTCondor, but I don't know
enough
about CMake to know how to make it not an ugly hack. If you
want,
I'll open a ticket with the patch attached and you can do what
you
want with it. This will probably be necessary as your supported
platforms
move to glibc 2.29.
It looks like we already try to include -ldl on all link lines using CMAKE_EXE_LINKER_FLAGS, but it comes before any of the object files. I wonder if thatâs whatâs tripping up the build on F30.
In your patch, you can use ${HAVE_LIBDL} instead of -ldl. If that works, I can push the change.
- Jaime
|