[MacPorts] #65943: Building libgcc12 failure under Monterey Intel
MacPorts
noreply at macports.org
Fri Oct 21 22:25:22 UTC 2022
#65943: Building libgcc12 failure under Monterey Intel
-----------------------+--------------------
Reporter: cgilles | Owner: (none)
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version:
Resolution: | Keywords:
Port: libgcc12 |
-----------------------+--------------------
Comment (by ryandesign):
Replying to [ticket:65943 cgilles]:
> {{{
> Warning: The macOS 10.13 SDK does not appear to be installed. Ports may
not build correctly.
> }}}
Let's take note of the fact that you've configured MacPorts to build using
the macOS 10.13 SDK and 10.13 deployment target while on macOS 12, which
is an unusual configuration that probably nobody else has tested so who
knows what will happen. Also, you don't actually have the 10.13 SDK.
Nevertheless:
Replying to [comment:1 cgilles]:
> It's a duplicates of bug #65573 ?
Yes, the backtrace in your log does look the same as the one in that
ticket.
{{{
:info:build 0 0x10bcd2ffa __assert_rtn + 139
:info:build 1 0x10bb0628d
mach_o::relocatable::Parser<x86_64>::parse(mach_o::relocatable::ParserOptions
const&) + 4989
:info:build 2 0x10baf6f8f
mach_o::relocatable::Parser<x86_64>::parse(unsigned char const*, unsigned
long long, char const*, long, ld::File::Ordinal,
mach_o::relocatable::ParserOptions const&) + 207
:info:build 3 0x10bb6d9d4
ld::tool::InputFiles::makeFile(Options::FileInfo const&, bool) + 2036
:info:build 4 0x10bb70fa0
___ZN2ld4tool10InputFilesC2ER7Options_block_invoke + 48
:info:build 5 0x7ff80adb934a _dispatch_client_callout2 + 8
:info:build 6 0x7ff80adca8f5 _dispatch_apply_invoke + 213
:info:build 7 0x7ff80adb9317 _dispatch_client_callout + 8
:info:build 8 0x7ff80adc8c0c _dispatch_root_queue_drain + 673
:info:build 9 0x7ff80adc925c _dispatch_worker_thread2 + 160
:info:build 10 0x7ff80af6cf8a _pthread_wqthread + 256
:info:build A linker snapshot was created at:
:info:build /tmp/libstdc++.6.dylib-2022-10-06-190604.ld-snapshot
:info:build ld: Assertion failed: (_file->_atomsArrayCount ==
computedAtomCount && "more atoms allocated than expected"), function
parse, file macho_relocatable_file.cpp, line 2061.
:info:build collect2: error: ld returned 1 exit status
}}}
> Q: why libgcc12 is used to compile Qt5-QtMultimedia, where i'm sure than
libgcc11 (gcc11 in fact) will be enough ?
Your transcript showed that you were installing qt5-qtwebengine, not
qt5-qtmultimedia.
The qt5 ports do not use gcc to compile themselves, however
qt5-qtwebengine depends on pulseaudio which depends on fftw-3-single which
depends on fftw-3, and apparently parts of fftw-3-single and fftw-3 are
written in Fortran, and Xcode doesn't include a Fortran compiler so one
from MacPorts must be used.
The fftw-3 ports by default enable their +gfortran variant which causes
them to compile their Fortran parts using the Fortran compiler provided by
the gcc12 port. This variant is provided by the compilers portgroup, which
the fftw-3 ports include. The compilers portgroup uses the latest stable
gcc version for the +gfortran variant. It used to use gcc11; it was
changed to use gcc12 in [988d57cdae4d40714bd50041baf90a83708a2c56
/macports-ports].
The fftw-3 port has variants you can use to select different compilers.
You can see the full list of variants by running:
{{{
port variants fftw-3
}}}
For example you could use the +g95 variant to compile its Fortran parts
using the g95 Fortran compiler:
{{{
sudo port clean fftw-3 fftw-3-single
sudo port install fftw-3 +g95
sudo port install fftw-3-single +g95
}}}
-- or you could, were it not for the fact that the g95 port is not
compatible with Xcode 9 or later.
If you don't need the Fortran parts of fftw-3 and fftw-3-single, you could
tell the ports to omit them:
{{{
sudo port clean fftw-3 fftw-3-single
sudo port install fftw-3 -gfortran
sudo port install fftw-3-single -gfortran
}}}
There are other compiler variants, however while the +gfortran and +g95
variants only affects the compiler used for the Fortran parts, the other
variants affect the compiler used for all parts, which may be undesirable.
For example, if the fftw-3 ports contain C++ code, compiling them with gcc
would be bad because it would use a different C++ standard library than
the rest of MacPorts. But as far as I can tell, the fftw-3 ports don't
contain any C++ code, at least none that gets installed, so it may be ok
to tell them to build with gcc11, if you wish:
{{{
sudo port clean fftw-3 fftw-3-single
sudo port install fftw-3 +gcc11
sudo port install fftw-3-single +gcc11
}}}
Another option could be to tell pulseaudio not to include its fftw-3
support. By looking at `port variants pulseaudio` and `port deps
pulseaudio +minimal` you can see that the +minimal variant excludes fftw-3
support. However, that variant's description says "Do not use if unsure"
so you may want to avoid it. Other ports that depend on pulseaudio may
assume that it has its normal set of dependencies.
--
Ticket URL: <https://trac.macports.org/ticket/65943#comment:2>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list