Explorar el Código

remove bitrotted uClibc++ support

Please use PKG_NEEDS for marking of packages needing C++ compiler.
Remove the old bitrotted uClibc++ package and support for some
packages.
Waldemar Brodkorb hace 8 años
padre
commit
bae2cf7b98

+ 0 - 2
adk/tools/depmaker.c

@@ -174,9 +174,7 @@ int main() {
 			/* exclude manual maintained packages from package/Makefile */
 			if (
 				!(strncmp(pkgdirp->d_name, "libpthread", 10) == 0 && strlen(pkgdirp->d_name) == 10) &&
-				!(strncmp(pkgdirp->d_name, "uclibc++", 8) == 0) &&
 				!(strncmp(pkgdirp->d_name, "uclibc-ng", 9) == 0) &&
-				!(strncmp(pkgdirp->d_name, "uclibc", 6) == 0) &&
 				!(strncmp(pkgdirp->d_name, "musl", 4) == 0) &&
 				!(strncmp(pkgdirp->d_name, "glibc", 5) == 0)) {
 				/* print result to stdout */

+ 1 - 24
adk/tools/pkgmaker.c

@@ -328,7 +328,7 @@ int main() {
 	char variable[2*MAXVAR];
 	char *key, *value, *token, *cftoken, *sp, *hkey, *val, *pkg_fd;
 	char *pkg_name, *pkg_depends, *pkg_needs, *pkg_depends_system, *pkg_depends_libc, *pkg_section, *pkg_descr, *pkg_url;
-	char *pkg_cxx, *pkg_subpkgs, *pkg_cfline, *pkg_dflt;
+	char *pkg_subpkgs, *pkg_cfline, *pkg_dflt;
 	char *pkgname, *sysname, *pkg_debug, *pkg_bb;
 	char *pkg_libc_depends, *pkg_host_depends, *pkg_system_depends, *pkg_arch_depends, *pkg_flavours, *pkg_flavours_string, *pkg_choices, *pseudo_name;
 	char *packages, *pkg_name_u, *pkgs, *pkg_opts, *pkg_libname;
@@ -355,7 +355,6 @@ int main() {
 	pkg_system_depends = NULL;
 	pkg_host_depends = NULL;
 	pkg_libc_depends = NULL;
-	pkg_cxx = NULL;
 	pkg_dflt = NULL;
 	pkg_cfline = NULL;
 	pkgname = NULL;
@@ -561,8 +560,6 @@ int main() {
 						continue;
 					if ((parse_var(buf, "PKG_URL", NULL, &pkg_url)) == 0)
 						continue;
-					if ((parse_var(buf, "PKG_CXX", NULL, &pkg_cxx)) == 0)
-						continue;
 					if ((parse_var(buf, "PKG_BB", NULL, &pkg_bb)) == 0)
 						continue;
 					if ((parse_var(buf, "PKG_DEPENDS", pkg_depends, &pkg_depends)) == 0)
@@ -949,24 +946,6 @@ int main() {
 				if (pkg_url != NULL)
 					fprintf(cfg, "\t  WWW: %s\n", pkg_url);
 
-				/* handle special C++ packages */
-				if (pkg_cxx != NULL) {
-					fprintf(cfg, "\nchoice\n");
-					fprintf(cfg, "prompt \"C++ library to use\"\n");
-					fprintf(cfg, "depends on ADK_COMPILE_%s\n\n", toupperstr(pkgdirp->d_name));
-					fprintf(cfg, "default ADK_COMPILE_%s_WITH_STDCXX if ADK_TARGET_LIB_GLIBC\n", pkg_cxx);
-					fprintf(cfg, "default ADK_COMPILE_%s_WITH_UCLIBCXX if ADK_TARGET_LIB_UCLIBC_NG\n\n", pkg_cxx);
-					fprintf(cfg, "config ADK_COMPILE_%s_WITH_STDCXX\n", pkg_cxx);
-					fprintf(cfg, "\tbool \"GNU C++ library\"\n");
-					fprintf(cfg, "\tselect ADK_PACKAGE_LIBSTDCXX\n\n");
-					fprintf(cfg, "config ADK_COMPILE_%s_WITH_UCLIBCXX\n", pkg_cxx);
-					fprintf(cfg, "\tbool \"uClibc++ library\"\n");
-					fprintf(cfg, "\tselect ADK_PACKAGE_UCLIBCXX\n\n");
-					fprintf(cfg, "endchoice\n");
-					free(pkg_cxx);
-					pkg_cxx = NULL;
-				}
-
 				/* handle debug subpackages */
 				fprintf(cfg, "\nconfig ADK_PACKAGE_%s_DBG\n", toupperstr(pkg_debug));
 				fprintf(cfg, "\tbool \"add debug symbols package\"\n");
@@ -1206,7 +1185,6 @@ int main() {
 			free(pkg_system_depends);
 			free(pkg_host_depends);
 			free(pkg_libc_depends);
-			free(pkg_cxx);
 			free(pkg_dflt);
 			free(pkg_cfline);
 			free(pkg_bb);
@@ -1224,7 +1202,6 @@ int main() {
 			pkg_system_depends = NULL;
 			pkg_host_depends = NULL;
 			pkg_libc_depends = NULL;
-			pkg_cxx = NULL;
 			pkg_dflt = NULL;
 			pkg_cfline = NULL;
 			pkg_bb = NULL;

+ 0 - 4
docs/package-reference.txt

@@ -65,10 +65,6 @@ information is:
      		+STAGING_TARGET_DIR/scripts+, required for automake/autoconf package
      +noremove+ do not automatically remove package files from +STAGING_TARGET_DIR+
 
-* +PKG_NEED_CXX+ optional, package need C++ compiler
-
-* +PKG_CXX+ optional, package can use either `uClibc++` or `libstdc++`
-
 The recommended way to define these variables is to use the following
 syntax:
 

+ 0 - 1
package/Makefile

@@ -17,7 +17,6 @@ endif
 
 ifeq (${ADK_TARGET_LIB_UCLIBC_NG},y)
 package-$(ADK_PACKAGE_UCLIBC_NG) += uclibc-ng
-package-$(ADK_PACKAGE_UCLIBCXX) += uclibc++
 gcc-compile: uclibc-ng-compile
 endif
 

+ 1 - 14
package/dansguardian/Makefile

@@ -11,9 +11,9 @@ PKG_DESCR:=		web content filter proxy
 PKG_SECTION:=		net/proxy
 PKG_DEPENDS:=		libpcre zlib
 PKG_BUILDDEP:=		pcre zlib
+PKG_NEEDS:=		c++
 PKG_URL:=		http://dansguardian.org/
 PKG_SITES:=		${MASTER_SITE_SOURCEFORGE:=dansguardian/}
-PKG_CXX:=		DANSGUARDIAN
 
 DISTFILES:=		${PKG_NAME}-${PKG_VERSION}.tar.bz2
 
@@ -21,19 +21,6 @@ include ${ADK_TOPDIR}/mk/package.mk
 
 $(eval $(call PKG_template,DANSGUARDIAN,dansguardian,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
 
-ifeq ($(ADK_COMPILE_DANSGUARDIAN_WITH_UCLIBCXX),y)
-LIBRARIES:=		-nodefaultlibs -luClibc++ -lm -lc -lgcc
-ifeq ($(ADK_TARGET_USE_SSP),y)
-LIBRARIES+=		-lssp
-endif
-endif
-
-ifeq ($(ADK_COMPILE_DANSGUARDIAN_WITH_UCLIBCXX),y)
-CONFIGURE_ENV+=		CXXFLAGS="-fno-threadsafe-statics -fno-builtin -nostdinc++ \
-			-I${STAGING_TARGET_DIR}/usr/include/uClibc++" \
-			LIBS="$(LIBRARIES)"
-endif
-
 CONFIGURE_ARGS+=	--enable-orig-ip \
 			--with-proxyuser=proxy \
 			--with-proxygroup=proxy

+ 1 - 5
package/gmediaserver/Makefile

@@ -11,9 +11,9 @@ PKG_DESCR:=		media server
 PKG_SECTION:=		mm/video
 PKG_DEPENDS:=		id3lib libupnp libmagic
 PKG_BUILDDEP:=		id3lib libupnp file
+PKG_NEEDS:=		c++
 PKG_URL:=		http://www.gnu.org/software/gmediaserver
 PKG_SITES:=		http://savannah.nongnu.org/download/gmediaserver/
-PKG_CXX:=		GMEDIASERVER
 
 DISTFILES:=		${PKG_NAME}-${PKG_VERSION}.tar.gz
 
@@ -28,10 +28,6 @@ CONFIGURE_ENV+=		LIBS=" -lixml -lthreadutil -lupnp -lz"
 CONFIGURE_ARGS+=	--with-id3lib="${STAGING_TARGET_DIR}/usr" \
 			--with-libupnp="${STAGING_TARGET_DIR}/usr"
 
-ifeq ($(ADK_TARGET_LIB_UCLIBCXX),y)
-CONFIGURE_ENV+=		LIBS=" -lixml -lthreadutil -lupnp -luClibc++ -lz -lc"
-endif
-
 gmediaserver-install:
 	${INSTALL_DIR} ${IDIR_GMEDIASERVER}/usr/sbin
 	${INSTALL_BIN} ${WRKINST}/usr/bin/gmediaserver \

+ 3 - 14
package/id3lib/Makefile

@@ -11,9 +11,9 @@ PKG_DESCR:=		id3 tagging library
 PKG_SECTION:=		libs/audio
 PKG_DEPENDS:=		zlib
 PKG_BUILDDEP:=		zlib
+PKG_NEEDS:=		c++
 PKG_URL:=		http://id3lib.sourceforge.net/
 PKG_SITES:=		${MASTER_SITE_SOURCEFORGE:=id3lib/}
-PKG_CXX:=		ID3LIB
 PKG_OPTS:=		dev
 
 DISTFILES:=		${PKG_NAME}-${PKG_VERSION}.tar.gz
@@ -23,22 +23,11 @@ include ${ADK_TOPDIR}/mk/package.mk
 $(eval $(call PKG_template,ID3LIB,id3lib,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
 
 TARGET_CFLAGS+=		-fPIC
+TARGET_LDFLAGS+=	-shared
 CONFIGURE_ARGS+=	--enable-cxx-warnings=no
 
-ifeq ($(ADK_COMPILE_ID3LIB_WITH_UCLIBCXX),y)
-LIBRARIES:=-nodefaultlibs -luClibc++ -lz -lm -lc
-endif
-
 ifeq ($(ADK_TARGET_USE_SSP),y)
-LIBRARIES+=-lssp -fstack-protector
-endif
-
-ifeq ($(ADK_COMPILE_ID3LIB_WITH_UCLIBCXX),y)
-TARGET_CXXFLAGS+=	-fno-builtin -fno-rtti -nostdinc++ \
-			-I${STAGING_TARGET_DIR}/usr/include/uClibc++
-CONFIGURE_ENV+=		LIBS="${LIBRARIES}"
-else
-TARGET_LDFLAGS+=	-shared
+LIBRARIES+=		-lssp -fstack-protector
 endif
 
 id3lib-install:

+ 0 - 7
package/iperf/Makefile

@@ -12,7 +12,6 @@ PKG_SECTION:=		net/perf
 PKG_NEEDS:=		threads c++
 PKG_URL:=		http://sourceforge.net/projects/iperf
 PKG_SITES:=		${MASTER_SITE_SOURCEFORGE:=iperf/}
-PKG_CXX:=		IPERF
 
 DISTFILES:=		${PKG_NAME}-${PKG_VERSION}.tar.gz
 
@@ -20,13 +19,7 @@ include ${ADK_TOPDIR}/mk/package.mk
 
 $(eval $(call PKG_template,IPERF,iperf,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
 
-ifeq ($(ADK_COMPILE_IPERF_WITH_UCLIBCXX),y)
-TARGET_CXXFLAGS+=	-fno-builtin -fno-rtti -nostdinc++
-TARGET_LDFLAGS+=	-nodefaultlibs
-CONFIGURE_ENV+=		LIBS="-luClibc++ -lc -lm -lpthread -lgcc"
-else
 CONFIGURE_ENV+=		LIBS="-lc -lm -lpthread"
-endif
 CONFIGURE_ENV+=		ac_cv_func_malloc_0_nonnull=yes
 
 iperf-install:

+ 1 - 14
package/mrd6/Makefile

@@ -9,8 +9,8 @@ PKG_RELEASE:=		1
 PKG_HASH:=		4bbdb998a735b2f7b995ddd38382eb2c3ba13559742cf7b4abd40a8dbe48ba37
 PKG_DESCR:=		ipv6 multicast routing daemon
 PKG_SECTION:=		net/ipv6
+PKG_NEEDS:=		c++
 PKG_SITES:=		http://distfiles.openadk.org/
-PKG_CXX:=		MRD6
 
 DISTFILES:=		${PKG_NAME}-${PKG_VERSION}.tar.gz
 WRKBUILD=		${WRKSRC}/src
@@ -20,19 +20,6 @@ include ${ADK_TOPDIR}/mk/package.mk
 $(eval $(call PKG_template,MRD6,mrd6,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
 
 CONFIG_STYLE:=		manual
-
-ifeq (${ADK_COMPILE_MRD6_WITH_UCLIBCXX},y)
-LIBRARIES:=-nodefaultlibs -luClibc++
-ifeq ($(ADK_TARGET_USE_SSP),y)
-LIBRARIES+=-lssp -lssp_nonshared
-endif
-endif
-
-ifeq (${ADK_COMPILE_MRD6_WITH_UCLIBCXX},y)
-TARGET_CXXFLAGS+=	-fno-builtin -nostdinc++ \
-			-I${STAGING_TARGET_DIR}/usr/include/uClibc++
-TARGET_LDFLAGS+=	-shared ${LIBRARIES}
-endif
 XAKE_FLAGS+=		EXTRA_FLAGS="${TARGET_CFLAGS}"
 
 mrd6-install:

+ 1 - 1
package/pcrepp/Makefile

@@ -11,9 +11,9 @@ PKG_DESCR:=		cpp wrapper classes for pcre
 PKG_SECTION:=		libs/misc
 PKG_DEPENDS:=		libpcre
 PKG_BUILDDEP:=		pcre
+PKG_NEEDS:=		c++
 PKG_URL:=		http://www.daemon.de/PCRE
 PKG_SITES:=		http://www.daemon.de/idisk/Apps/pcre++/
-PKG_CXX:=		PCREPP
 PKG_OPTS:=		dev
 
 DISTFILES:=		pcre++-${PKG_VERSION}.tar.gz

+ 0 - 11
package/uclibc++/Config.in.manual

@@ -1,11 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-config ADK_PACKAGE_UCLIBCXX
-	prompt "uClibc++............. C++ library for embedded systems"
-	tristate
-	depends on ADK_TARGET_LIB_UCLIBC_NG
-	default n
-	help
-	  A standard C++ library for embedded systems
-

+ 0 - 45
package/uclibc++/Makefile

@@ -1,45 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include ${ADK_TOPDIR}/rules.mk
-
-PKG_NAME:=		uclibc++
-PKG_VERSION:=		0.2.4
-PKG_RELEASE:=		3
-PKG_HASH:=		be16fc6a6eb2e59df420ee41e7042f38e27ebaf5c2762d90e75803364a7b00db
-PKG_DESCR:=		standard c++ library for embedded systems
-PKG_SECTION:=		libs/misc
-PKG_URL:=		http://cxx.uclibc.org/
-PKG_SITES:=		http://cxx.uclibc.org/src/
-PKG_NOPARALLEL:=	1
-PKG_LIBNAME:=		uclibc++
-PKG_OPTS:=		dev
-
-DISTFILES:=		uClibc++-${PKG_VERSION}.tar.bz2
-WRKDIST=		${WRKDIR}/uClibc++-${PKG_VERSION}
-
-PKG_LIBC_DEPENDS:=	uclibc-ng
-
-include ${ADK_TOPDIR}/mk/package.mk
-
-$(eval $(call PKG_template,UCLIBCXX,uclibc++,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
-
-CONFIG_STYLE:=          manual
-INSTALL_STYLE:=         manual
-
-MAKE_FLAGS+=		ADK_TOPDIR="${WRKBUILD}/" \
-			${TARGET_CONFIGURE_OPTS} \
-			ARCH_CFLAGS="${TARGET_CFLAGS} -lgcc_s" \
-			CROSS="${TARGET_CROSS}"
-TARGET_CONFIGURE_OPTS=
-
-do-configure:
-	${CP} ./files/config ${WRKBUILD}/.config
-
-do-install:
-	${INSTALL_DIR} ${IDIR_UCLIBCXX}/usr/lib
-	${CP} ${WRKBUILD}/src/libuClibc++*.so* ${IDIR_UCLIBCXX}/usr/lib/
-	${INSTALL_DIR} ${WRKINST}/usr/include
-	${CP} ${WRKBUILD}/include ${WRKINST}/usr/include/uClibc++
-
-include ${ADK_TOPDIR}/mk/pkg-bottom.mk

+ 0 - 57
package/uclibc++/files/config

@@ -1,57 +0,0 @@
-#
-# Automatically generated make config: don't edit
-#
-
-#
-# Target Features and Options
-#
-UCLIBCXX_HAS_FLOATS=y
-# UCLIBCXX_HAS_LONG_DOUBLE is not set
-# UCLIBCXX_HAS_TLS is not set
-WARNINGS="-Wall"
-BUILD_EXTRA_LIBRARIES=""
-HAVE_DOT_CONFIG=y
-
-#
-# String and I/O Stream Support
-#
-UCLIBCXX_HAS_WCHAR=y
-UCLIBCXX_IOSTREAM_BUFSIZE=32
-UCLIBCXX_HAS_LFS=y
-UCLIBCXX_SUPPORT_CDIR=y
-UCLIBCXX_SUPPORT_CIN=y
-UCLIBCXX_SUPPORT_COUT=y
-UCLIBCXX_SUPPORT_CERR=y
-# UCLIBCXX_SUPPORT_CLOG is not set
-UCLIBCXX_SUPPORT_WCIN=y
-UCLIBCXX_SUPPORT_WCOUT=y
-UCLIBCXX_SUPPORT_WCERR=y
-UCLIBCXX_SUPPORT_WCLOG=y
-
-#
-# STL and Code Expansion
-#
-UCLIBCXX_STL_BUFFER_SIZE=32
-UCLIBCXX_CODE_EXPANSION=y
-# UCLIBCXX_EXPAND_CONSTRUCTORS_DESTRUCTORS is not set
-UCLIBCXX_EXPAND_STRING_CHAR=y
-UCLIBCXX_EXPAND_VECTOR_BASIC=y
-# UCLIBCXX_EXPAND_IOS_CHAR is not set
-# UCLIBCXX_EXPAND_STREAMBUF_CHAR is not set
-UCLIBCXX_EXPAND_ISTREAM_CHAR=y
-UCLIBCXX_EXPAND_OSTREAM_CHAR=y
-UCLIBCXX_EXPAND_FSTREAM_CHAR=y
-# UCLIBCXX_EXPAND_SSTREAM_CHAR is not set
-
-#
-# Library Installation Options
-#
-UCLIBCXX_RUNTIME_PREFIX=""
-UCLIBCXX_RUNTIME_INCLUDE_SUBDIR="/include"
-UCLIBCXX_RUNTIME_LIB_SUBDIR="/lib"
-UCLIBCXX_RUNTIME_BIN_SUBDIR="/bin"
-UCLIBCXX_EXCEPTION_SUPPORT=y
-# IMPORT_LIBSUP is not set
-# IMPORT_LIBGCC_EH is not set
-# BUILD_STATIC_LIB is not set
-# DODEBUG is not set

+ 0 - 30
package/uclibc++/patches/patch-Rules_mak

@@ -1,30 +0,0 @@
---- uClibc++-0.2.4.orig/Rules.mak	2012-05-25 23:15:31.000000000 +0200
-+++ uClibc++-0.2.4/Rules.mak	2015-10-14 18:06:07.000000000 +0200
-@@ -79,9 +79,6 @@ check_gcc=$(shell if $(CC) $(1) -S -o /d
- check_gxx_visibility=$(shell if $(CXX) -fvisibility-inlines-hidden -S -o /dev/null -xc++ /dev/null > /dev/null 2>&1; \
-         then echo "-DGCC_HASCLASSVISIBILITY"; fi)
- 
--check_as_needed=$(shell if $(LD) --help | grep -q 'as-needed' ; \
--	then echo "-Wl,--as-needed -lgcc_s -Wl,--no-as-needed"; else echo "-lgcc_s"; fi)
--
- # strip quotes
- qstrip = $(strip $(subst ",,$(1)))
- #"))
-@@ -107,7 +104,7 @@ CPU_CFLAGS=$(call qstrip,$(CPU_CFLAGS-y)
- 
- # Some nice CFLAGS to work with
- GEN_CFLAGS:=-fno-builtin
--CFLAGS:=$(XWARNINGS) $(CPU_CFLAGS) -ansi
-+CFLAGS:=$(XWARNINGS) $(CPU_CFLAGS)
- 
- LDFLAGS:=-Wl,--warn-common -Wl,--warn-once -Wl,-z,combreloc -Wl,-z,defs
- 
-@@ -145,7 +142,7 @@ endif
- ifneq ($(IMPORT_LIBSUP),y)
-   GEN_LIBS += -lsupc++
- endif
--GEN_LIBS += -lc -lgcc
-+GEN_LIBS += -lc -lgcc -lgcc_s
- 
- LIBS := $(GEN_LIBS)
- STATIC_LIBS := $(GEN_LIBS)

+ 0 - 20
package/uclibc++/patches/patch-include_unwind-cxx_h

@@ -1,20 +0,0 @@
-http://git.uclibc.org/uClibc++/commit/?id=cf73cb907c03ca2fb22bfe7fe2f732c10714b9ad
---- uClibc++-0.2.4.orig/include/unwind-cxx.h	2012-05-25 23:15:31.000000000 +0200
-+++ uClibc++-0.2.4/include/unwind-cxx.h	2015-10-14 17:02:55.000000000 +0200
-@@ -172,15 +172,7 @@ extern std::unexpected_handler __unexpec
- // These are explicitly GNU C++ specific.
- 
- // This is the exception class we report -- "GNUCC++\0".
--const _Unwind_Exception_Class __gxx_exception_class
--= ((((((((_Unwind_Exception_Class) 'G' 
--	 << 8 | (_Unwind_Exception_Class) 'N')
--	<< 8 | (_Unwind_Exception_Class) 'U')
--       << 8 | (_Unwind_Exception_Class) 'C')
--      << 8 | (_Unwind_Exception_Class) 'C')
--     << 8 | (_Unwind_Exception_Class) '+')
--    << 8 | (_Unwind_Exception_Class) '+')
--   << 8 | (_Unwind_Exception_Class) '\0');
-+const _Unwind_Exception_Class __gxx_exception_class = "GNUCC++";
- 
- // GNU C++ personality routine, Version 0.
- extern "C" _Unwind_Reason_Code __gxx_personality_v0