This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
config/i386/xmmintrin.h: Only #include <mm_malloc.h> if __STDC_HOSTED__
- From: Gerald Pfeifer <gerald at pfeifer dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: Andreas Tobler <andreast at FreeBSD dot org>, Alexander Kabaev <kan at freebsd dot org>
- Date: Sat, 9 Dec 2017 18:41:14 +0100 (CET)
- Subject: config/i386/xmmintrin.h: Only #include <mm_malloc.h> if __STDC_HOSTED__
- Authentication-results: sourceware.org; auth=none
Some users on FreeBSD noticed a problem when trying to use GCC to
build things in a standalone environment that manifests itself as
/usr/local/lib/gcc/x86_64-unknown-freebsd11.0/6.3.0/include/xmmintrin.h:34 from
/usr/local/lib/gcc/x86_64-unknown-freebsd11.0/6.3.0/include/immintrin.h:29 from
/workspace/src/sys/crypto/aesni/intel_sha256.c:62
In function '_mm_malloc':
/usr/local/lib/gcc/x86_64-unknown-freebsd11.0/6.3.0/include/mm_malloc.h:39:
error: 'errno' undeclared (first use in this function)
It turns out the clang version of xmmintrin.h does not include mm_malloc.h
if !__STDC_HOSTED__ whereas ours unconditionally does so.
Andreas and Alexander have tested the simple patch below that essentially
mirrors what clang does.
Okay?
Gerald
2017-12-09 Gerald Pfeifer <gerald@pfeifer.com>
* config/i386/xmmintrin.h: Only #include <mm_malloc.h> if
__STDC_HOSTED__.
Index: config/i386/xmmintrin.h
===================================================================
--- config/i386/xmmintrin.h (revision 255523)
+++ config/i386/xmmintrin.h (working copy)
@@ -31,7 +31,9 @@
#include <mmintrin.h>
/* Get _mm_malloc () and _mm_free (). */
+#if __STDC_HOSTED__
#include <mm_malloc.h>
+#endif
/* Constants for use with _mm_prefetch. */
enum _mm_hint