* László Böszörményi [Wed Aug 26, 2015 at 07:28:02AM +0200]:
> On Fri, Aug 21, 2015 at 10:10 AM, Chris Lamb <la...@debian.org> wrote:

> >   CMake Error at CMakeLists.txt:30 (message):
> >     Could not find the devmapper library

> > From a cursory glance, devmapper.pc specifies Requires.Private librt,
> > which doesn't have a  librt.pc (which is likely correct as it's meant to
> > be linked statically? I'll leave it to you).

>  You are right in the sense that without 'Requires.private:' the
> devmapper library is found correctly. On the other hand I don't think
> static linking is mandatory as libdevmapper.so.* exists and is under
> /lib (no need to have /usr mounted, can be used in emergency shells as
> well). Can be a cmake issue? Will investigate further.

Any news here, László? I'm asking because this is an RC bug and
therefore preventing tcplay to enter Debian/stretch.

This issue was also reported towards upstream:

  https://github.com/bwalex/tc-play/issues/50

I was trying to reproduce it, though couldn't:

| -- Checking for module 'devmapper'
| --   Found devmapper, version 1.02.133

Instead if fails with:

| /usr/bin/cc  -fPIC -g -O2 -fdebug-prefix-map=/build/tcplay-1.1=. -fPIE 
-fstack-protector-strong -Wformat -Werror=format-security  -Wdate-time 
-D_FORTIFY_SOURCE=2  -Wdate-time -D_FORTIFY_SOURCE=2   
-Wl,--version-script=/build/tcplay-1.1/tcplay.map  -fPIE -pie -Wl,-z,relro 
-Wl,-z,now  -shared -Wl,-soname,libtcplay.so.1.1 -o libtcplay.so.1.1 
CMakeFiles/tcplay-so.dir/tcplay_api.c.o CMakeFiles/tcplay-so.dir/tcplay.c.o 
CMakeFiles/tcplay-so.dir/crc32.c.o CMakeFiles/tcplay-so.dir/safe_mem.c.o 
CMakeFiles/tcplay-so.dir/io.c.o CMakeFiles/tcplay-so.dir/hdr.c.o 
CMakeFiles/tcplay-so.dir/humanize.c.o CMakeFiles/tcplay-so.dir/crypto.c.o 
CMakeFiles/tcplay-so.dir/generic_xts.c.o 
CMakeFiles/tcplay-so.dir/crypto-gcrypt.c.o 
CMakeFiles/tcplay-so.dir/pbkdf2-gcrypt.c.o -ldevmapper -luuid -lgcrypt 
-lgpg-error 
| /usr/bin/ld: CMakeFiles/tcplay-so.dir/tcplay.c.o: relocation R_X86_64_PC32 
against symbol `stderr@@GLIBC_2.2.5' can not be used when making a shared 
object; recompile with -fPIC
| /usr/bin/ld: final link failed: Bad value
| collect2: error: ld returned 1 exit status

when compiling against current Debian/unstable. It looks like that's
an issue of static vs dynamic library linking. When replacing:

  set (CFLAGS_COMMON "-std=c99 -fPIE ${CFLAGS_LINUX} ${CFLAGS_WARN} 
${CFLAGS_VER}")

in CMakeLists.txt with (so adding the '-fPIC' option there):

  set (CFLAGS_COMMON "-std=c99 -fPIE -fPIC ${CFLAGS_LINUX} ${CFLAGS_WARN} 
${CFLAGS_VER}")

it indeed compiles for me.
Can you please take care of an according fixed package upload?

regards,
-mika-

Attachment: signature.asc
Description: Digital signature

Reply via email to