From 2430e9a4f5f809d9164edf64dd3eb87f9a14a5fc Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Thu, 9 May 2013 20:50:49 +0000
Subject: [PATCH] toolchain: eliminate the INSTALL_LIBSTDCPP config symbol and
 make c++ support mandatory - fixes recursive config symbol dependency issues

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 36594
---
 Config.in                      | 24 +++++++++++-------------
 include/uclibc++.mk            |  2 +-
 package/libs/ncurses/Makefile  |  5 -----
 package/libs/uclibc++/Makefile |  1 -
 package/toolchain/Makefile     |  1 -
 rules.mk                       |  2 +-
 toolchain/gcc/Config.in        |  7 -------
 toolchain/gcc/common.mk        |  2 +-
 8 files changed, 14 insertions(+), 30 deletions(-)

diff --git a/Config.in b/Config.in
index 5c154691dd..9ad71e02cb 100644
--- a/Config.in
+++ b/Config.in
@@ -704,21 +704,19 @@ menu "Global build settings"
 		  Note that this will make the system libraries incompatible with most of the packages
 		  that are not selected during the build process
 
-	if INSTALL_LIBSTDCPP
-		choice
-			prompt "Preferred standard C++ library"
-			default USE_LIBSTDCXX if USE_EGLIBC
-			default USE_UCLIBCXX
-			help
-			  Select the preferred standard C++ library for all packages that support this.
+	choice
+		prompt "Preferred standard C++ library"
+		default USE_LIBSTDCXX if USE_EGLIBC
+		default USE_UCLIBCXX
+		help
+		  Select the preferred standard C++ library for all packages that support this.
 
-			config USE_UCLIBCXX
-				bool "uClibc++"
+		config USE_UCLIBCXX
+			bool "uClibc++"
 
-			config USE_LIBSTDCXX
-				bool "libstdc++"
-		endchoice
-	endif
+		config USE_LIBSTDCXX
+			bool "libstdc++"
+	endchoice
 
 endmenu
 
diff --git a/include/uclibc++.mk b/include/uclibc++.mk
index 89298e3f30..a1a61f26d4 100644
--- a/include/uclibc++.mk
+++ b/include/uclibc++.mk
@@ -5,7 +5,7 @@ ifndef DUMP
 endif
 
 PKG_PREPARED_DEPENDS += CONFIG_USE_UCLIBCXX
-CXX_DEPENDS = @INSTALL_LIBSTDCPP +USE_UCLIBCXX:uclibcxx +USE_LIBSTDCXX:libstdcpp
+CXX_DEPENDS = +USE_UCLIBCXX:uclibcxx +USE_LIBSTDCXX:libstdcpp
 
 ifneq ($(CONFIG_USE_UCLIBCXX),)
  ifneq ($(CONFIG_CCACHE),)
diff --git a/package/libs/ncurses/Makefile b/package/libs/ncurses/Makefile
index b360526572..62ffdfb0a0 100644
--- a/package/libs/ncurses/Makefile
+++ b/package/libs/ncurses/Makefile
@@ -67,11 +67,6 @@ CONFIGURE_ARGS += \
 	--with-terminfo-dirs=/usr/share/terminfo \
 	--with-default-terminfo-dir=/usr/share/terminfo
 
-ifneq ($(CONFIG_INSTALL_LIBSTDCPP),y)
-CONFIGURE_ARGS += \
-	--without-cxx-binding
-endif
-
 ifeq ($(HOST_OS),FreeBSD)
 	CONFIGURE_ARGS +=
 		--with-terminfo=/usr/share/terminfo.db 
diff --git a/package/libs/uclibc++/Makefile b/package/libs/uclibc++/Makefile
index 2dd8f6507e..15c2bce54b 100644
--- a/package/libs/uclibc++/Makefile
+++ b/package/libs/uclibc++/Makefile
@@ -26,7 +26,6 @@ define Package/uclibcxx
   NAME:=uclibc++
   SECTION:=libs
   CATEGORY:=Libraries
-  DEPENDS:=@INSTALL_LIBSTDCPP
   TITLE:=C++ library for embedded systems
   URL:=http://cxx.uclibc.org/src/
 endef
diff --git a/package/toolchain/Makefile b/package/toolchain/Makefile
index 7eadaba0d4..202e9d095d 100644
--- a/package/toolchain/Makefile
+++ b/package/toolchain/Makefile
@@ -84,7 +84,6 @@ define Package/libstdcpp
 $(call Package/gcc/Default)
   NAME:=libstdc++
   TITLE:=GNU Standard C++ Library v3
-  DEPENDS+=@INSTALL_LIBSTDCPP
 endef
 
 define Package/libstdcpp/config
diff --git a/rules.mk b/rules.mk
index b9510057b6..61c45a0090 100644
--- a/rules.mk
+++ b/rules.mk
@@ -202,7 +202,7 @@ HOST_LDFLAGS:=-L$(STAGING_DIR_HOST)/lib
 TARGET_CC:=$(TARGET_CROSS)gcc
 TARGET_AR:=$(TARGET_CROSS)ar
 TARGET_RANLIB:=$(TARGET_CROSS)ranlib
-TARGET_CXX:=$(if $(CONFIG_INSTALL_LIBSTDCPP),$(TARGET_CROSS)g++,no)
+TARGET_CXX:=$(TARGET_CROSS)g++
 KPATCH:=$(SCRIPT_DIR)/patch-kernel.sh
 SED:=$(STAGING_DIR_HOST)/bin/sed -i -e
 CP:=cp -fpR
diff --git a/toolchain/gcc/Config.in b/toolchain/gcc/Config.in
index b3fd5d665e..defb1b1b0e 100644
--- a/toolchain/gcc/Config.in
+++ b/toolchain/gcc/Config.in
@@ -71,13 +71,6 @@ config SJLJ_EXCEPTIONS
 	    frame unwinding exceptions handling routines.  Warning: increases
 	    code size and runtime memory usage.
 
-config INSTALL_LIBSTDCPP
-	bool
-	prompt "Build/install c++ compiler and libstdc++?" if TOOLCHAINOPTS
-	default y if !USE_MUSL
-	help
-	    Build/install c++ compiler and libstdc++?
-
 config INSTALL_LIBGCJ
 	bool
 	prompt "Build/install java compiler and GNU classpath ?" if TOOLCHAINOPTS
diff --git a/toolchain/gcc/common.mk b/toolchain/gcc/common.mk
index 2e10f8dbef..688374e249 100644
--- a/toolchain/gcc/common.mk
+++ b/toolchain/gcc/common.mk
@@ -93,7 +93,7 @@ HOST_STAMP_CONFIGURED:=$(GCC_BUILD_DIR)/.configured
 HOST_STAMP_INSTALLED:=$(STAGING_DIR_HOST)/stamp/.gcc_$(GCC_VARIANT)_installed
 
 SEP:=,
-TARGET_LANGUAGES:="c$(if $(CONFIG_INSTALL_LIBSTDCPP),$(SEP)c++)$(if $(CONFIG_INSTALL_LIBGCJ),$(SEP)java)$(if $(CONFIG_INSTALL_GFORTRAN),$(SEP)fortran)"
+TARGET_LANGUAGES:="c,c++$(if $(CONFIG_INSTALL_LIBGCJ),$(SEP)java)$(if $(CONFIG_INSTALL_GFORTRAN),$(SEP)fortran)"
 
 export libgcc_cv_fixed_point=no
 ifdef CONFIG_USE_UCLIBC
-- 
GitLab