#66457 closed defect (fixed)
libmpc Header mpc.h fails to include stdio.h required for FILE
Reported by: | ragnese | Owned by: | |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | ventura monterey | Cc: | cjones051073 (Chris Jones), kencu (Ken) |
Port: | libgcc12 libmpc |
Description
I've attached my config.log, but the relevant part is likely this:
configure:8226: /usr/bin/clang -arch x86_64 -c -pipe -Os -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk conftest.c >&5 In file included from conftest.c:10: /opt/local/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 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.
Attachments (1)
Change History (22)
Changed 2 years ago by ragnese
Attachment: | config.log added |
---|
comment:1 Changed 2 years ago by jmroot (Joshua Root)
Keywords: | ventura added; libgcc12 mpc gcc12 libgcc removed |
---|
comment:2 Changed 2 years ago by jmroot (Joshua Root)
Port: | libmpc added |
---|
comment:3 Changed 2 years ago by freedomtan ("freedom" Koan-Sin Tan)
Quick solution is to add #include <stdio.h>
, then there won't be FILE
problem
comment:4 Changed 2 years ago by cjones051073 (Chris Jones)
Cc: | cjones051073 added |
---|
comment:5 Changed 2 years ago by cjones051073 (Chris Jones)
Note I am unable to run macOS 13 myself (no hardware that supports it) but I can also reproduce this on macOS12, so probably related to an Xcode update that both macOS12 and 13 now use.
comment:6 Changed 2 years ago by cjones051073 (Chris Jones)
b.t.w. just including stdio.h in the test does not seem enough
configure:8227: /usr/bin/clang -arch x86_64 -c -pipe -Os -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk -I/opt/local/include -I/opt/local/include -I/opt/local/include -I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk conftest.c >&5 In file included from conftest.c:10: /opt/local/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:8227: $? = 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> | #include <stdio.h> | int | main () | { | | #if MPC_VERSION < MPC_VERSION_NUM(0,8,0) | choke me | #endif | | ; | return 0; | }
comment:7 Changed 2 years ago by cjones051073 (Chris Jones)
Issue is easy to reproduce standalone
Oberon ~/Downloads > cat conftest.c #include <mpc.h> #include <stdio.h> int main () { #if MPC_VERSION < MPC_VERSION_NUM(0,8,0) choke me #endif return 0; } Oberon ~/Downloads > clang -Os -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk -I/opt/local/include conftest.c In file included from conftest.c:1: /opt/local/include/mpc.h:287:35: error: unknown type name 'FILE' __MPC_DECLSPEC void mpcr_out_str (FILE *f, mpcr_srcptr r); ^ 1 error generated.
comment:8 Changed 2 years ago by cjones051073 (Chris Jones)
Also now seen in the new macOS 13 buildbots
comment:9 Changed 2 years ago by cjones051073 (Chris Jones)
Cc: | kencu added |
---|
comment:10 follow-up: 15 Changed 2 years ago by cjones051073 (Chris Jones)
Ken, any thoughts here ? Do you know if Iain is aware of this or not ?
comment:11 Changed 2 years ago by cjones051073 (Chris Jones)
Keywords: | monterey added |
---|
comment:12 Changed 2 years ago by cjones051073 (Chris Jones)
OK, my mistake. stdio.h needs to be included *before* mpc.h
Oberon ~/Downloads > cat conftest.c #include <stdio.h> #include <mpc.h> int main () { #if MPC_VERSION < MPC_VERSION_NUM(0,8,0) choke me #endif return 0; } Oberon ~/Downloads > clang -Os -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk -I/opt/local/include conftest.c Oberon ~/Downloads >
comment:13 Changed 2 years ago by cjones051073 (Chris Jones)
I have pushed
https://github.com/macports/macports-ports/commit/9332dbb202005f90c4aa5c9e069edeb4d804d117
The issue is, I think, with libmpc as mpc.h
directly uses FILE so it should directly first include stdio.h
comment:14 Changed 2 years ago by cjones051073 (Chris Jones)
Summary: | libgcc12 build fails during configure test for MPC dep. → libmpc Header mpc.h fails to include stdio.h required for FILE |
---|
comment:15 Changed 2 years ago by kencu (Ken)
Replying to cjones051073:
Ken, any thoughts here ? Do you know if Iain is aware of this or not ?
I don't see anything yet on his pages, no.
comment:16 Changed 2 years ago by cjones051073 (Chris Jones)
Thanks. I am more inclined to consider this an issue with libmpc than gcc, as its header directly refers to FILE but does not explicitly include the header that declares it, which breaks the ‘include what you use’ principle. Yes it seems that perhaps some recent Xcode change appears to have exposed this, but i think the core issue is there.
comment:17 Changed 2 years ago by Gcenx
This wasn’t an Xcode related change as this also affected one of my users on macOS Mojave.
comment:18 follow-up: 19 Changed 2 years ago by cjones051073 (Chris Jones)
Interesting....
I can only then presume maybe it was an issue introduced with the update from 1.2.1 to 1.3.0 that happened a few days back..
https://github.com/macports/macports-ports/commit/af6232833ada36aafff504cd4e181fca5cc759a7
comment:19 Changed 2 years ago by Gcenx
Replying to cjones051073:
Interesting....
I can only then presume maybe it was an issue introduced with the update from 1.2.1 to 1.3.0 that happened a few days back..
https://github.com/macports/macports-ports/commit/af6232833ada36aafff504cd4e181fca5cc759a7
I’d think that’s correct as I’d built mingw-w64 on macOS Ventura before this without issue.
comment:20 Changed 2 years ago by cjones051073 (Chris Jones)
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:21 Changed 2 years ago by cjones051073 (Chris Jones)
Just to note upstream have indeed already released 1.3.1 that addresses this
https://www.multiprecision.org/mpc/
For whatever reason though the source for version 1.3.1 is not yet available to the GNU sites the port file fetches it from,
so we cannot update to this version quite yet.
config.log