zeromq / libzmq

ZeroMQ core engine in C++, implements ZMTP/3.1
https://www.zeromq.org
Mozilla Public License 2.0
9.67k stars 2.35k forks source link

libzmq not (properly?) linking to libpgm (OpenPGM) on openSUSE Tumbleweed #4200

Open mbalmer opened 3 years ago

mbalmer commented 3 years ago

Issue description

cmake build on openSUSE Tumbleweed does not correctly link to OpenPBM (libpgm). The following command is being used:

cd build; cmake -DCMAKE_INSTALL_PREFIX=../inst \ -DCMAKE_RULE_MESSAGES=OFF -DZMQ_BUILD_TESTS=OFF \ -DWITH_DOCS=OFF -DWITH_OPENPGM=yes \ ../../../external/lgplv3/zeromq-4.3.4; make && make install

(ZeroMQ source code has been unpackaged in ../../../external/lgplv3/zeromq-4.3.4)

Environment

4.3.4

openSUSE Tumnleweed

Minimal test code / Steps to reproduce the issue

Run above command on openSUSE Tumbleweed.

What's the actual result? (include assertion message & call stack if applicable)

ake[3]: Entering directory '/home/mbalmer/src/arcapos/lib/libzmq/build' /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld: lib/libzmq.so.5.2.4: undefined reference to pgm_error_free' /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld: lib/libzmq.so.5.2.4: undefined reference topgm_send' /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld: lib/libzmq.so.5.2.4: undefined reference to pgm_shutdown' /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld: lib/libzmq.so.5.2.4: undefined reference topgm_bind3' /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld: lib/libzmq.so.5.2.4: undefined reference to pgm_socket' /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld: lib/libzmq.so.5.2.4: undefined reference topgm_gsi_create_from_data' /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld: lib/libzmq.so.5.2.4: undefined reference to pgm_free' /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld: lib/libzmq.so.5.2.4: undefined reference topgm_setsockopt' /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld: lib/libzmq.so.5.2.4: undefined reference to pgm_init' /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld: lib/libzmq.so.5.2.4: undefined reference topgm_freeaddrinfo' /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld: lib/libzmq.so.5.2.4: undefined reference to pgm_connect' /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld: lib/libzmq.so.5.2.4: undefined reference topgm_close' /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld: lib/libzmq.so.5.2.4: undefined reference to pgm_getsockopt' /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld: lib/libzmq.so.5.2.4: undefined reference topgm_getaddrinfo' /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld: lib/libzmq.so.5.2.4: undefined reference to `pgm_recvmsgv' collect2: error: ld returned 1 exit status make[3]: [CMakeFiles/proxy_thr.dir/build.make:95: bin/proxy_thr] Error 1 make[3]: Leaving directory '/home/mbalmer/src/arcapos/lib/libzmq/build' make[2]: [CMakeFiles/Makefile2:184: CMakeFiles/proxy_thr.dir/all] Error 2 make[2]: Leaving directory '/home/mbalmer/src/arcapos/lib/libzmq/build' make[1]: [Makefile:136: all] Error 2 make[1]: Leaving directory '/home/mbalmer/src/arcapos/lib/libzmq/build' make: [GNUmakefile:13: all] Error 2

What's the expected result?

A usable libzmq.so ;)

mbalmer commented 3 years ago

ZeroMQ 4.3.2 builds without problems, so this seems to be some sort of regression.

mbalmer commented 3 years ago

ZeroMQ 4.3.3 shows the same error. So the regression was introduced in 4.3.3, apparently.

mbalmer commented 3 years ago

A pull request to fix the CMakeFile.txt file has been created and awaits merging.