aboutsummaryrefslogtreecommitdiffstats
path: root/package/libs/uclibc++/patches
diff options
context:
space:
mode:
Diffstat (limited to 'package/libs/uclibc++/patches')
-rw-r--r--package/libs/uclibc++/patches/002-path_to_bash.patch11
-rw-r--r--package/libs/uclibc++/patches/006-eabi_fix.patch38
-rw-r--r--package/libs/uclibc++/patches/010-honor-ldflags.patch23
-rw-r--r--package/libs/uclibc++/patches/020-template-fix.patch22
4 files changed, 94 insertions, 0 deletions
diff --git a/package/libs/uclibc++/patches/002-path_to_bash.patch b/package/libs/uclibc++/patches/002-path_to_bash.patch
new file mode 100644
index 0000000..26d88ee
--- /dev/null
+++ b/package/libs/uclibc++/patches/002-path_to_bash.patch
@@ -0,0 +1,11 @@
+--- a/bin/Makefile
++++ b/bin/Makefile
+@@ -13,7 +13,7 @@ install:
+ $(INSTALL) -m 755 $(WRAPPER) $(PREFIX)$(UCLIBCXX_RUNTIME_BINDIR)
+
+ $(WRAPPER): Makefile
+- echo '#!/bin/sh' > $@
++ echo '#!/usr/bin/env bash' > $@
+ echo '' >> $@
+ echo 'WRAPPER_INCLUDEDIR="$${WRAPPER_INCLUDEDIR:=-I$(UCLIBCXX_RUNTIME_INCLUDEDIR)}"' >> $@
+ echo 'WRAPPER_LIBDIR="$${WRAPPER_LIBDIR:=-L$(UCLIBCXX_RUNTIME_LIBDIR)}"' >> $@
diff --git a/package/libs/uclibc++/patches/006-eabi_fix.patch b/package/libs/uclibc++/patches/006-eabi_fix.patch
new file mode 100644
index 0000000..65b436c
--- /dev/null
+++ b/package/libs/uclibc++/patches/006-eabi_fix.patch
@@ -0,0 +1,38 @@
+--- a/include/typeinfo
++++ b/include/typeinfo
+@@ -44,6 +44,7 @@ namespace __cxxabiv1
+ class __class_type_info;
+ } // namespace __cxxabiv1
+
++#ifndef __GXX_MERGED_TYPEINFO_NAMES
+ #if !__GXX_WEAK__
+ // If weak symbols are not supported, typeinfo names are not merged.
+ #define __GXX_MERGED_TYPEINFO_NAMES 0
+@@ -51,6 +52,7 @@ namespace __cxxabiv1
+ // On platforms that support weak symbols, typeinfo names are merged.
+ #define __GXX_MERGED_TYPEINFO_NAMES 1
+ #endif
++#endif
+
+ namespace std
+ {
+--- a/include/unwind-cxx.h
++++ b/include/unwind-cxx.h
+@@ -173,6 +173,7 @@ extern std::unexpected_handler __unexpec
+
+ // This is the exception class we report -- "GNUCC++\0".
+ const _Unwind_Exception_Class __gxx_exception_class
++#ifndef __ARM_EABI_UNWINDER__
+ = ((((((((_Unwind_Exception_Class) 'G'
+ << 8 | (_Unwind_Exception_Class) 'N')
+ << 8 | (_Unwind_Exception_Class) 'U')
+@@ -181,6 +182,9 @@ const _Unwind_Exception_Class __gxx_exce
+ << 8 | (_Unwind_Exception_Class) '+')
+ << 8 | (_Unwind_Exception_Class) '+')
+ << 8 | (_Unwind_Exception_Class) '\0');
++#else
++= "GNUC++";
++#endif
+
+ // GNU C++ personality routine, Version 0.
+ extern "C" _Unwind_Reason_Code __gxx_personality_v0
diff --git a/package/libs/uclibc++/patches/010-honor-ldflags.patch b/package/libs/uclibc++/patches/010-honor-ldflags.patch
new file mode 100644
index 0000000..b1050cb
--- /dev/null
+++ b/package/libs/uclibc++/patches/010-honor-ldflags.patch
@@ -0,0 +1,23 @@
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -3,9 +3,9 @@ include $(TOPDIR)Rules.mak
+
+ WR_CXX := WRAPPER_INCLUDEDIR=-I$(TOPDIR)include $(TOPDIR)bin/g++-uc
+
+-LDFLAGS += -nodefaultlibs -shared -Wl,-soname,$(SHARED_MAJORNAME) $(BUILD_EXTRA_LIBRARIES)
++EXTRA_LDFLAGS += -nodefaultlibs -shared -Wl,-soname,$(SHARED_MAJORNAME) $(BUILD_EXTRA_LIBRARIES)
+ ifneq ($(DODEBUG),y)
+-LDFLAGS += -Wl,-s
++EXTRA_LDFLAGS += -Wl,-s
+ endif
+
+ SRCS = $(wildcard *.cpp)
+@@ -60,7 +60,7 @@ $(LIBNAME).a: libgcc_eh libsupc $(EXOBJS
+ $(RANLIB) $@
+
+ $(SHARED_FULLNAME): libgcc_eh libsupc $(EXOBJS)
+- $(CC) $(LDFLAGS) -o $@ $(EXOBJS) $(SUPOBJS) $(GCCOBJS) $(LIBS)
++ $(CC) $(LDFLAGS) $(EXTRA_LDFLAGS) -o $@ $(EXOBJS) $(SUPOBJS) $(GCCOBJS) $(LIBS)
+ $(LN) $@ $(SHARED_MAJORNAME)
+ $(LN) $(SHARED_MAJORNAME) $(LIBNAME).so
+
diff --git a/package/libs/uclibc++/patches/020-template-fix.patch b/package/libs/uclibc++/patches/020-template-fix.patch
new file mode 100644
index 0000000..f7cc09e
--- /dev/null
+++ b/package/libs/uclibc++/patches/020-template-fix.patch
@@ -0,0 +1,22 @@
+--- a/include/ostream
++++ b/include/ostream
+@@ -294,7 +294,7 @@ namespace std {
+ #endif
+ #endif
+
+- template <class charT,class traits = char_traits<charT> >
++ template <class charT,class traits>
+ class _UCXXEXPORT basic_ostream<charT,traits>::sentry
+ {
+ bool ok;
+--- a/include/istream
++++ b/include/istream
+@@ -340,7 +340,7 @@ namespace std{
+
+ };
+
+- template <class charT,class traits = char_traits<charT> > class _UCXXEXPORT basic_istream<charT,traits>::sentry {
++ template <class charT,class traits> class _UCXXEXPORT basic_istream<charT,traits>::sentry {
+ bool ok;
+ public:
+ explicit _UCXXEXPORT sentry(basic_istream<charT,traits>& os, bool noskipws = false){