Skip to content

Commit ea5daf9

Browse files
authored
Added support for native build (#163)
1 parent 863ba1d commit ea5daf9

File tree

7 files changed

+26
-76
lines changed

7 files changed

+26
-76
lines changed

build.sh

+12-4
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ start_time=$(date +%s)
1111

1212
# Always use bash
1313
shell=$(basename $(readlink /proc/$$/exe))
14-
if [ ! x$shell = x"bash" ] && [[ x$shell != x"qemu-aarch64"* ]]
14+
if [ ! x$shell = x"bash" ] && [ x$shell != x"qemu-aarch64"* ]
1515
then
1616
bash $0 $@
1717
exit $?
@@ -186,8 +186,11 @@ cd $build_dir
186186

187187
echo "Starting building third-party libraries"
188188

189+
[[ -z ${isa} ]] && isa=generic
190+
189191
$cmake_cmd -DDOWNLOAD_DIR=$download_dir \
190192
-DCMAKE_INSTALL_PREFIX=$install_dir \
193+
-DUSE_ISA=${isa} \
191194
${C_COMPILER_ARG} ${CXX_COMPILER_ARG} \
192195
${DISABLE_CXX11_ABI} \
193196
$source_dir |& tee $logfile
@@ -259,14 +262,14 @@ done
259262
# Remove CMake configs of boost
260263
rm -rf $install_dir/lib/cmake/[Bb]oost*
261264

262-
march=$(uname -m)
265+
march=${isa:-$(uname -m)}
263266

264267
cat > $install_dir/version-info <<EOF
265268
Package : Nebula Third Party
266269
Version : $VERSION
267270
Date : $(date)
268271
glibc : $libc_version
269-
Arch : $march
272+
Arch : $(uname -m)($march)
270273
Compiler : GCC $gcc_version
271274
C++ ABI : $abi_version
272275
Vendor : VEsoft Inc.
@@ -283,7 +286,12 @@ set -e
283286
hash xz &> /dev/null || { echo "xz: Command not found"; exit 1; }
284287
285288
[[ \$# -ne 0 ]] && prefix=\$(echo "\$@" | sed 's;.*--prefix=(\S*).*;\1;p' -rn)
286-
prefix=\${prefix:-/opt/vesoft/third-party/$VERSION}
289+
if [[ $isa = "generic" ]]
290+
then
291+
prefix=\${prefix:-/opt/vesoft/third-party/$VERSION}
292+
else
293+
prefix=\${prefix:-/opt/vesoft/third-party/$isa/$VERSION}
294+
fi
287295
mkdir -p \$prefix
288296
289297
[[ -w \$prefix ]] || { echo "\$prefix: No permission to write"; exit 1; }

project/CMakeLists.txt

+10-25
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,11 @@ else()
133133
set(extra_cpp_flags "-D_GLIBCXX_USE_CXX11_ABI=1")
134134
endif()
135135

136+
set(ISA_FLAGS "")
137+
if (NOT ${USE_ISA} STREQUAL "" AND NOT ${USE_ISA} STREQUAL "generic")
138+
set(ISA_FLAGS "-march=${USE_ISA} -mtune=${USE_ISA}")
139+
endif()
140+
136141
if(GLIBC_VERSION VERSION_LESS 2.17)
137142
set(extra_link_libs "${extra_link_libs} -lrt")
138143
endif()
@@ -141,8 +146,8 @@ set(common_cmake_args
141146
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
142147
"-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}"
143148
"-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}"
144-
"-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} -fno-omit-frame-pointer -fPIC ${extra_cpp_flags}"
145-
"-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -fno-omit-frame-pointer -fPIC"
149+
"-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} -fno-omit-frame-pointer -fPIC ${extra_cpp_flags} ${ISA_FLAGS}"
150+
"-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -fno-omit-frame-pointer -fPIC ${ISA_FLAGS}"
146151
"-DCMAKE_EXE_LINKER_FLAGS=${extra_link_libs} -Wl,-rpath=\$ORIGIN/../lib:\$ORIGIN/../lib64"
147152
-DCMAKE_SHARED_LINKER_FLAGS=-Wl,-rpath=\$ORIGIN:\$ORIGIN/../3rd:\$ORIGIN/../lib64:\$ORIGIN/../lib
148153
-DCMAKE_INCLUDE_PATH=${CMAKE_INSTALL_PREFIX}/include
@@ -180,8 +185,8 @@ set(common_configure_envs
180185
"env"
181186
"CC=${CMAKE_C_COMPILER}"
182187
"CXX=${CMAKE_CXX_COMPILER}"
183-
"CFLAGS=${CMAKE_C_FLAGS} -fcommon -fno-omit-frame-pointer -fPIC -O2 -D_DEFAULT_SOURCE -D_GNU_SOURCE ${extra_cpp_flags}"
184-
"CXXFLAGS=${CMAKE_CXX_FLAGS} -fcommon -fno-omit-frame-pointer -fPIC -O2 -D_DEFAULT_SOURCE -D_GNU_SOURCE ${extra_cpp_flags}"
188+
"CFLAGS=${CMAKE_C_FLAGS} -fcommon -fno-omit-frame-pointer -fPIC -O2 -D_DEFAULT_SOURCE -D_GNU_SOURCE ${extra_cpp_flags} ${ISA_FLAGS}"
189+
"CXXFLAGS=${CMAKE_CXX_FLAGS} -fcommon -fno-omit-frame-pointer -fPIC -O2 -D_DEFAULT_SOURCE -D_GNU_SOURCE ${extra_cpp_flags} ${ISA_FLAGS}"
185190
"CPPFLAGS=-isystem ${CMAKE_INSTALL_PREFIX}/include -I${BERKELEYDB_INCLUDE_DIR} ${extra_cpp_flags}"
186191
"LDFLAGS=-Wl,-rpath=\\\\$\\$ORIGIN ${ld_flags}"
187192
"LD_LIBRARY_PATH=$$LD_LIBRARY_PATH:${CMAKE_INSTALL_PREFIX}/lib:${CMAKE_INSTALL_PREFIX}/lib64"
@@ -196,13 +201,12 @@ set(ALL_TARGETS
196201
boost
197202
#breakpad
198203
bzip2
199-
cachelib
204+
#cachelib
200205
cyrus-sasl
201206
date
202207
double-conversion
203208
duckdb
204209
fatal
205-
fbthrift
206210
fizz
207211
flex
208212
fmt
@@ -330,7 +334,6 @@ maybe_add_dependencies(s2geometry googletest glog openssl abseil)
330334
maybe_add_dependencies(folly glog boost double-conversion openssl libevent lzma zstd snappy lz4 libunwind fmt sodium jemalloc libdwarf)
331335
maybe_add_dependencies(fizz folly)
332336
maybe_add_dependencies(wangle folly fizz)
333-
maybe_add_dependencies(fbthrift folly bison flex mstch zlib zstd wangle fatal)
334337
maybe_add_dependencies(proxygen wangle libunwind gperf)
335338
maybe_add_dependencies(rocksdb snappy zlib zstd bzip2 lz4 lzma libunwind)
336339
maybe_add_dependencies(cachelib fbthrift sparsemap fizz googletest)
@@ -345,24 +348,6 @@ maybe_add_dependencies(re2 abseil)
345348
maybe_add_dependencies(grpc protobuf re2 c-ares openssl)
346349
maybe_add_dependencies(faiss openblas)
347350

348-
#if (EXISTS ${CMAKE_INSTALL_PREFIX}/lib64)
349-
#add_custom_target(
350-
#strip-archives ALL
351-
#COMMAND
352-
#strip --strip-unneeded ${CMAKE_INSTALL_PREFIX}/lib/*.a
353-
#COMMAND
354-
#strip --strip-unneeded ${CMAKE_INSTALL_PREFIX}/lib64/*.a
355-
#DEPENDS ${ALL_TARGETS}
356-
#)
357-
#else()
358-
#add_custom_target(
359-
#strip-archives ALL
360-
#COMMAND
361-
#strip --strip-unneeded ${CMAKE_INSTALL_PREFIX}/lib/*.a
362-
#DEPENDS ${ALL_TARGETS}
363-
#)
364-
#endif()
365-
366351
add_custom_target(
367352
clean-all
368353
DEPENDS ${CLEAN_TARGETS}

project/externals/boost.cmake

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ ExternalProject_Add(
4343
--disable-icu
4444
include=${CMAKE_INSTALL_PREFIX}/include
4545
linkflags=-L${CMAKE_INSTALL_PREFIX}/lib
46-
"cxxflags=-fPIC ${extra_cpp_flags}"
46+
"cxxflags=-fPIC ${extra_cpp_flags} ${ISA_FLAGS}"
4747
runtime-link=shared
4848
link=shared
4949
variant=release

project/externals/fbthrift.cmake

-43
This file was deleted.

project/externals/folly.cmake

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ ExternalProject_Add(
1919
${common_cmake_args}
2020
-DCMAKE_BUILD_TYPE=Release
2121
-DBoost_NO_BOOST_CMAKE=ON
22-
"-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} -fPIC -D__STDC_FORMAT_MACROS=1 -DFOLLY_HAVE_CLOCK_GETTIME -D__USE_POSIX199309 ${extra_cpp_flags}"
22+
"-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} -fPIC -D__STDC_FORMAT_MACROS=1 -DFOLLY_HAVE_CLOCK_GETTIME -D__USE_POSIX199309 ${extra_cpp_flags} ${ISA_FLAGS}"
2323
-DPACKAGE_VERSION=2022.12.26
2424
-DFOLLY_CXX_FLAGS=-Wno-error
2525
BUILD_COMMAND make -s -j${BUILDING_JOBS_NUM}

project/externals/lz4.cmake

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ ExternalProject_Add(
1919
BUILD_IN_SOURCE 1
2020
INSTALL_COMMAND
2121
make install -s
22-
MOREFLAGS=-fPIC
22+
"MOREFLAGS=-fPIC ${ISA_FLAGS}"
2323
"LN_S=ln -sf"
2424
BUILD_STATIC=no
2525
-j${BUILDING_JOBS_NUM}

project/externals/rocksdb.cmake

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ ExternalProject_Add(
3333
-DFAIL_ON_WARNINGS=OFF
3434
-DCMAKE_BUILD_TYPE=Release
3535
"-DCMAKE_EXE_LINKER_FLAGS=${extra_lib_dirs} -lbz2 -lsnappy -lzstd"
36-
"-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} -D NPERF_CONTEXT"
36+
"-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} -D NPERF_CONTEXT ${ISA_FLAGS}"
3737
"-DCMAKE_SHARED_LINKER_FLAGS=${extra_lib_dirs} -Wl,-rpath=\$ORIGIN:\$ORIGIN/../3rd"
3838
BUILD_IN_SOURCE 1
3939
BUILD_COMMAND make -s -j${BUILDING_JOBS_NUM}

0 commit comments

Comments
 (0)