Re: [PATCH] AC_LANG_INT_SAVE: Modernize function declarators (C89 and above).

Vincent Lefevre <[email protected]>
Newsgroups gmane.comp.sysutils.autoconf.patches
Message-ID <[email protected]>
On 2020-08-05 10:58:29 -0700, Paul Eggert wrote:
> On 8/5/20 10:32 AM, Vincent Lefevre wrote:
> > With MPFR, it works after applying this patch.
> 
> I don't see it as working with MPFR. If you try to build MPFR 4.1.0 with
> "./configure CFLAGS='-g3 -O2 -Werror=old-style-definition'", then
> 'configure' makes some other wrong decisions on my platform (Fedora 31
> x86-64). For example, 'configure' doesn't "#define STDC_HEADERS 1" as it
> should,

Anyway, if it is defined, we remove its definition (like some
other macros defined by autoconf). One reason was a conflict
with GMP in some build cases (that was in 2005, and I don't
know whether this is still the case), and we don't use this
macro. In short, this is not an issue for us.

> and it creates the wrong value for global_symbol_pipe and for
> global_symbol_to_cdecl in the 'libtool' file.

Perhaps libtool should be fixed, then. But since our tests
don't break, we did not have the chance to notice that.

> Perhaps none of these mistakes happened to bite you in your tests, but the
> point is that it's always been a bad idea to use -Werror in 'configure', and
> saying that something doesn't work when one configures with -Werror is not a
> good motivation for making a change to Autoconf.

Then "configure" should provide a way to use -Werror, as this is
useful to detect non-portable constructs that are not protected with
conditional code (or incorrectly enabled). Note that filtering out
-Werror for configure is not OK as it would make configure tests give
unexpected results (e.g. meaning that some non-portable feature is
available while it is not when -Werror is used), leading to incorrect
conditional code being selected.

Note also that -Werror should be useful in configure tests. For
instance, there is/was a bug in a GMP configure test due to the
use of old style definitions there, where a long was passed to
a function while an unsigned int was expected.

-- 
Vincent Lefèvre <[email protected]> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.