On Thu, 22 Aug 2024, Richard Biener wrote:
On Wed, 21 Aug 2024, Jan Engelhardt wrote:
On Monday 2024-08-19 19:20, Martin Jambor wrote:
it took more time than expected to prepare Factory for GCC 14 but we hope we are (very) close. Because GCC 14 is more strict than earlier versions about C99 compliance (see https://gcc.gnu.org/gcc-14/porting_to.html), the switch is more difficult than normally.
Everything I wrote in https://lists.opensuse.org/archives/list/factory@lists.opensuse.org/thread/6... still applies.
The list of suspect packages:
cm
This is a problem in GMP instead:
abuild@a4:~/rpmbuild/BUILD/cm-0.4.3> grep -r mpz_out_str /usr/include/ /usr/include/gmp.h:#define mpz_out_str __gmpz_out_str /usr/include/gmp.h:__GMP_DECLSPEC size_t mpz_out_str (FILE *, int, mpz_srcptr);
abuild@a4:~/rpmbuild/BUILD/cm-0.4.3> grep -r __gmpz_out_str /usr/include/ /usr/include/gmp.h:#define mpz_out_str __gmpz_out_str
... and that kinda makes a lot of scientific software susceptible to being flagged.
More context:
#define mpz_out_str __gmpz_out_str #ifdef _GMP_H_HAVE_FILE __GMP_DECLSPEC size_t mpz_out_str (FILE *, int, mpz_srcptr); #endif
so the issue might be that _GMP_H_HAVE_FILE is not set?
Note when you check home:rguenther:plgrnd that builds against Factory packages only (useforbuild is off), but GCC 14 is used as default. _GMP_H_HAVE_FILE is defined as
#if defined (FILE) \ || defined (H_STDIO) \ || defined (_H_STDIO) /* AIX */ \ || defined (_STDIO_H) /* glibc, Sun, SCO */ \ || defined (_STDIO_H_) /* BSD, OSF */ \ || defined (__STDIO_H) /* Borland */ \ || defined (__STDIO_H__) /* IRIX */ \ || defined (_STDIO_INCLUDED) /* HPUX */ \ || defined (__dj_include_stdio_h_) /* DJGPP */ \ || defined (_FILE_DEFINED) /* Microsoft */ \ || defined (__STDIO__) /* Apple MPW MrC */ \ || defined (_MSL_STDIO_H) /* Metrowerks */ \ || defined (_STDIO_H_INCLUDED) /* QNX4 */ \ || defined (_ISO_STDIO_ISO_H) /* Sun C++ */ \ || defined (__STDIO_LOADED) /* VMS */ \ || defined (__DEFINED_FILE) /* musl */ #define _GMP_H_HAVE_FILE 1 #endif
for me, that all looks like glibc defines.
I looked into one TU, tecpp.c and that doesn't include stdio.h before including mpc.h which includes gmp.h. Are you sure the package builds with gcc13? Richard.
Richard.
-- Richard Biener <rguenther@suse.de> SUSE Software Solutions Germany GmbH, Frankenstrasse 146, 90461 Nuernberg, Germany; GF: Ivo Totev, Andrew McDonald, Werner Knoblich; (HRB 36809, AG Nuernberg)