Re: gcc12 will not build with multiple jobs

[email protected] Tue, 13 Dec 2022 04:26:10 -0600
Newsgroups gmane.os.apple.fink.devel
Organization Snaggled Works
Message-ID <[email protected]>
On 12/12/22 3:28 PM, Scott Hannahs via Fink-devel wrote:
> 
> 
>> On Dec 12, 2022, at 16:10, [email protected] wrote:
>>
>> On 2022-12-12 14:58, Scott Hannahs via Fink-devel wrote:
>>> Ok, weirdness.  I could not get it to reproduce on my home machine
>>> after building with single job, and it has build correctly with
>>> multiple jobs enabled about 3 times after that.  I have a similar
>>> machine at work (ie Monterey 12.6.1)  and I tried to install gcc12 on
>>> that system.  This gave a different error.  My Xcode and command line
>>> versions agree.
>>>> checking for the correct version of gmp.h... yes
>>>> checking for the correct version of mpfr.h... yes
>>>> checking for the correct version of mpc.h... no
>>>> configure: error: Building GCC requires GMP 4.2+, MPFR 3.1.0+ and
>>>> MPC 0.8.0+.
>>>> Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify
>>>> their locations.  Source code for these libraries can be found at
>>>> their respective hosting sites as well as at
>>>> https://gcc.gnu.org/pub/gcc/infrastructure/.  See also
>>>> http://gcc.gnu.org/install/prerequisites.html for additional info.
>>>> If
>>>> you obtained GMP, MPFR and/or MPC from a vendor distribution
>>>> package,
>>>> make sure that you have installed both the libraries and the header
>>>> files.  They may be located in separate packages.
>>>> ### execution of /tmp/fink.SqDfX failed, exit code 1
>>>> ### execution of /tmp/fink.3lPCk failed, exit code 1
>>>> ...
>>>> Also include the following system information:
>>>> Package manager version: 0.45.99.git
>>>> Distribution version: selfupdate-git Mon Dec 12 10:03:17 2022, 12.0,
>>>> x86_64
>>>> Trees: local/injected local/main stable/main
>>>> Xcode.app: 14.1
>>>> Xcode command-line tools: 14.1.0.0.1.1666437224
>>>> Max. Fink build jobs:  12
>>> Which seems to imply that my version of MPC < 0.8 or completely
>>> missing.
>>> BUT, fink reports that I have libmpc3 installed.  Should it be
>>> libmpc2??  Is the dependency in gcc12 wrong?  It claims dependency on
>>> libmpc3 >= 1.0.3 which should be satisfied.
>>>> % fink list libmpc2 libmpc3
>>>> Information about 13595 packages read in 1 seconds.
>>>> libmpc2                                         0.9-2
>>>> Multi-precision complex lib
>>>> libmpc2-shlibs                                  0.9-2
>>>> Multi-precision complex lib
>>>> i   libmpc3                                         1.3.0-1
>>>> Multi-precision complex lib
>>>> i   libmpc3-shlibs                                  1.3.0-1
>>>> Multi-precision complex lib
>>> The reference file has the correct version in it as expected:
>>> "/opt/sw/include/mpc.h"
>>>> /* Define MPC version number */
>>>> #define MPC_VERSION_MAJOR 1
>>>> #define MPC_VERSION_MINOR 3
>>>> #define MPC_VERSION_PATCHLEVEL 0
>>>> #define MPC_VERSION_STRING "1.3.0"
>>
>> gcc12 has an explicit Depends on `libmpc3 (>= 1.0.3-1)`. Can you look at config.log in the build directory and see what exactly failed when checking for `mpc.h`?
>>
>> libmpc3 just got updated from 1.2.1 to 1.3.0. Upstream claims that 1.3.0 is backwards compatible with 1.2.1, but I wonder if the gcc12 code is expecting something else that got changed.
>>
>> I don't know what was going on with the multi-job issue because the gccNN build system should be multi-thread safe. It's worked for me with 4 and 8 CPU machines for a long time, and I know others have it working too.
>>
>> Hanspeter
> 
> 
> It seems that there is an error (or undefined type FILE) in that header file?  The config.log file is in the darwin_objdir directory.
> 
> 
>> configure:8209: checking for the correct version of mpc.h
>> configure:8226: gcc -c -g -O2 -I/opt/sw/include -I/opt/sw/include   conftest.c >&5
>> In file included from conftest.c:10:
>> /opt/sw/include/mpc.h:287:35: error: unknown type name 'FILE'
>> __MPC_DECLSPEC void mpcr_out_str (FILE *f, mpcr_srcptr r);
>>                                    ^
>> 1 error generated.
>> configure:8226: $? = 1
>> configure: failed program was:
>> | /* confdefs.h */
>> | #define PACKAGE_NAME ""
>> | #define PACKAGE_TARNAME ""
>> | #define PACKAGE_VERSION ""
>> | #define PACKAGE_STRING ""
>> | #define PACKAGE_BUGREPORT ""
>> | #define PACKAGE_URL ""
>> | #define LT_OBJDIR ".libs/"
>> | /* end confdefs.h.  */
>> | #include <mpc.h>
>> | int
>> | main ()
>> | {
>> |
>> |     #if MPC_VERSION < MPC_VERSION_NUM(0,8,0)
>> |     choke me
>> |     #endif
>> |
>> |   ;
>> |   return 0;
>> | }
>> configure:8251: result: no
>> configure:8309: error: Building GCC requires GMP 4.2+, MPFR 3.1.0+ and MPC 0.8.0+.
>> Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify
>> their locations.  Source code for these libraries can be found at
>> their respective hosting sites as well as at
> 
> 
> At least to me it appears that the correct flag is passed to the compiler that has the mpc libraries in the path.  That should point the system to /opt/sw/include/mpc.h
> 
>> It was created by configure, which was
>> generated by GNU Autoconf 2.69.  Invocation command line was
>>
>>    $ ../gcc-12.2.0/configure --prefix=/opt/sw --prefix=/opt/sw/lib/gcc12 --mandir=/opt/sw/share/man --infodir=/opt/sw/lib/gcc12/info --enable-languages=c,c++,fortran,lto,objc,obj-c++ --with-gmp=/opt/sw --with-libiconv-prefix=/opt/sw --wi
>> th-isl=/opt/sw --with-mpc=/opt/sw --with-system-zlib --program-suffix=-fsf-12 --disable-multilib --enable-stage1-checking --with-sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk --wi
>> th-pkgversion=Fink gcc12 12.2.0-2 --with-bugurl=https://github.com/fink/fink-distributions/issues

It's a problem with libmpc3-1.3.0. Building gcc11 and gcc12 fail if I 
have it installed, but work if I have libmpc3-1.2.1 installed.

Upstream has a fix: 
https://gitlab.inria.fr/mpc/mpc/-/commit/e944aa454e60cbff8ab4e8c70dd974083398378f

I've pushed an update to libmpc3 with that fix and gccNN now build.

Hanspeter

-- 
92% of all statistics are made up.



_______________________________________________
Fink-devel mailing list
[email protected]
List archive:
https://sourceforge.net/p/fink/mailman/fink-devel
Subscription management:
https://lists.sourceforge.net/lists/listinfo/fink-devel