Opened 22 months ago
Closed 20 months ago
#66907 closed defect (fixed)
OpenBLAS @0.3.22 fails to build on 10.6 (both ppc and x86_64): Makefile.conf:8: *** missing separator. Stop.
Reported by: | barracuda156 | Owned by: | nobody |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.8.1 |
Keywords: | rosetta | Cc: | |
Port: | OpenBLAS-devel, OpenBLAS |
Description
This is on 10.6.8:
---> Building OpenBLAS-devel Executing: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS-devel/work/OpenBLAS-5a9cd8779484396040848747b2c9ed9f5e9c2c61" && /usr/bin/make -j6 -w all AR=/opt/local/bin/ar RANLIB=/opt/local/bin/ranlib OPENBLAS_INCLUDE_DIR=/opt/local/include/openblas CC="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS-devel/work/compwrap/cc/opt/local/bin/gcc-mp-12" CXX="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS-devel/work/compwrap/cxx/opt/local/bin/g++-mp-12" OBJC="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS-devel/work/compwrap/objc/opt/local/bin/gcc-mp-12" OBJCXX="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS-devel/work/compwrap/objcxx/opt/local/bin/g++-mp-12" FC="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS-devel/work/compwrap/fc/opt/local/bin/gfortran-mp-12" F77="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS-devel/work/compwrap/f77/opt/local/bin/gfortran-mp-12" F90="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS-devel/work/compwrap/f90/opt/local/bin/gfortran-mp-12" INSTALL="/usr/bin/install -c" CC+="-arch ppc" CXX+="-arch ppc" OBJC+="-arch ppc" OBJCXX+="-arch ppc" LD+="-arch ppc" F77+="-m32" F90+="-m32" FC+="-m32" make: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS-devel/work/OpenBLAS-5a9cd8779484396040848747b2c9ed9f5e9c2c61' Makefile.conf:8: *** missing separator. Stop. make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS-devel/work/OpenBLAS-5a9cd8779484396040848747b2c9ed9f5e9c2c61'
Change History (12)
comment:1 Changed 22 months ago by kencu (Ken)
Summary: | OpenBLAS-devel fails to build: Makefile.conf:8: *** missing separator. Stop. → OpenBLAS-devel fails to build on 10.6 when building with gcc12 as PPC (? in rosetta?): Makefile.conf:8: *** missing separator. Stop. |
---|
comment:2 Changed 22 months ago by barracuda156
- This error happens both on 10.6 PPC native and 10.6.8 Rosetta, but as usual, what I report is from Rosetta case.
- Here is the thing:
OSNAME=Darwin ARCH=power C_COMPILER=GCC BINARY64= BINARY32=1 FU=_ CROSS_SUFFIX=/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS-devel/work/compwrap/cc/opt/local/bin/gcc-mp-12 - CROSS=1 CEXTRALIB= -L/opt/local/lib -L/opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.2.0 -L/opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.2.0/../../.. -lemutls_w -lSystem -lef_ppc F_COMPILER=GFORTRAN FC=/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS-devel/work/compwrap/fc/opt/local/bin/gfortran-mp-12 -m32 BU=_ FEXTRALIB= -L/opt/local/lib -L/opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.2.0 -L/opt/local/lib/gcc12/gcc/powerpc-apple-darwin10/12.2.0/../../.. -lgfortran -lSystem -lef_ppc CORE=PPC970 LIBCORE=ppc970 NUM_CORES=6 __BYTE_ORDER__=__ORDER_BIG_ENDIAN__ MAKE += -j 6
On line 8 we get that silly dash :)
BTW notice, choice of subarch is wrong, 970 should not be used in Rosetta (and yes, this is from my MacMini, so Rosetta for sure). It looks like OpenBLAS chooses archs wrongly. This perhaps should be fixed with upstream.
comment:3 Changed 20 months ago by barracuda156
So now it is broken after the update.
---> Configuring OpenBLAS ---> Building OpenBLAS Executing: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS/work/OpenBLAS-0.3.22" && /usr/bin/make -j8 -w all AR=/opt/local/bin/ar RANLIB=/opt/local/bin/ranlib OPENBLAS_INCLUDE_DIR=/opt/local/include/openblas CC="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS/work/compwrap/cc/opt/local/bin/gcc-mp-12" CXX="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS/work/compwrap/cxx/opt/local/bin/g++-mp-12" OBJC="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS/work/compwrap/objc/opt/local/bin/gcc-mp-12" OBJCXX="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS/work/compwrap/objcxx/opt/local/bin/g++-mp-12" FC="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS/work/compwrap/fc/opt/local/bin/gfortran-mp-12" F77="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS/work/compwrap/f77/opt/local/bin/gfortran-mp-12" F90="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS/work/compwrap/f90/opt/local/bin/gfortran-mp-12" INSTALL="/usr/bin/install -c" CC+="-arch ppc" CXX+="-arch ppc" OBJC+="-arch ppc" OBJCXX+="-arch ppc" LD+="-arch ppc" F77+="-m32" F90+="-m32" FC+="-m32" make: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS/work/OpenBLAS-0.3.22' Makefile.conf:8: *** missing separator. Stop. make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS/work/OpenBLAS-0.3.22' Command failed: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS/work/OpenBLAS-0.3.22" && /usr/bin/make -j8 -w all AR=/opt/local/bin/ar RANLIB=/opt/local/bin/ranlib OPENBLAS_INCLUDE_DIR=/opt/local/include/openblas CC="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS/work/compwrap/cc/opt/local/bin/gcc-mp-12" CXX="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS/work/compwrap/cxx/opt/local/bin/g++-mp-12" OBJC="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS/work/compwrap/objc/opt/local/bin/gcc-mp-12" OBJCXX="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS/work/compwrap/objcxx/opt/local/bin/g++-mp-12" FC="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS/work/compwrap/fc/opt/local/bin/gfortran-mp-12" F77="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS/work/compwrap/f77/opt/local/bin/gfortran-mp-12" F90="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS/work/compwrap/f90/opt/local/bin/gfortran-mp-12" INSTALL="/usr/bin/install -c" CC+="-arch ppc" CXX+="-arch ppc" OBJC+="-arch ppc" OBJCXX+="-arch ppc" LD+="-arch ppc" F77+="-m32" F90+="-m32" FC+="-m32" Exit code: 2 Error: Failed to build OpenBLAS: command execution failed
comment:4 Changed 20 months ago by barracuda156
Keywords: | rosetta added |
---|---|
Port: | OpenBLAS added |
comment:5 Changed 20 months ago by barracuda156
Owner: | changed from NicosPavlov to kencu |
---|---|
Summary: | OpenBLAS-devel fails to build on 10.6 when building with gcc12 as PPC (? in rosetta?): Makefile.conf:8: *** missing separator. Stop. → OpenBLAS-devel fails to build on 10.6 (both ppc and x86_64): Makefile.conf:8: *** missing separator. Stop. |
@kencu The port is broken on x86_64 too, so nothing to do with either GCC, Rosetta or ppc: https://build.macports.org/builders/ports-10.6_x86_64-builder/builds/149261/steps/install-port/logs/stdio Same error.
May be you could help to fix this?
comment:6 Changed 20 months ago by barracuda156
Also clang < 500 has to be disabled due to: https://build.macports.org/builders/ports-10.7_x86_64-builder/builds/138981/steps/install-port/logs/stdio
comment:7 Changed 20 months ago by barracuda156
Summary: | OpenBLAS-devel fails to build on 10.6 (both ppc and x86_64): Makefile.conf:8: *** missing separator. Stop. → OpenBLAS @0.3.22 fails to build on 10.6 (both ppc and x86_64): Makefile.conf:8: *** missing separator. Stop. |
---|
comment:8 follow-up: 9 Changed 20 months ago by kencu (Ken)
Owner: | changed from kencu to nobody |
---|
for the mktemp error, you presumably have to use gmktemp, or change it so that the old mktemp in 10.6 and less works. I always seem to want to use gmktemp, but MacPorts' admins usually prefer you rewrite it so the old mktemp works I notice.
For the assembler error, of course upstream should test for certain assembler calls being available before using them. But that is usually a lost cause of a question when you're talking about ancient outdated systems and busy upstreams with better things to do than that.
So what you do instead is make sure that a newer clang is installed, so that the cctools port modifications that were made some years ago can work, and ${prefix}/bin/as can find a new enough clang to use as the assembler.
There is not really a great mechanism to specifically require that one thing, so blacklisting the system clangs that fail to compile the assembly is usually good enough, and then a new enough clang is called in to do the job. Once again, that is not a pure event, but seems to be generally acceptable to the admins as -- well -- there is no really pure option that is better than that.
I'll leave you to the mktemp fix (force gmktemp, usually by patching, or monkeying with the PATH), and then blacklist the failing system clangs.
comment:9 Changed 20 months ago by barracuda156
Replying to kencu:
for the mktemp error, you presumably have to use gmktemp, or change it so that the old mktemp in 10.6 and less works. I always seem to want to use gmktemp, but MacPorts' admins usually prefer you rewrite it so the old mktemp works I notice. I'll leave you to the mktemp fix (force gmktemp, usually by patching, or monkeying with the PATH), and then blacklist the failing system clangs.
Turned out that OpenBLAS
port seemingly already does this:
--- c_check~ 2022-08-07 22:36:26.000000000 +0200 +++ c_check 2022-08-27 11:01:44.000000000 +0200 @@ -243,7 +243,7 @@ c11_atomics=0 case "$data" in *HAVE_C11*) - tmpd=`mktemp -d` + tmpd=`gmktemp -d` tmpf="$tmpd/a.c" printf "#include <stdatomic.h>\nint main(void){}\n" >> "$tmpf" args=" -c -o $tmpf.o $tmpf"
https://github.com/macports/macports-ports/blob/master/math/OpenBLAS/files/patch-MacOSX-mktemp.diff
But it does not help anymore or even does not have an effect. I will try to figure out what is going on.
UPD. Ah, it is doing it in one place but not where we need it. Thank you!
comment:10 Changed 20 months ago by rmottola (Riccardo)
There is another occurence of mktemp at line 207
206 if [ "$architecture" = "x86" ] || [ "$architecture" = "x86_64" ]; then 207 tmpd=`gmktemp -d` 208 tmpf="$tmpd/a.c"
so please extend the patch! It does fix the mktemp error, but not the "missing separator"
comment:11 Changed 20 months ago by rmottola (Riccardo)
I still get
Executing: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS/work/OpenBLAS-0.3.22" && /usr/bin/make -j2 -w all AR=/opt/local/bin/ar RANLIB=/opt/local/bin/ranlib OPENBLAS_INCLUDE_DIR=/opt/local/include/openblas CC="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS/work/compwrap/cc/opt/local/bin/clang-mp-11" CXX="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS/work/compwrap/cxx/opt/local/bin/clang++-mp-11" OBJC="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS/work/compwrap/objc/opt/local/bin/clang-mp-11" OBJCXX="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS/work/compwrap/objcxx/opt/local/bin/clang++-mp-11" FC="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS/work/compwrap/fc/opt/local/bin/gfortran-mp-12" INSTALL="/usr/bin/install -c" CC+="-arch x86_64" CXX+="-arch x86_64" OBJC+="-arch x86_64" OBJCXX+="-arch x86_64" LD+="-arch x86_64" F77+="-m64" F90+="-m64" FC+="-m64" make: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_math_OpenBLAS/OpenBLAS/work/OpenBLAS-0.3.22' Makefile.conf:8: *** missing separator. Stop.
comment:12 Changed 20 months ago by barracuda156
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
what do you see in
Makefile.conf
on line 8 exactly?