[MacPorts] #66108: qrupdate @1.1.2: parallel build failure (was: qrupdate @1.1.2: fails to build under Ventura on M1 Mac)
MacPorts
noreply at macports.org
Thu Nov 10 00:29:33 UTC 2022
#66108: qrupdate @1.1.2: parallel build failure
-----------------------+---------------------
Reporter: murrayE | Owner: (none)
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version: 2.8.0
Resolution: | Keywords: ventura
Port: qrupdate |
-----------------------+---------------------
Comment (by ryandesign):
From your log I see that the error message was about zlu1up.o not being a
valid object file:
{{{
:info:build error: /Library/Developer/CommandLineTools/usr/bin/libtool:
file: zlu1up.o is not an object
}}}
I also see that you're building with 10 parallel jobs, and that the
Portfile requests two targets to be built: "lib" and "solib":
{{{
:info:build Executing: cd
"/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_qrupdate/qrupdate/work/qrupdate-1.1.2"
&& /usr/bin/make -j10 -w lib solib PREFIX=/opt/local LAPACK=""
BLAS="-lopenblas"
}}}
And that zlu1up.f, the file from which zlu1up.o was made, was compiled
twice, as were other files:
{{{
:info:build /opt/local/bin/gfortran-mp-12 -m64 -fimplicit-none -O3
-funroll-loops -fPIC -c zlu1up.f
:info:build /opt/local/bin/gfortran-mp-12 -m64 -fimplicit-none -O3
-funroll-loops -fPIC -c clup1up.f
:info:build /opt/local/bin/gfortran-mp-12 -m64 -fimplicit-none -O3
-funroll-loops -fPIC -c zqrder.f
:info:build /opt/local/bin/gfortran-mp-12 -m64 -fimplicit-none -O3
-funroll-loops -fPIC -c dlup1up.f
:info:build /opt/local/bin/gfortran-mp-12 -m64 -fimplicit-none -O3
-funroll-loops -fPIC -c slup1up.f
:info:build /opt/local/bin/gfortran-mp-12 -m64 -fimplicit-none -O3
-funroll-loops -fPIC -c zlup1up.f
:info:build /opt/local/bin/gfortran-mp-12 -m64 -fimplicit-none -O3
-funroll-loops -fPIC -c zqrshc.f
:info:build /opt/local/bin/gfortran-mp-12 -m64 -fimplicit-none -O3
-funroll-loops -fPIC -c clu1up.f
:info:build /opt/local/bin/gfortran-mp-12 -m64 -fimplicit-none -O3
-funroll-loops -fPIC -c dlu1up.f
:info:build /opt/local/bin/gfortran-mp-12 -m64 -fimplicit-none -O3
-funroll-loops -fPIC -c slu1up.f
:info:build /opt/local/bin/gfortran-mp-12 -m64 -fimplicit-none -O3
-funroll-loops -fPIC -c zlu1up.f
:info:build /opt/local/bin/gfortran-mp-12 -m64 -fimplicit-none -O3
-funroll-loops -fPIC -c clup1up.f
:info:build /opt/local/bin/gfortran-mp-12 -m64 -fimplicit-none -O3
-funroll-loops -fPIC -c dlup1up.f
:info:build /opt/local/bin/gfortran-mp-12 -m64 -fimplicit-none -O3
-funroll-loops -fPIC -c slup1up.f
:info:build /opt/local/bin/gfortran-mp-12 -m64 -fimplicit-none -O3
-funroll-loops -fPIC -c zlup1up.f
}}}
The sequence of events was probably that zlu1up.f got compiled into
zlu1up.o as a dependency of libqrupdate.a (the "lib" target), then it
tried to create libqrupdate.a from zlu1up.o and other objects and, before
it could finish doing so, zlu1up.f got compiled into zlu1up.o a second
time as a dependency of libqrupdate.dylib (the "solib" target); when that
second compilation of zlu1up.o began, it probably emptied the file, and
before it completed, it was probably still empty or incomplete, causing
the failure of the other process trying to make libqrupdate.a.
This kind of thing can happen when a build system does not declare the
dependencies between its files correctly. The workaround is to disable
parallel building or just try building a second time without cleaning. The
problem should be [https://sourceforge.net/projects/qrupdate/support
reported to the developers of qrupdate] so they can fix their build
system.
--
Ticket URL: <https://trac.macports.org/ticket/66108#comment:4>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list