#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 15 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.

what do you see in Makefile.conf on line 8 exactly?

comment:2 Changed 15 months ago by barracuda156

  1. This error happens both on 10.6 PPC native and 10.6.8 Rosetta, but as usual, what I report is from Rosetta case.
  1. 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 13 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 13 months ago by barracuda156

Keywords: rosetta added
Port: OpenBLAS added

comment:5 Changed 13 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:7 Changed 13 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 Changed 13 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 in reply to:  8 Changed 13 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!

Last edited 13 months ago by barracuda156 (previous) (diff)

comment:10 Changed 13 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 13 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 13 months ago by barracuda156

Resolution: fixed
Status: assignedclosed

In 7c5ef053c32bc6e02570379748001835f0e8fcf9/macports-ports (master):

OpenBLAS, -devel: unbreak build on 10.6

Fixes: #66907

Note: See TracTickets for help on using tickets.