diff mbox series

toolchain/libstdcpp: disable dual ABI and default to new

Message ID 20210121045145.2209388-1-rosenp@gmail.com
State Accepted
Delegated to: Paul Spooren
Headers show
Series toolchain/libstdcpp: disable dual ABI and default to new | expand

Commit Message

Rosen Penev Jan. 21, 2021, 4:51 a.m. UTC
GCC 5.1 changed the std::string ABI in order to properly support C++11.
For compatibility with libraries compiled with the older ABI, that is,
linking between old-abi.so and new-abi.bin, both ABIs are enabled. In
terms of OpenWrt, all packages are compiled with the same toolchain,
which means these issues do not need to be handled.

Most importantly, this results in a significant size reduction of
libstdpp:

Before:

450794 bytes

After:

327752 bytes

Tested with all OpenWrt packages.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
 toolchain/gcc/common.mk | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/toolchain/gcc/common.mk b/toolchain/gcc/common.mk
index aaddb74642..55fad1fcc4 100644
--- a/toolchain/gcc/common.mk
+++ b/toolchain/gcc/common.mk
@@ -117,7 +117,9 @@  GCC_CONFIGURE:= \
 		--with-mpc=$(TOPDIR)/staging_dir/host \
 		--disable-decimal-float \
 		--with-diagnostics-color=auto-if-env \
-		--enable-__cxa_atexit
+		--enable-__cxa_atexit \
+		--disable-libstdcxx-dual-abi \
+		--with-default-libstdcxx-abi=new
 ifneq ($(CONFIG_mips)$(CONFIG_mipsel),)
   GCC_CONFIGURE += --with-mips-plt
 endif