[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCHv5] _AC_DO _AC_DO_STDERR: Evaluate argument twice
From: |
Nikolai Merinov |
Subject: |
Re: [PATCHv5] _AC_DO _AC_DO_STDERR: Evaluate argument twice |
Date: |
Wed, 09 Dec 2020 22:45:21 +0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) |
> Zack Weinberg <zackw@panix.com> writes:
>> Please also file a tracking bug for this change at
>> https://savannah.gnu.org/support/?func=additem&group=autoconf so we
>> don't forget about it again.
>>
>> Finally, I haven't reviewed the code in detail but I would like to see
>> more comprehensive tests. Right now you're only testing one word in
>> quotes in CFLAGS; blindly stripping the quotes would do the right
>> thing. If I understand your goal correctly, you should be testing
>> things like `configure CC="cc -std=c89"` and
>> `CPPFLAGS="-Dfunction_like_macro(with, arguments)=..."` (put something
>> in the ... that actually uses the arguments).
Updated patch with improved test cases attached.
I provided 4 test cases:
1. AC_COMPILE_IFELSE with pre-created CPPFLAGS. This test will fail with
current autoconf code.
2. Compilation of the same code where CPPFLAGS passed through
Makefile.in. This one will work with current autoconf code
correctly.
3. AC_RUN_IFELSE with function call passed through CPPFLAGS. This test
will fail with current autoconf code.
4. Running of the same code where CPPFLAGS passed through
Makefile.in. This test will work correctly with current autoconf
code.
I think that the tests pairs 1, 2 and 3, 4 should always provide same
results. Without suggested modification they gives us different
results.
>> Please also try to
>> think of situations where double evaluation would do the *wrong*
>> thing; that will help us understand the potential negative
>> consequences of this change.
I can suggest only one scenario when double evaluation would do wron
thing: Custom _AC_DO_STDERR command that used only through
configuration, but never will be reproduced in Makefile.in. Something
like
> _AC_DO_STDERR([echo \"hello\" >&2]) && test "$(cat conftest.err)" = '"hello"'
Regards,
Nikolai
0001-_AC_DO-_AC_DO_STDERR-Evaluate-argument-twice.patch
Description: Text Data