mirror of
				https://github.com/webmproject/libwebp.git
				synced 2025-10-31 02:15:42 +01:00 
			
		
		
		
	Merge "configure: fix intrinsics build w/older gcc"
This commit is contained in:
		
							
								
								
									
										25
									
								
								configure.ac
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								configure.ac
									
									
									
									
									
								
							| @@ -79,6 +79,28 @@ AS_IF([test "$GCC" = "yes" ], [ | |||||||
|        esac |        esac | ||||||
|        AS_IF([test "$gcc_wht_bug" = "yes"], [ |        AS_IF([test "$gcc_wht_bug" = "yes"], [ | ||||||
|               TEST_AND_ADD_CFLAGS([AM_CFLAGS], [-frename-registers])])]) |               TEST_AND_ADD_CFLAGS([AM_CFLAGS], [-frename-registers])])]) | ||||||
|  | # Use -flax-vector-conversions, if available, when building intrinsics with | ||||||
|  | # older versions of gcc. The flag appeared in 4.3.x, but if backported, and | ||||||
|  | # -fno-lax-vector-conversions is set, errors may occur with the intrinsics | ||||||
|  | # files along with the older system includes, e.g., emmintrin.h. | ||||||
|  | # Originally observed with cc (GCC) 4.2.1 20070831 patched [FreeBSD] (9.3). | ||||||
|  | # https://bugs.chromium.org/p/webp/issues/detail?id=274 | ||||||
|  | AS_IF([test "$GCC" = "yes" ], [ | ||||||
|  |        case "$host_cpu" in | ||||||
|  |          amd64|i?86|x86_64) | ||||||
|  |            AC_COMPILE_IFELSE( | ||||||
|  |              dnl only check for -flax-vector-conversions with older gcc, skip | ||||||
|  |              dnl clang as it reports itself as 4.2.1, but the flag isn't needed. | ||||||
|  |              [AC_LANG_SOURCE([#if !defined(__clang__) && defined(__GNUC__) && \ | ||||||
|  |                                   ((__GNUC__ << 8) | __GNUC_MINOR__) < 0x403 | ||||||
|  |                               #error old gcc | ||||||
|  |                               #endif | ||||||
|  |                               int main(void) { return 0; } | ||||||
|  |                              ])],, | ||||||
|  |               [TEST_AND_ADD_CFLAGS([INTRINSICS_CFLAGS], | ||||||
|  |                                    [-flax-vector-conversions])]) | ||||||
|  |            ;; | ||||||
|  |        esac]) | ||||||
| AC_SUBST([AM_CFLAGS]) | AC_SUBST([AM_CFLAGS]) | ||||||
|  |  | ||||||
| dnl === Check for machine specific flags | dnl === Check for machine specific flags | ||||||
| @@ -89,6 +111,7 @@ AC_ARG_ENABLE([avx2], | |||||||
|  |  | ||||||
| AS_IF([test "x$enable_avx2" != "xno" -a "x$enable_sse4_1" != "xno" \ | AS_IF([test "x$enable_avx2" != "xno" -a "x$enable_sse4_1" != "xno" \ | ||||||
|          -a "x$enable_sse2" != "xno"], [ |          -a "x$enable_sse2" != "xno"], [ | ||||||
|  |   AVX2_CFLAGS="$INTRINSICS_CFLAGS $AVX2_FLAGS" | ||||||
|   TEST_AND_ADD_CFLAGS([AVX2_FLAGS], [-mavx2]) |   TEST_AND_ADD_CFLAGS([AVX2_FLAGS], [-mavx2]) | ||||||
|   AS_IF([test -n "$AVX2_FLAGS"], [ |   AS_IF([test -n "$AVX2_FLAGS"], [ | ||||||
|     SAVED_CFLAGS=$CFLAGS |     SAVED_CFLAGS=$CFLAGS | ||||||
| @@ -112,6 +135,7 @@ AC_ARG_ENABLE([sse4.1], | |||||||
|                               @<:@default=auto@:>@])) |                               @<:@default=auto@:>@])) | ||||||
|  |  | ||||||
| AS_IF([test "x$enable_sse4_1" != "xno" -a "x$enable_sse2" != "xno"], [ | AS_IF([test "x$enable_sse4_1" != "xno" -a "x$enable_sse2" != "xno"], [ | ||||||
|  |   SSE41_FLAGS="$INTRINSICS_CFLAGS $SSE41_FLAGS" | ||||||
|   TEST_AND_ADD_CFLAGS([SSE41_FLAGS], [-msse4.1]) |   TEST_AND_ADD_CFLAGS([SSE41_FLAGS], [-msse4.1]) | ||||||
|   AS_IF([test -n "$SSE41_FLAGS"], [ |   AS_IF([test -n "$SSE41_FLAGS"], [ | ||||||
|     SAVED_CFLAGS=$CFLAGS |     SAVED_CFLAGS=$CFLAGS | ||||||
| @@ -129,6 +153,7 @@ AC_ARG_ENABLE([sse2], | |||||||
|                               @<:@default=auto@:>@])) |                               @<:@default=auto@:>@])) | ||||||
|  |  | ||||||
| AS_IF([test "x$enable_sse2" != "xno"], [ | AS_IF([test "x$enable_sse2" != "xno"], [ | ||||||
|  |   SSE2_FLAGS="$INTRINSICS_CFLAGS $SSE2_FLAGS" | ||||||
|   TEST_AND_ADD_CFLAGS([SSE2_FLAGS], [-msse2]) |   TEST_AND_ADD_CFLAGS([SSE2_FLAGS], [-msse2]) | ||||||
|   AS_IF([test -n "$SSE2_FLAGS"], [ |   AS_IF([test -n "$SSE2_FLAGS"], [ | ||||||
|     SAVED_CFLAGS=$CFLAGS |     SAVED_CFLAGS=$CFLAGS | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user