Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compile error on Windows on Arm #4714

Open
TsengSR opened this issue May 23, 2024 · 37 comments
Open

Compile error on Windows on Arm #4714

TsengSR opened this issue May 23, 2024 · 37 comments

Comments

@TsengSR
Copy link

TsengSR commented May 23, 2024

For the last 4 days I've been trying to compile the OpenBLAS library on WIndows on Arm (for Windows on Arm) using Build OpenBLAS static library with BLAS and LAPACK routines with Make.

After installing LLVM, Visual Studio and the required build tools I made some kind of progress, but I kept getting this error

make: [Makefile:310: lapack_prebuild] Error -1073741569 (ignored)
expr: syntax error
clang-cl -c -O2 -w -I../.. -UDOUBLE  -UCOMPLEX -UCOMPLEX -UDOUBLE  -UTRANSA -UCONJ -UXCONJ gemv_thread.c -o sgemv_thread_n.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE  -UCOMPLEX -UCOMPLEX -UDOUBLE  -DTRANSA -UCONJ -UXCONJ gemv_thread.c -o sgemv_thread_t.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE  -UCOMPLEX -UCOMPLEX -UDOUBLE  -UCONJ -UXCONJ ger_thread.c -o sger_thread.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE  -UCOMPLEX -UCOMPLEX -UDOUBLE -ULOWER symv_thread.c -o ssymv_thread_U.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE  -UCOMPLEX -UCOMPLEX -UDOUBLE -DLOWER symv_thread.c -o ssymv_thread_L.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE  -UCOMPLEX -UCOMPLEX -UDOUBLE -ULOWER syr_thread.c -o ssyr_thread_U.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE  -UCOMPLEX -UCOMPLEX -UDOUBLE -DLOWER syr_thread.c -o ssyr_thread_L.obj
gemv_thread.c(163,3): error: use of undeclared identifier 'blas_queue_t'
  163 |   blas_queue_t queue[MAX_CPU_NUMBER];
      |   ^
gemv_thread.c(226,5): error: use of undeclared identifier 'queue'
  226 |     queue[num_cpu].mode    = mode;
      |     ^
gemv_thread.c(226gemv_thread.c,30(163): ,3): error: error: use of undeclared identifier 'mode'; did you mean 'modf'?use of
  226undeclared |      qidentifierueue[ n'blas_queue_t'um
_  c163 | pu] .mode   b  = las_qmode;ueu
      e| _t                              ^~~~queue[M
AX_C      PU_N| UMBE                             modfR
];make:C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt\corecrt_math.h(529,44) [: Makefil
note: e:311      'modf': la declared herepac
| k_pr  529 |     _e  ^Cb
huield]ck_ reEturn_ _rArCRTIoMPr  dou-ble __c10decl modf(_7In37_ 4do1uble _5X, _6Ou9t_  do(uble* i_Ygnore);d)

|                                            ^
gemv_thread.c(226,5): error: use of undeclared identifier 'queue'
  226 |     queue[num_cpu].mode    = mode;
      |     ^
gemv_thread.c(227,5): error: use of undeclared identifier 'queue'
  227 |     queue[num_cpu].routine = gemv_kernel;gemv_thread.c(226,30):
      | error:     ^
use of undeclared identifier 'mode'; did you meangemv_thread.c(228,5):  'modf'?
  error: 226 |     queuuse of undeclarede[nu identifierm_c 'queue'pu
  ].228mode    =  |   mo  queude;e[num_cpu]
      .ar| gs                                 ^~~~
= &      | arg                             modf
s;
      | C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt\corecrt_math.h(529,44):     ^

using the Documentations

make CC="clang-cl" HOSTCC="clang-cl" AR="llvm-ar" BUILD_WITHOUT_LAPACK=0 NOFORTRAN=0 DYNAMIC_ARCH=0 TARGET=ARMV8 
    ARCH=arm64 BINARY=64 USE_OPENMP=0 PARALLEL=1 RANLIB="llvm-ranlib" MAKE=make F_COMPILER=FLANG
    FC=FLANG FFLAGS_NOOPT="-march=armv8-a -cpp" FFLAGS="-march=armv8-a -cpp" NEED_PIC=0 
    HOSTARCH=arm64 libs netlib

Build command. It's the "drivers/level2" which fail.

As far as I can tell, the "common_threads.h" is not being included inside "common.h"

#if defined(SMP_SERVER) || defined(SMP_ONDEMAND)
#include "common_thread.h"
#endif

After having a further look, I've seen that it's set when USE_THREAD=1 and NUM_THREADS > 1.

But even using

make CC="clang-cl" HOSTCC="clang-cl" AR="llvm-ar" BUILD_WITHOUT_LAPACK=0 NOFORTRAN=0 DYNAMIC_ARCH=0 TARGET=ARMV8 
    ARCH=arm64 BINARY=64 USE_OPENMP=0 PARALLEL=1 RANLIB="llvm-ranlib" MAKE=make F_COMPILER=FLANG 
    FC=FLANG FFLAGS_NOOPT="-march=armv8-a -cpp" FFLAGS="-march=armv8-a -cpp" NEED_PIC=0 HOSTARCH=arm64 
    USE_THREAD=1 NUM_THREADS=8 libs netlib

Still gives me the same error.

Additionally I also get lld-link errors at the begin of the compile process.

clang-cl: warning: unknown argument ignored in clang-cl: '-S' [-Wunknown-argument]
lld-link: error: subsystem must be defined
clang-cl: error: linker command failed with exit code 1 (use -v to see invocation)
clang-cl: warning: unknown argument ignored in clang-cl: '-S' [-Wunknown-argument]
lld-link: error: subsystem must be defined
clang-cl: error: linker command failed with exit code 1 (use -v to see invocation)
clang-cl: warning: unknown argument ignored in clang-cl: '-S' [-Wunknown-argument]
lld-link: error: subsystem must be defined
clang-cl: error: linker command failed with exit code 1 (use -v to see invocation)

As far as I got it so far, it requires to determine the subsystem (windows or console), but from what I've seen so far this isn't required for dlls, only for executables in Windows, so I am confused. The other thing I also found while searching for it is that the cclang uses "-S" flag while clang-cl is supposed to use "-Fa" flag instead to set the subsystem.

But I can't find a how to fix that or where to change it. Complete at loss here. Any ideas?

I'm using

  • LLVM 18.1.6
  • Visual Studio 2022 with (as per ARM LLVM Guide)
    • MSVC v143 - VS 2022C++ ARM build tools (latest)
    • MSVC v143 - VS 2022 C++ ARM64 build tools (latest)
    • C++ ATL for latest v143 build tools (ARM)
    • C++ ATL for latest v143 build tools (ARM64)
    • C++ MFC for latest v143 build tools (ARM)
    • C++ MFC for latest v143 build tools (ARM64)
  • Gnu Make 4.4.1
  • Latest w64devkit (was required for the actual thing I wanted to compile: Koboldcpp)

Any clues on how to fix some or both of these?

@martin-frbg
Copy link
Collaborator

Sorry, I am not aware if anybody tried to compile OpenBLAS on/for Windows on Arm yet, and I do not currently have (access to) such a system.
That said, the only spot where -S is added to the compiler flags is in the c_check script that tries to find out some details of the compiler's behaviour - there the -S is used to tell the compiler to stop after producing the assembler version of a small test file. (I'm not immediately aware that we set the subsystem anywhere in the build files).
No idea why it is not picking up the declarations of queue or mode, are you trying to build 0.3.27 or the current develop branch ?

@TsengSR
Copy link
Author

TsengSR commented May 23, 2024

Thanks for the fast reply. Will look further into the c_check script.

No idea why it is not picking up the declarations of queue or mode, are you trying to build 0.3.27 or the current develop branch ?
I tried both, same result. It just seems as the USE_THREAD/NUM_THREADs is not properly passed to the level2 project when compiling it. Will try later via Make.rules, but I'm running out of ideas

@martin-frbg
Copy link
Collaborator

What do you have in the (generated) files Makefile.conf and config.h - do they look sane ?

@TsengSR
Copy link
Author

TsengSR commented May 23, 2024

I seem to see most of the options, Armv8, 64 bits, Windows NT, number of threads there.

config.h

#define OS_WINNT	1
#define ARCH_ARM64	1
#define C_CLANG	1
#define __64BIT__	1
#define HAVE_C11	1
#define PTHREAD_CREATE_FUNC	pthread_create
#define BUNDERSCORE	_
#define NEEDBUNDERSCORE	1
#define ARMV8
#define L1_DATA_SIZE 32768
#define L1_DATA_LINESIZE 64
#define L2_SIZE 262144
#define L2_LINESIZE 64
#define DTB_DEFAULT_ENTRIES 64
#define DTB_SIZE 4096
#define L2_ASSOCIATIVE 32
#define HAVE_VFPV4
#define HAVE_VFPV3
#define HAVE_VFP
#define HAVE_NEON
#define ARMV8
#define CORE_ARMV8
#define CHAR_CORENAME "ARMV8"
#define GEMM_MULTITHREAD_THRESHOLD	4

Makefile.conf

OSNAME=WINNT
ARCH=arm64
C_COMPILER=CLANG
BINARY32=
BINARY64=1
CROSS_SUFFIX=clang-
CROSS=1
CEXTRALIB=  -libpath:C:\\Program -libpath:C:\\Program -libpath:C:\\Program -libpath:C:\\Program 
NO_SVE=1
F_COMPILER=GFORTRAN
FC=gfortran
BU=_
NOFORTRAN=1
CORE=ARMV8
LIBCORE=armv8
NUM_CORES=8
MAKEFLAGS += -j 8
SBGEMM_UNROLL_M=8
SBGEMM_UNROLL_N=4
SGEMM_UNROLL_M=16
SGEMM_UNROLL_N=4
DGEMM_UNROLL_M=8
DGEMM_UNROLL_N=4
QGEMM_UNROLL_M=2
QGEMM_UNROLL_N=2
CGEMM_UNROLL_M=8
CGEMM_UNROLL_N=4
ZGEMM_UNROLL_M=4
ZGEMM_UNROLL_N=4
XGEMM_UNROLL_M=2
XGEMM_UNROLL_N=2
CGEMM3M_UNROLL_M=16
CGEMM3M_UNROLL_N=4
ZGEMM3M_UNROLL_M=8
ZGEMM3M_UNROLL_N=4
XGEMM3M_UNROLL_M=2
XGEMM3M_UNROLL_N=2

@martin-frbg
Copy link
Collaborator

martin-frbg commented May 23, 2024

Yes, this looks "mostly" sane except that it appears to "think" that you are cross-compiling, and it apparently did not find a fortran compiler. Maybe Windows-on-Arm identifies as something other than "arm64" or "aarch64" ?

@martin-frbg
Copy link
Collaborator

Ah, I now see that you set HOSTCC, which is only necessary for cross-compiling (and automatically implies cross-compiling). Not sure if that has any bearing on the other errors though...

@martin-frbg
Copy link
Collaborator

BTW the expr: syntax error is probably generated by lines in Makefile.system that try to determine the CLANG version by parsing the output of $CC -dumpversion. Perhaps it would help to see the entire build log (after a make clean followed by a make run without the HOSTCC option)

@TsengSR
Copy link
Author

TsengSR commented May 23, 2024

Will try in a few, when my current build attempt finishes (or fails). I noticed that the file pathes for CEXTRALIB are cut (seems to only get the part before the space in the path since on windows some of the *.h files are in C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\... folders, trying to figure out what it

CEXTRALIB=  -libpath:C:\\Program -libpath:C:\\Program -libpath:C:\\Program -libpath:C:\\Program

Seems they are parsed from check_c

link=`$compiler_name $flags -c ctest2.c -o ctest2.o 2>&1 && $compiler_name $flags $openmp -v ctest2.o -o ctest2 2>&1 && rm -f ctest2.o ctest2 ctest2.exe`

link=`echo "$link" | sed 's/\-Y[[:space:]]P\,/\-Y/g'`


flags=`echo $link | tr "'[[:space:]],\n" " "`

Whats the best way to get the logs out? Pipe them in a file or is there an additional flag?

@martin-frbg
Copy link
Collaborator

piping to file, there is no additional flag or infrastructure for that

@TsengSR
Copy link
Author

TsengSR commented May 23, 2024

Okay here's the build log with

make CC="clang-cl" AR="llvm-ar" BUILD_WITHOUT_LAPACK=0 NOFORTRAN=0 DYNAMIC_ARCH=0 TARGET=ARMV8 
    ARCH=arm64 BINARY=64 USE_OPENMP=0 PARALLEL=1 RANLIB="llvm-ranlib" MAKE=make F_COMPILER=FLANG 
    FC=FLANG FFLAGS_NOOPT="-march=armv8-a -cpp" FFLAGS="-march=armv8-a -cpp" NEED_PIC=0 HOSTARCH=arm64
    CCOMMON_OPT=-w FCOMMON_OPT="-Wno-override-module" USE_THREAD=1 NUM_THREADS=8 OSNAME=WINNT libs netlib

I had to add CCOMMON_OPT=-w FCOMMON_OPT="-Wno-override-module" two days ago otherwise I get tons of warning and 100% usage while it prints them out and build time takes like twice or three times as long due to the massive about of output. Second one is to suppress the

warning: overriding the module target triple with aarch64-pc-windows-msvc19.40.33808 [-Woverride-module]

I was getting all over.

Build Log

clang-cl: warning: unknown argument ignored in clang-cl: '-S' [-Wunknown-argument]
lld-link: error: subsystem must be defined
clang-cl: error: linker command failed with exit code 1 (use -v to see invocation)
clang-cl: warning: unknown argument ignored in clang-cl: '-S' [-Wunknown-argument]
lld-link: error: subsystem must be defined
clang-cl: error: linker command failed with exit code 1 (use -v to see invocation)
clang-cl: warning: unknown argument ignored in clang-cl: '-S' [-Wunknown-argument]
lld-link: error: subsystem must be defined
clang-cl: error: linker command failed with exit code 1 (use -v to see invocation)
clang-cl: warning: unknown argument ignored in clang-cl: '-dumpversion' [-Wunknown-argument]
clang-cl: error: no input files
expr: syntax error
clang-cl: warning: unknown argument ignored in clang-cl: '-dumpversion' [-Wunknown-argument]
clang-cl: error: no input files
expr: syntax error
make[1]: Entering directory 'C:/Projekte/OpenBLAS/interface'
clang-cl: warning: unknown argument ignored in clang-cl: '-dumpversion' [-Wunknown-argument]
clang-cl: error: no input files
expr: syntax error
clang-cl: warning: unknown argument ignored in clang-cl: '-dumpversion' [-Wunknown-argument]
clang-cl: error: no input files
make: [Makefile:307: lapack_prebuild] Error -1073741569 (ignored)
make: [Makefile:308: lapack_prebuild] Error -1073741569 (ignored)
expr: syntax error
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -c axpy.c -o saxpy.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -c swap.c -o sswap.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -c copy.c -o scopy.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -c scal.c -o sscal.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -c dot.c -o sdot.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -c sdsdot.c -o sdsdot.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -c dsdot.c -o dsdot.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -c asum.c -o sasum.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -c sum.c -o ssum.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -c nrm2.c -o snrm2.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -c -UUSE_ABS -UUSE_MIN max.c -o smax.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -c -DUSE_ABS -UUSE_MIN max.c -o samax.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -c -UUSE_ABS -UUSE_MIN imax.c -o ismax.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -c -DUSE_ABS -UUSE_MIN imax.c -o isamax.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -c -UUSE_ABS -DUSE_MIN max.c -o smin.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -c -DUSE_ABS -DUSE_MIN max.c -o samin.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -c -UUSE_ABS -DUSE_MIN imax.c -o ismin.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -c -DUSE_ABS -DUSE_MIN imax.c -o isamin.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -c rot.c -o srot.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX rotg.c -o srotg.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX rotm.c -o srotm.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX rotmg.c -o srotmg.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -c axpby.c -o saxpby.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -DCBLAS -c -DUSE_ABS -UUSE_MIN imax.c -o cblas_isamax.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -DCBLAS -c -DUSE_ABS -DUSE_MIN imax.c -o cblas_isamin.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -DCBLAS -c asum.c -o cblas_sasum.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -DCBLAS -c axpy.c -o cblas_saxpy.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -DCBLAS -c copy.c -o cblas_scopy.obj
make: [Makefile:309: lapack_prebuild] Error -1073741569 (ignored)
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -DCBLAS -c dot.c -o cblas_sdot.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -DCBLAS -c sdsdot.c -o cblas_sdsdot.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -DCBLAS -c dsdot.c -o cblas_dsdot.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -DCBLAS -c rot.c -o cblas_srot.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -DCBLAS -c rotg.c -o cblas_srotg.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -DCBLAS -c rotm.c -o cblas_srotm.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -DCBLAS -c rotmg.c -o cblas_srotmg.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -DCBLAS -c scal.c -o cblas_sscal.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -DCBLAS -c swap.c -o cblas_sswap.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -DCBLAS -c nrm2.c -o cblas_snrm2.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -DCBLAS -c axpby.c -o cblas_saxpby.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -DCBLAS -c -UUSE_ABS -DUSE_MIN imax.c -o cblas_ismin.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -DCBLAS -c -UUSE_ABS -UUSE_MIN imax.c -o cblas_ismax.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -DCBLAS -c sum.c -o cblas_ssum.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -DCBLAS -c -DUSE_ABS -UUSE_MIN max.c -o cblas_samax.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -DCBLAS -c -DUSE_ABS -DUSE_MIN max.c -o cblas_samin.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -o sgemv.obj gemv.c
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX ger.c -o sger.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX trsv.c -o strsv.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX trmv.c -o strmv.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX symv.c -o ssymv.obj
make: [Makefile:310: lapack_prebuild] Error -1073741569 (ignored)
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX syr.c -o ssyr.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX syr2.c -o ssyr2.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -o sgbmv.obj gbmv.c
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX sbmv.c -o ssbmv.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX spmv.c -o sspmv.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX spr.c -o sspr.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX spr2.c -o sspr2.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX tbsv.c -o stbsv.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX tbmv.c -o stbmv.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX tpsv.c -o stpsv.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX tpmv.c -o stpmv.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -o cblas_sgemv.obj gemv.c
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX ger.c -o cblas_sger.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX symv.c -o cblas_ssymv.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX trmv.c -o cblas_strmv.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX trsv.c -o cblas_strsv.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX syr.c -o cblas_ssyr.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX syr2.c -o cblas_ssyr2.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -o cblas_sgbmv.obj gbmv.c
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX sbmv.c -o cblas_ssbmv.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX spmv.c -o cblas_sspmv.obj
make: [Makefile:311: lapack_prebuild] Error -1073741569 (ignored)
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX spr.c -o cblas_sspr.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX spr2.c -o cblas_sspr2.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX tbmv.c -o cblas_stbmv.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX tbsv.c -o cblas_stbsv.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX tpmv.c -o cblas_stpmv.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX tpsv.c -o cblas_stpsv.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX gemm.c -o sgemm.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX symm.c -o ssymm.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -DTRMM trsm.c -o strmm.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX trsm.c -o strsm.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX syrk.c -o ssyrk.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX syr2k.c -o ssyr2k.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX omatcopy.c -o somatcopy.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX imatcopy.c -o simatcopy.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX geadd.c -o sgeadd.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX gemmt.c -o sgemmt.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX gemm.c -o cblas_sgemm.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX symm.c -o cblas_ssymm.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -DTRMM trsm.c -o cblas_strmm.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX trsm.c -o cblas_strsm.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX syrk.c -o cblas_ssyrk.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX syr2k.c -o cblas_ssyr2k.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -DCBLAS omatcopy.c -o cblas_somatcopy.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -DCBLAS imatcopy.c -o cblas_simatcopy.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX -DCBLAS geadd.c -o cblas_sgeadd.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX gemmt.c -o cblas_sgemmt.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX lapack/getrf.c -o sgetrf.obj
make: [Makefile:312: lapack_prebuild] Error -1073741569 (ignored)
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX lapack/getrs.c -o sgetrs.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX lapack/potrf.c -o spotrf.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX lapack/getf2.c -o sgetf2.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX lapack/potf2.c -o spotf2.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX lapack/laswp.c -o slaswp.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX lapack/gesv.c -o sgesv.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX lapack/lauu2.c -o slauu2.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX lapack/lauum.c -o slauum.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX lapack/trti2.c -o strti2.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX lapack/trtri.c -o strtri.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -UCOMPLEX lapack/trtrs.c -o strtrs.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -c axpy.c -o daxpy.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -c swap.c -o dswap.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -c copy.c -o dcopy.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -c scal.c -o dscal.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -c dot.c -o ddot.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -c asum.c -o dasum.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -c sum.c -o dsum.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -c nrm2.c -o dnrm2.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -c -UUSE_ABS -UUSE_MIN max.c -o dmax.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -c -DUSE_ABS -UUSE_MIN max.c -o damax.obj
make: [Makefile:313: lapack_prebuild] Error -1073741569 (ignored)
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -c -UUSE_ABS -UUSE_MIN imax.c -o idmax.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -c -DUSE_ABS -UUSE_MIN imax.c -o idamax.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -c -UUSE_ABS -DUSE_MIN max.c -o dmin.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -c -DUSE_ABS -DUSE_MIN max.c -o damin.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -c -UUSE_ABS -DUSE_MIN imax.c -o idmin.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -c -DUSE_ABS -DUSE_MIN imax.c -o idamin.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -c rot.c -o drot.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX rotg.c -o drotg.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX rotm.c -o drotm.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX rotmg.c -o drotmg.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -c axpby.c -o daxpby.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -DCBLAS -c -DUSE_ABS -UUSE_MIN imax.c -o cblas_idamax.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -DCBLAS -c -DUSE_ABS -DUSE_MIN imax.c -o cblas_idamin.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -DCBLAS -c asum.c -o cblas_dasum.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -DCBLAS -c axpy.c -o cblas_daxpy.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -DCBLAS -c copy.c -o cblas_dcopy.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -DCBLAS -c dot.c -o cblas_ddot.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -DCBLAS -c rot.c -o cblas_drot.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -DCBLAS -c rotg.c -o cblas_drotg.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -DCBLAS -c rotm.c -o cblas_drotm.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -DCBLAS -c rotmg.c -o cblas_drotmg.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -DCBLAS -c scal.c -o cblas_dscal.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -DCBLAS -c swap.c -o cblas_dswap.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -DCBLAS -c nrm2.c -o cblas_dnrm2.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -DCBLAS -c axpby.c -o cblas_daxpby.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -DCBLAS -c -UUSE_ABS -DUSE_MIN imax.c -o cblas_idmin.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -DCBLAS -c -UUSE_ABS -UUSE_MIN imax.c -o cblas_idmax.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -DCBLAS -c sum.c -o cblas_dsum.obj
make: [Makefile:314: lapack_prebuild] Error -1073741569 (ignored)
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -DCBLAS -c -DUSE_ABS -UUSE_MIN max.c -o cblas_damax.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -DCBLAS -c -DUSE_ABS -DUSE_MIN max.c -o cblas_damin.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -o dgemv.obj gemv.c
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX ger.c -o dger.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX trsv.c -o dtrsv.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX trmv.c -o dtrmv.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX symv.c -o dsymv.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX syr.c -o dsyr.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX syr2.c -o dsyr2.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -o dgbmv.obj gbmv.c
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX sbmv.c -o dsbmv.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX spmv.c -o dspmv.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX spr.c -o dspr.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX spr2.c -o dspr2.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX tbsv.c -o dtbsv.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX tbmv.c -o dtbmv.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX tpsv.c -o dtpsv.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX tpmv.c -o dtpmv.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -o cblas_dgemv.obj gemv.c
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX ger.c -o cblas_dger.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX symv.c -o cblas_dsymv.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX trmv.c -o cblas_dtrmv.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX trsv.c -o cblas_dtrsv.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX syr.c -o cblas_dsyr.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX syr2.c -o cblas_dsyr2.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -o cblas_dgbmv.obj gbmv.c
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX sbmv.c -o cblas_dsbmv.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX spmv.c -o cblas_dspmv.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX spr.c -o cblas_dspr.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX spr2.c -o cblas_dspr2.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX tbmv.c -o cblas_dtbmv.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX tbsv.c -o cblas_dtbsv.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX tpmv.c -o cblas_dtpmv.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX tpsv.c -o cblas_dtpsv.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX gemm.c -o dgemm.obj
make: [Makefile:315: lapack_prebuild] Error -1073741569 (ignored)
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX symm.c -o dsymm.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -DTRMM trsm.c -o dtrmm.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX trsm.c -o dtrsm.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX syrk.c -o dsyrk.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX syr2k.c -o dsyr2k.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX omatcopy.c -o domatcopy.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX imatcopy.c -o dimatcopy.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX geadd.c -o dgeadd.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX gemmt.c -o dgemmt.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX gemm.c -o cblas_dgemm.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX symm.c -o cblas_dsymm.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -DTRMM trsm.c -o cblas_dtrmm.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX trsm.c -o cblas_dtrsm.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX syrk.c -o cblas_dsyrk.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX syr2k.c -o cblas_dsyr2k.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -DCBLAS omatcopy.c -o cblas_domatcopy.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -DCBLAS imatcopy.c -o cblas_dimatcopy.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX -DCBLAS geadd.c -o cblas_dgeadd.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX gemmt.c -o cblas_dgemmt.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX lapack/getrf.c -o dgetrf.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX lapack/getrs.c -o dgetrs.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX lapack/potrf.c -o dpotrf.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX lapack/getf2.c -o dgetf2.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX lapack/potf2.c -o dpotf2.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX lapack/laswp.c -o dlaswp.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX lapack/gesv.c -o dgesv.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX lapack/lauu2.c -o dlauu2.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX lapack/lauum.c -o dlauum.obj
make: [Makefile:316: lapack_prebuild] Error -1073741569 (ignored)
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX lapack/trti2.c -o dtrti2.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX lapack/trtri.c -o dtrtri.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -UCOMPLEX lapack/trtrs.c -o dtrtrs.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -c zaxpy.c -o caxpy.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -c -DCONJ zaxpy.c -o caxpyc.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -c zswap.c -o cswap.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -c copy.c -o ccopy.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -c zscal.c -o cscal.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -c -DSSCAL zscal.c -o csscal.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -c -DCONJ zdot.c -o cdotc.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -c -UCONJ zdot.c -o cdotu.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -c asum.c -o scasum.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -c sum.c -o scsum.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -c nrm2.c -o scnrm2.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -c -DUSE_ABS -UUSE_MIN max.c -o scamax.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -c -DUSE_ABS -UUSE_MIN imax.c -o icamax.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -c -DUSE_ABS -DUSE_MIN max.c -o scamin.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -c -DUSE_ABS -DUSE_MIN imax.c -o icamin.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -c zrot.c -o csrot.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX zrotg.c -o crotg.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -c zaxpby.c -o caxpby.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DCBLAS -c -DUSE_ABS -UUSE_MIN imax.c -o cblas_icamax.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DCBLAS -c -DUSE_ABS -DUSE_MIN imax.c -o cblas_icamin.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DCBLAS -c asum.c -o cblas_scasum.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DCBLAS -c zaxpy.c -o cblas_caxpy.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DCBLAS -c copy.c -o cblas_ccopy.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DCBLAS -c -DCONJ zdot.c -o cblas_cdotc.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DCBLAS -c -UCONJ zdot.c -o cblas_cdotu.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DCBLAS -DFORCE_USE_STACK -c -DCONJ zdot.c -o cblas_cdotc_sub.obj
make: [Makefile:317: lapack_prebuild] Error -1073741569 (ignored)
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DCBLAS -DFORCE_USE_STACK -c -UCONJ zdot.c -o cblas_cdotu_sub.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DCBLAS -c zscal.c -o cblas_cscal.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DCBLAS -c -DSSCAL zscal.c -o cblas_csscal.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DCBLAS -c zswap.c -o cblas_cswap.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DCBLAS -c nrm2.c -o cblas_scnrm2.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DCBLAS -c zaxpby.c -o cblas_caxpby.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DCBLAS -c -DUSE_ABS -UUSE_MIN max.c -o cblas_scamax.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DCBLAS -c -DCONJ zaxpy.c -o cblas_caxpyc.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DCBLAS -c -DUSE_ABS -DUSE_MIN max.c -o cblas_scamin.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DCBLAS -c -UUSE_ABS -DUSE_MIN imax.c -o cblas_icmin.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DCBLAS -c -UUSE_ABS -UUSE_MIN imax.c -o cblas_icmax.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DCBLAS -c sum.c -o cblas_scsum.obj
clang-cl -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DCBLAS -c zrot.c -o cblas_csrot.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DCBLAS zrotg.c -o cblas_crotg.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -o cgemv.obj zgemv.c
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -UCONJ zger.c -o cgeru.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DCONJ zger.c -o cgerc.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX ztrsv.c -o ctrsv.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX ztrmv.c -o ctrmv.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX zsyr2.c -o csyr2.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -o cgbmv.obj zgbmv.c
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX zsbmv.c -o csbmv.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX zspr2.c -o cspr2.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX ztbsv.c -o ctbsv.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX ztbmv.c -o ctbmv.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX ztpsv.c -o ctpsv.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX ztpmv.c -o ctpmv.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX zhemv.c -o chemv.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX zhbmv.c -o chbmv.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX zher.c -o cher.obj
make: [Makefile:318: lapack_prebuild] Error -1073741569 (ignored)
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX zher2.c -o cher2.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX zhpmv.c -o chpmv.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX zhpr.c -o chpr.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX zhpr2.c -o chpr2.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -o cblas_cgemv.obj zgemv.c
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DCONJ zger.c -o cblas_cgerc.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -UCONJ zger.c -o cblas_cgeru.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -o cblas_cgbmv.obj zgbmv.c
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX zhbmv.c -o cblas_chbmv.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX zhemv.c -o cblas_chemv.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX zher.c -o cblas_cher.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX zher2.c -o cblas_cher2.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX zhpmv.c -o cblas_chpmv.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX zhpr.c -o cblas_chpr.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX zhpr2.c -o cblas_chpr2.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX ztbmv.c -o cblas_ctbmv.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX ztbsv.c -o cblas_ctbsv.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX ztpmv.c -o cblas_ctpmv.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX ztpsv.c -o cblas_ctpsv.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX ztrmv.c -o cblas_ctrmv.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX ztrsv.c -o cblas_ctrsv.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX gemm.c -o cgemm.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX symm.c -o csymm.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DTRMM trsm.c -o ctrmm.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX trsm.c -o ctrsm.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX syrk.c -o csyrk.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX syr2k.c -o csyr2k.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DHEMM symm.c -o chemm.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DHEMM syrk.c -o cherk.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DHEMM syr2k.c -o cher2k.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX zomatcopy.c -o comatcopy.obj
make: [Makefile:319: lapack_prebuild] Error -1073741569 (ignored)
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX zimatcopy.c -o cimatcopy.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX zgeadd.c -o cgeadd.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX gemmt.c -o cgemmt.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX gemm.c -o cblas_cgemm.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX symm.c -o cblas_csymm.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DTRMM trsm.c -o cblas_ctrmm.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX trsm.c -o cblas_ctrsm.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX syrk.c -o cblas_csyrk.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX syr2k.c -o cblas_csyr2k.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DHEMM symm.c -o cblas_chemm.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DHEMM syrk.c -o cblas_cherk.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DHEMM syr2k.c -o cblas_cher2k.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DCBLAS zomatcopy.c -o cblas_comatcopy.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DCBLAS zimatcopy.c -o cblas_cimatcopy.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX -DCBLAS zgeadd.c -o cblas_cgeadd.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX gemmt.c -o cblas_cgemmt.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX lapack/zgetrf.c -o cgetrf.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX lapack/zgetrs.c -o cgetrs.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX lapack/zpotrf.c -o cpotrf.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX lapack/zgetf2.c -o cgetf2.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX lapack/zpotf2.c -o cpotf2.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX lapack/zlaswp.c -o claswp.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX lapack/gesv.c -o cgesv.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX lapack/zlauu2.c -o clauu2.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX lapack/zlauum.c -o clauum.obj
make: [Makefile:320: lapack_prebuild] Error -1073741569 (ignored)
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX lapack/ztrti2.c -o ctrti2.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX lapack/ztrtri.c -o ctrtri.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX lapack/ztrtrs.c -o ctrtrs.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX zspr.c -o cspr.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX zspmv.c -o cspmv.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX zsymv.c -o csymv.obj
clang-cl -c -O2 -w -I.. -I. -UDOUBLE -DCOMPLEX zsyr.c -o csyr.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -c zaxpy.c -o zaxpy.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -c -DCONJ zaxpy.c -o zaxpyc.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -c zswap.c -o zswap.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -c copy.c -o zcopy.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -c zscal.c -o zscal.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -c -DSSCAL zscal.c -o zdscal.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -c -DCONJ zdot.c -o zdotc.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -c -UCONJ zdot.c -o zdotu.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -c asum.c -o dzasum.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -c sum.c -o dzsum.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -c nrm2.c -o dznrm2.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -c -DUSE_ABS -UUSE_MIN max.c -o dzamax.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -c -DUSE_ABS -UUSE_MIN imax.c -o izamax.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -c -DUSE_ABS -DUSE_MIN max.c -o dzamin.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -c -DUSE_ABS -DUSE_MIN imax.c -o izamin.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -c zrot.c -o zdrot.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX zrotg.c -o zrotg.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -c zaxpby.c -o zaxpby.obj
make: [Makefile:321: lapack_prebuild] Error -1073741569 (ignored)
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DCBLAS -c -DUSE_ABS -UUSE_MIN imax.c -o cblas_izamax.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DCBLAS -c -DUSE_ABS -DUSE_MIN imax.c -o cblas_izamin.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DCBLAS -c asum.c -o cblas_dzasum.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DCBLAS -c zaxpy.c -o cblas_zaxpy.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DCBLAS -c copy.c -o cblas_zcopy.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DCBLAS -c -DUSE_ABS -UUSE_MIN max.c -o cblas_dzamax.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DCBLAS -c -DUSE_ABS -DUSE_MIN max.c -o cblas_dzamin.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DCBLAS -c -DCONJ zdot.c -o cblas_zdotc.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DCBLAS -c -UCONJ zdot.c -o cblas_zdotu.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DCBLAS -DFORCE_USE_STACK -c -DCONJ zdot.c -o cblas_zdotc_sub.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DCBLAS -DFORCE_USE_STACK -c -UCONJ zdot.c -o cblas_zdotu_sub.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DCBLAS -c zscal.c -o cblas_zscal.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DCBLAS -c -DSSCAL zscal.c -o cblas_zdscal.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DCBLAS -c zswap.c -o cblas_zswap.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DCBLAS -c nrm2.c -o cblas_dznrm2.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DCBLAS -c zaxpby.c -o cblas_zaxpby.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DCBLAS -c -DCONJ zaxpy.c -o cblas_zaxpyc.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DCBLAS -c -UUSE_ABS -DUSE_MIN imax.c -o cblas_izmin.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DCBLAS -c -UUSE_ABS -UUSE_MIN imax.c -o cblas_izmax.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DCBLAS -c sum.c -o cblas_dzsum.obj
clang-cl -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DCBLAS -c zrot.c -o cblas_zdrot.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DCBLAS zrotg.c -o cblas_zrotg.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -o zgemv.obj zgemv.c
make: [Makefile:322: lapack_prebuild] Error -1073741569 (ignored)
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -UCONJ zger.c -o zgeru.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DCONJ zger.c -o zgerc.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX ztrsv.c -o ztrsv.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX ztrmv.c -o ztrmv.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX zsyr2.c -o zsyr2.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -o zgbmv.obj zgbmv.c
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX zsbmv.c -o zsbmv.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX zspr2.c -o zspr2.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX ztbsv.c -o ztbsv.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX ztbmv.c -o ztbmv.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX ztpsv.c -o ztpsv.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX ztpmv.c -o ztpmv.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX zhemv.c -o zhemv.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX zhbmv.c -o zhbmv.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX zher.c -o zher.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX zher2.c -o zher2.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX zhpmv.c -o zhpmv.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX zhpr.c -o zhpr.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX zhpr2.c -o zhpr2.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -o cblas_zgemv.obj zgemv.c
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DCONJ zger.c -o cblas_zgerc.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -UCONJ zger.c -o cblas_zgeru.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -o cblas_zgbmv.obj zgbmv.c
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX zhbmv.c -o cblas_zhbmv.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX zhemv.c -o cblas_zhemv.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX zher.c -o cblas_zher.obj
make: [Makefile:323: lapack_prebuild] Error -1073741569 (ignored)
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX zher2.c -o cblas_zher2.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX zhpmv.c -o cblas_zhpmv.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX zhpr.c -o cblas_zhpr.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX zhpr2.c -o cblas_zhpr2.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX ztbmv.c -o cblas_ztbmv.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX ztbsv.c -o cblas_ztbsv.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX ztpmv.c -o cblas_ztpmv.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX ztpsv.c -o cblas_ztpsv.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX ztrmv.c -o cblas_ztrmv.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX ztrsv.c -o cblas_ztrsv.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX gemm.c -o zgemm.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX symm.c -o zsymm.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DTRMM trsm.c -o ztrmm.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX trsm.c -o ztrsm.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX syrk.c -o zsyrk.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX syr2k.c -o zsyr2k.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DHEMM symm.c -o zhemm.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DHEMM syrk.c -o zherk.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DHEMM syr2k.c -o zher2k.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX zomatcopy.c -o zomatcopy.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX zimatcopy.c -o zimatcopy.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX zgeadd.c -o zgeadd.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX gemmt.c -o zgemmt.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX gemm.c -o cblas_zgemm.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX symm.c -o cblas_zsymm.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DTRMM trsm.c -o cblas_ztrmm.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX trsm.c -o cblas_ztrsm.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX syrk.c -o cblas_zsyrk.obj
make: [Makefile:324: lapack_prebuild] Error -1073741569 (ignored)
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX syr2k.c -o cblas_zsyr2k.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DHEMM symm.c -o cblas_zhemm.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DHEMM syrk.c -o cblas_zherk.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DHEMM syr2k.c -o cblas_zher2k.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DCBLAS zomatcopy.c -o cblas_zomatcopy.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DCBLAS zimatcopy.c -o cblas_zimatcopy.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX -DCBLAS zgeadd.c -o cblas_zgeadd.obj
clang-cl -DCBLAS -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX gemmt.c -o cblas_zgemmt.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX lapack/zgetrf.c -o zgetrf.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX lapack/zgetrs.c -o zgetrs.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX lapack/zpotrf.c -o zpotrf.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX lapack/zgetf2.c -o zgetf2.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX lapack/zpotf2.c -o zpotf2.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX lapack/zlaswp.c -o zlaswp.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX lapack/gesv.c -o zgesv.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX lapack/zlauu2.c -o zlauu2.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX lapack/zlauum.c -o zlauum.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX lapack/ztrti2.c -o ztrti2.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX lapack/ztrtri.c -o ztrtri.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX lapack/ztrtrs.c -o ztrtrs.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX zspr.c -o zspr.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX zspmv.c -o zspmv.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX zsymv.c -o zsymv.obj
clang-cl -c -O2 -w -I.. -I. -DDOUBLE -DCOMPLEX zsyr.c -o zsyr.obj
clang-cl -c -O2 -w -I.. -I. -DCBLAS xerbla.c -o cblas_xerbla.obj
make: [Makefile:325: lapack_prebuild] Error -1073741569 (ignored)
llvm-ar -ru ../libopenblas_armv8p-r0.3.27.a saxpy.obj sswap.obj scopy.obj sscal.obj sdot.obj sdsdot.obj dsdot.obj sasum.obj ssum.obj snrm2.obj smax.obj samax.obj ismax.obj isamax.obj smin.obj samin.obj ismin.obj isamin.obj srot.obj srotg.obj srotm.obj srotmg.obj saxpby.obj cblas_isamax.obj cblas_isamin.obj cblas_sasum.obj cblas_saxpy.obj cblas_scopy.obj cblas_sdot.obj cblas_sdsdot.obj cblas_dsdot.obj cblas_srot.obj cblas_srotg.obj cblas_srotm.obj cblas_srotmg.obj cblas_sscal.obj cblas_sswap.obj cblas_snrm2.obj cblas_saxpby.obj cblas_ismin.obj cblas_ismax.obj cblas_ssum.obj cblas_samax.obj cblas_samin.obj sgemv.obj sger.obj strsv.obj strmv.obj ssymv.obj ssyr.obj ssyr2.obj sgbmv.obj ssbmv.obj sspmv.obj sspr.obj sspr2.obj stbsv.obj stbmv.obj stpsv.obj stpmv.obj cblas_sgemv.obj cblas_sger.obj cblas_ssymv.obj cblas_strmv.obj cblas_strsv.obj cblas_ssyr.obj cblas_ssyr2.obj cblas_sgbmv.obj cblas_ssbmv.obj cblas_sspmv.obj cblas_sspr.obj cblas_sspr2.obj cblas_stbmv.obj cblas_stbsv.obj cblas_stpmv.obj cblas_stpsv.obj sgemm.obj ssymm.obj strmm.obj strsm.obj ssyrk.obj ssyr2k.obj somatcopy.obj simatcopy.obj sgeadd.obj sgemmt.obj cblas_sgemm.obj cblas_ssymm.obj cblas_strmm.obj cblas_strsm.obj cblas_ssyrk.obj cblas_ssyr2k.obj cblas_somatcopy.obj cblas_simatcopy.obj cblas_sgeadd.obj cblas_sgemmt.obj sgetrf.obj sgetrs.obj spotrf.obj sgetf2.obj spotf2.obj slaswp.obj sgesv.obj slauu2.obj slauum.obj strti2.obj strtri.obj strtrs.obj daxpy.obj dswap.obj dcopy.obj dscal.obj ddot.obj dasum.obj dsum.obj dnrm2.obj dmax.obj damax.obj idmax.obj idamax.obj dmin.obj damin.obj idmin.obj idamin.obj drot.obj drotg.obj drotm.obj drotmg.obj daxpby.obj cblas_idamax.obj cblas_idamin.obj cblas_dasum.obj cblas_daxpy.obj cblas_dcopy.obj cblas_ddot.obj cblas_drot.obj cblas_drotg.obj cblas_drotm.obj cblas_drotmg.obj cblas_dscal.obj cblas_dswap.obj cblas_dnrm2.obj cblas_daxpby.obj cblas_idmin.obj cblas_idmax.obj cblas_dsum.obj cblas_damax.obj cblas_damin.obj dgemv.obj dger.obj dtrsv.obj dtrmv.obj dsymv.obj dsyr.obj dsyr2.obj dgbmv.obj dsbmv.obj dspmv.obj dspr.obj dspr2.obj dtbsv.obj dtbmv.obj dtpsv.obj dtpmv.obj cblas_dgemv.obj cblas_dger.obj cblas_dsymv.obj cblas_dtrmv.obj cblas_dtrsv.obj cblas_dsyr.obj cblas_dsyr2.obj cblas_dgbmv.obj cblas_dsbmv.obj cblas_dspmv.obj cblas_dspr.obj cblas_dspr2.obj cblas_dtbmv.obj cblas_dtbsv.obj cblas_dtpmv.obj cblas_dtpsv.obj dgemm.obj dsymm.obj dtrmm.obj dtrsm.obj dsyrk.obj dsyr2k.obj domatcopy.obj dimatcopy.obj dgeadd.obj dgemmt.obj cblas_dgemm.obj cblas_dsymm.obj cblas_dtrmm.obj cblas_dtrsm.obj cblas_dsyrk.obj cblas_dsyr2k.obj cblas_domatcopy.obj cblas_dimatcopy.obj cblas_dgeadd.obj cblas_dgemmt.obj dgetrf.obj dgetrs.obj dpotrf.obj dgetf2.obj dpotf2.obj dlaswp.obj dgesv.obj dlauu2.obj dlauum.obj dtrti2.obj dtrtri.obj dtrtrs.obj caxpy.obj caxpyc.obj cswap.obj ccopy.obj cscal.obj csscal.obj cdotc.obj cdotu.obj scasum.obj scsum.obj scnrm2.obj scamax.obj icamax.obj scamin.obj icamin.obj csrot.obj crotg.obj caxpby.obj cblas_icamax.obj cblas_icamin.obj cblas_scasum.obj cblas_caxpy.obj cblas_ccopy.obj cblas_cdotc.obj cblas_cdotu.obj cblas_cdotc_sub.obj cblas_cdotu_sub.obj cblas_cscal.obj cblas_csscal.obj cblas_cswap.obj cblas_scnrm2.obj cblas_caxpby.obj cblas_scamax.obj cblas_caxpyc.obj cblas_scamin.obj cblas_icmin.obj cblas_icmax.obj cblas_scsum.obj cblas_csrot.obj cblas_crotg.obj cgemv.obj cgeru.obj cgerc.obj ctrsv.obj ctrmv.obj csyr2.obj cgbmv.obj csbmv.obj cspr2.obj ctbsv.obj ctbmv.obj ctpsv.obj ctpmv.obj chemv.obj chbmv.obj cher.obj cher2.obj chpmv.obj chpr.obj chpr2.obj cblas_cgemv.obj cblas_cgerc.obj cblas_cgeru.obj cblas_cgbmv.obj cblas_chbmv.obj cblas_chemv.obj cblas_cher.obj cblas_cher2.obj cblas_chpmv.obj cblas_chpr.obj cblas_chpr2.obj cblas_ctbmv.obj cblas_ctbsv.obj cblas_ctpmv.obj cblas_ctpsv.obj cblas_ctrmv.obj cblas_ctrsv.obj cgemm.obj csymm.obj ctrmm.obj ctrsm.obj csyrk.obj csyr2k.obj chemm.obj cherk.obj cher2k.obj comatcopy.obj cimatcopy.obj cgeadd.obj cgemmt.obj cblas_cgemm.obj cblas_csymm.obj cblas_ctrmm.obj cblas_ctrsm.obj cblas_csyrk.obj cblas_csyr2k.obj cblas_chemm.obj cblas_cherk.obj cblas_cher2k.obj cblas_comatcopy.obj cblas_cimatcopy.obj cblas_cgeadd.obj cblas_cgemmt.obj cgetrf.obj cgetrs.obj cpotrf.obj cgetf2.obj cpotf2.obj claswp.obj cgesv.obj clauu2.obj clauum.obj ctrti2.obj ctrtri.obj ctrtrs.obj cspr.obj cspmv.obj csymv.obj csyr.obj zaxpy.obj zaxpyc.obj zswap.obj zcopy.obj zscal.obj zdscal.obj zdotc.obj zdotu.obj dzasum.obj dzsum.obj dznrm2.obj dzamax.obj izamax.obj dzamin.obj izamin.obj zdrot.obj zrotg.obj zaxpby.obj cblas_izamax.obj cblas_izamin.obj cblas_dzasum.obj cblas_zaxpy.obj cblas_zcopy.obj cblas_dzamax.obj cblas_dzamin.obj cblas_zdotc.obj cblas_zdotu.obj cblas_zdotc_sub.obj cblas_zdotu_sub.obj cblas_zscal.obj cblas_zdscal.obj cblas_zswap.obj cblas_dznrm2.obj cblas_zaxpby.obj cblas_zaxpyc.obj cblas_izmin.obj cblas_izmax.obj cblas_dzsum.obj cblas_zdrot.obj cblas_zrotg.obj zgemv.obj zgeru.obj zgerc.obj ztrsv.obj ztrmv.obj zsyr2.obj zgbmv.obj zsbmv.obj zspr2.obj ztbsv.obj ztbmv.obj ztpsv.obj ztpmv.obj zhemv.obj zhbmv.obj zher.obj zher2.obj zhpmv.obj zhpr.obj zhpr2.obj cblas_zgemv.obj cblas_zgerc.obj cblas_zgeru.obj cblas_zgbmv.obj cblas_zhbmv.obj cblas_zhemv.obj cblas_zher.obj cblas_zher2.obj cblas_zhpmv.obj cblas_zhpr.obj cblas_zhpr2.obj cblas_ztbmv.obj cblas_ztbsv.obj cblas_ztpmv.obj cblas_ztpsv.obj cblas_ztrmv.obj cblas_ztrsv.obj zgemm.obj zsymm.obj ztrmm.obj ztrsm.obj zsyrk.obj zsyr2k.obj zhemm.obj zherk.obj zher2k.obj zomatcopy.obj zimatcopy.obj zgeadd.obj zgemmt.obj cblas_zgemm.obj cblas_zsymm.obj cblas_ztrmm.obj cblas_ztrsm.obj cblas_zsyrk.obj cblas_zsyr2k.obj cblas_zhemm.obj cblas_zherk.obj cblas_zher2k.obj cblas_zomatcopy.obj cblas_zimatcopy.obj cblas_zgeadd.obj cblas_zgemmt.obj zgetrf.obj zgetrs.obj zpotrf.obj zgetf2.obj zpotf2.obj zlaswp.obj zgesv.obj zlauu2.obj zlauum.obj ztrti2.obj ztrtri.obj ztrtrs.obj zspr.obj zspmv.obj zsymv.obj zsyr.obj cblas_xerbla.obj
llvm-ar.exe: warning: creating ../libopenblas_armv8p-r0.3.27.a
make: [Makefile:326: lapack_prebuild] Error -1073741569 (ignored)
make[1]: Leaving directory 'C:/Projekte/OpenBLAS/interface'
make[1]: Entering directory 'C:/Projekte/OpenBLAS/driver/level2'
clang-cl: warning: unknown argument ignored in clang-cl: '-dumpversion' [-Wunknown-argument]
clang-cl: error: no input files
make: [Makefile:327: lapack_prebuild] Error -1073741569 (ignored)
expr: syntax error
clang-cl: warning: unknown argument ignored in clang-cl: '-dumpversion' [-Wunknown-argument]
clang-cl: error: no input files
make: [Makefile:328: lapack_prebuild] Error -1073741569 (ignored)
expr: syntax error
clang-cl -c -UCOMPLEX -UDOUBLE -UTRANS -O2 -w -I../.. -UDOUBLE -UCOMPLEX -o sgbmv_n.obj gbmv_k.c
clang-cl -c -UCOMPLEX -UDOUBLE -DTRANS -O2 -w -I../.. -UDOUBLE -UCOMPLEX -o sgbmv_t.obj gbmv_k.c
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -ULOWER sbmv_k.c -o ssbmv_U.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -DLOWER sbmv_k.c -o ssbmv_L.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -ULOWER spmv_k.c -o sspmv_U.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -DLOWER spmv_k.c -o sspmv_L.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -ULOWER spr_k.c -o sspr_U.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -DLOWER spr_k.c -o sspr_L.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -ULOWER spr2_k.c -o sspr2_U.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -DLOWER spr2_k.c -o sspr2_L.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -ULOWER syr_k.c -o ssyr_U.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -DLOWER syr_k.c -o ssyr_L.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -ULOWER syr2_k.c -o ssyr2_U.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -DLOWER syr2_k.c -o ssyr2_L.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -UTRANSA -DUNIT tbmv_U.c -o stbmv_NUU.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -UTRANSA -UUNIT tbmv_U.c -o stbmv_NUN.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -UTRANSA -DUNIT tbmv_L.c -o stbmv_NLU.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -UTRANSA -UUNIT tbmv_L.c -o stbmv_NLN.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -DTRANSA -DUNIT tbmv_L.c -o stbmv_TUU.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -DTRANSA -UUNIT tbmv_L.c -o stbmv_TUN.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -DTRANSA -DUNIT tbmv_U.c -o stbmv_TLU.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -DTRANSA -UUNIT tbmv_U.c -o stbmv_TLN.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -UTRANSA -DUNIT tbsv_U.c -o stbsv_NUU.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -UTRANSA -UUNIT tbsv_U.c -o stbsv_NUN.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -UTRANSA -DUNIT tbsv_L.c -o stbsv_NLU.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -UTRANSA -UUNIT tbsv_L.c -o stbsv_NLN.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -DTRANSA -DUNIT tbsv_L.c -o stbsv_TUU.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -DTRANSA -UUNIT tbsv_L.c -o stbsv_TUN.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -DTRANSA -DUNIT tbsv_U.c -o stbsv_TLU.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -DTRANSA -UUNIT tbsv_U.c -o stbsv_TLN.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -UTRANSA -DUNIT tpmv_U.c -o stpmv_NUU.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -UTRANSA -UUNIT tpmv_U.c -o stpmv_NUN.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -UTRANSA -DUNIT tpmv_L.c -o stpmv_NLU.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -UTRANSA -UUNIT tpmv_L.c -o stpmv_NLN.obj
make: [Makefile:329: lapack_prebuild] Error -1073741569 (ignored)
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -DTRANSA -DUNIT tpmv_L.c -o stpmv_TUU.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -DTRANSA -UUNIT tpmv_L.c -o stpmv_TUN.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -DTRANSA -DUNIT tpmv_U.c -o stpmv_TLU.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -DTRANSA -UUNIT tpmv_U.c -o stpmv_TLN.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UDOUBLE -UTRANSA -DUNIT tpsv_U.c -o stpsv_NUU.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UDOUBLE -UTRANSA -UUNIT tpsv_U.c -o stpsv_NUN.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UDOUBLE -UTRANSA -DUNIT tpsv_L.c -o stpsv_NLU.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UDOUBLE -UTRANSA -UUNIT tpsv_L.c -o stpsv_NLN.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UDOUBLE -DTRANSA -DUNIT tpsv_L.c -o stpsv_TUU.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UDOUBLE -DTRANSA -UUNIT tpsv_L.c -o stpsv_TUN.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UDOUBLE -DTRANSA -DUNIT tpsv_U.c -o stpsv_TLU.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UDOUBLE -DTRANSA -UUNIT tpsv_U.c -o stpsv_TLN.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -UTRANSA -DUNIT trmv_U.c -o strmv_NUU.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -UTRANSA -UUNIT trmv_U.c -o strmv_NUN.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -UTRANSA -DUNIT trmv_L.c -o strmv_NLU.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -UTRANSA -UUNIT trmv_L.c -o strmv_NLN.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -DTRANSA -DUNIT trmv_L.c -o strmv_TUU.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -DTRANSA -UUNIT trmv_L.c -o strmv_TUN.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -DTRANSA -DUNIT trmv_U.c -o strmv_TLU.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -DTRANSA -UUNIT trmv_U.c -o strmv_TLN.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UDOUBLE -UTRANSA -DUNIT trsv_U.c -o strsv_NUU.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UDOUBLE -UTRANSA -UUNIT trsv_U.c -o strsv_NUN.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UDOUBLE -UTRANSA -DUNIT trsv_L.c -o strsv_NLU.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UDOUBLE -UTRANSA -UUNIT trsv_L.c -o strsv_NLN.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UDOUBLE -DTRANSA -DUNIT trsv_L.c -o strsv_TUU.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UDOUBLE -DTRANSA -UUNIT trsv_L.c -o strsv_TUN.obj
make: [Makefile:330: lapack_prebuild] Error -1073741569 (ignored)
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UDOUBLE -DTRANSA -DUNIT trsv_U.c -o strsv_TLU.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UDOUBLE -DTRANSA -UUNIT trsv_U.c -o strsv_TLN.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -UTRANSA -UCONJ -UXCONJ gemv_thread.c -o sgemv_thread_n.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -DTRANSA -UCONJ -UXCONJ gemv_thread.c -o sgemv_thread_t.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -UCONJ -UXCONJ ger_thread.c -o sger_thread.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -ULOWER symv_thread.c -o ssymv_thread_U.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -DLOWER symv_thread.c -o ssymv_thread_L.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -ULOWER syr_thread.c -o ssyr_thread_U.obj
clang-cl -c -O2 -w -I../.. -UDOUBLE -UCOMPLEX -UCOMPLEX -UDOUBLE -DLOWER syr_thread.c -o ssyr_thread_L.obj
gemv_thread.c(163,3): error: use of undeclared identifier 'blas_queue_t'
163 | blas_queue_t queue[MAX_CPU_NUMBER];
| ^
gemv_thread.c(226,5): error: use of undeclared identifier 'queue'
226 | queue[num_cpu].mode = mode;
| ^
gemv_thread.c(226,30): error: use of undeclared identifier 'mode'; did you mean 'modf'?
226 | queue[num_cpu].mode = mode;
| ^~~~
| modf
C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt\corecrt_math.h(529,44): note: 'modf' declared here
529 | Check_return _ACRTIMP double __cdecl modf(In double _X, Out double* _Y);
| ^
gemv_thread.c(227,5): error: use of undeclared identifier 'queue'
227 | queue[num_cpu].routine = gemv_kernel;
| ^
gemv_thread.c(228,5): error: use of undeclared identifier 'queue'
228 | queue[num_cpu].args = &args;
| ^
gemv_thread.c(230,5): error: use of undeclared identifier 'queue'
230 | queue[num_cpu].range_m = &range[num_cpu];
| ^
gemv_thread.c(231,5): error: use of undeclared identifier 'queue'
231 | queue[num_cpu].range_n = NULL;
| ^
gemv_thread.c(236,5): error: use of undeclared identifier 'queue'
236 | queue[num_cpu].sa = NULL;
| ^
gemv_thread.c(237,5): error: use of undeclared identifier 'queue'
237 | queue[num_cpu].sb = NULL;
| ^
gemv_thread.c(238,5): error: use of undeclared identifier 'queue'
238 | queue[num_cpu].next = &queue[num_cpu + 1];
| ^
gemv_thread.c(238,31): error: use of undeclared identifier 'queue'
238 | queue[num_cpu].next = &queue[num_cpu + 1];
| ^
gemv_thread.c(274,7): error: use of undeclared identifier 'queue'
274 | queue[num_cpu].mode = mode;
| ^
gemv_thread.c(274,32): error: use of undeclared identifier 'mode'; did you mean 'modf'?
274 | queue[num_cpu].mode = mode;
| ^~~~
| modf
C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt\corecrt_math.h(529,44): note: 'modf' declared here
529 | Check_return _ACRTIMP double __cdecl modf(In double _X, Out double* _Y);
| ^
gemv_thread.c(275,7): error: use of undeclared identifier 'queue'
275 | queue[num_cpu].routine = gemv_kernel;
| ^
gemv_thread.c(276,7): error: use of undeclared identifier 'queue'
276 | queue[num_cpu].args = &args;
| ^
gemv_thread.c(278,7): error: use of undeclared identifier 'queue'
278 | queue[num_cpu].position = num_cpu;
| ^
gemv_thread.c(280,7): error: use of undeclared identifier 'queue'
280 | queue[num_cpu].range_m = NULL;
| ^
gemv_thread.c(281,7): error: use of undeclared identifier 'queue'
281 | queue[num_cpu].range_n = &range[num_cpu];
| ^
gemv_thread.c(283,7): error: use of undeclared identifier 'queue'
283 | queue[num_cpu].sa = NULL;
| ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make[1]: *** [Makefile:683: sgemv_thread_n.obj] Error 1
make[1]: *** Waiting for unfinished jobs....
gemv_thread.c(163,3): error: use of undeclared identifier 'blas_queue_t'
163 | blas_queue_t queue[MAX_CPU_NUMBER];
| ^
gemv_thread.c(226,5): error: use of undeclared identifier 'queue'
226 | queue[num_cpu].mode = mode;
| ^
gemv_thread.c(226,30): error: use of undeclared identifier 'mode'; did you mean 'modf'?
226 | queue[num_cpu].mode = mode;
| ^~~~
| modf
C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt\corecrt_math.h(529,44): note: 'modf' declared here
529 | Check_return _ACRTIMP double __cdecl modf(In double _X, Out double* _Y);
| ^
gemv_thread.c(227,5): error: use of undeclared identifier 'queue'
227 | queue[num_cpu].routine = gemv_kernel;
| ^
gemv_thread.c(228,5): error: use of undeclared identifier 'queue'
228 | queue[num_cpu].args = &args;
| ^
gemv_thread.c(233,5): error: use of undeclared identifier 'queue'
233 | queue[num_cpu].range_m = NULL;
| ^
gemv_thread.c(234,5): error: use of undeclared identifier 'queue'
234 | queue[num_cpu].range_n = &range[num_cpu];
| ^
gemv_thread.c(236,5): error: use of undeclared identifier 'queue'
236 | queue[num_cpu].sa = NULL;
| ^
gemv_thread.c(237,5): error: use of undeclared identifier 'queue'
237 | queue[num_cpu].sb = NULL;
| ^
gemv_thread.c(238,5): error: use of undeclared identifier 'queue'
238 | queue[num_cpu].next = &queue[num_cpu + 1];
| ^
gemv_thread.c(238,31): error: use of undeclared identifier 'queue'
238 | queue[num_cpu].next = &queue[num_cpu + 1];
| ^
gemv_thread.c(297,5): error: use of undeclared identifier 'queue'
297 | queue[0].sa = NULL;
| ^
gemv_thread.c(298,5): error: use of undeclared identifier 'queue'
298 | queue[0].sb = buffer;
| ^
symv_thread.c(117,3): error: use of undeclared identifier 'blas_queue_t'
117 | blas_queue_t queue[MAX_CPU_NUMBER];
| ^
gemv_thread.c(299,5): error: use of undeclared identifier 'queue'
299 | queue[num_cpu - 1].next = NULL;
| ^
symv_thread.c(231,5): error: use of undeclared identifier 'queue'
231 | queue[num_cpu].mode = mode;
| ^
symv_thread.c(231,30): error: use of undeclared identifier 'mode'; did you mean 'modf'?
231 | queue[num_cpu].mode = mode;
| ^~~~
| modf
C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt\corecrt_math.h(529,44): note: 'modf' declared here
529 | Check_return _ACRTIMP dogemv_thread.c(301u,5): error: call to undeclared function 'exec_blas'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
301 | exec_blbe __las(nucdecl modf(In dm_copublu, quee ue_X, );Ou
t
double* _Y);
| ^
| ^
symv_thread.c(232,5): error: use of undeclared identifier 'queue'
232 | queue[num_cpu].routine = symv_kernel;
| ^
gemv_thread.c(301,24): error: use of undeclared identifier 'queue'
301 | exec_blas(num_cpu, queue);
| ^
16 errors generated.
symv_thread.c(233,5): error: use of undeclared identifier 'queue'
ger_thread.c (120,3): error: use of undeclared identifier 'blas_queue_t'
120 | blas_queue_t queue[MAX_CPU_NUMBER];
233 | | ^
queue[num_cpu].args = &args;
| ^
ger_thread.c(175,5): error: use of undeclared identifier 'queue'
175 | queue[num_cpu].mode = mode;
| ^
symv_thread.c(234,5): error: use of undeclared identifier 'queue'
234 | queue[num_cpu].range_m = &range_m[num_cpu];
| ^
ger_thread.c(175,30): error: use of undeclared identifier 'mode'; did you mean 'modf'?
175 | queue[num_cpu].mode = mode;
| ^~~~
| modf
C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt\corecrt_math.h(529,44): note: 'modf' declared here
529 | Check_return _ACRTIMP double __cdecl modf(In double _X, Out double* _Y);
| ^
symv_thread.c(235,5): error: use of undeclared identifier 'queue'
235 | ger_thread.c ( 176,5): error: use of undeclared identifier 'queue'
176 | queue[num_cpu].routine = ger_kernel;
| ^
queue[num_cpu].range_n = &range_n[num_cpu];
| ^
ger_thread.c(177,5): error: use of undeclared identifier 'queue'
177 | queue[num_cpu].args = &args;
| ^
make[1]: *** [Makefile:686: sgemv_thread_t.obj] Error 1
symv_thread.c(236,5): error: use of undeclared identifier 'queue'
236 | queue[num_cpu].sa = NULL;
| ^
ger_thread.c(178,5): error: use of undeclared identifier 'queue'
178 | queue[num_cpu].range_n = &range_n[num_cpu];
| ^
ger_thread.c(179,5): error: use of undeclared identifier 'queue'
179 | queue[num_cpu].sa = NULL;
| ^
symv_thread.c(237,5): error: use of undeclared identifier 'queue'
237 | queue[num_cpu].sb = NULL;
| ^
ger_thread.c(180,5): error: use of undeclared identifier 'queue'
180 | queue[num_cpu].sb = NULL;
| ^
ger_thread.c(181,5): error: use of undeclared identifier 'queue'
181 | queue[num_cpu].next = &queue[num_cpu + 1];
| ^
symv_thread.c(238,5): error: use of undeclared identifier 'queue'
238 | queue[num_cpu].next = &queue[num_cpu + 1];
| ^
ger_thread.c(181,31): error: use of undeclared identifier 'queue'
181 | queue[num_cpu].next = &queue[num_cpu + 1];
| ^
symv_thread.c(238,31): error: use of undeclared identifier 'queue'
238 | queue[num_cpu].next = &queue[num_cpu + 1];
| ^
ger_thread.c(188,5): error: use of undeclared identifier 'queue'
188 | queue[0].sa = NULL;
| ^
symv_thread.c(245,5): error: use of undeclared identifier 'queue'
245 | queue[0].sa = NULL;
| ^
ger_thread.c(189,5): error: use of undeclared identifier 'queue'
189 | queue[0].sb = buffer;
| ^
ger_thread.c(191,5): error: use of undeclared identifier 'queue'
191 | queue[num_cpu - 1].next = NULL;
| ^
symv_thread.c(246,5): error: use of undeclared identifier 'queue'
246 | queue[0].sb = buffer + num_cpu * (((m + 255) & ~255) + 16) * COMPSIZE;
| ^
symv_thread.c(248,5): error: use of undeclared identifier 'queue'
248 | queue[num_cpu - 1].next = NULL;
| ^
ger_thread.c(193,5): error: call to undeclared function 'exec_blas'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
193 | exec_blas(num_cpu, queue);
| ^
ger_thread.c(193,24): error: use of undeclared identifier 'queue'
193 | exec_blas(num_cpu, queue);
| ^
15 errors generated.
symv_thread.c(250,5): error: call to undeclared function 'exec_blas'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
250 | exec_blas(num_cpu, queue);
| ^
symv_thread.c(250,24): error: use of undeclared identifier 'queue'
250 | exec_blas(num_cpu, queue);
| ^
16 errors generated.
make[1]: *** [Makefile:784: sger_thread.obj] Error 1
make[1]: *** [Makefile:832: ssymv_thread_L.obj] Error 1
syr_thread.c(151,3): error: use of undeclared identifier 'blas_queue_t'
151 | blas_queue_t queue[MAX_CPU_NUMBER];
| ^
syr_thread.c(220,5): error: use of undeclared identifier 'queue'
220 | queue[num_cpu].mode = mode;
| ^
syr_thread.c(220,30): error: use of undeclared identifier 'mode'; did you mean 'modf'?
220 | queue[num_cpu].mode = mode;
| ^~~~
| modf
C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt\corecrt_math.h(529,44): note: 'modf' declared here
529 | Check_return _ACRTIMP double __cdecl modf(In double _X, Out double* _Y);
| ^
syr_thread.c(221,5): error: use of undeclared identifier 'queue'
221 | queue[num_cpu].routine = syr_kernel;
| ^
syr_thread.c(222,5): error: use of undeclared identifier 'queue'
222 | queue[num_cpu].args = &args;
| ^
syr_thread.c(223,5): error: use of undeclared identifier 'queue'
223 | queue[num_cpu].range_m = &range_m[MAX_CPU_NUMBER - num_cpu - 1];
| ^
syr_thread.c(224,5): error: use of undeclared identifier 'queue'
224 | queue[num_cpu].range_n = NULL;
| ^
syr_thread.c(225,5): error: use of undeclared identifier 'queue'
225 | queue[num_cpu].sa = NULL;
| ^
syr_thread.c(226,5): error: use of undeclared identifier 'queue'
226 | queue[num_cpu].sb = NULL;
| ^
syr_thread.c(227,5): error: use of undeclared identifier 'queue'
227 | queue[num_cpu].next = &queue[num_cpu + 1];
| ^
syr_thread.c(227,31): error: use of undeclared identifier 'queue'
227 | queue[num_cpu].next = &queue[num_cpu + 1];
| ^
syr_thread.c(274,5): error: use of undeclared identifier 'queue'
274 | queue[0].sa = NULL;
| ^
syr_thread.c(275,5): error: use of undeclared identifier 'queue'
275 | queue[0].sb = buffer;
| ^
syr_thread.c(277,5): error: use of undeclared identifier 'queue'
277 | queue[num_cpu - 1].next = NULL;
| ^
syr_thread.c(279,5): error: call to undeclared function 'exec_blas'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
279 | exec_blas(num_cpu, queue);
| ^
syr_thread.c(279,24): error: use of undeclared identifier 'queue'
279 | exec_blas(num_cpu, queue);
| ^
16 errors generated.
make[1]: *** [Makefile:901: ssyr_thread_U.obj] Error 1
symv_thread.c(117,3): error: use of undeclared identifier 'blas_queue_t'
117 | blas_queue_t queue[MAX_CPU_NUMBER];
| ^
symv_thread.c(182,5): error: use of undeclared identifier 'queue'
182 | queue[MAX_CPU_NUMBER - num_cpu - 1].mode = mode;
| ^
symv_thread.c(182,51): error: use of undeclared identifier 'mode'; did you mean 'modf'?
182 | queue[MAX_CPU_NUMBER - num_cpu - 1].mode = mode;
| ^~~~
| modf
C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt\corecrt_math.h(529,44): note: 'modf' declared here
529 | Check_return _ACRTIMP double __cdecl modf(In double X, Out double* Y);
| ^
symv_thread.c(183,5): error: use of undeclared identifier 'queue'
183 | queue[MAX_CPU_NUMBER - num_cpu - 1].routine = symv_kernel;
| ^
symv_thread.c(184,5): error: use of undeclared identifier 'queue'
184 | queue[MAX_CPU_NUMBER - num_cpu - 1].args = &args;
| ^
symv_thread.c(185,5): error: use of undeclared identifier 'queue'
185 | queue[MAX_CPU_NUMBER - num_cpu - 1].range_m = &range_m[num_cpu];
| ^
symv_thread.c(186,5): error: use of undeclared identifier 'queue'
186 | queue[MAX_CPU_NUMBER - num_cpu - 1].range_n = &range_n[num_cpu];
| ^
symv_thread.c(187,5): error: use of undeclared identifier 'queue'
187 | queue[MAX_CPU_NUMBER - num_cpu - 1].sa = NULL;
| ^
symv_thread.c(188,5): error: use of undeclared identifier 'queue'
188 | queue[MAX_CPU_NUMBER - num_cpu - 1].sb = NULL;
| ^
symv_thread.c(189,5): error: use of undeclared identifier 'queue'
189 | queue[MAX_CPU_NUMBER - num_cpu - 1].next = &queue[MAX_CPU_NUMBER - num_cpu];
| ^
symv_thread.c(189,52): error: use of undeclared identifier 'queue'
189 | queue[MAX_CPU_NUMBER - num_cpu - 1].next = &queue[MAX_CPU_NUMBER - num_cpu];
| ^
syr_thread.c(151,3): symv_thread.c(196,error: use of undeclared identifier 'blas_queue_t'
5) 151 | : error: buse of undeclared identifier 'queue'
la s196
| qu queuee[Mue_AX_CPt qU_NuUMBEReue[MAX - nu_Cm_cPUpu]
.sa = NULNUL;
MBER| ^
];
| ^
symv_thread.c(197,5): error: use of undeclared identifier 'queue'
197 | queue[MAX_CPU_NUMBER - num_cpu].sb = buffer + num_cpu * (((m + 255) & ~255) + 16) * COMPSIZE;
| ^
syr_thread.c(258,5): error: use of undeclared identifier 'queue'
symv_thread.c( 258199 | , 5 ): error: use of undeclared identifier 'queue'
q ueue[n199u | m_cpu q].modueue[e MAX_CPU_N UMBER - = 1] .mnoede;
xt = | NULL;
| ^ ^

syr_thread.c(258,30): error: use of undeclared identifier 'mode'; did you mean 'modf'?
258 | queue[num_cpu].mode = mode;
| ^~~~
| modf
C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt\corecrt_math.h(529,44): note: 'modf' declared here
529 | Check_return _ACRTIMP double __cdecl modf(In double _X, Out double* _Y);
| ^
syr_thread.c(259,5): error: use of undeclared identifier 'queue'
259 | queue[num_cpu].routine = syr_kernel;
| ^
symv_thread.c(201,5): error: call to undeclared function 'exec_blas'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
201 | exec_blas(num_cpu, &queue[MAX_CPU_NUMBER - num_cpu]);
| ^
syr_thread.c(260,5): error: use of undeclared identifier 'queue'
260 | queue[num_cpu].args = &args;
| ^
symv_thread.c(201,25): error: use of undeclared identifier 'queue'
201 | exec_blas(num_cpu, &queue[MAX_CPU_NUMBER - num_cpu]);
| ^
syr_thread.c(261,5): error: use of undeclared identifier 'queue'
261 | queue[num_cpu].range_m = &range_m[num_cpu];
| ^
16 errors generated.
syr_thread.c(262,5): error: use of undeclared identifier 'queue'
262 | queue[num_cpu].range_n = NULL;
| ^
syr_thread.c(263,5): error: use of undeclared identifier 'queue'
263 | queue[num_cpu].sa = NULL;
| ^
syr_thread.c(264,5): error: use of undeclared identifier 'queue'
264 | queue[num_cpu].sb = NULL;
| ^
syr_thread.c(265,5): error: use of undeclared identifier 'queue'
265 | queue[num_cpu].next = &queue[num_cpu + 1];
| ^
syr_thread.c(265,31): error: use of undeclared identifier 'queue'
265 | queue[num_cpu].next = &queue[num_cpu + 1];
| ^
syr_thread.c(274,5): error: use of undeclared identifier 'queue'
274 | queue[0].sa = NULL;
| ^
syr_thread.c(275,5): error: use of undeclared identifier 'queue'
275 | queue[0].sb = buffer;
| ^
syr_thread.c(277,5): error: use of undeclared identifier 'queue'
277 | queue[num_cpu - 1].next = NULL;
| ^
make[1]: *** [Makefile:829: ssymv_thread_U.obj] Error 1
syr_thread.c(279,5): error: call to undeclared function 'exec_blas'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
279 | exec_blas(num_cpu, queue);
| ^
syr_thread.c(279,24): error: use of undeclared identifier 'queue'
279 | exec_blas(num_cpu, queue);
| ^
16 errors generated.
make[1]: *** [Makefile:904: ssyr_thread_L.obj] Error 1
make[1]: Leaving directory 'C:/Projekte/OpenBLAS/driver/level2'
make: [Makefile:331: lapack_prebuild] Error -1073741569 (ignored)
make: *** [Makefile:195: libs] Error -1073741569
make: *** Waiting for unfinished jobs....
make: [Makefile:332: lapack_prebuild] Error -1073741569 (ignored)
make: [Makefile:333: lapack_prebuild] Error -1073741569 (ignored)
make: [Makefile:334: lapack_prebuild] Error -1073741569 (ignored)

@martin-frbg
Copy link
Collaborator

Please try setting COMMON_OPT=-O2 -w instead of setting CCOMMON_OPT directly - I suspect that by presetting the internal variable you are preventing the makefiles from adding a lot of defines.

@TsengSR
Copy link
Author

TsengSR commented May 23, 2024

Okay the last compile attempt is done, but the flags didn't seem to take effect it put a lot of warnings into the log file. Around 1.1 million lines (~56 MB), but the first lines suggest that more compile flags have been added than before.

Also the libopenblas_armv8p-r0.3.27.a got generated with 5,290,190 Bytes of size (which is about the size of libopenblas.lib, non-arm version shipped with koboldcpp), which seems bigger than in the previous attempts (~500ish kb). No dll though.

Had to zip the logs as they could have been a bit to big to upload.
build-arm-2.zip

@martin-frbg
Copy link
Collaborator

The fatal error appears to be here:

F90-F-0004-Unable to open MODULE file iso_fortran_env.mod (sgedmd.f90: 543)

which looks like a flang configuration problem (or missing include path) - that file should be part of the flang installation

@TsengSR
Copy link
Author

TsengSR commented May 23, 2024

Okay, I got two version of flang installed. flang and flang-new.

$ which flang
C:/SDKs/flang_woa/bin/flang.exe

$ flang -v
flang version 12.0.0 (https://github.com/flang-compiler/classic-flang-llvm-project.git b2edef0c29902399a3baafa357adad468f29af51)
Target: aarch64-pc-windows-msvc
Thread model: posix
InstalledDir: C:\SDKs\flang_woa\bin

$ flang-new -v
flang-new version 18.1.5
Target: aarch64-pc-windows-msvc
Thread model: posix
InstalledDir: C:\Tools\LLVM\bin

$ which flang-new
C:/Tools/LLVM/bin/flang-new.exe

flang one is from the windows on arm verison of flang, linked in the Documentation [2. Download and install classic flang for windows on arm])(https://github.com/OpenMathLib/OpenBLAS/wiki/How-to-build-OpenBLAS-for-Windows-on-ARM64#2-download-and-install-classic-flang-for-windows-on-arm). Though I got the one from 0.3 tag on the link rather than the 0.1, though both are rather old (2021).

flang-new is from precompiled LLVM tools 18.1.6 Correction: 18.1.15. When I was downloading it, the 18.1.16 was released, but the WOA build wasn't available back then that was released just yesterday it seems.

I wonder if that may be the issue? The release notes of 0.3.27 say

  • added support for the LLVM18 version of the flang-new compiler

@martin-frbg
Copy link
Collaborator

Possible - you can check if one or both have an iso_fortran_env.mod , or simply try to compile with the other one. The wiki entry is older than flang-new - we actually have an open issue ticket (#3973) about updating the instructions once the flang-new from LLVM17 or newer has been confirmed to work on WoA. (Unfortunately the guy who started it eventually dropped out, and nobody else appeared to have the system environment or interest.)

@TsengSR
Copy link
Author

TsengSR commented May 24, 2024

Yesterday I removed the flang for woa and am getting different message now, mostly a file not found. So I think it is attempting to use the flang compiler rather than flang-new from newer LLVM versions.

I tried passing in the compiler via F_COMPILER=flang-new FC=flang-new and F_COMPILER=FLANGNEW FC=FLANGNEW, both didn't work. Not sure what to pass in here or where FLANGNEW is defined. I see it used in the cmake files and on 3 places in the regular makefile/c_check, but not where its defined.

I think there may be a few things going wrong.

One seems that the lib pathes are cut off

CEXTRALIB= -libpath:C:\Program -libpath:C:\Program -libpath:C:\Program -libpath:C:\Program

The test compile results in

clang version 18.1.5
Target: aarch64-pc-windows-msvc
Thread model: posix
InstalledDir: C:\Tools\LLVM\bin
 "C:\\Tools\\LLVM\\bin\\lld-link" -out:ctest2.exe "-libpath:C:\\Program Files\\Microsoft Visual Studio\\2022\\Preview\\VC\\Tools\\MSVC\\14.40.33807\\lib\\arm64" "-libpath:C:\\Program Files\\Microsoft Visual Studio\\2022\\Preview\\VC\\Tools\\MSVC\\14.40.33807\\atlmfc\\lib\\arm64" "-libpath:C:\\Program Files (x86)\\Windows Kits\\10\\Lib\\10.0.22621.0\\ucrt\\arm64" "-libpath:C:\\Program Files (x86)\\Windows Kits\\10\\Lib\\10.0.22621.0\\um\\arm64" "-libpath:C:\\Tools\\LLVM\\lib\\clang\\18\\lib\\windows" -nologo ctest2.o

but

for flag in $old_flags; do
    f=`echo "$flag" | tr '"' ' '`
    flags="$flags $f"
done

iterates over the string by words/space, so it cuts the words quoted path and removes the quotas too which later in the for each loop when -L/-l is matched, only the first pas until the first space is matched and added to the Makefile.conf

I guess that would have to be handled differntly, like some kind of tokenizing or regex pattern matching?
Also there seems to be 5 -libpath parameters, but the script only takes 4 into the Makefile.conf

I think this is coming from the test compile where the -S flag is used too. When changing it to "/Fa" the

clang-cl: warning: unknown argument ignored in clang-cl: '-S' [-Wunknown-argument]
error message disappears

I tried changing the c_check to

outputfile_flag="-S"
if [ "$compiler" = "CLANG" ]; then
    outputfile_flag="/Fa"
fi

data=`$compiler_name $flags $outputfile_flag ctest1.c && grep globl ctest1.s | head -n 1 && rm -f ctest1.s`

Still the compiler seems to be picked wrong

F_COMPILER=GFORTRAN
FC=gfortran
where I'd expect FLANGNEW and flang-new respectively

Is there an easy way to skip the c_check and run it with "custom tweaked" config.h and Makefile.conf?

@martin-frbg
Copy link
Collaborator

Hm, you'd have to hack Makefile.prebuild. Also the Fortran compiler is determined by f_check not c_check, normally setting FC=flang-new should be sufficient if flang-new is in your PATH. F_COMPILER should then be set by the script according to the behaviour of the compiler.

@TsengSR
Copy link
Author

TsengSR commented May 25, 2024

Mhh I think I made a bit of a progress with a few hacks to the c_check file

First I fixed the -S errors

if [ "$compiler_name" = "clang-cl" ]; then
    data=`$compiler_name /Fa $outputfile_flag ctest1.c && grep globl ctest1.s | head -n 1 && rm -f ctest1.s`
else
    data=`$compiler_name -S $outputfile_flag ctest1.c && grep globl ctest1.s | head -n 1 && rm -f ctest1.s`
fi

The one with the CEXTRALIBS is more difficult and goes over my bash skills. But as a hack to progress further i simply hard-coded the linker_l variable with the paths from the test compiles output

linker_l='"-libpath:C:\\Program Files\\Microsoft Visual Studio\\2022\\Preview\\VC\\Tools\\MSVC\\14.40.33807\\lib\\arm64" "-libpath:C:\\Program Files\\Microsoft Visual Studio\\2022\\Preview\\VC\\Tools\\MSVC\\14.40.33807\\atlmfc\\lib\\arm64" "-libpath:C:\\Program Files (x86)\\Windows Kits\\10\\Lib\\10.0.22621.0\\ucrt\\arm64" "-libpath:C:\\Program Files (x86)\\Windows Kits\\10\\Lib\\10.0.22621.0\\um\\arm64" "-libpath:C:\\Tools\\LLVM\\lib\\clang\\18\\lib\\windows"'

This would need to be fixed with regex or similar to handle spaces in the -libpath flags.

Another issue that appeared in the logs previously were the -dumpversion log errors, resulting from the "Makefile.system"

ifeq ($(C_COMPILER), CLANG)
CLANGVERSIONGTEQ9 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 9)
CLANGVERSIONGTEQ12 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 12)
endif

clang-cl doesn't have "-dumpversion" parameter. This would need to be parsed from clang-cl -v which results in

~ $ clang-cl -v
clang version 18.1.5
Target: aarch64-pc-windows-msvc
Thread model: posix
InstalledDir: C:\Tools\LLVM\bin

The version for clang-cl could be parsed via version=clang-cl --version | grep "clang version" | awk '{print $3}'`` i guess?

Again, still didn't felt confident to do that in the Makefile.system, so I simply hard coded the two variables, since I know that I got CLANG 18 which is newer than both of 9 and 12

ifeq ($(C_COMPILER), CLANG)
CLANGVERSIONGTEQ9 := 1
CLANGVERSIONGTEQ12 := 1
endif

This compiled a lot more and the resulting libopenblas_armv8p-r0.3.27.a was now around 10.4 MB. Still no lib/dll but only a few errors left in the logs

The Makefile.conf and config.h now

OSNAME=WINNT
ARCH=arm64
C_COMPILER=CLANG
BINARY32=
BINARY64=1
CROSS_SUFFIX=clang-
CROSS=1
CEXTRALIB= "-libpath:C:\\Program Files\\Microsoft Visual Studio\\2022\\Preview\\VC\\Tools\\MSVC\\14.40.33807\\lib\\arm64" "-libpath:C:\\Program Files\\Microsoft Visual Studio\\2022\\Preview\\VC\\Tools\\MSVC\\14.40.33807\\atlmfc\\lib\\arm64" "-libpath:C:\\Program Files (x86)\\Windows Kits\\10\\Lib\\10.0.22621.0\\ucrt\\arm64" "-libpath:C:\\Program Files (x86)\\Windows Kits\\10\\Lib\\10.0.22621.0\\um\\arm64" "-libpath:C:\\Tools\\LLVM\\lib\\clang\\18\\lib\\windows" 
NO_SVE=1
F_COMPILER=FLANG
FC=flang-new
BU=_
FEXTRALIB=   -lflang
CORE=ARMV8
LIBCORE=armv8
NUM_CORES=8
MAKEFLAGS += -j 8
SBGEMM_UNROLL_M=8
SBGEMM_UNROLL_N=4
SGEMM_UNROLL_M=16
SGEMM_UNROLL_N=4
DGEMM_UNROLL_M=8
DGEMM_UNROLL_N=4
QGEMM_UNROLL_M=2
QGEMM_UNROLL_N=2
CGEMM_UNROLL_M=8
CGEMM_UNROLL_N=4
ZGEMM_UNROLL_M=4
ZGEMM_UNROLL_N=4
XGEMM_UNROLL_M=2
XGEMM_UNROLL_N=2
CGEMM3M_UNROLL_M=16
CGEMM3M_UNROLL_N=4
ZGEMM3M_UNROLL_M=8
ZGEMM3M_UNROLL_N=4
XGEMM3M_UNROLL_M=2
XGEMM3M_UNROLL_N=2
#define OS_WINNT	1
#define ARCH_ARM64	1
#define C_CLANG	1
#define __64BIT__	1
#define HAVE_C11	1
#define PTHREAD_CREATE_FUNC	pthread_create
#define BUNDERSCORE	_
#define NEEDBUNDERSCORE	1
#define ARMV8
#define L1_DATA_SIZE 32768
#define L1_DATA_LINESIZE 64
#define L2_SIZE 262144
#define L2_LINESIZE 64
#define DTB_DEFAULT_ENTRIES 64
#define DTB_SIZE 4096
#define L2_ASSOCIATIVE 32
#define HAVE_VFPV4
#define HAVE_VFPV3
#define HAVE_VFP
#define HAVE_NEON
#define ARMV8
#define CORE_ARMV8
#define CHAR_CORENAME "ARMV8"
#define GEMM_MULTITHREAD_THRESHOLD	4

Logs:
build-arm-12.zip

Mostly

lld-link: error: subsystem must be defined
clang-cl: error: linker command failed with exit code 1 (use -v to see invocation)
lld-link: error: subsystem must be defined
clang-cl: error: linker command failed with exit code 1 (use -v to see invocation)
lld-link: error: subsystem must be defined
clang-cl: error: linker command failed with exit code 1 (use -v to see invocation)
..
make: [Makefile:307: lapack_prebuild] Error -1073741569 (ignored)
make: [Makefile:308: lapack_prebuild] Error -1073741569 (ignored)

type of errors seem to be left on the first look.

The subsystem/linker errors seem to be from the c_check file, but I can't figure where the line lies who runs/causes this. Probably around the test compiles?

@martin-frbg
Copy link
Collaborator

The Error -1072641569 appears to be related to the "echo" commands that (try to) create make.inc for the LAPACK build - the only references I can find for the error number translate it as "bad symbol table" which does not make much sense to me. Do you get a make.inc in lapack-netlib ? And I do not see any trace of attempting to compile LAPACK, only its LAPACKE C bindings this time...
Not sure about the source of the lld-link error messages, but perhaps clang-cl does not understand -c to mean "compile only, no link" ? That would affect the tests for SVE and for C11, as well as the generation of the link output for parsing the linker options. Perhaps try replacing the -c in c_check with /c ?

@TsengSR
Copy link
Author

TsengSR commented May 25, 2024

Do you get a make.inc in lapack-netlib ?

Yea, a make.inc is generated there and refreshed on every build.

FC          = flang-new
override FFLAGS      = -march=armv8-a -cpp -O2 -march=armv8-a
FFLAGS_DRV  = -march=armv8-a -cpp -O2 -march=armv8-a
POPTS       = -march=armv8-a -pg -fno-inline
FFLAGS_NOOPT       = -O0 -march=armv8-a -cpp -march=armv8-a
PNOOPT      = -march=armv8-a -pg -fno-inline -O0
LDFLAGS     = -march=armv8-a -cpp -O2 -march=armv8-a -defaultlib:advapi32
CC          = clang-cl
override CFLAGS      = -O2 -DMS_ABI -DMAX_STACK_ALLOC=2048 -Wall -DF_INTERFACE_GFORT -DNO_SVE -DSMP_SERVER -DNO_WARMUP -DMAX_CPU_NUMBER=8 -DMAX_PARALLEL_NUMBER=1 -DBUILD_SINGLE=1 -DBUILD_DOUBLE=1 -DBUILD_COMPLEX=1 -DBUILD_COMPLEX16=1 -DVERSION="0.3.27" -march=armv8-a -UASMNAME -UASMFNAME -UNAME -UCNAME -UCHAR_NAME -UCHAR_CNAME -DASMNAME= -DASMFNAME=_ -DNAME=_ -DCNAME= -DCHAR_NAME="_" -DCHAR_CNAME="" -DNO_AFFINITY -I. -DHAVE_LAPACK_CONFIG_H -DOPENBLAS_OS_WINDOWS -DLAPACK_COMPLEX_STRUCTURE
AR          = llvm-ar
ARFLAGS     =  -ru
RANLIB      = llvm-ranlib
LAPACKLIB   = ../../libopenblas_armv8p-r0.3.27.a
TMGLIB      = ../../../libopenblas_armv8p-r0.3.27.a
BLASLIB     = ../../../libopenblas_armv8p-r0.3.27.a
LAPACKELIB  = ../../../libopenblas_armv8p-r0.3.27.a
LAPACKLIB_P = ../libopenblas_armv8p-r0.3.27_p.a
SUFFIX      = obj
PSUFFIX     = pobj
CEXTRALIB   = -defaultlib:advapi32
TIMER       = NONE
LOADER      = flang-new
BUILD_DEPRECATED      = 1
BUILD_SINGLE      = 1
BUILD_DOUBLE      = 1
BUILD_COMPLEX      = 1
BUILD_COMPLEX16      = 1
LAPACKE_WITH_TMG      = 1
SHELL = /bin/sh
PLAT = _LINUX
DRVOPTS  = $(NOOPT)
#ARCHFLAGS= $(ARFLAGS) -ru
#RANLIB   = ranlib

replacing the -c and -o with /c and /Fe fixed two of the three occurances. The first one seems to happen here

no_sve=0
if [ "$architecture" = "arm64" ]; then
    tmpd=$(mktemp -d 2>/dev/null || mktemp -d -t 'OBC')
    tmpf="$tmpd/a.c"
    printf "#include <arm_sve.h>\n\n int main(void){}\n">> "$tmpf"
    args=" -march=armv8-a+sve -c -o $tmpf.o $tmpf"
    no_sve=0
    {
        $compiler_name $flags $args >/dev/null 2>&1
    } || {
        args=" -Msve_intrinsics /c /Fe $tmpf.o $tmpf"
        $compiler_name $flags $args #>/dev/null 2>&1
    } || {
        no_sve=1
    }
    rm -rf "$tmpd"
fi

When i removed the > /dev/null 2>&1 i was able to see the compile errors.

clang-cl: warning: unknown argument ignored in clang-cl: '-Msve_intrinsics' [-Wunknown-argument]
clang-cl: warning: C:/Users/<Username>/AppData/Local/Temp/tmp.a21120/a.c.o: 'linker' input unused [-Wunused-command-line-argument]
clang-cl: warning: argument unused during compilation: '/Fe' [-Wunused-command-line-argument]
In file included from C:/Users/<Username>/AppData/Local/Temp/tmp.a21120/a.c:1:
C:\Tools\LLVM\lib\clang\18\include\arm_sve.h(271,1): error: cannot mangle this built-in __SVInt8_t type yet
  271 | __aio __attribute__((target("sve"))) svint8_t svreinterpret_s8(svint8_t op) __arm_streaming_compatible {
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  272 |   return __builtin_sve_reinterpret_s8_s8(op);
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  273 | }
      | ~
C:\Tools\LLVM\lib\clang\18\include\arm_sve.h(125,15): note: expanded from macro '__aio'
  125 | #define __aio static __inline__ __attribute__((__always_inline__, __nodebug__, __overloadable__))
      |               ^
C:\Tools\LLVM\lib\clang\18\include\arm_sve.h(271,1): error: cannot mangle this built-in __SVInt8_t type yet
  271 | __aio __attribute__((target("sve"))) svint8_t svreinterpret_s8(svint8_t op) __arm_streaming_compatible {
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  272 |   return __builtin_sve_reinterpret_s8_s8(op);
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  273 | }
      | ~
C:\Tools\LLVM\lib\clang\18\include\arm_sve.h(125,15): note: expanded from macro '__aio'
  125 | #define __aio static __inline__ __attribute__((__always_inline__, __nodebug__, __overloadable__))
      |               ^

I also tried removing replcing -Msve_intrinsics with -march=armv8-a+sve, essentially resulting in the same error

@martin-frbg
Copy link
Collaborator

there is another -c on the first "args" line following the printf, maybe that is the third instance ? And it looks like clang-cl has trouble parsing the arm_sve header, so maybe the NO_SVE result is correct (this is not a problem anyway when your TARGET is just ARMV8). LAPACK's make.inc looks correct, not sure what happened to all the make output for the LAPACK parts (unless the log is truncated, there were some garbled lines halfway through the file that looked as if several (sub)processes were trying to write to the log at the same time). There is no clear indication why the log ended, maybe it is all good up to this point and you just asked for a partial build by specifying individual make targets like "libs" but not "shared" (or simply the default "all")

@martin-frbg
Copy link
Collaborator

(No solution for suppressing the split of the -libpath entries in the linker flags parser - I'm juggling multiple issues right now. Perhaps if you could "echo" the original contents of "$link" to a file from c_check and upload that, I could plug that into the script here to experiment with awk or whatever ?)

@TsengSR
Copy link
Author

TsengSR commented May 25, 2024

content of $link

clang-cl: warning: ctest2.o: 'linker' input unused [-Wunused-command-line-argument]
clang-cl: warning: argument unused during compilation: '/Fe' [-Wunused-command-line-argument]
clang version 18.1.5
Target: aarch64-pc-windows-msvc
Thread model: posix
InstalledDir: C:\Tools\LLVM\bin
 "C:\\Tools\\LLVM\\bin\\lld-link" -out:ctest2.exe "-libpath:C:\\Program Files\\Microsoft Visual Studio\\2022\\Preview\\VC\\Tools\\MSVC\\14.40.33807\\lib\\arm64" "-libpath:C:\\Program Files\\Microsoft Visual Studio\\2022\\Preview\\VC\\Tools\\MSVC\\14.40.33807\\atlmfc\\lib\\arm64" "-libpath:C:\\Program Files (x86)\\Windows Kits\\10\\Lib\\10.0.22621.0\\ucrt\\arm64" "-libpath:C:\\Program Files (x86)\\Windows Kits\\10\\Lib\\10.0.22621.0\\um\\arm64" "-libpath:C:\\Tools\\LLVM\\lib\\clang\\18\\lib\\windows" -nologo ctest2.o

@martin-frbg
Copy link
Collaborator

Thank you. Maybe the simplest solution would be to add something like

linker_ll =`echo $flags | grep -oP '\"-libpath.+\"'`

before the part that starts with the comment "strip trailing quotes", and then set linker_l = $linker_ll after all the flag processing ? Obviously the final form would need to have this conditional on $os = WINNT (and perhaps architecture=arm64 as well)...

@TsengSR
Copy link
Author

TsengSR commented May 27, 2024

The linker_ll =echo $flags | grep -oP '"-libpath.+"' didn't work to well, at least not with [w64devkit](https://github.com/skeeto/w64devkit) that i used for koboldcpp and openblas. It seems to run on busybox and busy box grep doesn't know the `P` flag. `linker_ll =`echo $flags | grep -o '\"-libpath.*\"' works however. Not sure why linker_ll =`echo $flags | grep -o '\"-libpath.+\"' didn't match anything (.+ vs .*).

This makes first messages disappear, still stuck at the

make: [Makefile:307: lapack_prebuild] Error -1073741569 (ignored)
make: [Makefile:308: lapack_prebuild] Error -1073741569 (ignored)

ones. Gonna give compiling under WSL2 a try and see if I can get a dll cross-compiled that way

@martin-frbg
Copy link
Collaborator

martin-frbg commented May 27, 2024

Ok, thanks. Maybe the P is a GNU extension to the original grep commands or something (anyway that just switches regular expressions to perl syntax, so just a personal preference or maybe showing my age...).
Before you switch to WSL2, could you check (with nm) if the libopenblas.a does contain LAPACK functions like ssyevx ? (I don't think we checked this before - and also, are you still building with make ... libs netlib as in your intial message ? That would definitely omit the "shared" step of creating the dll)

@TsengSR
Copy link
Author

TsengSR commented May 27, 2024

Also tried it without the libs netlib part, same issue, same (in w64devkit and windows)

make: *** [Makefile:195: libs] Error -1073741569
messages

Just a bunch of

nm libopenblas_armv8p-r0.3.27.a
nm: saxpy.obj: file format not recognized
nm: sswap.obj: file format not recognized
nm: scopy.obj: file format not recognized
nm: sscal.obj: file format not recognized

messages
nm.zip

@martin-frbg
Copy link
Collaborator

Indeed that's just the BLAS/CBLAS and internal functions from OpenBLAS, no sign of LAPACK. And no sensible information to be found for that Error -1073741569

@TsengSR
Copy link
Author

TsengSR commented May 28, 2024

WSL2 attempt seems to be a dead end too, at least for now. Got it set up so far and compiles for linux aarch64, but there seem to be missing the aarch64-w64-mingw32 to cross compile from Linux to an Windows aarch64 dll and I couldn't find any information if clang has such one.

Only thing I found is that microsoft merged their first contributions to the gcc compiler to add the aarch64-w64-mingw32 target to gcc 15, 1 day after gcc 14 was released (6th May 2024, merges happening on 7th onwards).

So I may give it a try later or see if the cmake path works better of if there is a different type of environment that's independent of w64devkit (it seems to have quite some issues, the c_check script running awfully slow in w64devkit, taking minutes before the actual compiling beings, while in wsl2 it just takes a few seconds).

Or maybe there's a way to get it done withn the VS environment (Dev console)

The total changes in c_check so far that improved it quite, but not fully able to build yet as stated above.

 c_check | 36 +++++++++++++++++++++++++++++++-----
 1 file changed, 31 insertions(+), 5 deletions(-)

diff --git a/c_check b/c_check
index 59ab9bb13..570b7921c 100755
--- a/c_check
+++ b/c_check
@@ -307,12 +307,20 @@ if [ "$architecture" = "arm64" ]; then
     tmpd=$(mktemp -d 2>/dev/null || mktemp -d -t 'OBC')
     tmpf="$tmpd/a.c"
     printf "#include <arm_sve.h>\n\n int main(void){}\n">> "$tmpf"
-    args=" -march=armv8-a+sve -c -o $tmpf.o $tmpf"
+    if [ "$compiler_name" = "clang-cl" ]; then
+        args=" -march=armv8-a+sve /c /Fe $tmpf.o $tmpf"
+    else
+        args=" -march=armv8-a+sve -c -o $tmpf.o $tmpf"
+    fi
     no_sve=0
     {
         $compiler_name $flags $args >/dev/null 2>&1
     } || {
-        args=" -Msve_intrinsics -c -o $tmpf.o $tmpf"
+        if [ "$compiler_name" = "clang-cl" ]; then
+            args=" -march=armv8-a+sve /c /Fe $tmpf.o $tmpf -v"
+        else
+            args=" -Msve_intrinsics -c -o $tmpf.o $tmpf"
+        fi
         $compiler_name $flags $args >/dev/null 2>&1
     } || {
         no_sve=1
@@ -326,7 +334,11 @@ case "$data" in
         tmpd=$(mktemp -d 2>/dev/null || mktemp -d -t 'OBC')
         tmpf="$tmpd/a.c"
         printf "#include <stdatomic.h>\nint main(void){}\n" >> "$tmpf"
-        args=" -c -o $tmpf.o $tmpf"
+        if [ "$compiler_name" = "clang-cl" ]; then
+            args=" /c $tmpf"
+        else
+            args=" -c -o $tmpf.o $tmpf"
+        fi
         c11_atomics=1
         {
             $compiler_name $flags $args >/dev/null 2>&1
@@ -355,7 +367,12 @@ if [ "$compiler" = "GCC" ]; then
     esac
 fi
 
-data=`$compiler_name $flags -S ctest1.c && grep globl ctest1.s | head -n 1 && rm -f ctest1.s`
+if [ "$compiler_name" = "clang-cl" ]; then
+    echo "#3 $compiler_name /c ctest1.c /Fa && grep globl ctest1.asm | head -n 1 && rm -f ctest1.asm"
+    data=`$compiler_name /c ctest1.c /Fa && grep globl ctest1.asm | head -n 1 && rm -f ctest1.asm`
+else
+    data=`$compiler_name -S ctest1.c && grep globl ctest1.s | head -n 1 && rm -f ctest1.s`
+fi
 
 need_fu=''
 if echo "$data" | grep 'globl[[:space:]][_\.]'; then
@@ -381,10 +398,17 @@ linker_L=""
 linker_l=""
 linker_a=""
 
-link=`$compiler_name $flags -c ctest2.c -o ctest2.o 2>&1 && $compiler_name $flags $openmp -v ctest2.o -o ctest2 2>&1 && rm -f ctest2.o ctest2 ctest2.exe`
+if [ "$compiler_name" = "clang-cl" ]; then
+    echo "clang-cl compilation of $compiler_name"
+    link=`$compiler_name $flags /c ctest2.c /Fe ctest2.o 2>&1 && $compiler_name $flags $openmp -v ctest2.o /o ctest2 2>&1 && rm -f ctest2.o ctest2 ctest2.exe`
+else
+    echo "clang-cl compilation of $compiler_name"
+    link=`$compiler_name $flags -c ctest2.c -o ctest2.o 2>&1 && $compiler_name $flags $openmp -v ctest2.o -o ctest2 2>&1 && rm -f ctest2.o ctest2 ctest2.exe`
+fi
 
 link=`echo "$link" | sed 's/\-Y[[:space:]]P\,/\-Y/g'`
 
+linker_ll=`echo $flags | grep -o '\"-libpath.*\"'`
 
 flags=`echo $link | tr "'[[:space:]],\n" " "`
 
@@ -428,6 +452,8 @@ for flag in $flags; do
     case "$flag" in *.a) linker_a="$linker_a $flag" ;; esac
 done
 
+linker_l=$linker_ll
+
  [ "$makefile" = "-" ] && {
     [ "$no_rv64gv" -eq 1 ] && printf "NO_RV64GV=1\n"
     [ "$no_avx512" -eq 1 ] && printf "NO_AVX512=1\n"

The other thing that had errors and would need to be addressed is

Makefile

ifeq ($(C_COMPILER), CLANG)
CLANGVERSIONGTEQ9 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 9)
CLANGVERSIONGTEQ12 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 12)
endif

clang-c doesn't have a -dumpversion flag and would need to parse the clang-cl -v out with something along the lines of clang-cl -v | grep "clang version" | awk '{print $3}, but the only issue I had is that I was unable to capture/pipe the output of clang-cl -v to grep, so it didn't really work so far.

@martin-frbg
Copy link
Collaborator

Thanks. It occurs to me that you could try with NOFORTRAN=1 , which should build the LAPACK component from C sources (created from the original Fortran with a modified f2c). Maybe this can work around whatever leads to the unexplained Error -1073741569

@TsengSR
Copy link
Author

TsengSR commented May 28, 2024

Nope, still same Error -1073741569 and stops at the same point

@martin-frbg
Copy link
Collaborator

Weird. so it seems to be something to do with the generation of make.inc after all, even though the file looked correct. Maybe it is the leading dash in the -@echo used to suppress command line echoing of that part of the makefile, the plain @echo lines elsewhere in Makefile did not appear to hurt ?

@mmuetzel
Copy link
Contributor

I haven't read the entire thread. Sorry if this has been discussed before.

Fwiw, -1073741569 is 0xC00000FF in hexadecimal. That is the value of STATUS_BAD_FUNCTION_TABLE.
https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-erref/596a1078-e883-4972-9bbc-49e60bebca55

A malformed function table was encountered during an unwind operation.

Not sure if that is helpful in tracking this down.

Just some wild guesses:
Maybe, the LLVM Flang that you are using is targeting the MinGW ABI but the C compiler is targeting the MSVC ABI (or vice versa)? Or is it picking up object files that are targeting different ABIs from somewhere when trying to link?

Does adding -target aarch64-pc-windows-msvc (or -target aarch64-w64-windows-gnu - or whatever matches the target ABI of your C compiler) to the flang-new flags make a difference?

Is there a difference if you are using the CMake build system?

@martin-frbg
Copy link
Collaborator

Right, I already found that brief explanation of the status code, but no details on what exactly could be "malformed" about it or how to find out more. The only (relevant) instance of "malformed function table" in a github issue (someone trying to port luajit to WoA) seems to suggest the function table itself may be correct but lack a valid pointer for some function ?
I still do not have any WoA environment for testing - but I see now that the issue (LuaJIT/LuaJIT 593) also has a comment with links to the Linaro wiki where setting up a qemu vm with a custom downloaded WoA installation disk is described.

@mmuetzel
Copy link
Contributor

For what it's worth: GitHub is hosting ARM64 runners (Linux and Windows) now:
https://github.blog/2024-06-03-arm64-on-github-actions-powering-faster-more-efficient-build-systems/

These runners are available to our customers on our GitHub Team and Enterprise Cloud plans. We expect to begin offering Arm runners for open source projects by the end of the year.

I don't know if OpenMathLib has access to minutes in a Team or Enterprise Cloud plan.

@mmuetzel
Copy link
Contributor

There also seems to be a docker image for emulating Windows on ARM on Linux x86. See, e.g., a pointer to it here.

But admittedly, I never tried to use that.

@martin-frbg
Copy link
Collaborator

According to #4925 the vcpkg project appears to be able to build WoA binaries, though using cmake&ninja

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants