diff options
Diffstat (limited to 'm4')
-rw-r--r-- | m4/_xine.m4 | 18 | ||||
-rw-r--r-- | m4/attributes.m4 | 22 |
2 files changed, 22 insertions, 18 deletions
diff --git a/m4/_xine.m4 b/m4/_xine.m4 index 8ff2d67ca..630758298 100644 --- a/m4/_xine.m4 +++ b/m4/_xine.m4 @@ -142,24 +142,6 @@ AC_DEFUN([AC_CHECK_DXR3], fi ]) - -dnl AC_C_ATTRIBUTE_ALIGNED -dnl define ATTRIBUTE_ALIGNED_MAX to the maximum alignment if this is supported -AC_DEFUN([AC_C_ATTRIBUTE_ALIGNED], - [AC_CACHE_CHECK([__attribute__ ((aligned ())) support], - [ac_cv_c_attribute_aligned], - [ac_cv_c_attribute_aligned=0 - for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do - AC_TRY_COMPILE([], - [static char c __attribute__ ((aligned($ac_cv_c_attr_align_try))) = 0 -; return c;], - [ac_cv_c_attribute_aligned=$ac_cv_c_attr_align_try]) - done]) - if test x"$ac_cv_c_attribute_aligned" != x"0"; then - AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX], - [$ac_cv_c_attribute_aligned],[maximum supported data alignment]) - fi]) - dnl AC_TRY_CFLAGS (CFLAGS, [ACTION-IF-WORKS], [ACTION-IF-FAILS]) dnl check if $CC supports a given set of cflags AC_DEFUN([AC_TRY_CFLAGS], diff --git a/m4/attributes.m4 b/m4/attributes.m4 index 28e2e5839..2d52cebc4 100644 --- a/m4/attributes.m4 +++ b/m4/attributes.m4 @@ -305,3 +305,25 @@ AC_DEFUN([CC_ATTRIBUTE_ALIAS], [ $2 fi ]) + +AC_DEFUN([CC_ATTRIBUTE_ALIGNED], [ + AC_REQUIRE([CC_CHECK_WERROR]) + AC_CACHE_CHECK([highest __attribute__ ((aligned ())) supported], + [cc_cv_attribute_aligned], + [ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $cc_cv_werror" + for cc_attribute_align_try in 64 32 16 8 4 2; do + AC_COMPILE_IFELSE([ + int main() { + static char c __attribute__ ((aligned($cc_attribute_align_try))) = 0; + return c; + }], [cc_cv_attribute_aligned=$cc_attribute_align_try; break]) + done + CFLAGS="$ac_save_CFLAGS" + ]) + + if test "x$cc_cv_attribute_aligned" != "x"; then + AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX], [$cc_cv_attribute_aligned], + [Define the highest alignment supported]) + fi +]) |