Florian Weimer <[email protected]> writes: > --- > htdocs/gcc-14/porting_to.html | 43 > +++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 43 insertions(+) > > diff --git a/htdocs/gcc-14/porting_to.html b/htdocs/gcc-14/porting_to.html > index 123b5e9f..ab65c5e7 100644 > --- a/htdocs/gcc-14/porting_to.html > +++ b/htdocs/gcc-14/porting_to.html > @@ -437,6 +437,49 @@ issues addressed in more recent versions.) Versions > before 2.69 may > have generic probes (for example for standard C support) that rely on > C features that were removed in C99 and thus fail with GCC 14. > > +<p> > +Older Autoconf versions (for example, Autoconf 2.13) generate core > +probes that are incompatible with C99. These include the basic > +compiler functionality check: > + > +<pre> > +#include "confdefs.h" > +main(){return(0);} > +</pre> > + > +And a check for standard C compatibility: > + > +<pre> > +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) > +int main () { int i; for (i = 0; i < 256; i++) > +if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); > +exit (0); } > +</pre> > +
Consider adding the check name so it shows up on search engine results?
("Checking for $X ... no")
> +(Several variants with different line breaks and whitespace were in
> +use.) If it is not possible to port the configure script to current
> +Autoconf, these issues can be patched directly:
> +
> +<pre>
> +#include "confdefs.h"
> +<ins>int</ins> main(){return(0);}
> +</pre>
> +
> +And for the second probe:
> +
> +<pre>
> +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
> +int main () { int i; for (i = 0; i < 256; i++)
> +if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i))
> <ins>return 2</ins>;
> +<ins>return 0</ins>; }
> +</pre>
> +
> +There is a long tail of less frequent issues, involving keyword
> +checking (for <code>inline</code>), and checks for <code>dlopen</code>
> +and <code>mmap</code>. A <code>setvbuf</code> probe was previously
> +expected to fail at run time because it triggered undefined behavior,
> +now it fails because of a compilation error.
> +
> <h4 id="errors-as-warnings">Turning errors back into warnings</h4>
>
> <p>
LGTM otherwise.
>
> base-commit: 1fcd61437d6a3d7bf24b993b09d525486dc9a2e5
signature.asc
Description: PGP signature
