From 0b305aca7de0c95e54bdfe26c342e4dce77f10bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20K=C3=A4fer?= Date: Tue, 29 May 2018 12:28:14 +0200 Subject: [linux] statically link the C++ standard library Most of the STL is header-only anyway, and statically linking it only has a small overhead. On the other hand, it allows us to build more portable executables. --- CMakeLists.txt | 2 +- platform/linux/config.cmake | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c2f7134de7..7306179c25 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.4) project(mbgl LANGUAGES CXX C) set(CMAKE_CXX_STANDARD 14) -option(WITH_CXX11ABI "Use cxx11abi mason packages" OFF) +option(WITH_CXX11ABI "Use the C++11 ABI" OFF) option(WITH_COVERAGE "Enable coverage reports" OFF) option(WITH_OSMESA "Use OSMesa headless backend" OFF) option(WITH_EGL "Use EGL backend" OFF) diff --git a/platform/linux/config.cmake b/platform/linux/config.cmake index 53683daef0..57411f916d 100644 --- a/platform/linux/config.cmake +++ b/platform/linux/config.cmake @@ -99,6 +99,14 @@ macro(mbgl_platform_core) target_link_libraries(mbgl-core PUBLIC -lz ) + + if(WITH_CXX11ABI) + # Statically link libstdc++ when we're using the new STL ABI + target_link_libraries(mbgl-core + PUBLIC -static-libstdc++ + PUBLIC -Wl,-Bsymbolic-functions + ) + endif() endmacro() -- cgit v1.2.1