autoconf-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: FW: [GNU Autoconf 2.65] testsuite: 35 239 271 272 273 274 275 276 27


From: Eric Blake
Subject: Re: FW: [GNU Autoconf 2.65] testsuite: 35 239 271 272 273 274 275 276 277 278 279 280 failed
Date: Mon, 01 Mar 2010 23:28:18 -0700
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.23) Gecko/20090812 Thunderbird/2.0.0.23 Mnenhy/0.7.6.666

According to Ralf Wildenhues on 2/28/2010 7:09 AM:
>>> checking whether the C compiler works... no
>>> ../../tests/c.at:66: exit code was 1, expected 77
>>
>> The second is us failing to adhere to '(autoconf.info)Shell Functions':
>>      Likewise, the state of `$?' is not reliable when entering a shell
>>   function.

Bummer.  I got caught.

>>
>> in AS_ERROR.  The first seems to be a genuine shell error difference
>> (from glancing at SUSv3 I can only gather that a failed redirection
>> should result in an exit status > 0, but no further specification).

That's correct; so we do have to normalize $? in that case.

> I'm testing these two patches right now.  I didn't see an easy way to
> keep as_fn_error API-compatible in the presence of trailing optional
> arguments, so aren't we glad we didn't publish that function.  Still
> feel a bit uneasy about the first patch, as we don't cover AS_ERROR
> fully in the testsuite (e.g., the two-argument version).  So, close
> review is appreciated.  Thanks.  (Sending them with format-patch in
> case you want to go ahead and apply them, Eric.)

I've got a nit on the first patch anyway, so I'll let you apply them if
you read this before I'm awake tomorrow.

> Subject: [PATCH 1/4] Fix AS_ERROR for FreeBSD sh.

1/4?  What happened to 3/4 and 4/4?  :)

> 
> * lib/m4sugar/m4sh.m4 (_AS_ERROR_PREPARE): Rewrite as_fn_error
> to take additional first argument STATUS instead of transporting
> $? across shell function entry, which does not work with FreeBSD
> sh.  Shift all other arguments by one, adjust.
> (AS_ERROR): Pass EXIT-STATUS, defaulting to $?, to as_fn_error.
> * THANKS: Update.
> Report by Václav Haisman.

The patch looks correct, but...

> @@ -842,9 +842,8 @@ _m4_popdef([AS_MESSAGE_LOG_FD])dnl
>  m4_defun_init([AS_ERROR],
>  [m4_append_uniq([_AS_CLEANUP],
>    [m4_divert_text([M4SH-INIT-FN], [_AS_ERROR_PREPARE[]])])],
> -[m4_ifvaln([$2], [{ AS_SET_STATUS([$2])])]dnl
> -[as_fn_error "_AS_QUOTE([$1])"m4_ifval(AS_MESSAGE_LOG_FD,
> -  [ "$LINENO" AS_MESSAGE_LOG_FD])[]m4_ifval([$2], [; }])])
> +[as_fn_error m4_default([$2], [$?]) 
> "_AS_QUOTE([$1])"m4_ifval(AS_MESSAGE_LOG_FD,
> +  [ "$LINENO" AS_MESSAGE_LOG_FD])])

This can be simplified, to calling as_fn_error $? "_AS_QUOTE([$1])"...

Why?  Because we just called AS_SET_STATUS([$2]) the line before, so $? is
guaranteed to be the correct value.  And one less m4_default is that much
less m4 effort.

> * tests/tools.at (autom4te cache creation): Normalize exit
> status of failed redirection to 1, may be 2 with FreeBSD sh.
> Report by Václav Haisman.

Ready to go.

-- 
Don't work too hard, make some time for fun as well!

Eric Blake             address@hidden

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]