[libcxx] r292564 - Disable aligned new/delete on Apple platforms without posix_memalign

Eric Fiselier via cfe-commits cfe-commits at lists.llvm.org
Thu Jan 19 18:00:18 PST 2017


Hi Hans,

Marshall gave this commit and r292560 permission to be merged into 4.0,
which I will being doing shortly.

/Eric

On Thu, Jan 19, 2017 at 6:47 PM, Eric Fiselier via cfe-commits <
cfe-commits at lists.llvm.org> wrote:

> Author: ericwf
> Date: Thu Jan 19 19:47:26 2017
> New Revision: 292564
>
> URL: http://llvm.org/viewvc/llvm-project?rev=292564&view=rev
> Log:
> Disable aligned new/delete on Apple platforms without posix_memalign
>
> Summary:
> This patch disables the aligned new/delet overloads on Apple platforms
> without `posix_memalign`. This fixes libc++.dylib build regressions on such
> platforms.
> This fixes http://llvm.org/PR31448.
>
> This patch should also be merged into the 4.0 release branch
>
>
> Reviewers: mclow.lists, rsmith, dexonsmith, jeremyhu
>
> Reviewed By: mclow.lists
>
> Subscribers: cfe-commits
>
> Differential Revision: https://reviews.llvm.org/D28931
>
> Modified:
>     libcxx/trunk/include/__config
>     libcxx/trunk/include/new
>     libcxx/trunk/src/new.cpp
>
> Modified: libcxx/trunk/include/__config
> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/_
> _config?rev=292564&r1=292563&r2=292564&view=diff
> ============================================================
> ==================
> --- libcxx/trunk/include/__config (original)
> +++ libcxx/trunk/include/__config Thu Jan 19 19:47:26 2017
> @@ -848,6 +848,18 @@ template <unsigned> struct __static_asse
>  #define _DECLARE_C99_LDBL_MATH 1
>  #endif
>
> +#if defined(__APPLE__)
> +# if !defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && \
> +     defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)
> +#   define __MAC_OS_X_VERSION_MIN_REQUIRED __ENVIROMENT_MAC_OS_X_VERSION_
> MIN_REQUIRED__
> +# endif
> +# if defined(__MAC_OS_X_VERSION_MIN_REQUIRED)
> +#   if __MAC_OS_X_VERSION_MIN_REQUIRED < 1060
> +#     define _LIBCPP_HAS_NO_ALIGNED_ALLOCATION
> +#   endif
> +# endif
> +#endif // defined(__APPLE__)
> +
>  #if defined(__APPLE__) || defined(__FreeBSD__)
>  #define _LIBCPP_HAS_DEFAULTRUNELOCALE
>  #endif
>
> Modified: libcxx/trunk/include/new
> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/
> new?rev=292564&r1=292563&r2=292564&view=diff
> ============================================================
> ==================
> --- libcxx/trunk/include/new (original)
> +++ libcxx/trunk/include/new Thu Jan 19 19:47:26 2017
> @@ -101,8 +101,9 @@ void  operator delete[](void* ptr, void*
>  # define _LIBCPP_HAS_NO_SIZED_DEALLOCATION
>  #endif
>
> -#if !(defined(_LIBCPP_BUILDING_NEW) || _LIBCPP_STD_VER > 14 || \
> -    (defined(__cpp_aligned_new) && __cpp_aligned_new >= 201606))
> +#if !defined(_LIBCPP_HAS_NO_ALIGNED_ALLOCATION) && \
> +    (!(defined(_LIBCPP_BUILDING_NEW) || _LIBCPP_STD_VER > 14 || \
> +    (defined(__cpp_aligned_new) && __cpp_aligned_new >= 201606)))
>  # define _LIBCPP_HAS_NO_ALIGNED_ALLOCATION
>  #endif
>
>
> Modified: libcxx/trunk/src/new.cpp
> URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/src/new.
> cpp?rev=292564&r1=292563&r2=292564&view=diff
> ============================================================
> ==================
> --- libcxx/trunk/src/new.cpp (original)
> +++ libcxx/trunk/src/new.cpp Thu Jan 19 19:47:26 2017
> @@ -151,6 +151,8 @@ operator delete[] (void* ptr, size_t) _N
>      ::operator delete[](ptr);
>  }
>
> +#if !defined(_LIBCPP_HAS_NO_ALIGNED_ALLOCATION)
> +
>  _LIBCPP_WEAK
>  void *
>  operator new(std::size_t size, std::align_val_t alignment)
> _THROW_BAD_ALLOC
> @@ -275,6 +277,8 @@ operator delete[] (void* ptr, size_t, st
>      ::operator delete[](ptr, alignment);
>  }
>
> +#endif // !defined(_LIBCPP_HAS_NO_ALIGNED_ALLOCATION)
> +
>  #endif // !__GLIBCXX__
>
>  namespace std
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20170119/431a884b/attachment.html>


More information about the cfe-commits mailing list