The gcc version #ifdef fix for bswap16 doesn't work for Apple's clang. Here's a better fix, which has configure check for it directly.
Fixes build failures on MacOS X. -r
From 05445ca46da8c1c118c8ec3ba34df8ca0f76925d Mon Sep 17 00:00:00 2001 From: Ralph Giles <[email protected]> Date: Tue, 4 Nov 2014 11:57:28 -0800 Subject: [PATCH 1/4] Add autoconf macro to check for the bswap16 intrinsic. --- m4/bswap.m4 | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/m4/bswap.m4 b/m4/bswap.m4 index 926f820..72af333 100644 --- a/m4/bswap.m4 +++ b/m4/bswap.m4 @@ -1,4 +1,4 @@ -dnl Copyright (C) 2012 Xiph.org Foundation +dnl Copyright (C) 2012-2014 Xiph.org Foundation dnl dnl Redistribution and use in source and binary forms, with or without dnl modification, are permitted provided that the following conditions @@ -53,3 +53,30 @@ AC_DEFUN([XIPH_C_BSWAP32], )] )# XIPH_C_BSWAP32 + + +dnl @synopsis XIPH_C_BSWAP16 +dnl +dnl @author Erik de Castro Lopo <[email protected]> +dnl +dnl Dtermine whether the compiler has the __builtin_bswap16() intrinsic which +dnl is likely to be present for most versions of GCC as well as Clang. + +AC_DEFUN([XIPH_C_BSWAP16], +[AC_CACHE_CHECK(for bswap16 instrinsic, + ac_cv_c_bswap16, + + # Initialize to no + ac_cv_c_bswap16=no + HAVE_BSWAP16=0 + + [AC_TRY_LINK([], + return __builtin_bswap16 (0) ;, + ac_cv_c_bswap16=yes + HAVE_BSWAP16=1 + )] + AC_DEFINE_UNQUOTED(HAVE_BSWAP16, ${HAVE_BSWAP16}, + [Compiler has the __builtin_bswap16 intrinsic]) + + )] +)# XIPH_C_BSWAP16 -- 1.8.5.2 (Apple Git-48)
From 0d4ae3ea6a49df3eb5a1df1ba6550fd1b613579e Mon Sep 17 00:00:00 2001 From: Ralph Giles <[email protected]> Date: Tue, 4 Nov 2014 11:58:45 -0800 Subject: [PATCH 2/4] Use a configure check for bswap16 instead of gcc version #ifdefs. Fixes a build problem on apple clang. --- configure.ac | 1 + include/share/endswap.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index dae619e..3ed4e7f 100644 --- a/configure.ac +++ b/configure.ac @@ -67,6 +67,7 @@ AC_CHECK_HEADERS([stdint.h inttypes.h byteswap.h sys/param.h termios.h x86intrin AC_HEADER_TIOCGWINSZ XIPH_C_BSWAP32 +XIPH_C_BSWAP16 ac_cv_c_big_endian=0 ac_cv_c_little_endian=0 diff --git a/include/share/endswap.h b/include/share/endswap.h index 86bf857..dece49c 100644 --- a/include/share/endswap.h +++ b/include/share/endswap.h @@ -34,7 +34,7 @@ #if HAVE_BSWAP32 /* GCC and Clang */ /* GCC prior to 4.8 didn't provide bswap16 on x86_64 */ -#if __GNUC__ <= 4 && __GNUC_MINOR__ < 8 +#ifndef HAVE_BSWAP16 static inline unsigned short __builtin_bswap16(unsigned short a) { return (a<<8)|(a>>8); -- 1.8.5.2 (Apple Git-48)
From 55c8e0b2a1c73ffde8c907b39abee08161ccc429 Mon Sep 17 00:00:00 2001 From: Ralph Giles <[email protected]> Date: Tue, 4 Nov 2014 11:59:53 -0800 Subject: [PATCH 3/4] Clean up bswap32 autoconf macro. Improve 'checking' message and don't hog the cache namespace. --- m4/bswap.m4 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/m4/bswap.m4 b/m4/bswap.m4 index 72af333..eec3ee1 100644 --- a/m4/bswap.m4 +++ b/m4/bswap.m4 @@ -36,16 +36,16 @@ dnl Dtermine whether the compiler has the __builtin_bswap32() intrinsic which dnl is likely to be present for most versions of GCC as well as Clang. AC_DEFUN([XIPH_C_BSWAP32], -[AC_CACHE_CHECK(has bswap32 instrinsic, - ac_cv_c_bswap, +[AC_CACHE_CHECK(for bswap32 instrinsic, + ac_cv_c_bswap32, # Initialize to no - ac_cv_c_bswap=no + ac_cv_c_bswap32=no HAVE_BSWAP32=0 [AC_TRY_LINK([], return __builtin_bswap32 (0) ;, - ac_cv_c_bswap=yes + ac_cv_c_bswap32=yes HAVE_BSWAP32=1 )] AC_DEFINE_UNQUOTED(HAVE_BSWAP32, ${HAVE_BSWAP32}, -- 1.8.5.2 (Apple Git-48)
From 0b2f5b4bef8116b27660e24597e915c9fbf2b828 Mon Sep 17 00:00:00 2001 From: Ralph Giles <[email protected]> Date: Tue, 4 Nov 2014 12:01:48 -0800 Subject: [PATCH 4/4] Fix indenting on the bswap32 autoconf macro. We generally prefer spaces to tabs. --- m4/bswap.m4 | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/m4/bswap.m4 b/m4/bswap.m4 index eec3ee1..e6793d6 100644 --- a/m4/bswap.m4 +++ b/m4/bswap.m4 @@ -37,21 +37,21 @@ dnl is likely to be present for most versions of GCC as well as Clang. AC_DEFUN([XIPH_C_BSWAP32], [AC_CACHE_CHECK(for bswap32 instrinsic, - ac_cv_c_bswap32, + ac_cv_c_bswap32, - # Initialize to no - ac_cv_c_bswap32=no - HAVE_BSWAP32=0 + # Initialize to no + ac_cv_c_bswap32=no + HAVE_BSWAP32=0 - [AC_TRY_LINK([], - return __builtin_bswap32 (0) ;, - ac_cv_c_bswap32=yes - HAVE_BSWAP32=1 - )] - AC_DEFINE_UNQUOTED(HAVE_BSWAP32, ${HAVE_BSWAP32}, - [Compiler has the __builtin_bswap32 intrinsic]) + [AC_TRY_LINK([], + return __builtin_bswap32 (0) ;, + ac_cv_c_bswap32=yes + HAVE_BSWAP32=1 + )] + AC_DEFINE_UNQUOTED(HAVE_BSWAP32, ${HAVE_BSWAP32}, + [Compiler has the __builtin_bswap32 intrinsic]) - )] + )] )# XIPH_C_BSWAP32 -- 1.8.5.2 (Apple Git-48)
signature.asc
Description: OpenPGP digital signature
_______________________________________________ flac-dev mailing list [email protected] http://lists.xiph.org/mailman/listinfo/flac-dev
