diasurgical / devilutionX

Diablo build for modern operating systems
Other
7.98k stars 780 forks source link

linking issues with 1.4.0 #4535

Closed twojstaryzdomu closed 2 years ago

twojstaryzdomu commented 2 years ago

Important information openSuSE Leap 15.3 devilutionX 1.4.0

Describe Linking problems with 1.4.0. Release 1.3.0 built fine against the same rpm spec file. Full output in attachment. devilutionX-1.4.0-build.log

To Reproduce Steps to reproduce the behavior:

rpm spec file with the following steps for build:

%build
%cmake -DCMAKE_BUILD_TYPE:STRING=Release -DDEBUG=OFF -DVERSION_NUM=%{version}
make %{?_smp_mflags}

Expected behaviour Build without stated problem

AJenbo commented 2 years ago

Looks like your issue is actually with building https://github.com/zerotier/ZeroTierOne, we updated to the latest version between 1.3.0 and 1.4.0. You can disable ZeroTier or use a prebuild release for the time being.

StephenCWills commented 2 years ago

FYI, these errors look similar to those in #4531. You can read the discussion there for more info.

twojstaryzdomu commented 2 years ago

@AJenbo, would you mind not closing hastily without getting an answer first?

Why is this a problem all of a sudden, when the release compiled before? I'm not building ZeroTierOne separately, only your own sourcecode.

AJenbo commented 2 years ago

I closed it since the issue is better taken up with the ZeroTier developers. The ZeroTierOne source is pulled in as a dependency and build from there. Like I said we upgraded the version of ZeroTierOne (1.4.6 -> 1.8.4) between the two releases so it's a regression in the ZeroTierOne project. If they fix the issue we can pull in the update and it will be resolved for DevilutionX that way.

This issue being closed doesn't really change anything, you can still comment and ask questions. But the issue is clearly with https://github.com/zerotier/ZeroTierOne and not DevilutionX, and so you should create the issue in there issue tracker instead. Once solved upstream you can create an issue requesting that we update to the latest version of ZeroTierOne.

twojstaryzdomu commented 2 years ago

Thank you. I leave opening the issue with ZeroTierOne to you as having a greater picture why exactly this is a regression. I have no idea how this integrates in your code. Is it possible to specify the version of ZeroTierOne anywhere? I'd like to compile this against 1.4.6 in the meantime.

AJenbo commented 2 years ago

The version being used is controlled here: https://github.com/StephenCWills/devilutionX/blob/master/3rdParty/libzt/CMakeLists.txt#L8 For 1.3.0 we where using 31f8b05c3462f9d8466aa0a55df0042f13fc1096

The following is various versions that we have used in between and so are most likely to be compatible with out needing other changes to the intergration:

fe2f8dcb0ce32b990c13d63c6217bbf35bbd547f a1acf0119888f645ceae69ecea2b6174ee220da5 2607962e3b2c1def68479f7dc382c7508c367365 a9974991b031fd8f84c4bcfd93f129b3938ed8c8 b2be9882771116fcfd4ad918f36de8587324d9e7 31f8b05c3462f9d8466aa0a55df0042f13fc1096 a1acf0119888f645ceae69ecea2b6174ee220da5 2607962e3b2c1def68479f7dc382c7508c367365 97a405529d64d9589e9fc785d6d1d2c597f92478

AJenbo commented 2 years ago

If you can let us know if the latest version of ZeroTier (1.8.9) resolves the situation that would be helpful.

StephenCWills commented 2 years ago

FYI, reverting libzt to its previous version is not as simple as it sounds. They changed some function calls and variable names, plus we've completely reorganized our build scripts since then. See: https://github.com/StephenCWills/devilutionX/commit/9b32c8d54110ad1a2610d741a41ae3eceeaf658e

As I mentioned in #4531, I cannot reproduce the errors on Debian Linux so it's currently anyone's guess why you are receiving these now when you didn't before. If you can figure out why the errors occur, I'd really like to know.

Lastly, I think the appropriate project to report these errors to is libzt, not ZeroTierOne. https://github.com/zerotier/libzt

StephenCWills commented 2 years ago

One last thing, in case this information is helpful to you in tracking this down. One of the biggest reasons why I'm a bit baffled by this error is because the lwIP library has seen almost no changes since the previous version. https://github.com/diasurgical/lwip/compare/STABLE-2_1_x..joseph-henry:STABLE-2_1_x

Therefore, it should stand to reason that these errors shouldn't be possible if they didn't also occur when you built DevilutionX 1.3.0.

[ 20%] Linking C shared library lib/liblwip_pic.so
...
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /tmp/ccP2zhIo.ltrans0.ltrans.o: in function `lwip_shutdown':
/home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/lwip/src/api/sockets.c:2696: undefined reference to `zts_errno'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/lwip/src/api/sockets.c:2672: undefined reference to `zts_errno'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/lwip/src/api/sockets.c:2690: undefined reference to `zts_errno'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /tmp/ccP2zhIo.ltrans0.ltrans.o: in function `lwip_listen':
/home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/lwip/src/api/sockets.c:903: undefined reference to `zts_errno'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/lwip/src/api/sockets.c:911: undefined reference to `zts_errno'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /tmp/ccP2zhIo.ltrans0.ltrans.o:/home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/lwip/src/api/sockets.c:905: more undefined references to `zts_errno' follow
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /tmp/ccP2zhIo.ltrans0.ltrans.o: in function `sys_mutex_new':
/home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/lwip-contrib/ports/unix/port/sys_arch.c:603: undefined reference to `pthread_mutexattr_init'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/lwip-contrib/ports/unix/port/sys_arch.c:604: undefined reference to `pthread_mutexattr_settype'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /tmp/ccP2zhIo.ltrans0.ltrans.o: in function `sys_sem_new_internal':
/home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/lwip-contrib/ports/unix/port/sys_arch.c:459: undefined reference to `pthread_condattr_setclock'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /tmp/ccP2zhIo.ltrans0.ltrans.o: in function `lwip_ioctl':
/home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/lwip/src/api/sockets.c:3804: undefined reference to `zts_errno'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/lwip/src/api/sockets.c:3827: undefined reference to `zts_errno'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/lwip/src/api/sockets.c:3761: undefined reference to `zts_errno'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /tmp/ccP2zhIo.ltrans0.ltrans.o: in function `sys_sem_new_internal':
/home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/lwip-contrib/ports/unix/port/sys_arch.c:459: undefined reference to `pthread_condattr_setclock'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/lwip-contrib/ports/unix/port/sys_arch.c:459: undefined reference to `pthread_condattr_setclock'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/lwip-contrib/ports/unix/port/sys_arch.c:459: undefined reference to `pthread_condattr_setclock'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /tmp/ccP2zhIo.ltrans0.ltrans.o: in function `sys_thread_new':
/home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/lwip-contrib/ports/unix/port/sys_arch.c:188: undefined reference to `pthread_create'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /tmp/ccP2zhIo.ltrans0.ltrans.o: in function `lwip_close':
/home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/lwip/src/api/sockets.c:804: undefined reference to `zts_errno'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /tmp/ccP2zhIo.ltrans0.ltrans.o: in function `lwip_accept':
/home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/lwip/src/api/sockets.c:647: undefined reference to `zts_errno'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/lwip/src/api/sockets.c:695: undefined reference to `zts_errno'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/lwip/src/api/sockets.c:713: undefined reference to `zts_errno'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/lwip/src/api/sockets.c:659: undefined reference to `zts_errno'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /tmp/ccP2zhIo.ltrans0.ltrans.o:/home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/lwip/src/api/sockets.c:645: more undefined references to `zts_errno' follow
collect2: error: ld returned 1 exit status
make[2]: *** [_deps/libzt-build/CMakeFiles/lwip_pic.dir/build.make:896: _deps/libzt-build/lib/liblwip_pic.so] Error 1
make[2]: Leaving directory '/home/username/rpmbuild/BUILD/devilutionX-1.4.0/build'
make[1]: *** [CMakeFiles/Makefile2:2039: _deps/libzt-build/CMakeFiles/lwip_pic.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

The only explanations I can think of would be:

  1. An obscure flag or dependency in the libzt build script introduced the error.
  2. Something changed in your build environment.
twojstaryzdomu commented 2 years ago

Something changed in your build environment.

With the release 1.3.0, I needed to downgrade libfmt in CMakeLists.txt, it wouldn't otherwise build (sorry couldn't be bothered with a proper patch). The build of release 1.4.0 still fails, whether this fix is on or off.

%build
sed -i '0,/set(DIST ON/s/set(DIST ON/set(DIST OFF/;s/fmt 7/fmt 6/g' CMakeLists.txt
%cmake -DCMAKE_BUILD_TYPE:STRING=Release -DDEBUG=OFF -DVERSION_NUM=%{version}
make %{?_smp_mflags}

We can rule out a change, release 1.3.0 has rebuilt fine just now:

ls -la /home/username/rpmbuild/SRPMS/devilutionX-1.3.0-1.src.rpm
-rw-rw-r-- 1 username users 6807390 05-04 16:13 /home/username/rpmbuild/SRPMS/devilutionX-1.3.0-1.src.rpm
StephenCWills commented 2 years ago

In that case, my best guess would be this: zerotier/libzt@58c4cb9

I must admit that this code seems nonsensical. According to CMake documentation, the $<TARGET_OBJECTS:objlib> generator expression is meant to be used with object libraries so I'm not sure what the rationale was for libzt to reference the PIC libraries in this way. The result seems to be that the zt-static target now depends on the PIC libraries themselves rather than on the object files and the build process is now linking each of those libraries independently. I suppose that prior to this, those PIC libraries must have been ignored by the build process, bypassing the undefined reference errors altogether.

twojstaryzdomu commented 2 years ago

@StephenCWills compilation fails with the changes from the commit you gave:

-- Configuring done
CMake Error at build/_deps/libzt-src/CMakeLists.txt:390 (add_library):
  Error evaluating generator expression:

    $<TARGET_OBJECTS:libnatpmp_pic>

  Objects of target "libnatpmp_pic" referenced but no such target exists.

CMake Error at build/_deps/libzt-src/CMakeLists.txt:390 (add_library):
  Error evaluating generator expression:

    $<TARGET_OBJECTS:libnatpmp_pic>

  Objects of target "libnatpmp_pic" referenced but no such target exists.

CMake Error at build/_deps/libzt-src/CMakeLists.txt:390 (add_library):
  No SOURCES given to target: zt-static

CMake Generate step failed.  Build files cannot be regenerated correctly.

@AJenbo devilutionX failed to build against any of those commits. And so did the latest commit from libzt 1.8.10 (specifically GIT_REPOSITORY = https://github.com/zerotier/libzt & GIT_TAG = ec9f520d68728d57559b240ea7e6c7c22950117f), failing as follows:

[ 26%] Building CXX object _deps/libzt-build/CMakeFiles/zto_pic.dir/ext/ZeroTierOne/node/Multicaster.cpp.o
[ 26%] Building CXX object _deps/libzt-build/CMakeFiles/zto_pic.dir/ext/ZeroTierOne/node/Network.cpp.o
[ 28%] Building CXX object _deps/libzt-build/CMakeFiles/zto_pic.dir/ext/ZeroTierOne/node/NetworkConfig.cpp.o
[ 28%] Building CXX object _deps/libzt-build/CMakeFiles/zto_pic.dir/ext/ZeroTierOne/node/Node.cpp.o
[ 28%] Building CXX object _deps/libzt-build/CMakeFiles/zto_pic.dir/ext/ZeroTierOne/node/OutboundMulticast.cpp.o
[ 28%] Building CXX object _deps/libzt-build/CMakeFiles/zto_pic.dir/ext/ZeroTierOne/node/Packet.cpp.o
[ 28%] Building CXX object _deps/libzt-build/CMakeFiles/zto_pic.dir/ext/ZeroTierOne/node/Path.cpp.o
[ 28%] Building CXX object _deps/libzt-build/CMakeFiles/zto_pic.dir/ext/ZeroTierOne/node/Peer.cpp.o
[ 29%] Building CXX object _deps/libzt-build/CMakeFiles/zto_pic.dir/ext/ZeroTierOne/node/Poly1305.cpp.o
[ 29%] Building CXX object _deps/libzt-build/CMakeFiles/zto_pic.dir/ext/ZeroTierOne/node/Revocation.cpp.o
[ 29%] Building CXX object _deps/libzt-build/CMakeFiles/zto_pic.dir/ext/ZeroTierOne/node/SHA512.cpp.o
[ 29%] Building CXX object _deps/libzt-build/CMakeFiles/zto_pic.dir/ext/ZeroTierOne/node/Salsa20.cpp.o
[ 29%] Building CXX object _deps/libzt-build/CMakeFiles/zto_pic.dir/ext/ZeroTierOne/node/SelfAwareness.cpp.o
[ 29%] Building CXX object _deps/libzt-build/CMakeFiles/zto_pic.dir/ext/ZeroTierOne/node/Switch.cpp.o
[ 30%] Building CXX object _deps/libzt-build/CMakeFiles/zto_pic.dir/ext/ZeroTierOne/node/Tag.cpp.o
[ 30%] Building CXX object _deps/libzt-build/CMakeFiles/zto_pic.dir/ext/ZeroTierOne/node/Topology.cpp.o
[ 30%] Building CXX object _deps/libzt-build/CMakeFiles/zto_pic.dir/ext/ZeroTierOne/node/Trace.cpp.o
[ 30%] Building CXX object _deps/libzt-build/CMakeFiles/zto_pic.dir/ext/ZeroTierOne/node/Utils.cpp.o
[ 30%] Building CXX object _deps/libzt-build/CMakeFiles/zto_pic.dir/ext/ZeroTierOne/osdep/OSUtils.cpp.o
[ 30%] Building CXX object _deps/libzt-build/CMakeFiles/zto_pic.dir/ext/ZeroTierOne/osdep/PortMapper.cpp.o
[ 31%] Linking CXX shared library lib/libzto_pic.so
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /tmp/ccqOXYlB.ltrans7.ltrans.o: in function `start':
/home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/ZeroTierOne/osdep/Thread.hpp:152: undefined reference to `pthread_attr_setstacksize'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/ZeroTierOne/osdep/Thread.hpp:153: undefined reference to `pthread_create'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /tmp/ccqOXYlB.ltrans7.ltrans.o: in function `threadMain':
/home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/ZeroTierOne/osdep/PortMapper.cpp:106: undefined reference to `initnatpmp'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/ZeroTierOne/osdep/PortMapper.cpp:116: undefined reference to `sendpublicaddressrequest'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/ZeroTierOne/osdep/PortMapper.cpp:123: undefined reference to `getnatpmprequesttimeout'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/ZeroTierOne/osdep/PortMapper.cpp:125: undefined reference to `readnatpmpresponseorretry'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/ZeroTierOne/osdep/PortMapper.cpp:139: undefined reference to `sendnewportmappingrequest'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/ZeroTierOne/osdep/PortMapper.cpp:146: undefined reference to `getnatpmprequesttimeout'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/ZeroTierOne/osdep/PortMapper.cpp:148: undefined reference to `readnatpmpresponseorretry'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/ZeroTierOne/osdep/PortMapper.cpp:165: undefined reference to `closenatpmp'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/ZeroTierOne/osdep/PortMapper.cpp:191: undefined reference to `upnpDiscoverAll'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/ZeroTierOne/osdep/PortMapper.cpp:210: undefined reference to `UPNP_GetValidIGD'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/ZeroTierOne/osdep/PortMapper.cpp:286: undefined reference to `freeUPNPDevlist'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/ZeroTierOne/osdep/PortMapper.cpp:108: undefined reference to `closenatpmp'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/ZeroTierOne/osdep/PortMapper.cpp:162: undefined reference to `closenatpmp'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/ZeroTierOne/osdep/PortMapper.cpp:214: undefined reference to `UPNP_GetExternalIPAddress'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/ZeroTierOne/osdep/PortMapper.cpp:240: undefined reference to `UPNP_GetSpecificPortMappingEntry'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/ZeroTierOne/osdep/PortMapper.cpp:255: undefined reference to `UPNP_AddPortMapping'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /home/username/rpmbuild/BUILD/devilutionX-1.4.0/build/_deps/libzt-src/ext/ZeroTierOne/osdep/PortMapper.cpp:286: undefined reference to `freeUPNPDevlist'
collect2: error: ld returned 1 exit status
make[2]: *** [_deps/libzt-build/CMakeFiles/zto_pic.dir/build.make:566: _deps/libzt-build/lib/libzto_pic.so] Error 1
make[2]: Leaving directory '/home/username/rpmbuild/BUILD/devilutionX-1.4.0/build'
make[1]: *** [CMakeFiles/Makefile2:2120: _deps/libzt-build/CMakeFiles/zto_pic.dir/all] Error 2
make[1]: Leaving directory '/home/username/rpmbuild/BUILD/devilutionX-1.4.0/build'
katnatek commented 1 year ago

Finally find solution for this an my https://github.com/diasurgical/devilutionX/issues/4531 I suppose in suse is similar , add in the spec file %define _disable_ld_no_undefined 1 , see https://wiki.mageia.org/en/Underlinking_issues_in_packaging