https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87257
Bug ID: 87257 Summary: i386 multilib build should be disabled for x86_64-apple-darwin18 Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: howarth.at.gcc at gmail dot com Target Milestone: --- The Xcode 10 release on x86_64-apple-darwin18 obsoletes i386 code generation as its default behavior. This was achieved by having the 10.14 SDK's buried /usr/lib/libSystem.tbd only expose the x86_64 symbols contained in the fat root level /usr/lib/libSystem.dylib. $ clang -m32 hello.c ld: warning: The i386 architecture is deprecated for macOS (remove from the Xcode build setting: ARCHS) ld: warning: ignoring file /Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/lib/libSystem.tbd, missing required architecture i386 in file /Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/lib/libSystem.tbd Undefined symbols for architecture i386: "_printf", referenced from: _main in hello-04a500.o ld: symbol(s) not found for architecture i386 clang: error: linker command failed with exit code 1 (use -v to see invocation) This can be fudged by installing the fall back header package for / so that the /usr/lib/libSystem.dylib is used, but that package is slated for removal in a later OS release and its use highly discouraged. So FSF gcc's configure should be modified to default to disable-multilib for darwin18 and later.