Fix folly in toolchain-v4 (#346)
This commit is contained in:
parent
693dab78d2
commit
c6e19ec09f
@ -204,6 +204,8 @@ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=gold")
|
|||||||
# release flags
|
# release flags
|
||||||
set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG")
|
set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG")
|
||||||
|
|
||||||
|
SET(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -pthread")
|
||||||
|
|
||||||
#debug flags
|
#debug flags
|
||||||
set(PREFERRED_DEBUGGER "gdb" CACHE STRING
|
set(PREFERRED_DEBUGGER "gdb" CACHE STRING
|
||||||
"Tunes the debug output for your preferred debugger (gdb or lldb).")
|
"Tunes the debug output for your preferred debugger (gdb or lldb).")
|
||||||
|
@ -11,7 +11,7 @@ TOOLCHAIN_BUILD_DEPS=(
|
|||||||
gnupg2 # used for archive signature verification
|
gnupg2 # used for archive signature verification
|
||||||
tar gzip bzip2 xz unzip # used for archive unpacking
|
tar gzip bzip2 xz unzip # used for archive unpacking
|
||||||
zlib-devel # zlib library used for all builds
|
zlib-devel # zlib library used for all builds
|
||||||
expat-devel libipt-devel libbabeltrace-devel xz-devel python3-devel # gdb
|
expat-devel libipt libipt-devel libbabeltrace-devel xz-devel python3-devel # gdb
|
||||||
texinfo # gdb
|
texinfo # gdb
|
||||||
libcurl-devel # cmake
|
libcurl-devel # cmake
|
||||||
curl # snappy
|
curl # snappy
|
||||||
@ -22,6 +22,7 @@ TOOLCHAIN_BUILD_DEPS=(
|
|||||||
openssl-devel
|
openssl-devel
|
||||||
gmp-devel
|
gmp-devel
|
||||||
gperf
|
gperf
|
||||||
|
patch
|
||||||
)
|
)
|
||||||
|
|
||||||
TOOLCHAIN_RUN_DEPS=(
|
TOOLCHAIN_RUN_DEPS=(
|
||||||
|
@ -6,12 +6,12 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
|||||||
source "$DIR/../util.sh"
|
source "$DIR/../util.sh"
|
||||||
|
|
||||||
TOOLCHAIN_BUILD_DEPS=(
|
TOOLCHAIN_BUILD_DEPS=(
|
||||||
coreutils gcc gcc-c++ make # generic build tools
|
coreutils-common gcc gcc-c++ make # generic build tools
|
||||||
wget # used for archive download
|
wget # used for archive download
|
||||||
gnupg2 # used for archive signature verification
|
gnupg2 # used for archive signature verification
|
||||||
tar gzip bzip2 xz unzip # used for archive unpacking
|
tar gzip bzip2 xz unzip # used for archive unpacking
|
||||||
zlib-devel # zlib library used for all builds
|
zlib-devel # zlib library used for all builds
|
||||||
expat-devel libipt-devel libbabeltrace-devel xz-devel python36-devel texinfo # for gdb
|
expat-devel libipt libipt-devel libbabeltrace-devel xz-devel python36-devel texinfo # for gdb
|
||||||
libcurl-devel # for cmake
|
libcurl-devel # for cmake
|
||||||
curl # snappy
|
curl # snappy
|
||||||
readline-devel # for cmake and llvm
|
readline-devel # for cmake and llvm
|
||||||
@ -21,6 +21,7 @@ TOOLCHAIN_BUILD_DEPS=(
|
|||||||
openssl-devel
|
openssl-devel
|
||||||
gmp-devel
|
gmp-devel
|
||||||
gperf
|
gperf
|
||||||
|
patch
|
||||||
)
|
)
|
||||||
|
|
||||||
TOOLCHAIN_RUN_DEPS=(
|
TOOLCHAIN_RUN_DEPS=(
|
||||||
@ -116,9 +117,10 @@ install() {
|
|||||||
# https://centos.pkgs.org
|
# https://centos.pkgs.org
|
||||||
# Since 2020, there is Babeltrace2 (https://babeltrace.org). Not used
|
# Since 2020, there is Babeltrace2 (https://babeltrace.org). Not used
|
||||||
# within GDB yet (an assumption).
|
# within GDB yet (an assumption).
|
||||||
|
# http://mirror.centos.org/centos/8/PowerTools/x86_64/os/Packages/libbabeltrace-devel-1.5.4-3.el8.x86_64.rpm not working
|
||||||
if [ "$pkg" == libbabeltrace-devel ]; then
|
if [ "$pkg" == libbabeltrace-devel ]; then
|
||||||
if ! dnf list installed libbabeltrace-devel >/dev/null 2>/dev/null; then
|
if ! dnf list installed libbabeltrace-devel >/dev/null 2>/dev/null; then
|
||||||
dnf install -y http://mirror.centos.org/centos/8/PowerTools/x86_64/os/Packages/libbabeltrace-devel-1.5.4-3.el8.x86_64.rpm
|
dnf install -y https://rpmfind.net/linux/centos/8-stream/PowerTools/x86_64/os/Packages/libbabeltrace-devel-1.5.4-3.el8.x86_64.rpm
|
||||||
fi
|
fi
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
@ -1,2 +0,0 @@
|
|||||||
31d30
|
|
||||||
< add_subdirectory(logging/example)
|
|
41
environment/toolchain/folly.patch
Normal file
41
environment/toolchain/folly.patch
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
diff -ur a/folly/CMakeLists.txt b/folly/CMakeLists.txt
|
||||||
|
--- a/folly/CMakeLists.txt 2021-12-12 23:10:42.000000000 +0100
|
||||||
|
+++ b/folly/CMakeLists.txt 2022-02-03 15:19:41.349693134 +0100
|
||||||
|
@@ -28,7 +28,6 @@
|
||||||
|
)
|
||||||
|
|
||||||
|
add_subdirectory(experimental/exception_tracer)
|
||||||
|
-add_subdirectory(logging/example)
|
||||||
|
|
||||||
|
if (PYTHON_EXTENSIONS)
|
||||||
|
# Create tree of symbolic links in structure required for successful
|
||||||
|
diff -ur a/folly/experimental/exception_tracer/ExceptionTracerLib.cpp b/folly/experimental/exception_tracer/ExceptionTracerLib.cpp
|
||||||
|
--- a/folly/experimental/exception_tracer/ExceptionTracerLib.cpp 2021-12-12 23:10:42.000000000 +0100
|
||||||
|
+++ b/folly/experimental/exception_tracer/ExceptionTracerLib.cpp 2022-02-03 15:19:11.003368891 +0100
|
||||||
|
@@ -96,6 +96,7 @@
|
||||||
|
#define __builtin_unreachable()
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#if 0
|
||||||
|
namespace __cxxabiv1 {
|
||||||
|
|
||||||
|
void __cxa_throw(
|
||||||
|
@@ -154,5 +155,5 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace std
|
||||||
|
-
|
||||||
|
+#endif
|
||||||
|
#endif // defined(__GLIBCXX__)
|
||||||
|
diff -ur a/folly/Portability.h b/folly/Portability.h
|
||||||
|
--- a/folly/Portability.h 2021-12-12 23:10:42.000000000 +0100
|
||||||
|
+++ b/folly/Portability.h 2022-02-03 15:19:11.003368891 +0100
|
||||||
|
@@ -566,7 +566,7 @@
|
||||||
|
#define FOLLY_HAS_COROUTINES 0
|
||||||
|
#elif (__cpp_coroutines >= 201703L || __cpp_impl_coroutine >= 201902L) && \
|
||||||
|
(__has_include(<coroutine>) || __has_include(<experimental/coroutine>))
|
||||||
|
-#define FOLLY_HAS_COROUTINES 1
|
||||||
|
+#define FOLLY_HAS_COROUTINES 0
|
||||||
|
// This is mainly to workaround bugs triggered by LTO, when stack allocated
|
||||||
|
// variables in await_suspend end up on a coroutine frame.
|
||||||
|
#define FOLLY_CORO_AWAIT_SUSPEND_NONTRIVIAL_ATTRIBUTES FOLLY_NOINLINE
|
@ -1,2 +0,0 @@
|
|||||||
24d23
|
|
||||||
< find_dependency(mvfst)
|
|
11
environment/toolchain/proxygen.patch
Normal file
11
environment/toolchain/proxygen.patch
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
diff -ur a/cmake/proxygen-config.cmake.in b/cmake/proxygen-config.cmake.in
|
||||||
|
--- a/cmake/proxygen-config.cmake.in 2021-12-13 02:37:05.000000000 +0100
|
||||||
|
+++ b/cmake/proxygen-config.cmake.in 2022-01-27 17:14:28.284810621 +0100
|
||||||
|
@@ -21,7 +21,6 @@
|
||||||
|
find_dependency(folly)
|
||||||
|
find_dependency(wangle)
|
||||||
|
find_dependency(Fizz)
|
||||||
|
-find_dependency(mvfst)
|
||||||
|
# For now, anything that depends on Proxygen has to copy its FindZstd.cmake
|
||||||
|
# and issue a `find_package(Zstd)`. Uncommenting this won't work because
|
||||||
|
# this Zstd module exposes a library called `zstd`. The right fix is
|
@ -1,16 +0,0 @@
|
|||||||
55,57c55,57
|
|
||||||
< # Disable RTTI.
|
|
||||||
< string(REGEX REPLACE "/GR" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
|
||||||
< set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /GR-")
|
|
||||||
---
|
|
||||||
> # # Disable RTTI.
|
|
||||||
> # string(REGEX REPLACE "/GR" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
|
||||||
> # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /GR-")
|
|
||||||
80,82c80,82
|
|
||||||
< # Disable RTTI.
|
|
||||||
< string(REGEX REPLACE "-frtti" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
|
||||||
< set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti")
|
|
||||||
---
|
|
||||||
> # # Disable RTTI.
|
|
||||||
> # string(REGEX REPLACE "-frtti" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
|
||||||
> # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti")
|
|
29
environment/toolchain/snappy.patch
Normal file
29
environment/toolchain/snappy.patch
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
diff -ur a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
--- a/CMakeLists.txt 2021-05-05 00:53:34.000000000 +0200
|
||||||
|
+++ b/CMakeLists.txt 2022-01-27 17:18:34.758302398 +0100
|
||||||
|
@@ -52,9 +52,9 @@
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHs-c-")
|
||||||
|
add_definitions(-D_HAS_EXCEPTIONS=0)
|
||||||
|
|
||||||
|
- # Disable RTTI.
|
||||||
|
- string(REGEX REPLACE "/GR" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||||
|
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /GR-")
|
||||||
|
+ # # Disable RTTI.
|
||||||
|
+ # string(REGEX REPLACE "/GR" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||||
|
+ # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /GR-")
|
||||||
|
else(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
|
||||||
|
# Use -Wall for clang and gcc.
|
||||||
|
if(NOT CMAKE_CXX_FLAGS MATCHES "-Wall")
|
||||||
|
@@ -77,9 +77,9 @@
|
||||||
|
string(REGEX REPLACE "-fexceptions" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions")
|
||||||
|
|
||||||
|
- # Disable RTTI.
|
||||||
|
- string(REGEX REPLACE "-frtti" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||||
|
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti")
|
||||||
|
+ # # Disable RTTI.
|
||||||
|
+ # string(REGEX REPLACE "-frtti" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||||
|
+ # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti")
|
||||||
|
endif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
|
||||||
|
|
||||||
|
# BUILD_SHARED_LIBS is a standard CMake variable, but we declare it here to make
|
@ -538,7 +538,8 @@ if [ ! -f $PREFIX/bin/clang ]; then
|
|||||||
make -j$CPUS
|
make -j$CPUS
|
||||||
if [[ "$for_arm" = false ]]; then
|
if [[ "$for_arm" = false ]]; then
|
||||||
make -j$CPUS check-clang # run clang test suite
|
make -j$CPUS check-clang # run clang test suite
|
||||||
make -j$CPUS check-lld # run lld test suite
|
# ldd is not used
|
||||||
|
# make -j$CPUS check-lld # run lld test suite
|
||||||
fi
|
fi
|
||||||
make install
|
make install
|
||||||
popd && popd
|
popd && popd
|
||||||
@ -1029,7 +1030,7 @@ if [ ! -f $PREFIX/include/snappy.h ]; then
|
|||||||
fi
|
fi
|
||||||
tar -xzf ../archives/snappy-$SNAPPY_VERSION.tar.gz
|
tar -xzf ../archives/snappy-$SNAPPY_VERSION.tar.gz
|
||||||
pushd snappy-$SNAPPY_VERSION
|
pushd snappy-$SNAPPY_VERSION
|
||||||
patch CMakeLists.txt ../../snappy.diff
|
patch -p1 < ../../snappy.patch
|
||||||
mkdir build
|
mkdir build
|
||||||
pushd build
|
pushd build
|
||||||
cmake .. $COMMON_CMAKE_FLAGS \
|
cmake .. $COMMON_CMAKE_FLAGS \
|
||||||
@ -1071,7 +1072,7 @@ if [ ! -d $PREFIX/include/folly ]; then
|
|||||||
mkdir folly-$FBLIBS_VERSION
|
mkdir folly-$FBLIBS_VERSION
|
||||||
tar -xzf ../archives/folly-$FBLIBS_VERSION.tar.gz -C folly-$FBLIBS_VERSION
|
tar -xzf ../archives/folly-$FBLIBS_VERSION.tar.gz -C folly-$FBLIBS_VERSION
|
||||||
pushd folly-$FBLIBS_VERSION
|
pushd folly-$FBLIBS_VERSION
|
||||||
patch folly/CMakeLists.txt ../../folly.diff
|
patch -p1 < ../../folly.patch
|
||||||
# build is used by facebook builder
|
# build is used by facebook builder
|
||||||
mkdir _build
|
mkdir _build
|
||||||
pushd _build
|
pushd _build
|
||||||
@ -1130,7 +1131,7 @@ if [ ! -d $PREFIX/include/proxygen ]; then
|
|||||||
mkdir proxygen-$FBLIBS_VERSION
|
mkdir proxygen-$FBLIBS_VERSION
|
||||||
tar -xzf ../archives/proxygen-$FBLIBS_VERSION.tar.gz -C proxygen-$FBLIBS_VERSION
|
tar -xzf ../archives/proxygen-$FBLIBS_VERSION.tar.gz -C proxygen-$FBLIBS_VERSION
|
||||||
pushd proxygen-$FBLIBS_VERSION
|
pushd proxygen-$FBLIBS_VERSION
|
||||||
patch cmake/proxygen-config.cmake.in ../../proxygen.diff
|
patch -p1 < ../../proxygen.patch
|
||||||
# build is used by facebook builder
|
# build is used by facebook builder
|
||||||
mkdir _build
|
mkdir _build
|
||||||
pushd _build
|
pushd _build
|
||||||
@ -1177,7 +1178,13 @@ popd
|
|||||||
|
|
||||||
# create toolchain archive
|
# create toolchain archive
|
||||||
if [ ! -f $NAME-binaries-$DISTRO.tar.gz ]; then
|
if [ ! -f $NAME-binaries-$DISTRO.tar.gz ]; then
|
||||||
tar --owner=root --group=root -cpvzf $NAME-binaries-$DISTRO.tar.gz -C /opt $NAME
|
DISTRO_FULL_NAME=$DISTRO
|
||||||
|
if [ "$for_arm" = true ]; then
|
||||||
|
DISTRO_FULL_NAME="$DISTRO_FULL_NAME-aarch64"
|
||||||
|
else
|
||||||
|
DISTRO_FULL_NAME="$DISTRO_FULL_NAME-x86_64"
|
||||||
|
fi
|
||||||
|
tar --owner=root --group=root -cpvzf $NAME-binaries-$DISTRO_FULL_NAME.tar.gz -C /opt $NAME
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# output final instructions
|
# output final instructions
|
||||||
|
Loading…
Reference in New Issue
Block a user