From 4213dc53dccf9028038dbe6933b224d171ef5c3a Mon Sep 17 00:00:00 2001 From: "Thiago Marcos P. Santos" Date: Tue, 3 May 2016 22:26:05 +0300 Subject: [PATCH] [Qt] Use C++11 ABI packages These were causing linking errors on more recent Linux distros. Fixes #3123. --- platform/linux/scripts/configure.sh | 4 ++-- platform/qt/scripts/configure.sh | 4 ++-- scripts/check-cxx11abi.dat | Bin 0 -> 8780 bytes scripts/check-cxx11abi.sh | 14 ++++++++++++++ scripts/main.mk | 2 ++ 5 files changed, 20 insertions(+), 4 deletions(-) create mode 100755 scripts/check-cxx11abi.dat create mode 100755 scripts/check-cxx11abi.sh diff --git a/platform/linux/scripts/configure.sh b/platform/linux/scripts/configure.sh index 01b754120..b2e79d9cc 100644 --- a/platform/linux/scripts/configure.sh +++ b/platform/linux/scripts/configure.sh @@ -12,10 +12,10 @@ LIBUV_VERSION=1.7.5 ZLIB_VERSION=system NUNICODE_VERSION=1.6 GEOMETRY_VERSION=0.3.0 -GEOJSONVT_VERSION=4.1.2 +GEOJSONVT_VERSION=4.1.2${CXX11ABI} VARIANT_VERSION=1.1.0 RAPIDJSON_VERSION=1.0.2 -GTEST_VERSION=1.7.0 +GTEST_VERSION=1.7.0${CXX11ABI} PIXELMATCH_VERSION=0.9.0 WEBP_VERSION=0.5.0 diff --git a/platform/qt/scripts/configure.sh b/platform/qt/scripts/configure.sh index 500ef2663..612a987ec 100644 --- a/platform/qt/scripts/configure.sh +++ b/platform/qt/scripts/configure.sh @@ -3,8 +3,8 @@ PROTOZERO_VERSION=1.3.0 BOOST_VERSION=1.60.0 GEOMETRY_VERSION=0.3.0 -GEOJSONVT_VERSION=4.1.2 -GTEST_VERSION=1.7.0 +GEOJSONVT_VERSION=4.1.2${CXX11ABI} +GTEST_VERSION=1.7.0${CXX11ABI} LIBJPEG_TURBO_VERSION=1.4.2 NUNICODE_VERSION=1.6 PIXELMATCH_VERSION=0.9.0 diff --git a/scripts/check-cxx11abi.dat b/scripts/check-cxx11abi.dat new file mode 100755 index 0000000000000000000000000000000000000000..eab7298b504c495651b410f6c12f8d6704744b89 GIT binary patch literal 8780 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 bh65hXAWF4#x+d1s5R5L*E95<}Y;f@}k-?Zr literal 0 HcmV?d00001 diff --git a/scripts/check-cxx11abi.sh b/scripts/check-cxx11abi.sh new file mode 100755 index 000000000..ba64df1e7 --- /dev/null +++ b/scripts/check-cxx11abi.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +set -e +set -o pipefail + +# check-cxx11abi.dat is a binary just so we can use the loader +# to take care of finding the libstdc++ which can be tricky. +LIBSTDCPP=$(ldd $(dirname $0)/check-cxx11abi.dat |grep libstdc++ |cut -d' ' -f3) + +if [ $(readelf -Ws $LIBSTDCPP |c++filt |grep -c ::__cxx11::) -gt 0 ]; then + echo "-cxx11abi" +else + echo "" +fi diff --git a/scripts/main.mk b/scripts/main.mk index bc7506db5..56b3fcd0c 100644 --- a/scripts/main.mk +++ b/scripts/main.mk @@ -2,6 +2,7 @@ ifeq ($(shell uname -s), Darwin) export PLATFORM ?= osx else ifeq ($(shell uname -s), Linux) export PLATFORM ?= linux + export CXX11ABI = $(shell scripts/check-cxx11abi.sh) endif ifeq ($(PLATFORM),android) @@ -48,6 +49,7 @@ ifeq ($(PLATFORM),qt) endif # Defaults if not set +export CXX11ABI ?= "" export PLATFORM_OUTPUT ?= ./build/$(PLATFORM_SLUG) export PLATFORM_CONFIG_INPUT ?= platform/$(MASON_PLATFORM)/scripts/configure.sh export PLATFORM_CONFIG_OUTPUT ?= $(PLATFORM_OUTPUT)/config.gypi