File tree 2 files changed +24
-10
lines changed
2 files changed +24
-10
lines changed Original file line number Diff line number Diff line change @@ -150,19 +150,24 @@ jobs:
150
150
- script : |
151
151
mkdir build && cd build
152
152
export CC=gcc-10 ; export CXX=g++-10; export CUDAHOSTCXX=$CXX; export CUDACXX=/usr/local/cuda/bin/nvcc;
153
- LIBGOMP =/usr/lib/gcc/x86_64-linux-gnu/10;
153
+ LIBGCC =/usr/lib/gcc/x86_64-linux-gnu/10;
154
154
/usr/local/bin/cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DHAVE_TESTS=1 -DENABLE_WERROR=1 -DHAVE_AVX2=1 \
155
- -DOpenMP_C_FLAGS="-fopenmp -I${LIBGOMP}" -DOpenMP_C_LIB_NAMES=gomp -DOpenMP_CXX_FLAGS="-fopenmp -I${LIBGOMP}" -DOpenMP_CXX_LIB_NAMES=gomp -DOpenMP_gomp_LIBRARY=${LIBGOMP}/libgomp.a \
155
+ -DOpenMP_C_FLAGS="-fopenmp -I${LIBGCC}" -DOpenMP_C_LIB_NAMES=gomp -DOpenMP_CXX_FLAGS="-fopenmp -I${LIBGCC}" -DOpenMP_CXX_LIB_NAMES=gomp -DOpenMP_gomp_LIBRARY=${LIBGCC}/libgomp.a \
156
+ -DATOMIC_LIB_OVERRIDE=${LIBGCC}/libatomic.a \
156
157
-DFORCE_STATIC_DEPS=1 -DENABLE_CUDA=1 -DCMAKE_CUDA_ARCHITECTURES="75-real;80-real;86-real;89-real;90" ..
157
158
cmake --build . -j$(nproc --all) -v
158
159
# fail if GLIBC_PRIVATE or too new GLIBC is present
159
- readelf -Ws src/mmseqs
160
- readelf -V src/mmseqs
161
160
if readelf -Ws src/mmseqs | grep -q GLIBC_PRIVATE; then
161
+ echo "Error: binary contains private glibc symbols"
162
162
exit 1
163
163
fi
164
164
LIBC_V=$(readelf -V src/mmseqs | awk '$3 ~ /^GLIBC_/ { print $3 }' | sort -V | tail -n1)
165
165
if [[ "$LIBC_V" > "GLIBC_2.29" ]]; then
166
+ echo "Error: glibc too new"
167
+ exit 1
168
+ fi
169
+ if readelf -d src/mmseqs | grep -q "libatomic.so"; then
170
+ echo "Error: libatomic.so is present as a dependency"
166
171
exit 1
167
172
fi
168
173
displayName: Build MMseqs2
Original file line number Diff line number Diff line change @@ -5,6 +5,7 @@ set(HAVE_GPROF 0 CACHE BOOL "Have GPROF Profiler")
5
5
set (ENABLE_WERROR 0 CACHE BOOL "Enable Warnings as Errors" )
6
6
#set(DISABLE_LTO 0 CACHE BOOL "Disable link-time optimization in non-debug builds")
7
7
set (REQUIRE_OPENMP 1 CACHE BOOL "Require availability of OpenMP" )
8
+ set (ATOMIC_LIB_OVERRIDE "" CACHE PATH "Override path to libatomic" )
8
9
9
10
include (AppendTargetProperty)
10
11
@@ -117,13 +118,21 @@ if (HAVE_POSIX_MADVISE)
117
118
endif ()
118
119
119
120
if (NOT DISABLE_IPS4O)
120
- find_package (Atomic)
121
- if (ATOMIC_FOUND)
122
- target_link_libraries (mmseqs-framework ${ATOMIC_LIBRARIES} )
121
+ if (ATOMIC_LIB_OVERRIDE)
122
+ add_library (LibAtomic STATIC IMPORTED )
123
+ set_target_properties (LibAtomic PROPERTIES IMPORTED_LOCATION ${ATOMIC_LIB_OVERRIDE} )
124
+ target_link_libraries (mmseqs-framework LibAtomic)
123
125
target_compile_definitions (mmseqs-framework PUBLIC -DENABLE_IPS4O=1)
124
- message ("-- IPS4O sorting works" )
125
- else ()
126
- message ("-- OMPTL sorting fallback" )
126
+ message ("-- IPS4O sorting forced with ${ATOMIC_LIB_OVERRIDE} " )
127
+ else ()
128
+ find_package (Atomic)
129
+ if (ATOMIC_FOUND)
130
+ target_link_libraries (mmseqs-framework ${ATOMIC_LIBRARIES} )
131
+ target_compile_definitions (mmseqs-framework PUBLIC -DENABLE_IPS4O=1)
132
+ message ("-- IPS4O sorting works" )
133
+ else ()
134
+ message ("-- OMPTL sorting fallback" )
135
+ endif ()
127
136
endif ()
128
137
else ()
129
138
message ("-- OMPTL sorting fallback" )
You can’t perform that action at this time.
0 commit comments