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/