[PATCH:xorg-macros] Use AC_LANG_PROGRAM in XORG_CHECK_MALLOC_ZERO to clear autoconf-2.68 warnings
Dan Nicholson
dbn.lists at gmail.com
Sun Dec 5 09:40:40 PST 2010
On Sun, Dec 5, 2010 at 9:31 AM, Matt Turner <mattst88 at gmail.com> wrote:
> On Sun, Dec 5, 2010 at 9:36 AM, Alan Coopersmith
> <alan.coopersmith at oracle.com> wrote:
>> configure.ac:126: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body
>> ../../lib/autoconf/lang.m4:194: AC_LANG_CONFTEST is expanded from...
>> ../../lib/autoconf/general.m4:2730: _AC_RUN_IFELSE is expanded from...
>> ../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from...
>> ../../lib/autoconf/general.m4:2749: AC_RUN_IFELSE is expanded from...
>> aclocal.m4:1952: XORG_CHECK_MALLOC_ZERO is expanded from...
>> configure.ac:126: the top level
>>
>> Also, calloc() takes two arguments, as the compiler points out when
>> you #include <stdlib.h> instead of faking it badly.
>>
>> Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
>> ---
>> xorg-macros.m4.in | 14 ++++++--------
>> 1 files changed, 6 insertions(+), 8 deletions(-)
>>
>> diff --git a/xorg-macros.m4.in b/xorg-macros.m4.in
>> index fe29881..c7df523 100644
>> --- a/xorg-macros.m4.in
>> +++ b/xorg-macros.m4.in
>> @@ -904,18 +904,16 @@ AC_ARG_ENABLE(malloc0returnsnull,
>>
>> AC_MSG_CHECKING([whether malloc(0) returns NULL])
>> if test "x$MALLOC_ZERO_RETURNS_NULL" = xauto; then
>> - AC_RUN_IFELSE([
>> -char *malloc();
>> -char *realloc();
>> -char *calloc();
>> -main() {
>> + AC_RUN_IFELSE([AC_LANG_PROGRAM([
>> +#include <stdlib.h>
>> +],[
>> char *m0, *r0, *c0, *p;
>> m0 = malloc(0);
>> p = malloc(10);
>> r0 = realloc(p,0);
>> - c0 = calloc(0);
>> - exit(m0 == 0 || r0 == 0 || c0 == 0 ? 0 : 1);
>> -}],
>> + c0 = calloc(0,10);
>> + exit((m0 == 0 || r0 == 0 || c0 == 0) ? 0 : 1);
>> +])],
>> [MALLOC_ZERO_RETURNS_NULL=yes],
>> [MALLOC_ZERO_RETURNS_NULL=no],
>> [MALLOC_ZERO_RETURNS_NULL=yes])
>> --
>> 1.7.3.2
>
> I'm not particularly familiar with autotools, but this looks good. I
> initially thought the malloc(10) was leaking, but now I see that it is
> realloc()'d to 0.
>
> Reviewed-by: Matt Turner <mattst88 at gmail.com>
It doesn't really matters if there is a leak since configure is just
running this little test program and checking the return value. Looks
good to me.
Reviewed-by: Dan Nicholson <dbn.lists at gmail.com>
More information about the xorg-devel
mailing list