bug-autoconf
[Top][All Lists]
Advanced

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

[sr #110399] turning off preference for newest supported C?


From: Karl Berry
Subject: [sr #110399] turning off preference for newest supported C?
Date: Wed, 9 Dec 2020 17:58:21 -0500 (EST)
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0

URL:
  <https://savannah.gnu.org/support/?110399>

                 Summary: turning off preference for newest supported C?
                 Project: Autoconf
            Submitted by: karl
            Submitted on: Wed 09 Dec 2020 02:58:19 PM PST
                Category: None
                Priority: 5 - Normal
                Severity: 3 - Normal
                  Status: None
                 Privacy: Public
             Assigned to: None
        Originator Email: 
             Open/Closed: Open
         Discussion Lock: Any
        Operating System: None

    _______________________________________________________

Details:

In autoconf 2.70 (and not 2.69e, I believe), the basic C
compiler check "prefers" the newest supported standard. That
is, autoconf.texi now says:

> If necessary, options are added to @code{CC} to enable support
> for ISO Standard C features with extensions, preferring the
> newest C standard that is supported.

Is it possible to turn off these extra checks and just get
the "classic" behavior of looking for a working C compiler,
not adding these extra flags to support the newest-possible
standard? I looked in the manual and the code but nothing
jumped out at me. Advice appreciated.

Because different standards versions introduce
incompatibilities, the result of "forcing" the latest
standard is painful failures. The TeX Live build, which
succeeded (modulo the "obsolete warning" agony) all through
the pretests, now fails with:

./c-auto.h:164:22: error: two or more data types in declaration specifiers
 #define int64_t long int
                      ^
./c-auto.h:171:18: error: duplicate 'unsigned'
 #define uint64_t unsigned long int
                  ^
./c-auto.h:171:32: error: two or more data types in declaration specifiers
 #define uint64_t unsigned long int


I believe this is because the compiler is now "gcc
-std=gnu11" and not just "gcc". (The autoconfigured types
would be different.)

No doubt our code needs to be (painfully) changed to placate
the standards eventually, but it doesn't seem like Autoconf's place to force
this unconditionally.

Thanks,
Karl





    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/support/?110399>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/




reply via email to

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