diff options
Diffstat (limited to 'debian/patches')
-rw-r--r-- | debian/patches/605_nxcomp_Types.h-dont-use-STL-internals-on-libc++.full.patch | 52 | ||||
-rw-r--r-- | debian/patches/series | 1 |
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 |