Open SMillerDev opened 1 year ago
What arguments are being supplied to Cmake? by default libapib-parser.so and other internals should be statically linked.
$ mkdir build
$ cd build
$ cmake ..
$ make drafter-cli
...
[ 43%] Built target drafter-obj
[ 44%] Linking CXX static library libapib-parser.
...
$ ldd packages/drafter/drafter
linux-vdso.so.1 (0x00007ffc20fcc000)
libstdc++.so.6 => /nix/store/yazs3bdl481s2kyffgsa825ihy1adn8f-gcc-12.2.0-lib/lib/libstdc++.so.6 (0x00007fa08ee3e000)
libm.so.6 => /nix/store/yaz7pyf0ah88g2v505l38n0f3wg2vzdj-glibc-2.37-8/lib/libm.so.6 (0x00007fa08ed5e000)
libgcc_s.so.1 => /nix/store/yazs3bdl481s2kyffgsa825ihy1adn8f-gcc-12.2.0-lib/lib/libgcc_s.so.1 (0x00007fa08ed3d000)
libc.so.6 => /nix/store/yaz7pyf0ah88g2v505l38n0f3wg2vzdj-glibc-2.37-8/lib/libc.so.6 (0x00007fa08eb57000)
/nix/store/yaz7pyf0ah88g2v505l38n0f3wg2vzdj-glibc-2.37-8/lib/ld-linux-x86-64.so.2 => /nix/store/yaz7pyf0ah88g2v505l38n0f3wg2vzdj-glibc-2.37-8/lib64/ld-linux-x86-64.so.2 (0x00007fa08f066000)
Using %cmake -DBUILD_TESTING=OFF -DCMAKE_VERBOSE_MAKEFILE=ON
spec macro to build an RPM, which expands to the following:
/usr/bin/cmake -S . -B redhat-linux-build -DCMAKE_C_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_CXX_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_Fortran_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_INSTALL_DO_STRIP:BOOL=OFF -DCMAKE_INSTALL_PREFIX:PATH=/usr -DINCLUDE_INSTALL_DIR:PATH=/usr/include -DLIB_INSTALL_DIR:PATH=/usr/lib64 -DSYSCONF_INSTALL_DIR:PATH=/etc -DSHARE_INSTALL_PREFIX:PATH=/usr/share -DLIB_SUFFIX=64 -DBUILD_SHARED_LIBS:BOOL=ON -DBUILD_TESTING=OFF -DCMAKE_VERBOSE_MAKEFILE=ON
/usr/bin/cmake --build redhat-linux-build -j2 --verbose
/usr/bin/cmake --install redhat-linux-build
LDD for the build on RHEL:
sean@phanpy:~$ ldd BUILDROOT/drafter-5.1.0-1.move.el9.x86_64/usr/bin/drafter
linux-vdso.so.1 (0x00007ffe5cb32000)
libapib-parser.so => not found
libapib.so => not found
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f2c42600000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f2c4296c000)
libc.so.6 => /lib64/libc.so.6 (0x00007f2c42200000)
libm.so.6 => /lib64/libm.so.6 (0x00007f2c42891000)
/lib64/ld-linux-x86-64.so.2 (0x00007f2c42a37000)
Trying to run
drafter
after building in from source with CMake on RHEL gives: