From 1eddf2d847d609df991859625571e2abf96fe580 Mon Sep 17 00:00:00 2001 From: Martin Nowack Date: Thu, 23 Jan 2020 15:29:24 +0000 Subject: Add patch support for libcxx Building older LLVM/libcxx versions under Ubuntu 18.04 requirer patches --- scripts/build/p-libcxx.inc | 8 +++++++- scripts/build/patches/libcxx38.patch | 11 +++++++++++ scripts/build/patches/libcxx39.patch | 11 +++++++++++ scripts/build/patches/libcxx40.patch | 11 +++++++++++ 4 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 scripts/build/patches/libcxx38.patch create mode 100644 scripts/build/patches/libcxx39.patch create mode 100644 scripts/build/patches/libcxx40.patch diff --git a/scripts/build/p-libcxx.inc b/scripts/build/p-libcxx.inc index 41ca4cc4..f803080a 100644 --- a/scripts/build/p-libcxx.inc +++ b/scripts/build/p-libcxx.inc @@ -17,7 +17,13 @@ download_libcxx() { git clone --single-branch --branch "${version}" --depth 1 "https://github.com/llvm/llvm-project.git" "${LIBCXX_SRC}" - + + # Apply existing patches if needed + if [ -f "${DIR}/patches/libcxx${LLVM_VERSION_SHORT}.patch" ]; then + cd "${LIBCXX_SRC}" || (echo "Directory does not exist"; exit 1) + patch -p1 --follow-symlinks -i "${DIR}/patches/libcxx${LLVM_VERSION_SHORT}.patch" || return 1 + fi + # Prepare LLVM subprojects for older LLVM versions cd "${LIBCXX_SRC}/llvm/projects" ln -s ../../libcxx . diff --git a/scripts/build/patches/libcxx38.patch b/scripts/build/patches/libcxx38.patch new file mode 100644 index 00000000..382db544 --- /dev/null +++ b/scripts/build/patches/libcxx38.patch @@ -0,0 +1,11 @@ +--- a/libcxx/include/__locale ++++ b/libcxx/include/__locale +@@ -34,7 +34,7 @@ + # include + #elif defined(_NEWLIB_VERSION) + # include +-#elif (defined(__GLIBC__) || defined(__APPLE__) || defined(__FreeBSD__) \ ++#elif (defined(__APPLE__) || defined(__FreeBSD__) \ + || defined(__EMSCRIPTEN__) || defined(__IBMCPP__)) + # include + #elif defined(_LIBCPP_HAS_MUSL_LIBC) diff --git a/scripts/build/patches/libcxx39.patch b/scripts/build/patches/libcxx39.patch new file mode 100644 index 00000000..382db544 --- /dev/null +++ b/scripts/build/patches/libcxx39.patch @@ -0,0 +1,11 @@ +--- a/libcxx/include/__locale ++++ b/libcxx/include/__locale +@@ -34,7 +34,7 @@ + # include + #elif defined(_NEWLIB_VERSION) + # include +-#elif (defined(__GLIBC__) || defined(__APPLE__) || defined(__FreeBSD__) \ ++#elif (defined(__APPLE__) || defined(__FreeBSD__) \ + || defined(__EMSCRIPTEN__) || defined(__IBMCPP__)) + # include + #elif defined(_LIBCPP_HAS_MUSL_LIBC) diff --git a/scripts/build/patches/libcxx40.patch b/scripts/build/patches/libcxx40.patch new file mode 100644 index 00000000..382db544 --- /dev/null +++ b/scripts/build/patches/libcxx40.patch @@ -0,0 +1,11 @@ +--- a/libcxx/include/__locale ++++ b/libcxx/include/__locale +@@ -34,7 +34,7 @@ + # include + #elif defined(_NEWLIB_VERSION) + # include +-#elif (defined(__GLIBC__) || defined(__APPLE__) || defined(__FreeBSD__) \ ++#elif (defined(__APPLE__) || defined(__FreeBSD__) \ + || defined(__EMSCRIPTEN__) || defined(__IBMCPP__)) + # include + #elif defined(_LIBCPP_HAS_MUSL_LIBC) -- cgit 1.4.1