scr
scr copied to clipboard
Static build fails with BBAPI enabled
First encountered this when testing the Spack builds. Was able to replicate it with bootstrap.sh.
How to Reproduce
Using bootstrap.sh from PR #452, open that file and edit the AXL cmake options to enable IBM BBAPI during a static build; e.g., -DENABLE_IBM_BBAPI=ON.
Then run bootstrap.sh and then configure scr with -DENABLE_IBM_BBAPI=ON and -DBUILD_SHARED_LIBS=OFF and build:
$ ./boostrap.sh --debug --dev --static
$ mkdir -p build && cd build
$ cmake -DCMAKE_INSTALL_PREFIX=/path/to/scr/install -DSCR_RESOURCE_MANAGER=LSF -DENABLE_IBM_BBAPI=ON -DBUILD_SHARED_LIBS=OFF ..
$ make VERBOSE=1
Resulting Error(s)
make -f src/CMakeFiles/scr_flush_file.dir/build.make src/CMakeFiles/scr_flush_file.dir/build
make[2]: Entering directory '/usr/WS1/stanavig/trash/scr/build'
[ 26%] Building C object src/CMakeFiles/scr_flush_file.dir/scr_flush_file.c.o
cd /usr/workspace/stanavig/trash/scr/build/src && /usr/tcetmp/bin/cc -I/usr/workspace/stanavig/trash/scr/install/include -I/usr/tce/packages/spectrum-mpi/ibm/spectrum-mpi-2020.08.19/include -I/usr/workspace/stanavig/trash/scr/src -I/usr/workspace/stanavig/trash/scr/build -Wall -fPIE -o CMakeFiles/scr_flush_file.dir/scr_flush_file.c.o -c /usr/workspace/stanavig/trash/scr/src/scr_flush_file.c
[ 27%] Linking C executable scr_flush_file
cd /usr/workspace/stanavig/trash/scr/build/src && /usr/tce/packages/cmake/cmake-3.14.5/bin/cmake -E cmake_link_script CMakeFiles/scr_flush_file.dir/link.txt --verbose=1
/usr/tcetmp/bin/cc -Wall -rdynamic CMakeFiles/scr_flush_file.dir/scr_flush_file.c.o -o scr_flush_file libscr_base.a ../../install/lib64/libaxl.a ../../install/lib64/libredset_base.a ../../install/lib64/libspath_base.a ../../install/lib64/libkvtree_base.a -lz -lpthread
../../install/lib64/libaxl.a(axl_async_bbapi.c.o): In function `getLastErrorDetails':
/usr/workspace/stanavig/trash/scr/deps/AXL/src/axl_async_bbapi.c:127: undefined reference to `BB_GetLastErrorDetails'
/usr/workspace/stanavig/trash/scr/deps/AXL/src/axl_async_bbapi.c:130: undefined reference to `BB_GetLastErrorDetails'
../../install/lib64/libaxl.a(axl_async_bbapi.c.o): In function `axl_async_init_bbapi':
/usr/workspace/stanavig/trash/scr/deps/AXL/src/axl_async_bbapi.c:219: undefined reference to `BB_InitLibrary'
../../install/lib64/libaxl.a(axl_async_bbapi.c.o): In function `axl_async_finalize_bbapi':
/usr/workspace/stanavig/trash/scr/deps/AXL/src/axl_async_bbapi.c:236: undefined reference to `BB_TerminateLibrary'
../../install/lib64/libaxl.a(axl_async_bbapi.c.o): In function `axl_async_create_bbapi':
/usr/workspace/stanavig/trash/scr/deps/AXL/src/axl_async_bbapi.c:294: undefined reference to `BB_CreateTransferDef'
/usr/workspace/stanavig/trash/scr/deps/AXL/src/axl_async_bbapi.c:305: undefined reference to `BB_GetTransferHandle'
../../install/lib64/libaxl.a(axl_async_bbapi.c.o): In function `axl_async_add_bbapi':
/usr/workspace/stanavig/trash/scr/deps/AXL/src/axl_async_bbapi.c:355: undefined reference to `BB_AddFiles'
../../install/lib64/libaxl.a(axl_async_bbapi.c.o): In function `__axl_async_start_bbapi':
/usr/workspace/stanavig/trash/scr/deps/AXL/src/axl_async_bbapi.c:421: undefined reference to `BB_StartTransfer'
/usr/workspace/stanavig/trash/scr/deps/AXL/src/axl_async_bbapi.c:444: undefined reference to `BB_FreeTransferDef'
../../install/lib64/libaxl.a(axl_async_bbapi.c.o): In function `transfer_is_complete_bbapi':
/usr/workspace/stanavig/trash/scr/deps/AXL/src/axl_async_bbapi.c:518: undefined reference to `BB_GetTransferInfo'
../../install/lib64/libaxl.a(axl_async_bbapi.c.o): In function `axl_async_cancel_bbapi':
/usr/workspace/stanavig/trash/scr/deps/AXL/src/axl_async_bbapi.c:653: undefined reference to `BB_CancelTransfer'
collect2: error: ld returned 1 exit status
make[2]: *** [src/CMakeFiles/scr_flush_file.dir/build.make:90: src/scr_flush_file] Error 1
make[2]: Leaving directory '/usr/WS1/stanavig/trash/scr/build'
make[1]: *** [CMakeFiles/Makefile2:1168: src/CMakeFiles/scr_flush_file.dir/all] Error 2
make[1]: Leaving directory '/usr/WS1/stanavig/trash/scr/build'
make: *** [Makefile:141: all] Error 2
Related to #318