Please describe the problem.
This is a parallelio build system problem, I think, but I'll see it in our spack installations so it's possible that it's a problem there. I checked 2.5.7 and 2.5.9 installed in spack-stack-1.1.0, 1.2.0, and 1.3.0:
> otool -L /Users/heinzell/prod/spack-stack-v1/envs/skylab-2.0.0/install/apple-clang/13.1.6/parallelio-2.5.7-j7hsgc6/lib/libpioc.dylib
/Users/heinzell/prod/spack-stack-v1/envs/skylab-2.0.0/install/apple-clang/13.1.6/parallelio-2.5.7-j7hsgc6/lib/libpioc.dylib:
libpioc.dylib (compatibility version 0.0.0, current version 0.0.0)
/Users/heinzell/prod/spack-stack-v1/envs/skylab-2.0.0/install/apple-clang/13.1.6/netcdf-c-4.8.1-vzayhsp/lib/libnetcdf.19.dylib (compatibility version 20.0.0, current version 20.1.0)
/Users/heinzell/prod/spack-stack-v1/envs/skylab-2.0.0/install/apple-clang/13.1.6/parallel-netcdf-1.12.2-e5p4ijk/lib/libpnetcdf.4.dylib (compatibility version 5.0.0, current version 5.2.0)
/Users/heinzell/prod/spack-stack-v1/envs/skylab-2.0.0/install/apple-clang/13.1.6/openmpi-4.1.4-hys7din/lib/libmpi.40.dylib (compatibility version 71.0.0, current version 71.4.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1311.100.3)
The library doesn't identify its own path correctly. For comparison, hdf5 uses rpath:
> otool -L /Users/heinzell/work/spack-stack/spack-stack-1.3.1/envs/unified-env/install/apple-clang/13.1.6/hdf5-1.12.2-h75jr26/lib/libhdf5_hl.dylib
/Users/heinzell/work/spack-stack/spack-stack-1.3.1/envs/unified-env/install/apple-clang/13.1.6/hdf5-1.12.2-h75jr26/lib/libhdf5_hl.dylib:
@rpath/libhdf5_hl.200.dylib (compatibility version 200.0.0, current version 200.1.0)
@rpath/libhdf5.200.dylib (compatibility version 200.0.0, current version 200.2.0)
/Users/heinzell/work/spack-stack/spack-stack-1.3.1/envs/unified-env/install/apple-clang/13.1.6/openmpi-4.1.4-2w5uhmt/lib/libmpi.40.dylib (compatibility version 71.0.0, current version 71.4.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1311.100.3)
and netcdf-c uses an absolute path:
> otool -L /Users/heinzell/work/spack-stack/spack-stack-1.3.1/envs/unified-env/install/apple-clang/13.1.6/netcdf-c-4.9.2-dj7rkty/lib/libnetcdf.dylib
/Users/heinzell/work/spack-stack/spack-stack-1.3.1/envs/unified-env/install/apple-clang/13.1.6/netcdf-c-4.9.2-dj7rkty/lib/libnetcdf.dylib:
/Users/heinzell/work/spack-stack/spack-stack-1.3.1/envs/unified-env/install/apple-clang/13.1.6/netcdf-c-4.9.2-dj7rkty/lib/libnetcdf.19.dylib (compatibility version 22.0.0, current version 22.2.0)
@rpath/libhdf5_hl.200.dylib (compatibility version 200.0.0, current version 200.1.0)
@rpath/libhdf5.200.dylib (compatibility version 200.0.0, current version 200.2.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1311.0.0)
@rpath/libz.1.dylib (compatibility version 1.0.0, current version 1.2.13)
@rpath/libsz.2.dylib (compatibility version 2.0.0, current version 2.0.1)
/usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.8)
@rpath/libzstd.1.dylib (compatibility version 1.0.0, current version 1.5.2)
@rpath/libxml2.2.dylib (compatibility version 13.0.0, current version 13.3.0)
/usr/local/opt/curl/lib/libcurl.4.dylib (compatibility version 13.0.0, current version 13.0.0)
@rpath/libmpi.40.dylib (compatibility version 71.0.0, current version 71.4.0)
Additional context
This is a problem only when using the shared library, but it needs to be fixed. We could work around it in spack, but I think the proper fix needs to be in the parallelio build system.
Please describe the problem. This is a parallelio build system problem, I think, but I'll see it in our spack installations so it's possible that it's a problem there. I checked 2.5.7 and 2.5.9 installed in spack-stack-1.1.0, 1.2.0, and 1.3.0:
The library doesn't identify its own path correctly. For comparison, hdf5 uses
rpath
:and netcdf-c uses an absolute path:
Additional context This is a problem only when using the shared library, but it needs to be fixed. We could work around it in spack, but I think the proper fix needs to be in the parallelio build system.
I also created an issue in spack-stack for this: https://github.com/NOAA-EMC/spack-stack/issues/551