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

BUG: build failure with Xcode 15 linker #24964

Closed
adamjstewart opened this issue Oct 19, 2023 · 13 comments · Fixed by #24967
Closed

BUG: build failure with Xcode 15 linker #24964

adamjstewart opened this issue Oct 19, 2023 · 13 comments · Fixed by #24967
Labels

Comments

@adamjstewart
Copy link
Contributor

adamjstewart commented Oct 19, 2023

Describe the issue:

I'm unable to build numpy 1.26.1 with the new linker added in Xcode 15. However, adding the following allows the build to work:

export LDFLAGS=-Wl,-ld_classic

Reproduce the code example:

Error message:

Run-time dependency scipy-openblas found: NO (tried pkgconfig, framework and cmake)
  WARNING: CMake Toolchain: Failed to determine CMake compilers state
  Run-time dependency openblas found: NO (tried pkgconfig, pkgconfig, pkgconfig and system)

  ../../numpy/meson.build:169:4: ERROR: Problem encountered: No BLAS library detected! Install one, or use the `allow-noblas` build option (note, this may be up to 100x slower for some linear algebra operations).

Runtime information:

Numpy 1.26.1
Python 3.11.6
OpenBLAS 0.3.24

Context for the issue:

Possibly related to scipy/scipy#19357

@rgommers

@rgommers
Copy link
Member

Thanks @adamjstewart. Could you add the contents of meson-log.txt:

/private/var/folders/jv/cgkfvslj6nq1l7cw0c8c_8gm0000gn/T/Adam/spack-stage/spack-stage-py-numpy-1.26.1-fpvytybgj754onbg7pdnjyxxrwvdlkec/spack-src/.mesonpy-pg7fuk8j/build/meson-logs/meson-log.txt

I think that that shows why OpenBLAS gets rejected.

@adamjstewart
Copy link
Contributor Author

That's the neat part, this file doesn't exist 😄

@andyfaff
Copy link
Contributor

I have scipy_openblas32==0.3.23.293.1 installed and I can build numpy main.

git clean -xdf
pip install scipy_openblas32==0.3.23.293.1
export LDFLAGS=-Wl,-ld_classic
spin build --with-scipy-openblas=32

works for me on Sonoma. If I don't use scipy_openblas32 then numpy picks up the Accelerate library instead. It seems that when you're building via spack it's not picking up Accelerate.

Have you tried setting PKG_CONFIG_PATH to the location of the OpenBLAS pkgconfig file?

@adamjstewart
Copy link
Contributor Author

@andyfaff it works because you're using the old linker. If you don't override LDFLAGS you may be able to reproduce my issue.

Have you tried setting PKG_CONFIG_PATH to the location of the OpenBLAS pkgconfig file?

See the "build env" file. PKG_CONFIG_PATH contains /Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openblas-0.3.24-lsn4jcy34p62ysj7qq2ghlsawu6sco6a/lib/pkgconfig which contains openblas.pc, which contains:

libdir=/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openblas-0.3.24-lsn4jcy34p62ysj7qq2ghlsawu6sco6a/lib
libsuffix=
includedir=/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openblas-0.3.24-lsn4jcy34p62ysj7qq2ghlsawu6sco6a/include
openblas_config= USE_64BITINT= DYNAMIC_ARCH=1 DYNAMIC_OLDER=1 NO_CBLAS= NO_LAPACK= NO_LAPACKE= NO_AFFINITY=1 USE_OPENMP=0 generic MAX_THREADS=10
version=0.3.24
extralib=-lgfortran -lgfortran
Name: openblas
Description: OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version
Version: ${version}
URL: https://github.com/xianyi/OpenBLAS
Libs: -L${libdir} -lopenblas${libsuffix}
Libs.private: ${extralib}
Cflags: -I${includedir}

@rgommers
Copy link
Member

That's the neat part, this file doesn't exist

Oh yes, this is a continual pain. You can preserve it by adding -Cbuilddir=build to pip install, and then it'll be located at build/meson-logs/meson-log.txt.

It seems that when you're building via spack it's not picking up Accelerate.

Adam's build explicitly uses -Dblas=openblas -Dlapack=openblas, that's why. And that's done to get all packages in the env to build against the exact same BLAS library (which is healthy).

@adamjstewart
Copy link
Contributor Author

adamjstewart commented Oct 20, 2023

Thanks for the tip! Here's the meson log: meson-log.txt

Also:

> otool -L /Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openblas-0.3.24-lsn4jcy34p62ysj7qq2ghlsawu6sco6a/lib/libopenblas.dylib
/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openblas-0.3.24-lsn4jcy34p62ysj7qq2ghlsawu6sco6a/lib/libopenblas.dylib:
	/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openblas-0.3.24-lsn4jcy34p62ysj7qq2ghlsawu6sco6a/lib/libopenblas.0.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libgfortran.5.dylib (compatibility version 6.0.0, current version 6.0.0)
	@rpath/libquadmath.0.dylib (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1336.0.0)

@rgommers
Copy link
Member

Okay, so pkg-config finds openblas just fine, but it's the symbol check for cblas_dgemm that fails with a linker error. Relevant lines from the log:

Determining dependency 'openblas' with pkg-config executable '/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/pkgconf-1.9.5-qqypctpzhh2ovbi42iin6qdtgnqyn6ol/bin/pkg-config'
env[PKG_CONFIG_PATH]: /Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/python-3.11.6-ylad4axebkcsdilseqetxyecuhlbsi3f/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openblas-0.3.24-lsn4jcy34p62ysj7qq2ghlsawu6sco6a/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/sqlite-3.42.0-s3sr5nn6bwvs5f77zfngincdciajtlnh/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openssl-3.1.3-n7drqo4b5taqelmp5w4s5lreolt65ygt/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/libxcrypt-4.4.35-isqux3dausvm4dkfmplelfbs4mvmw7po/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/libffi-3.4.4-hvu7kno6itjof43awvr6wxrzrspu5hm2/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/libxml2-2.10.3-4fw6bp73f24u6jmnnx2ucxxmpz5qxscz/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/zlib-ng-2.1.3-udbedjfxmaeoizr4at4b6b6hevpz3s3p/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/xz-5.4.1-n2svr6k5c6cjq72uwfqab6p2iwp6pcfl/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/readline-8.2-vutsa2grq6b6ah4d26sx2nb4cab7juux/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/ncurses-6.4-mpuvfeqtcht6btblblzfjttv6ozqvidd/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/pkgconf-1.9.5-qqypctpzhh2ovbi42iin6qdtgnqyn6ol/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/expat-2.5.0-vrnr3zgscr7eontokwoj2tbjqa65jrk6/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/bzip2-1.0.8-gkrn62h4dkkykl2ymhbtscdz4brn5ki7/lib/pkgconfig
-----------
Called: `/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/pkgconf-1.9.5-qqypctpzhh2ovbi42iin6qdtgnqyn6ol/bin/pkg-config --modversion openblas` -> 0
stdout:
0.3.24
-----------
env[PKG_CONFIG_PATH]: /Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/python-3.11.6-ylad4axebkcsdilseqetxyecuhlbsi3f/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openblas-0.3.24-lsn4jcy34p62ysj7qq2ghlsawu6sco6a/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/sqlite-3.42.0-s3sr5nn6bwvs5f77zfngincdciajtlnh/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openssl-3.1.3-n7drqo4b5taqelmp5w4s5lreolt65ygt/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/libxcrypt-4.4.35-isqux3dausvm4dkfmplelfbs4mvmw7po/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/libffi-3.4.4-hvu7kno6itjof43awvr6wxrzrspu5hm2/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/libxml2-2.10.3-4fw6bp73f24u6jmnnx2ucxxmpz5qxscz/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/zlib-ng-2.1.3-udbedjfxmaeoizr4at4b6b6hevpz3s3p/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/xz-5.4.1-n2svr6k5c6cjq72uwfqab6p2iwp6pcfl/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/readline-8.2-vutsa2grq6b6ah4d26sx2nb4cab7juux/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/ncurses-6.4-mpuvfeqtcht6btblblzfjttv6ozqvidd/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/pkgconf-1.9.5-qqypctpzhh2ovbi42iin6qdtgnqyn6ol/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/expat-2.5.0-vrnr3zgscr7eontokwoj2tbjqa65jrk6/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/bzip2-1.0.8-gkrn62h4dkkykl2ymhbtscdz4brn5ki7/lib/pkgconfig
-----------
Called: `/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/pkgconf-1.9.5-qqypctpzhh2ovbi42iin6qdtgnqyn6ol/bin/pkg-config --cflags openblas` -> 0
stdout:
-I/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openblas-0.3.24-lsn4jcy34p62ysj7qq2ghlsawu6sco6a/include
-----------
env[PKG_CONFIG_PATH]: /Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/python-3.11.6-ylad4axebkcsdilseqetxyecuhlbsi3f/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openblas-0.3.24-lsn4jcy34p62ysj7qq2ghlsawu6sco6a/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/sqlite-3.42.0-s3sr5nn6bwvs5f77zfngincdciajtlnh/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openssl-3.1.3-n7drqo4b5taqelmp5w4s5lreolt65ygt/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/libxcrypt-4.4.35-isqux3dausvm4dkfmplelfbs4mvmw7po/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/libffi-3.4.4-hvu7kno6itjof43awvr6wxrzrspu5hm2/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/libxml2-2.10.3-4fw6bp73f24u6jmnnx2ucxxmpz5qxscz/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/zlib-ng-2.1.3-udbedjfxmaeoizr4at4b6b6hevpz3s3p/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/xz-5.4.1-n2svr6k5c6cjq72uwfqab6p2iwp6pcfl/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/readline-8.2-vutsa2grq6b6ah4d26sx2nb4cab7juux/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/ncurses-6.4-mpuvfeqtcht6btblblzfjttv6ozqvidd/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/pkgconf-1.9.5-qqypctpzhh2ovbi42iin6qdtgnqyn6ol/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/expat-2.5.0-vrnr3zgscr7eontokwoj2tbjqa65jrk6/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/bzip2-1.0.8-gkrn62h4dkkykl2ymhbtscdz4brn5ki7/lib/pkgconfig
env[PKG_CONFIG_ALLOW_SYSTEM_LIBS]: 1
-----------
Called: `/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/pkgconf-1.9.5-qqypctpzhh2ovbi42iin6qdtgnqyn6ol/bin/pkg-config --libs openblas` -> 0
stdout:
-L/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openblas-0.3.24-lsn4jcy34p62ysj7qq2ghlsawu6sco6a/lib -lopenblas
-----------
env[PKG_CONFIG_PATH]: /Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/python-3.11.6-ylad4axebkcsdilseqetxyecuhlbsi3f/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openblas-0.3.24-lsn4jcy34p62ysj7qq2ghlsawu6sco6a/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/sqlite-3.42.0-s3sr5nn6bwvs5f77zfngincdciajtlnh/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openssl-3.1.3-n7drqo4b5taqelmp5w4s5lreolt65ygt/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/libxcrypt-4.4.35-isqux3dausvm4dkfmplelfbs4mvmw7po/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/libffi-3.4.4-hvu7kno6itjof43awvr6wxrzrspu5hm2/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/libxml2-2.10.3-4fw6bp73f24u6jmnnx2ucxxmpz5qxscz/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/zlib-ng-2.1.3-udbedjfxmaeoizr4at4b6b6hevpz3s3p/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/xz-5.4.1-n2svr6k5c6cjq72uwfqab6p2iwp6pcfl/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/readline-8.2-vutsa2grq6b6ah4d26sx2nb4cab7juux/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/ncurses-6.4-mpuvfeqtcht6btblblzfjttv6ozqvidd/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/pkgconf-1.9.5-qqypctpzhh2ovbi42iin6qdtgnqyn6ol/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/expat-2.5.0-vrnr3zgscr7eontokwoj2tbjqa65jrk6/lib/pkgconfig:/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/bzip2-1.0.8-gkrn62h4dkkykl2ymhbtscdz4brn5ki7/lib/pkgconfig
-----------
Called: `/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/pkgconf-1.9.5-qqypctpzhh2ovbi42iin6qdtgnqyn6ol/bin/pkg-config --libs openblas` -> 0
stdout:
-L/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openblas-0.3.24-lsn4jcy34p62ysj7qq2ghlsawu6sco6a/lib -lopenblas
-----------
Running compile:
Working directory:  /private/var/folders/jv/cgkfvslj6nq1l7cw0c8c_8gm0000gn/T/Adam/spack-stage/spack-stage-py-numpy-1.26.1-42rdd3ko5lefvbteif7fj5xbwfqdrzf4/spack-src/build/meson-private/tmp2wrdpzug
Code:
 
        #include<stdio.h>
        int main(void) {
            printf("%ld\n", (long)(sizeof(void *)));
            return 0;
        }
-----------
Command line: `/Users/Adam/spack/lib/spack/env/clang/clang++ /private/var/folders/jv/cgkfvslj6nq1l7cw0c8c_8gm0000gn/T/Adam/spack-stage/spack-stage-py-numpy-1.26.1-42rdd3ko5lefvbteif7fj5xbwfqdrzf4/spack-src/build/meson-private/tmp2wrdpzug/testfile.cpp -o /private/var/folders/jv/cgkfvslj6nq1l7cw0c8c_8gm0000gn/T/Adam/spack-stage/spack-stage-py-numpy-1.26.1-42rdd3ko5lefvbteif7fj5xbwfqdrzf4/spack-src/build/meson-private/tmp2wrdpzug/output.exe -O0 -fpermissive -Werror=implicit-function-declaration` -> 0
Program stdout:

8

Program stderr:


Running compile:
Working directory:  /private/var/folders/jv/cgkfvslj6nq1l7cw0c8c_8gm0000gn/T/Adam/spack-stage/spack-stage-py-numpy-1.26.1-42rdd3ko5lefvbteif7fj5xbwfqdrzf4/spack-src/build/meson-private/tmpw0c2imi9
Code:
 
-----------
Command line: `/Users/Adam/spack/lib/spack/env/clang/clang++ /private/var/folders/jv/cgkfvslj6nq1l7cw0c8c_8gm0000gn/T/Adam/spack-stage/spack-stage-py-numpy-1.26.1-42rdd3ko5lefvbteif7fj5xbwfqdrzf4/spack-src/build/meson-private/tmpw0c2imi9/testfile.cpp -o /private/var/folders/jv/cgkfvslj6nq1l7cw0c8c_8gm0000gn/T/Adam/spack-stage/spack-stage-py-numpy-1.26.1-42rdd3ko5lefvbteif7fj5xbwfqdrzf4/spack-src/build/meson-private/tmpw0c2imi9/output.obj -c -O0 -fpermissive -Werror=implicit-function-declaration -Werror=unknown-warning-option -Werror=unused-command-line-argument -Werror=ignored-optimization-argument --print-search-dirs` -> 0
stdout:
programs: =/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
libraries: =/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0
-----------
Running compile:
Working directory:  /private/var/folders/jv/cgkfvslj6nq1l7cw0c8c_8gm0000gn/T/Adam/spack-stage/spack-stage-py-numpy-1.26.1-42rdd3ko5lefvbteif7fj5xbwfqdrzf4/spack-src/build/meson-private/tmp6b7iqv0_
Code:
 #ifdef __cplusplus
               extern "C" {
               #endif
               void dgemm_();
void cblas_dgemm();
int main(int argc, const char *argv[])
{
  dgemm_();
  cblas_dgemm();
  return 0;
}
               #ifdef __cplusplus
               }
               #endif
               
-----------
Command line: `/Users/Adam/spack/lib/spack/env/clang/clang++ /private/var/folders/jv/cgkfvslj6nq1l7cw0c8c_8gm0000gn/T/Adam/spack-stage/spack-stage-py-numpy-1.26.1-42rdd3ko5lefvbteif7fj5xbwfqdrzf4/spack-src/build/meson-private/tmp6b7iqv0_/testfile.cpp -o /private/var/folders/jv/cgkfvslj6nq1l7cw0c8c_8gm0000gn/T/Adam/spack-stage/spack-stage-py-numpy-1.26.1-42rdd3ko5lefvbteif7fj5xbwfqdrzf4/spack-src/build/meson-private/tmp6b7iqv0_/output.exe -O0 -fpermissive -Werror=implicit-function-declaration /Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openblas-0.3.24-lsn4jcy34p62ysj7qq2ghlsawu6sco6a/lib/libopenblas.dylib` -> 1
stderr:
ld: duplicate LC_RPATH '/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/gcc-13.2.0-qhn4xdjhn2p7k2fnvllfz2ca6xhwl2yu/lib' in '/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openblas-0.3.24-lsn4jcy34p62ysj7qq2ghlsawu6sco6a/lib/libopenblas-r0.3.24.dylib'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
-----------
Running compile:
Working directory:  /private/var/folders/jv/cgkfvslj6nq1l7cw0c8c_8gm0000gn/T/Adam/spack-stage/spack-stage-py-numpy-1.26.1-42rdd3ko5lefvbteif7fj5xbwfqdrzf4/spack-src/build/meson-private/tmp420bxawd
Code:
 int main(void) { return 0; }

-----------
Command line: `/Users/Adam/spack/lib/spack/env/clang/clang++ /private/var/folders/jv/cgkfvslj6nq1l7cw0c8c_8gm0000gn/T/Adam/spack-stage/spack-stage-py-numpy-1.26.1-42rdd3ko5lefvbteif7fj5xbwfqdrzf4/spack-src/build/meson-private/tmp420bxawd/testfile.cpp -o /private/var/folders/jv/cgkfvslj6nq1l7cw0c8c_8gm0000gn/T/Adam/spack-stage/spack-stage-py-numpy-1.26.1-42rdd3ko5lefvbteif7fj5xbwfqdrzf4/spack-src/build/meson-private/tmp420bxawd/output.exe -O0 -fpermissive -Werror=implicit-function-declaration -lopenblas -Wl,-undefined,dynamic_lookup` -> 1
stderr:
ld: duplicate LC_RPATH '/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/gcc-13.2.0-qhn4xdjhn2p7k2fnvllfz2ca6xhwl2yu/lib' in '/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openblas-0.3.24-lsn4jcy34p62ysj7qq2ghlsawu6sco6a/lib/libopenblas-r0.3.24.dylib'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
-----------
Running compile:
Working directory:  /private/var/folders/jv/cgkfvslj6nq1l7cw0c8c_8gm0000gn/T/Adam/spack-stage/spack-stage-py-numpy-1.26.1-42rdd3ko5lefvbteif7fj5xbwfqdrzf4/spack-src/build/meson-private/tmp_r258wx2
Code:
 
        #ifdef __has_include
         #if !__has_include("openblas_config.h")
          #error "Header 'openblas_config.h' could not be found"
         #endif
        #else
         #include <openblas_config.h>
        #endif
-----------
Command line: `/Users/Adam/spack/lib/spack/env/clang/clang++ /private/var/folders/jv/cgkfvslj6nq1l7cw0c8c_8gm0000gn/T/Adam/spack-stage/spack-stage-py-numpy-1.26.1-42rdd3ko5lefvbteif7fj5xbwfqdrzf4/spack-src/build/meson-private/tmp_r258wx2/testfile.cpp -E -P -P -O0 -fpermissive -Werror=implicit-function-declaration` -> 0
CMake binary for 1 is cached.

Determining dependency 'OpenBLAS' with CMake executable '/Users/Adam/spack/var/spack/environments/system/.spack-env/view/bin/cmake'
CMake Toolchain: Calling CMake once to generate the compiler state
Calling CMake (['/Users/Adam/spack/var/spack/environments/system/.spack-env/view/bin/cmake']) in /private/var/folders/jv/cgkfvslj6nq1l7cw0c8c_8gm0000gn/T/Adam/spack-stage/spack-stage-py-numpy-1.26.1-42rdd3ko5lefvbteif7fj5xbwfqdrzf4/spack-src/build/meson-private/__CMake_compiler_info__ with:
  - "--trace-expand"
  - "--trace-format=json-v1"
  - "--no-warn-unused-cli"
  - "--trace-redirect=cmake_trace.txt"
  - "-G"
  - "Ninja"
  - "-DCMAKE_TOOLCHAIN_FILE=/private/var/folders/jv/cgkfvslj6nq1l7cw0c8c_8gm0000gn/T/Adam/spack-stage/spack-stage-py-numpy-1.26.1-42rdd3ko5lefvbteif7fj5xbwfqdrzf4/spack-src/build/meson-private/__CMake_compiler_info__/CMakeMesonTempToolchainFile.cmake"
  - "."
  - "-DCMAKE_PREFIX_PATH=/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/py-pyproject-metadata-0.7.1-t3nphl5nbf5uli3tet2qhwbvymhc2lsu;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/py-cython-3.0.0-aka24ggjwhr3fm25acotma3xgweecyvm;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/py-wheel-0.37.1-kaul57dgtdjcg2kwgvyd3tkyqnbpqegl;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/py-pip-23.1.2-ysprj2hfy6tbxh2vqvkr2vl2r5cmiviy;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/python-3.11.6-ylad4axebkcsdilseqetxyecuhlbsi3f;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/gettext-0.21.1-5h3562itimi7rrfpc5ks6r6sivmhg3be;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openblas-0.3.24-lsn4jcy34p62ysj7qq2ghlsawu6sco6a;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/ninja-1.11.1-6vrybrmj5cqfbehsop6ts6fqz62jo4ni;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/sqlite-3.42.0-s3sr5nn6bwvs5f77zfngincdciajtlnh;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openssl-3.1.3-n7drqo4b5taqelmp5w4s5lreolt65ygt;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/libxcrypt-4.4.35-isqux3dausvm4dkfmplelfbs4mvmw7po;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/libffi-3.4.4-hvu7kno6itjof43awvr6wxrzrspu5hm2;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/tar-1.34-fgos7l7uuyvrpopbjtr57iwvf3l5hfbz;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/libxml2-2.10.3-4fw6bp73f24u6jmnnx2ucxxmpz5qxscz;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/zlib-ng-2.1.3-udbedjfxmaeoizr4at4b6b6hevpz3s3p;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/xz-5.4.1-n2svr6k5c6cjq72uwfqab6p2iwp6pcfl;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/gdbm-1.23-tlvs2i3rs5gxg3uad5sqkgdj6o5iswrp;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/readline-8.2-vutsa2grq6b6ah4d26sx2nb4cab7juux;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/ncurses-6.4-mpuvfeqtcht6btblblzfjttv6ozqvidd;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/pkgconf-1.9.5-qqypctpzhh2ovbi42iin6qdtgnqyn6ol;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/expat-2.5.0-vrnr3zgscr7eontokwoj2tbjqa65jrk6;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/bzip2-1.0.8-gkrn62h4dkkykl2ymhbtscdz4brn5ki7;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/libiconv-1.17-3tm2ez733pxbo2itak6g23rfzmv6ej6m"
WARNING: CMake Toolchain: Failed to determine CMake compilers state
Try CMake generator: auto
Calling CMake (['/Users/Adam/spack/var/spack/environments/system/.spack-env/view/bin/cmake']) in /private/var/folders/jv/cgkfvslj6nq1l7cw0c8c_8gm0000gn/T/Adam/spack-stage/spack-stage-py-numpy-1.26.1-42rdd3ko5lefvbteif7fj5xbwfqdrzf4/spack-src/build/meson-private/cmake_OpenBLAS with:
  - "-DNAME=OpenBLAS"
  - "-DARCHS="
  - "-DVERSION="
  - "-DCOMPS="
  - "-DSTATIC=False"
  - "--trace-expand"
  - "--trace-format=json-v1"
  - "--no-warn-unused-cli"
  - "--trace-redirect=cmake_trace.txt"
  - "-DCMAKE_TOOLCHAIN_FILE=/private/var/folders/jv/cgkfvslj6nq1l7cw0c8c_8gm0000gn/T/Adam/spack-stage/spack-stage-py-numpy-1.26.1-42rdd3ko5lefvbteif7fj5xbwfqdrzf4/spack-src/build/meson-private/cmake_OpenBLAS/CMakeMesonToolchainFile.cmake"
  - "."
  - "-DCMAKE_PREFIX_PATH=/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/py-pyproject-metadata-0.7.1-t3nphl5nbf5uli3tet2qhwbvymhc2lsu;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/py-cython-3.0.0-aka24ggjwhr3fm25acotma3xgweecyvm;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/py-wheel-0.37.1-kaul57dgtdjcg2kwgvyd3tkyqnbpqegl;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/py-pip-23.1.2-ysprj2hfy6tbxh2vqvkr2vl2r5cmiviy;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/python-3.11.6-ylad4axebkcsdilseqetxyecuhlbsi3f;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/gettext-0.21.1-5h3562itimi7rrfpc5ks6r6sivmhg3be;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openblas-0.3.24-lsn4jcy34p62ysj7qq2ghlsawu6sco6a;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/ninja-1.11.1-6vrybrmj5cqfbehsop6ts6fqz62jo4ni;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/sqlite-3.42.0-s3sr5nn6bwvs5f77zfngincdciajtlnh;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openssl-3.1.3-n7drqo4b5taqelmp5w4s5lreolt65ygt;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/libxcrypt-4.4.35-isqux3dausvm4dkfmplelfbs4mvmw7po;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/libffi-3.4.4-hvu7kno6itjof43awvr6wxrzrspu5hm2;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/tar-1.34-fgos7l7uuyvrpopbjtr57iwvf3l5hfbz;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/libxml2-2.10.3-4fw6bp73f24u6jmnnx2ucxxmpz5qxscz;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/zlib-ng-2.1.3-udbedjfxmaeoizr4at4b6b6hevpz3s3p;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/xz-5.4.1-n2svr6k5c6cjq72uwfqab6p2iwp6pcfl;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/gdbm-1.23-tlvs2i3rs5gxg3uad5sqkgdj6o5iswrp;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/readline-8.2-vutsa2grq6b6ah4d26sx2nb4cab7juux;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/ncurses-6.4-mpuvfeqtcht6btblblzfjttv6ozqvidd;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/pkgconf-1.9.5-qqypctpzhh2ovbi42iin6qdtgnqyn6ol;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/expat-2.5.0-vrnr3zgscr7eontokwoj2tbjqa65jrk6;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/bzip2-1.0.8-gkrn62h4dkkykl2ymhbtscdz4brn5ki7;/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/libiconv-1.17-3tm2ez733pxbo2itak6g23rfzmv6ej6m"
CMake trace warning: add_executable() non imported executables are not supported
CMake TRACE: /private/var/folders/jv/cgkfvslj6nq1l7cw0c8c_8gm0000gn/T/Adam/spack-stage/spack-stage-py-numpy-1.26.1-42rdd3ko5lefvbteif7fj5xbwfqdrzf4/spack-src/build/meson-private/cmake_OpenBLAS/CMakeFiles/CMakeScratch/TryCompile-nqxvDZ/CMakeLists.txt:18 add_executable(['cmTC_568ee', '/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/cmake-3.27.6-6g357lfiwm2qllfg7v4u36cy6t2zohxl/share/cmake-3.27/Modules/CMakeCCompilerABI.c'])
CMake trace warning: target_link_options() TARGET cmTC_568ee not found
CMake TRACE: /private/var/folders/jv/cgkfvslj6nq1l7cw0c8c_8gm0000gn/T/Adam/spack-stage/spack-stage-py-numpy-1.26.1-42rdd3ko5lefvbteif7fj5xbwfqdrzf4/spack-src/build/meson-private/cmake_OpenBLAS/CMakeFiles/CMakeScratch/TryCompile-nqxvDZ/CMakeLists.txt:21 target_link_libraries(['cmTC_568ee', ''])
CMake trace warning: add_executable() non imported executables are not supported
CMake TRACE: /private/var/folders/jv/cgkfvslj6nq1l7cw0c8c_8gm0000gn/T/Adam/spack-stage/spack-stage-py-numpy-1.26.1-42rdd3ko5lefvbteif7fj5xbwfqdrzf4/spack-src/build/meson-private/cmake_OpenBLAS/CMakeFiles/CMakeScratch/TryCompile-kOKmuq/CMakeLists.txt:18 add_executable(['cmTC_2fc17', '/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/cmake-3.27.6-6g357lfiwm2qllfg7v4u36cy6t2zohxl/share/cmake-3.27/Modules/CMakeCXXCompilerABI.cpp'])
CMake trace warning: target_link_options() TARGET cmTC_2fc17 not found
CMake TRACE: /private/var/folders/jv/cgkfvslj6nq1l7cw0c8c_8gm0000gn/T/Adam/spack-stage/spack-stage-py-numpy-1.26.1-42rdd3ko5lefvbteif7fj5xbwfqdrzf4/spack-src/build/meson-private/cmake_OpenBLAS/CMakeFiles/CMakeScratch/TryCompile-kOKmuq/CMakeLists.txt:21 target_link_libraries(['cmTC_2fc17', ''])
Dependency lookup for openblas with method 'cmake' failed: Dependency OpenBLAS not found: CMake: invalid module cblas for OpenBLAS.
Try to explicitly specify one or more targets with the "modules" property.
Valid targets are:
[]
Run-time dependency openblas found: NO (tried pkgconfig, pkgconfig, pkgconfig and system)

If that does work with the classic linker, then I guess it's a linker problem indeed. The check works fine for me with the XCode 15 clang/clang++/ld. So I guess it depends also on how OpenBLAS is built.

The check is:

 #ifdef __cplusplus
               extern "C" {
               #endif
               void dgemm_();
void cblas_dgemm();
int main(int argc, const char *argv[])
{
  dgemm_();
  cblas_dgemm();
  return 0;
}
               #ifdef __cplusplus
               }
               #endif

Maybe that standalone test helps? It should build with clang++ and the right link/include paths, something like:

clang++ testfile.cpp -o testfile -I/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openblas-0.3.24-lsn4jcy34p62ysj7qq2ghlsawu6sco6a/include -L/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openblas-0.3.24-lsn4jcy34p62ysj7qq2ghlsawu6sco6a/lib -lopenblas

Did you build gfortran and openblas from scratch with the new XCode compilers inside your Spack env? I guess that's where the difference comes from; the conda-forge ones built on an older macOS version seem fine.

@adamjstewart
Copy link
Contributor Author

Yes, Spack-installed gfortran and openblas from source.

@adamjstewart
Copy link
Contributor Author

adamjstewart commented Oct 20, 2023

Yes, that testfile.cpp example fails for me:

> clang++ testfile.cpp -o testfile -I/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openblas-0.3.24-lsn4jcy34p62ysj7qq2ghlsawu6sco6a/include -L/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openblas-0.3.24-lsn4jcy34p62ysj7qq2ghlsawu6sco6a/lib -lopenblas -v

Apple clang version 15.0.0 (clang-1500.0.40.1)
Target: arm64-apple-darwin23.0.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
 "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" -cc1 -triple arm64-apple-macosx14.0.0 -Wundef-prefix=TARGET_OS_ -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -Werror=implicit-function-declaration -emit-obj -mrelax-all --mrelax-relocations -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name testfile.cpp -mrelocation-model pic -pic-level 2 -mframe-pointer=non-leaf -fno-strict-return -ffp-contract=on -fno-rounding-math -funwind-tables=1 -fobjc-msgsend-selector-stubs -target-sdk-version=14.0 -fvisibility-inlines-hidden-static-local-var -target-cpu apple-m1 -target-feature +v8.5a -target-feature +crc -target-feature +lse -target-feature +rdm -target-feature +crypto -target-feature +dotprod -target-feature +fp-armv8 -target-feature +neon -target-feature +fp16fml -target-feature +ras -target-feature +rcpc -target-feature +zcm -target-feature +zcz -target-feature +fullfp16 -target-feature +sm4 -target-feature +sha3 -target-feature +sha2 -target-feature +aes -target-abi darwinpcs -mllvm -treat-scalable-fixed-error-as-warning -debugger-tuning=lldb -target-linker-version 1015.6 -v -fcoverage-compilation-dir=/Users/Adam/Downloads -resource-dir /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -I /Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openblas-0.3.24-lsn4jcy34p62ysj7qq2ghlsawu6sco6a/include -I/usr/local/include -internal-isystem /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1 -internal-isystem /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/local/include -internal-isystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/include -internal-externc-isystem /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include -internal-externc-isystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include -Wno-reorder-init-list -Wno-implicit-int-float-conversion -Wno-c99-designator -Wno-final-dtor-non-final-class -Wno-extra-semi-stmt -Wno-misleading-indentation -Wno-quoted-include-in-framework-header -Wno-implicit-fallthrough -Wno-enum-enum-conversion -Wno-enum-float-conversion -Wno-elaborated-enum-base -Wno-reserved-identifier -Wno-gnu-folding-constant -fdeprecated-macro -fdebug-compilation-dir=/Users/Adam/Downloads -ferror-limit 19 -stack-protector 1 -fstack-check -mdarwin-stkchk-strong-link -fblocks -fencode-extended-block-signature -fregister-global-dtors-with-atexit -fgnuc-version=4.2.1 -fno-cxx-modules -fcxx-exceptions -fexceptions -fmax-type-align=16 -fcommon -fcolor-diagnostics -clang-vendor-feature=+disableNonDependentMemberExprInCurrentInstantiation -fno-odr-hash-protocols -clang-vendor-feature=+enableAggressiveVLAFolding -clang-vendor-feature=+revert09abecef7bbf -clang-vendor-feature=+thisNoAlignAttr -clang-vendor-feature=+thisNoNullAttr -mllvm -disable-aligned-alloc-awareness=1 -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /var/folders/jv/cgkfvslj6nq1l7cw0c8c_8gm0000gn/T/testfile-bf393f.o -x c++ testfile.cpp
clang -cc1 version 15.0.0 (clang-1500.0.40.1) default target arm64-apple-darwin23.0.0
ignoring nonexistent directory "/usr/local/include"
ignoring nonexistent directory "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/local/include"
ignoring nonexistent directory "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/Library/Frameworks"
#include "..." search starts here:
#include <...> search starts here:
 /Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openblas-0.3.24-lsn4jcy34p62ysj7qq2ghlsawu6sco6a/include
 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1
 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/include
 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include
 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include
 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks (framework directory)
End of search list.
 "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -lto_library /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libLTO.dylib -no_deduplicate -dynamic -arch arm64 -platform_version macos 14.0.0 14.0 -syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -o testfile -L/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openblas-0.3.24-lsn4jcy34p62ysj7qq2ghlsawu6sco6a/lib -L/usr/local/lib /var/folders/jv/cgkfvslj6nq1l7cw0c8c_8gm0000gn/T/testfile-bf393f.o -lopenblas -lc++ -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/lib/darwin/libclang_rt.osx.a
ld: duplicate LC_RPATH '/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/gcc-13.2.0-qhn4xdjhn2p7k2fnvllfz2ca6xhwl2yu/lib' in '/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openblas-0.3.24-lsn4jcy34p62ysj7qq2ghlsawu6sco6a/lib/libopenblas-r0.3.24.dylib'
clang: error: linker command failed with exit code 1 (use -v to see invocation)

@rgommers
Copy link
Member

Can you add -v to the above so we see what the linker fails with, and also post the output of

objdump -t /Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openblas-0.3.24-lsn4jcy34p62ysj7qq2ghlsawu6sco6a/lib/libopenblas.0.dylib

so we can see the symbols are actually present?

@adamjstewart
Copy link
Contributor Author

adamjstewart commented Oct 20, 2023

> otool -vL /Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openblas-0.3.24-lsn4jcy34p62ysj7qq2ghlsawu6sco6a/lib/libopenblas.dylib
/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openblas-0.3.24-lsn4jcy34p62ysj7qq2ghlsawu6sco6a/lib/libopenblas.dylib:
	/Users/Adam/spack/opt/spack/darwin-sonoma-m2/apple-clang-15.0.0/openblas-0.3.24-lsn4jcy34p62ysj7qq2ghlsawu6sco6a/lib/libopenblas.0.dylib (compatibility version 0.0.0, current version 0.0.0)
	time stamp 1 Thu Jan  1 01:00:01 1970
	@rpath/libgfortran.5.dylib (compatibility version 6.0.0, current version 6.0.0)
	time stamp 2 Thu Jan  1 01:00:02 1970
	@rpath/libquadmath.0.dylib (compatibility version 1.0.0, current version 1.0.0)
	time stamp 2 Thu Jan  1 01:00:02 1970
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1336.0.0)
	time stamp 2 Thu Jan  1 01:00:02 1970

Other request: objects.txt

@rgommers
Copy link
Member

That looks the same as what I see on my machine:

g     F __TEXT,__text _cblas_dgemm
g     F __TEXT,__text _dgemm_

I think this is a good place to stop, since I don't think there's much of a downside in adding the linker flag to use the classic linker, and revisiting once the new linker is a bit more mature.

@jfuruness
Copy link

I've also had this issue on an ubuntu machine when installing numpy using pypy. I found a fix elsewhere, I no longer remember where, of pip install numpy --config-settings=setup-args="-Dallow-noblas=true", which fixes the issue for me

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

Successfully merging a pull request may close this issue.

4 participants