[MacPorts] #58646: gcc8 @8.3.0_4 +universal: does not build/install universal libraries
MacPorts
noreply at macports.org
Wed Jun 26 12:19:24 UTC 2019
#58646: gcc8 @8.3.0_4 +universal: does not build/install universal libraries
--------------------+-----------------------
Reporter: Ionic | Owner: (none)
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version:
Keywords: | Port: gcc8 gcc9
--------------------+-----------------------
`OpenBLAS @0.6.3_1 +universal` fails to build due to this:
{{{
[...]
/opt/local/bin/gfortran-mp-8 -O3 -m128bit-long-double -Wall -frecursive
-m32 -o sblat1 sblat1.o ../libopenblas-r1.a -lpthread -lgfortran
-lpthread -lgfortran
/opt/local/bin/gfortran-mp-8 -O3 -m128bit-long-double -Wall -frecursive
-m32 -o dblat1 dblat1.o ../libopenblas-r1.a -lpthread -lgfortran
-lpthread -lgfortran
ld: warning: ignoring fileld : warning: ignoring file
/opt/local/lib/gcc8//opt/local/lib/gcc8/i386i386/libgfortran.dylib, file
was /builtlibgfortran.dylib, filefor x86_64 which is notwas the built
for x86_64 which architecture being is not linked (i386):
/opt/local/lib/gcc8/i386/libgfortran.dylib
ld: warning: ignoring file /opt/local/lib/gcc8/libgcc_ext.10.5.dylib,
missing required architecture i386 in file
/opt/local/lib/gcc8/libgcc_ext.10.5.dylib (1 slices)
ld: warning: ignoring file /opt/local/lib/gcc8/i386/libquadmath.dylib,
file was built for x86_64 which is not thethe architecture being linked
(i386): /opt/local/lib/gcc8/i386/libgfortran.dylib
ld: warning: ignoring file /opt/local/lib/gcc8/libgcc_ext.10.5.dylib,
missing required architecture i386 in file
/opt/local/lib/gcc8/libgcc_ext.10.5.dylib (1 slices)
ld: warning: ignoring file /opt/local/lib/gcc8/i386/libquadmath.dylib,
file was built for x86_64 which is not the architecture being linked
(i386): /opt/local/lib/gcc8/i386 /libquadmath.dylib
Undefined symbols for architecture i386:
"__gfortran_internal_pack", referenced from:
architecture being linked (i386):
/opt/local/lib/gcc8/i386/libquadmath.dylib
Undefined symbols for architecture i386:
"__gfortran_set_args", referenced from:
[...]
}}}
The output is mangled which is probably a side-effect of `-j2`. That's not
something that should concern us a lot.
What does concern me is that linking against `libgfortran.dylib`,
`libgcc_ext.dylib` et al fails in i386 mode, because the libraries do not
contain the needed architecture.
{{{
$ lipo -info /opt/local/lib/gcc8/i386/libgfortran.dylib
/opt/local/lib/gcc8/libgcc_ext.10.5.dylib
/opt/local/lib/gcc8/i386/libquadmath.dylib
Architectures in the fat file: /opt/local/lib/gcc8/libgcc_ext.10.5.dylib
are: x86_64
Non-fat file: /opt/local/lib/gcc8/i386/libgfortran.dylib is architecture:
x86_64
Non-fat file: /opt/local/lib/gcc8/i386/libquadmath.dylib is architecture:
x86_64
}}}
I'm CCing the last few people to update the port because it's
nomaintainer. Not creating a ticket against OpenBLAS, because OpenBLAS
doesn't seem to at fault here.
`gcc9` seems also to be affected:
{{{
$ lipo -info /opt/local/lib/gcc9/i386/libgfortran.dylib
/opt/local/lib/gcc9/libgcc_ext.10.5.dylib
/opt/local/lib/gcc9/i386/libquadmath.dylib
Architectures in the fat file: /opt/local/lib/gcc9/libgcc_ext.10.5.dylib
are: x86_64
Non-fat file: /opt/local/lib/gcc9/i386/libgfortran.dylib is architecture:
x86_64
Non-fat file: /opt/local/lib/gcc9/i386/libquadmath.dylib is architecture:
x86_64
}}}
I don't have gcc7 installed +universal, so can't say whether this version
is affected.
The only older GCC version that I do have installed +universal is 4.9...
and this one is interesting:
{{{
# lipo -info /opt/local/lib/gcc49/i386/libgfortran.dylib
/opt/local/lib/gcc49/libgcc_ext.10.5.dylib
/opt/local/lib/gcc49/i386/libquadmath.dylib
Architectures in the fat file: /opt/local/lib/gcc49/i386/libgfortran.dylib
are: x86_64 i386
Architectures in the fat file: /opt/local/lib/gcc49/libgcc_ext.10.5.dylib
are: x86_64
Non-fat file: /opt/local/lib/gcc49/i386/libquadmath.dylib is architecture:
x86_64
}}}
That doesn't look right either, but at least better regarding
`libgfortran.dylib`.
I'll attach OpenBLAS's log file just in case it might be helpful.
--
Ticket URL: <https://trac.macports.org/ticket/58646>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list