From 90bb53f8c9b7ca3db6841a5005af791b93782d96 Mon Sep 17 00:00:00 2001 From: Darren Salt Date: Sat, 3 May 2008 14:34:45 +0100 Subject: Add support for "deprecated" attribute. --- m4/attributes.m4 | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'm4') diff --git a/m4/attributes.m4 b/m4/attributes.m4 index 55f34c9f7..a74280696 100644 --- a/m4/attributes.m4 +++ b/m4/attributes.m4 @@ -322,3 +322,26 @@ AC_DEFUN([CC_ATTRIBUTE_ALIGNED], [ [Define the highest alignment supported]) fi ]) + +AC_DEFUN([CC_ATTRIBUTE_DEPRECATED], [ + AC_REQUIRE([CC_CHECK_WERROR]) + ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $cc_cv_werror" + AC_CACHE_CHECK([if compiler supports __attribute__((deprecated))], + [cc_cv_attribute_alias], + [AC_COMPILE_IFELSE([ + void some_function(void) __attribute__((deprecated)); + ], + [cc_cv_attribute_deprecated=yes], + [cc_cv_attribute_deprecated=no]) + ]) + CFLAGS="$ac_save_CFLAGS" + + if test "x$cc_cv_attribute_deprecated" = "xyes"; then + AC_DEFINE([SUPPORT_ATTRIBUTE_DEPRECATED], 1, [Define this if the compiler supports the deprecated attribute]) + $1 + else + true + $2 + fi +]) -- cgit v1.2.3 From 2afde80a0515b931ec7a00326e0c5501739b40f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Sat, 3 May 2008 19:57:50 +0200 Subject: Fix configure when -Wunused-parameter is used. --- m4/pthreads.m4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'm4') diff --git a/m4/pthreads.m4 b/m4/pthreads.m4 index 65d3a9756..ecc580e9a 100644 --- a/m4/pthreads.m4 +++ b/m4/pthreads.m4 @@ -47,7 +47,7 @@ AC_DEFUN([CC_PTHREAD_FLAGS], [ AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include - void *fakethread(void *arg) { return NULL; } + void *fakethread(void *arg) { (void)arg; return NULL; } pthread_t fakevariable; ]], [[pthread_create(&fakevariable, NULL, &fakethread, NULL);]] -- cgit v1.2.3 From ac8886fbc94069026f5ad921145d0c9007df7411 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Mon, 5 May 2008 21:53:03 +0200 Subject: Generalise attributes checking, so that the same code is not copy-pasted for all attributes. --- m4/attributes.m4 | 276 +++++++++++++++++-------------------------------------- 1 file changed, 82 insertions(+), 194 deletions(-) (limited to 'm4') diff --git a/m4/attributes.m4 b/m4/attributes.m4 index a74280696..436c36b87 100644 --- a/m4/attributes.m4 +++ b/m4/attributes.m4 @@ -65,94 +65,99 @@ AC_DEFUN([CC_CHECK_WERROR], [ ]) ]) +AC_DEFUN([CC_CHECK_ATTRIBUTE], [ + AC_REQUIRE([CC_CHECK_WERROR]) + ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $cc_cv_werror" + AC_CACHE_CHECK([if $CC supports __attribute__(( ifelse([$2], , [$1], [$2]) ))], + AS_TR_SH([cc_cv_attribute_$1]), + [ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $cc_cv_werror" + AC_COMPILE_IFELSE([$3], + [eval "AS_TR_SH([cc_cv_attribute_$1])='yes'"], + [eval "AS_TR_SH([cc_cv_attribute_$1])='no'"]) + CFLAGS="$ac_save_CFLAGS" + ]) + + if eval test [x$]AS_TR_SH([cc_cv_attribute_$1]) = xyes; then + AC_DEFINE(AS_TR_CPP([SUPPORT_ATTRIBUTE_$1]), 1, [Define this if the compiler supports __attribute__(( ifelse([$2], , [$1], [$2]) ))]) + ifelse([$4], , [:], [$4]) + else + ifelse([$5], , [:], [$5]) + fi +]) + AC_DEFUN([CC_ATTRIBUTE_CONSTRUCTOR], [ - AC_REQUIRE([CC_CHECK_WERROR]) - ac_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $cc_cv_werror" - AC_CACHE_CHECK([if compiler supports __attribute__((constructor))], - [cc_cv_attribute_constructor], - [AC_COMPILE_IFELSE([ - void ctor() __attribute__((constructor)); - void ctor() { int a; }; - ], - [cc_cv_attribute_constructor=yes], - [cc_cv_attribute_constructor=no]) - ]) - CFLAGS="$ac_save_CFLAGS" - - if test "x$cc_cv_attribute_constructor" = "xyes"; then - AC_DEFINE([SUPPORT_ATTRIBUTE_CONSTRUCTOR], 1, [Define this if the compiler supports the constructor attribute]) - $1 - else - true - $2 - fi + CC_CHECK_ATTRIBUTE( + [constructor],, + [void __attribute__((constructor)) ctor() { int a; }], + [$1], + [$2]) ]) AC_DEFUN([CC_ATTRIBUTE_FORMAT], [ - AC_REQUIRE([CC_CHECK_WERROR]) - ac_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $cc_cv_werror" - AC_CACHE_CHECK([if compiler supports __attribute__((format(printf, n, n)))], - [cc_cv_attribute_format], - [AC_COMPILE_IFELSE([ - void __attribute__((format(printf, 1, 2))) printflike(const char *fmt, ...) { fmt = (void *)0; } - ], - [cc_cv_attribute_format=yes], - [cc_cv_attribute_format=no]) - ]) - CFLAGS="$ac_save_CFLAGS" - - if test "x$cc_cv_attribute_format" = "xyes"; then - AC_DEFINE([SUPPORT_ATTRIBUTE_FORMAT], 1, [Define this if the compiler supports the format attribute]) - $1 - else - true - $2 - fi + CC_CHECK_ATTRIBUTE( + [format], [format(printf, n, n)], + [void __attribute__((format(printf, 1, 2))) printflike(const char *fmt, ...) { fmt = (void *)0; }], + [$1], + [$2]) ]) AC_DEFUN([CC_ATTRIBUTE_FORMAT_ARG], [ - AC_REQUIRE([CC_CHECK_WERROR]) - ac_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $cc_cv_werror" - AC_CACHE_CHECK([if compiler supports __attribute__((format_arg(printf)))], - [cc_cv_attribute_format_arg], - [AC_COMPILE_IFELSE([ - char *__attribute__((format_arg(1))) gettextlike(const char *fmt) { fmt = (void *)0; } - ], - [cc_cv_attribute_format_arg=yes], - [cc_cv_attribute_format_arg=no]) - ]) - CFLAGS="$ac_save_CFLAGS" - - if test "x$cc_cv_attribute_format_arg" = "xyes"; then - AC_DEFINE([SUPPORT_ATTRIBUTE_FORMAT_ARG], 1, [Define this if the compiler supports the format_arg attribute]) - $1 - else - true - $2 - fi + CC_CHECK_ATTRIBUTE( + [format_arg], [format_arg(printf)], + [char *__attribute__((format_arg(1))) gettextlike(const char *fmt) { fmt = (void *)0; }], + [$1], + [$2]) ]) AC_DEFUN([CC_ATTRIBUTE_VISIBILITY], [ - AC_REQUIRE([CC_CHECK_WERROR]) - AC_CACHE_CHECK([if $CC supports __attribute__((visibility("$1")))], - AS_TR_SH([cc_cv_attribute_visibility_$1]), - [ac_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $cc_cv_werror" - AC_COMPILE_IFELSE([void __attribute__((visibility("$1"))) $1_function() { }], - [eval "AS_TR_SH([cc_cv_attribute_visibility_$1])='yes'"], - [eval "AS_TR_SH([cc_cv_attribute_visibility_$1])='no'"]) - CFLAGS="$ac_save_CFLAGS" - ]) + CC_CHECK_ATTRIBUTE( + [visibility_$1], [visibility("$1")], + [void __attribute__((visibility("$1"))) $1_function() { }], + [$2], + [$3]) +]) - if eval test [x$]AS_TR_SH([cc_cv_attribute_visibility_$1]) = xyes; then - AC_DEFINE(AS_TR_CPP([SUPPORT_ATTRIBUTE_VISIBILITY_$1]), 1, [Define this if the compiler supports __attribute__((visibility("$1")))]) - ifelse([$2], , [:], [$2]) - else - ifelse([$3], , [:], [$3]) - fi +AC_DEFUN([CC_ATTRIBUTE_NONNULL], [ + CC_CHECK_ATTRIBUTE( + [nonnull], [nonnull()], + [void __attribute__((nonnull())) some_function(void *foo, void *bar) { foo = (void*)0; bar = (void*)0; }], + [$1], + [$2]) +]) + +AC_DEFUN([CC_ATTRIBUTE_UNUSED], [ + CC_CHECK_ATTRIBUTE( + [unused], , + [void some_function(void *foo, __attribute__((unused)) void *bar);], + [$1], + [$2]) +]) + +AC_DEFUN([CC_ATTRIBUTE_SENTINEL], [ + CC_CHECK_ATTRIBUTE( + [sentinel], , + [void some_function(void *foo, ...) __attribute__((sentinel));], + [$1], + [$2]) +]) + +AC_DEFUN([CC_ATTRIBUTE_DEPRECATED], [ + CC_CHECK_ATTRIBUTE( + [deprecated], , + [void some_function(void *foo, ...) __attribute__((deprecated));], + [$1], + [$2]) +]) + +AC_DEFUN([CC_ATTRIBUTE_ALIAS], [ + CC_CHECK_ATTRIBUTE( + [alias], [weak, alias], + [void other_function(void *foo) { } + void some_function(void *foo) __attribute__((weak, alias("other_function")));], + [$1], + [$2]) ]) AC_DEFUN([CC_FLAG_VISIBILITY], [ @@ -180,53 +185,6 @@ AC_DEFUN([CC_FLAG_VISIBILITY], [ fi ]) -AC_DEFUN([CC_ATTRIBUTE_NONNULL], [ - AC_REQUIRE([CC_CHECK_WERROR]) - ac_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $cc_cv_werror" - AC_CACHE_CHECK([if compiler supports __attribute__((nonnull()))], - [cc_cv_attribute_nonnull], - [AC_COMPILE_IFELSE([ - void some_function(void *foo, void *bar) __attribute__((nonnull())); - void some_function(void *foo, void *bar) { foo = (void *)0; bar = (void *)0; } - ], - [cc_cv_attribute_nonnull=yes], - [cc_cv_attribute_nonnull=no]) - ]) - CFLAGS="$ac_save_CFLAGS" - - if test "x$cc_cv_attribute_nonnull" = "xyes"; then - AC_DEFINE([SUPPORT_ATTRIBUTE_NONNULL], 1, [Define this if the compiler supports the nonnull attribute]) - $1 - else - true - $2 - fi -]) - -AC_DEFUN([CC_ATTRIBUTE_UNUSED], [ - AC_REQUIRE([CC_CHECK_WERROR]) - ac_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $cc_cv_werror" - AC_CACHE_CHECK([if compiler supports __attribute__((unused))], - [cc_cv_attribute_unused], - [AC_COMPILE_IFELSE([ - void some_function(void *foo, __attribute__((unused)) void *bar); - ], - [cc_cv_attribute_unused=yes], - [cc_cv_attribute_unused=no]) - ]) - CFLAGS="$ac_save_CFLAGS" - - if test "x$cc_cv_attribute_unused" = "xyes"; then - AC_DEFINE([SUPPORT_ATTRIBUTE_UNUSED], 1, [Define this if the compiler supports the unused attribute]) - $1 - else - true - $2 - fi -]) - AC_DEFUN([CC_FUNC_EXPECT], [ AC_REQUIRE([CC_CHECK_WERROR]) ac_save_CFLAGS="$CFLAGS" @@ -254,53 +212,6 @@ AC_DEFUN([CC_FUNC_EXPECT], [ fi ]) -AC_DEFUN([CC_ATTRIBUTE_SENTINEL], [ - AC_REQUIRE([CC_CHECK_WERROR]) - ac_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $cc_cv_werror" - AC_CACHE_CHECK([if compiler supports __attribute__((sentinel))], - [cc_cv_attribute_sentinel], - [AC_COMPILE_IFELSE([ - void some_function(void *foo, ...) __attribute__((sentinel)); - ], - [cc_cv_attribute_sentinel=yes], - [cc_cv_attribute_sentinel=no]) - ]) - CFLAGS="$ac_save_CFLAGS" - - if test "x$cc_cv_attribute_sentinel" = "xyes"; then - AC_DEFINE([SUPPORT_ATTRIBUTE_SENTINEL], 1, [Define this if the compiler supports the sentinel attribute]) - $1 - else - true - $2 - fi -]) - -AC_DEFUN([CC_ATTRIBUTE_ALIAS], [ - AC_REQUIRE([CC_CHECK_WERROR]) - ac_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $cc_cv_werror" - AC_CACHE_CHECK([if compiler supports __attribute__((weak, alias))], - [cc_cv_attribute_alias], - [AC_COMPILE_IFELSE([ - void other_function(void *foo) { } - void some_function(void *foo) __attribute__((weak, alias("other_function"))); - ], - [cc_cv_attribute_alias=yes], - [cc_cv_attribute_alias=no]) - ]) - CFLAGS="$ac_save_CFLAGS" - - if test "x$cc_cv_attribute_alias" = "xyes"; then - AC_DEFINE([SUPPORT_ATTRIBUTE_ALIAS], 1, [Define this if the compiler supports the alias attribute]) - $1 - else - true - $2 - fi -]) - AC_DEFUN([CC_ATTRIBUTE_ALIGNED], [ AC_REQUIRE([CC_CHECK_WERROR]) AC_CACHE_CHECK([highest __attribute__ ((aligned ())) supported], @@ -322,26 +233,3 @@ AC_DEFUN([CC_ATTRIBUTE_ALIGNED], [ [Define the highest alignment supported]) fi ]) - -AC_DEFUN([CC_ATTRIBUTE_DEPRECATED], [ - AC_REQUIRE([CC_CHECK_WERROR]) - ac_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $cc_cv_werror" - AC_CACHE_CHECK([if compiler supports __attribute__((deprecated))], - [cc_cv_attribute_alias], - [AC_COMPILE_IFELSE([ - void some_function(void) __attribute__((deprecated)); - ], - [cc_cv_attribute_deprecated=yes], - [cc_cv_attribute_deprecated=no]) - ]) - CFLAGS="$ac_save_CFLAGS" - - if test "x$cc_cv_attribute_deprecated" = "xyes"; then - AC_DEFINE([SUPPORT_ATTRIBUTE_DEPRECATED], 1, [Define this if the compiler supports the deprecated attribute]) - $1 - else - true - $2 - fi -]) -- cgit v1.2.3 From cfd7b72175341d19baf7a76cc3e66960df0012cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Mon, 5 May 2008 21:59:42 +0200 Subject: Check for malloc attribute and define XINE_MALLOC for use in xineutils.h, rather than just checking for GCC 3. --- m4/attributes.m4 | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'm4') diff --git a/m4/attributes.m4 b/m4/attributes.m4 index 436c36b87..d7fc94b12 100644 --- a/m4/attributes.m4 +++ b/m4/attributes.m4 @@ -160,6 +160,14 @@ AC_DEFUN([CC_ATTRIBUTE_ALIAS], [ [$2]) ]) +AC_DEFUN([CC_ATTRIBUTE_MALLOC], [ + CC_CHECK_ATTRIBUTE( + [malloc], , + [void * __attribute__((malloc)) my_alloc(int n);], + [$1], + [$2]) +]) + AC_DEFUN([CC_FLAG_VISIBILITY], [ AC_REQUIRE([CC_CHECK_WERROR]) ac_save_CFLAGS="$CFLAGS" -- cgit v1.2.3 From d5be45ea2436cdc45f086b54516157b5b2394715 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Mon, 5 May 2008 23:27:59 +0200 Subject: CFLAGS are saved and changed inside the check cache. --- m4/attributes.m4 | 2 -- 1 file changed, 2 deletions(-) (limited to 'm4') diff --git a/m4/attributes.m4 b/m4/attributes.m4 index d7fc94b12..393ee0ba7 100644 --- a/m4/attributes.m4 +++ b/m4/attributes.m4 @@ -67,8 +67,6 @@ AC_DEFUN([CC_CHECK_WERROR], [ AC_DEFUN([CC_CHECK_ATTRIBUTE], [ AC_REQUIRE([CC_CHECK_WERROR]) - ac_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $cc_cv_werror" AC_CACHE_CHECK([if $CC supports __attribute__(( ifelse([$2], , [$1], [$2]) ))], AS_TR_SH([cc_cv_attribute_$1]), [ac_save_CFLAGS="$CFLAGS" -- cgit v1.2.3