aboutsummaryrefslogtreecommitdiff
path: root/debian/patches
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches')
-rw-r--r--debian/patches/605_nxcomp_Types.h-dont-use-STL-internals-on-libc++.full.patch52
-rw-r--r--debian/patches/series1
2 files changed, 53 insertions, 0 deletions
diff --git a/debian/patches/605_nxcomp_Types.h-dont-use-STL-internals-on-libc++.full.patch b/debian/patches/605_nxcomp_Types.h-dont-use-STL-internals-on-libc++.full.patch
new file mode 100644
index 000000000..60f33ce3f
--- /dev/null
+++ b/debian/patches/605_nxcomp_Types.h-dont-use-STL-internals-on-libc++.full.patch
@@ -0,0 +1,52 @@
+Description: In Types.h, don't use STL internals on libc++.
+Author: Clemens Lang <cal@macports.org>
+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;
diff --git a/debian/patches/series b/debian/patches/series
index 9e49395ed..ce5237ffd 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -50,6 +50,7 @@
602_nx-X11_initgroups.full.patch
603_nx-X11_compilation_warnings.full.patch
604_nx-X11_recent-freetype-API.full.patch
+605_nxcomp_Types.h-dont-use-STL-internals-on-libc++.full.patch
999_nxagent_unbrand-nxagent-brand-x2goagent.full.patch
016_nx-X11_install-location.debian.patch
102_xserver-xext_set-securitypolicy-path.debian.patch