Opened 5 weeks ago

Last modified 3 weeks ago

#66108 new defect

qrupdate @1.1.2: parallel build failure

Reported by: murrayE Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.8.0
Keywords: ventura Cc:
Port: qrupdate

Description

After migrating MacPorts to Ventura (from Monterey), during attempted reinstall of octave, dependency on qrupdate, build of qrupdate failed. From main.log (attached):

:info:build libtool -o ../libqrupdate.a caxcpy.o cch1dn.o cch1up.o cchdex.o cchinx.o cchshx.o cgqvec.o cqhqr.o cqr1up.o cqrdec.o cqrder.o cqrinc.o cqrinr.o cqrot.o cqrqh.o cqrshc.o cqrtv1.o dch1dn.o dch1up.o dchdex.o dchinx.o dchshx.o dgqvec.o dqhqr.o dqr1up.o dqrdec.o dqrder.o dqrinc.o dqrinr.o dqrot.o dqrqh.o dqrshc.o dqrtv1.o sch1dn.o sch1up.o schdex.o schinx.o schshx.o sgqvec.o sqhqr.o sqr1up.o sqrdec.o sqrder.o sqrinc.o sqrinr.o sqrot.o sqrqh.o sqrshc.o sqrtv1.o zaxcpy.o zch1dn.o zch1up.o zchdex.o zchinx.o zchshx.o zgqvec.o zqhqr.o zqr1up.o zqrdec.o zqrder.o zqrinc.o zqrinr.o zqrot.o zqrqh.o zqrshc.o zqrtv1.o clu1up.o dlu1up.o slu1up.o zlu1up.o clup1up.o dlup1up.o slup1up.o zlup1up.o
:info:build error: /Library/Developer/CommandLineTools/usr/bin/libtool: file: zlu1up.o is not an object file (not allowed in a library)
:info:build make[1]: *** [../libqrupdate.a] Error 1
:info:build make[1]: Leaving directory `/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/src'
:info:build make: *** [lib] Error 2
:info:build make: *** Waiting for unfinished jobs....
:info:build /opt/local/bin/gfortran-mp-12 -m64 -fimplicit-none -O3 -funroll-loops   -dynamiclib -o ../libqrupdate.dylib -install_name /opt/local/lib/libqrupdate.1.dylib caxcpy.o cch1dn.o cch1up.o cchdex.o cchinx.o cchshx.o cgqvec.o cqhqr.o cqr1up.o cqrdec.o cqrder.o cqrinc.o cqrinr.o cqrot.o cqrqh.o cqrshc.o cqrtv1.o dch1dn.o dch1up.o dchdex.o dchinx.o dchshx.o dgqvec.o dqhqr.o dqr1up.o dqrdec.o dqrder.o dqrinc.o dqrinr.o dqrot.o dqrqh.o dqrshc.o dqrtv1.o sch1dn.o sch1up.o schdex.o schinx.o schshx.o sgqvec.o sqhqr.o sqr1up.o sqrdec.o sqrder.o sqrinc.o sqrinr.o sqrot.o sqrqh.o sqrshc.o sqrtv1.o zaxcpy.o zch1dn.o zch1up.o zchdex.o zchinx.o zchshx.o zgqvec.o zqhqr.o zqr1up.o zqrdec.o zqrder.o zqrinc.o zqrinr.o zqrot.o zqrqh.o zqrshc.o zqrtv1.o clu1up.o dlu1up.o slu1up.o zlu1up.o clup1up.o dlup1up.o slup1up.o zlup1up.o \
:info:build 		-lopenblas 
:info:build make[1]: Leaving directory `/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/src'
:info:build make: Leaving directory `/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'
:info:build Command failed:  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" 
:info:build Exit code: 2
:error:build Failed to build qrupdate: command execution failed

Attachments (1)

main.log (29.9 KB) - added by murrayE 5 weeks ago.
main.log

Download all attachments as: .zip

Change History (5)

Changed 5 weeks ago by murrayE

Attachment: main.log added

main.log

comment:1 Changed 5 weeks ago by murrayE

Builds OK after ports update to qrupdate@@1.1.2_6+gcc12+openblas.

comment:2 Changed 5 weeks ago by ryandesign (Ryan Schmidt)

Keywords: ventura added; build failure removed
Summary: qrupdate-1.1.2 fails to build under Ventura on M1 Macqrupdate @1.1.2: fails to build under Ventura on M1 Mac

So wait... what fixed it?

comment:3 Changed 5 weeks ago by murrayE

I didn't realize until your comment (ryandesign) that this was, ostensibly, the same version as the one that failed to build before. All I can say is that after doing a sync yesterday, I was able to install qrupdate@1.1.2_6. Mystery to me!

comment:4 Changed 3 weeks ago by ryandesign (Ryan Schmidt)

Summary: qrupdate @1.1.2: fails to build under Ventura on M1 Macqrupdate @1.1.2: parallel build failure

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 reported to the developers of qrupdate so they can fix their build system.

Note: See TracTickets for help on using tickets.