From 429dbe70872b050453d41d8f09733a4deb1ed804 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Sun, 19 Oct 2014 00:19:38 +0200 Subject: Rename 605_nxcomp_Types.h-dont-use-STL-internals-on-libc++.full.patch to 605_nxcomp_Types.h-dont-use-STL-internals-on-libc++.full+lite.patch. It is an nxcomp patch that needs to be applied in the nx-libs-lite _and_ the nx-libs-full tarball release. --- ...ont-use-STL-internals-on-libc++.full+lite.patch | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 debian/patches/605_nxcomp_Types.h-dont-use-STL-internals-on-libc++.full+lite.patch (limited to 'debian/patches/605_nxcomp_Types.h-dont-use-STL-internals-on-libc++.full+lite.patch') diff --git a/debian/patches/605_nxcomp_Types.h-dont-use-STL-internals-on-libc++.full+lite.patch b/debian/patches/605_nxcomp_Types.h-dont-use-STL-internals-on-libc++.full+lite.patch new file mode 100644 index 000000000..60f33ce3f --- /dev/null +++ b/debian/patches/605_nxcomp_Types.h-dont-use-STL-internals-on-libc++.full+lite.patch @@ -0,0 +1,52 @@ +Description: In Types.h, don't use STL internals on libc++. +Author: Clemens Lang +Abstract: + The nx-libs-lite package does not compile on OS X Mavericks because + Apple's clang compilers now default to compiling against the libc++ STL + rather than (their outdated copy of) libstdc++. + . + While the compiler still allows changing that, we should not rely on + this being possible forever. + . + The compiler chokes in Types.h, specifically the clear() methods in + subclasses of vectors that use implementation details of the GNU STL. + The attached patch fixes these compilation issues by not overriding the + clear() method when compiling against libc++, since the libc++ headers + seem to do essentially the same as the overriden method. +--- a/nxcomp/Types.h 2013-11-05 01:35:22.000000000 +0100 ++++ b/nxcomp/Types.h 2013-11-05 01:37:30.000000000 +0100 +@@ -55,6 +55,9 @@ + return &*(vector < unsigned char >::begin()); + } + ++ // Avoid overriding clear() when using libc++. Fiddling with STL internals ++ // doesn't really seem like a good idea to me anyway. ++ #ifndef _LIBCPP_VECTOR + void clear() + { + #if defined(__STL_USE_STD_ALLOCATORS) || defined(__GLIBCPP_INTERNAL_VECTOR_H) +@@ -95,12 +98,16 @@ + + #endif /* #if defined(__STL_USE_STD_ALLOCATORS) || defined(__GLIBCPP_INTERNAL_VECTOR_H) */ + } ++ #endif /* #ifdef _LIBCPP_VECTOR */ + }; + + class T_messages : public vector < Message * > + { + public: + ++ // Avoid overriding clear() when using libc++. Fiddling with STL internals ++ // doesn't really seem like a good idea to me anyway. ++ #ifndef _LIBCPP_VECTOR + void clear() + { + #if defined(__STL_USE_STD_ALLOCATORS) || defined(__GLIBCPP_INTERNAL_VECTOR_H) +@@ -141,6 +148,7 @@ + + #endif /* #if defined(__STL_USE_STD_ALLOCATORS) || defined(__GLIBCPP_INTERNAL_VECTOR_H) */ + } ++ #endif /* #ifndef _LIBCPP_VECTOR */ + }; + + typedef md5_byte_t * T_checksum; -- cgit v1.2.3