diff --git a/outputs/config/0.compiler_flags.out b/outputs/config/0.compiler_flags.out index e0d76bcbf3..a2fee32705 100644 --- a/outputs/config/0.compiler_flags.out +++ b/outputs/config/0.compiler_flags.out @@ -1,24 +1,7 @@ -$ spack spec json-fortran%clang@14.0.0-gfortran -Input spec --------------------------------- - - json-fortran%clang@14.0.0-gfortran - -Concretized --------------------------------- - - json-fortran@8.3.0%clang@14.0.0-gfortran cppflags="-g" ~ipo build_system=cmake build_type=Release generator=make arch=linux-ubuntu22.04-x86_64_v3 - - ^cmake@3.27.7%clang@14.0.0-gfortran cppflags="-g" ~doc+ncurses+ownlibs build_system=generic build_type=Release arch=linux-ubuntu22.04-x86_64_v3 - - ^curl@8.4.0%clang@14.0.0-gfortran cppflags="-g" ~gssapi~ldap~libidn2~librtmp~libssh~libssh2+nghttp2 build_system=autotools libs=shared,static tls=openssl arch=linux-ubuntu22.04-x86_64_v3 - - ^nghttp2@1.57.0%clang@14.0.0-gfortran cppflags="-g" build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 - - ^openssl@3.1.3%clang@14.0.0-gfortran cppflags="-g" ~docs+shared build_system=generic certs=mozilla arch=linux-ubuntu22.04-x86_64_v3 - - ^ca-certificates-mozilla@2023-05-30%clang@14.0.0-gfortran cppflags="-g" build_system=generic arch=linux-ubuntu22.04-x86_64_v3 - - ^perl@5.38.0%clang@14.0.0-gfortran cppflags="-g" +cpanm+opcode+open+shared+threads build_system=generic patches=714e4d1 arch=linux-ubuntu22.04-x86_64_v3 - - ^berkeley-db@18.1.40%clang@14.0.0-gfortran cppflags="-g" +cxx~docs+stl build_system=autotools patches=26090f4,b231fcc arch=linux-ubuntu22.04-x86_64_v3 - - ^bzip2@1.0.8%clang@14.0.0-gfortran cppflags="-g" ~debug~pic+shared build_system=generic arch=linux-ubuntu22.04-x86_64_v3 - - ^diffutils@3.9%clang@14.0.0-gfortran cppflags="-g" build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 - - ^libiconv@1.17%clang@14.0.0-gfortran cppflags="-g" build_system=autotools libs=shared,static arch=linux-ubuntu22.04-x86_64_v3 - - ^gdbm@1.23%clang@14.0.0-gfortran cppflags="-g" build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 - - ^readline@8.2%clang@14.0.0-gfortran cppflags="-g" build_system=autotools patches=bbf97f1 arch=linux-ubuntu22.04-x86_64_v3 - - ^pkgconf@1.9.5%clang@14.0.0-gfortran cppflags="-g" build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 - - ^ncurses@6.4%clang@14.0.0-gfortran cppflags="-g" ~symlinks+termlib abi=none build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 - - ^zlib-ng@2.1.4%clang@14.0.0-gfortran cppflags="-g" +compat+opt build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 - - ^gmake@4.4.1%clang@14.0.0-gfortran cppflags="-g" ~guile build_system=generic arch=linux-ubuntu22.04-x86_64_v3 \ No newline at end of file +$ spack spec zlib%gcc@11.4.0 + - zlib@1.3.1 cppflags=-g +optimize+pic+shared build_system=makefile arch=linux-ubuntu22.04-x86_64 %c,cxx=gcc@11.4.0 + - ^compiler-wrapper@1.0 build_system=generic arch=linux-ubuntu22.04-x86_64 +[e] ^gcc@11.4.0~binutils+bootstrap~graphite~nvptx~piclibs~profiled~strip build_system=autotools build_type=RelWithDebInfo languages:='c,c++,fortran' arch=linux-ubuntu22.04-x86_64 + - ^gcc-runtime@11.4.0 cppflags=-g build_system=generic arch=linux-ubuntu22.04-x86_64 +[e] ^glibc@2.35 build_system=autotools arch=linux-ubuntu22.04-x86_64 + - ^gmake@4.4.1 cppflags=-g ~guile build_system=generic arch=linux-ubuntu22.04-x86_64 %c=gcc@11.4.0 \ No newline at end of file diff --git a/outputs/config/0.prefs.out b/outputs/config/0.prefs.out index 038eb2a53c..a39d854f91 100644 --- a/outputs/config/0.prefs.out +++ b/outputs/config/0.prefs.out @@ -1,48 +1,48 @@ $ spack spec hdf5 -Input spec --------------------------------- - - hdf5 - -Concretized --------------------------------- -[+] hdf5@1.14.3%gcc@11.4.0~cxx~fortran~hl~ipo~java~map+mpi+shared~szip~threadsafe+tools api=default build_system=cmake build_type=Release generator=make arch=linux-ubuntu22.04-x86_64_v3 -[+] ^cmake@3.27.7%gcc@11.4.0~doc+ncurses+ownlibs build_system=generic build_type=Release arch=linux-ubuntu22.04-x86_64_v3 -[+] ^curl@8.4.0%gcc@11.4.0~gssapi~ldap~libidn2~librtmp~libssh~libssh2+nghttp2 build_system=autotools libs=shared,static tls=openssl arch=linux-ubuntu22.04-x86_64_v3 -[+] ^nghttp2@1.57.0%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 -[+] ^openssl@3.1.3%gcc@11.4.0~docs+shared build_system=generic certs=mozilla arch=linux-ubuntu22.04-x86_64_v3 -[+] ^ca-certificates-mozilla@2023-05-30%gcc@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64_v3 -[+] ^ncurses@6.4%gcc@11.4.0~symlinks+termlib abi=none build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 -[+] ^gmake@4.4.1%gcc@11.4.0~guile build_system=generic arch=linux-ubuntu22.04-x86_64_v3 -[+] ^openmpi@4.1.6%gcc@11.4.0~atomics~cuda~cxx~cxx_exceptions~gpfs~internal-hwloc~internal-pmix~java~legacylaunchers~lustre~memchecker~openshmem~orterunprefix+romio+rsh~singularity+static+vt+wrapper-rpath build_system=autotools fabrics=none schedulers=none arch=linux-ubuntu22.04-x86_64_v3 -[+] ^hwloc@2.9.1%gcc@11.4.0~cairo~cuda~gl~libudev+libxml2~netloc~nvml~oneapi-level-zero~opencl+pci~rocm build_system=autotools libs=shared,static arch=linux-ubuntu22.04-x86_64_v3 -[+] ^libpciaccess@0.17%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 -[+] ^util-macros@1.19.3%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 -[+] ^libxml2@2.10.3%gcc@11.4.0+pic~python+shared build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 -[+] ^libiconv@1.17%gcc@11.4.0 build_system=autotools libs=shared,static arch=linux-ubuntu22.04-x86_64_v3 -[+] ^xz@5.4.1%gcc@11.4.0~pic build_system=autotools libs=shared,static arch=linux-ubuntu22.04-x86_64_v3 -[+] ^numactl@2.0.14%gcc@11.4.0 build_system=autotools patches=4e1d78c,62fc8a8,ff37630 arch=linux-ubuntu22.04-x86_64_v3 -[+] ^autoconf@2.69%gcc@11.4.0 build_system=autotools patches=35c4492,7793209,a49dd5b arch=linux-ubuntu22.04-x86_64_v3 -[+] ^automake@1.16.5%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 -[+] ^libtool@2.4.7%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 -[+] ^m4@1.4.19%gcc@11.4.0+sigsegv build_system=autotools patches=9dc5fbd,bfdffa7 arch=linux-ubuntu22.04-x86_64_v3 -[+] ^diffutils@3.9%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 -[+] ^libsigsegv@2.14%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 -[+] ^openssh@9.5p1%gcc@11.4.0+gssapi build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 -[+] ^krb5@1.20.1%gcc@11.4.0+shared build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 -[+] ^bison@3.8.2%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 -[+] ^findutils@4.9.0%gcc@11.4.0 build_system=autotools patches=440b954 arch=linux-ubuntu22.04-x86_64_v3 -[+] ^gettext@0.22.3%gcc@11.4.0+bzip2+curses+git~libunistring+libxml2+pic+shared+tar+xz build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 -[+] ^tar@1.34%gcc@11.4.0 build_system=autotools zip=pigz arch=linux-ubuntu22.04-x86_64_v3 -[+] ^pigz@2.7%gcc@11.4.0 build_system=makefile arch=linux-ubuntu22.04-x86_64_v3 -[+] ^zstd@1.5.5%gcc@11.4.0+programs build_system=makefile compression=none libs=shared,static arch=linux-ubuntu22.04-x86_64_v3 -[+] ^libedit@3.1-20210216%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 -[+] ^libxcrypt@4.4.35%gcc@11.4.0~obsolete_api build_system=autotools patches=4885da3 arch=linux-ubuntu22.04-x86_64_v3 -[+] ^perl@5.38.0%gcc@11.4.0+cpanm+opcode+open+shared+threads build_system=generic patches=714e4d1 arch=linux-ubuntu22.04-x86_64_v3 -[+] ^berkeley-db@18.1.40%gcc@11.4.0+cxx~docs+stl build_system=autotools patches=26090f4,b231fcc arch=linux-ubuntu22.04-x86_64_v3 -[+] ^bzip2@1.0.8%gcc@11.4.0~debug~pic+shared build_system=generic arch=linux-ubuntu22.04-x86_64_v3 -[+] ^gdbm@1.23%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 -[+] ^readline@8.2%gcc@11.4.0 build_system=autotools patches=bbf97f1 arch=linux-ubuntu22.04-x86_64_v3 -[+] ^pmix@5.0.1%gcc@11.4.0~docs+pmi_backwards_compatibility~python~restful build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 -[+] ^libevent@2.1.12%gcc@11.4.0+openssl build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 -[+] ^pkgconf@1.9.5%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 -[+] ^zlib-ng@2.1.4%gcc@11.4.0+compat+opt build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 \ No newline at end of file + - hdf5@1.14.6~cxx~fortran~hl~ipo~java~map+mpi+shared~subfiling~szip~threadsafe+tools api=default build_system=cmake build_type=Release generator=make arch=linux-ubuntu22.04-x86_64 %c=gcc@11.4.0 + - ^cmake@3.31.8~doc+ncurses+ownlibs~qtgui build_system=generic build_type=Release arch=linux-ubuntu22.04-x86_64 %c,cxx=gcc@11.4.0 + - ^curl@8.11.1~gssapi~ldap~libidn2~librtmp~libssh~libssh2+nghttp2 build_system=autotools libs:=shared,static tls:=openssl arch=linux-ubuntu22.04-x86_64 %c,cxx=gcc@11.4.0 + - ^nghttp2@1.65.0 build_system=autotools arch=linux-ubuntu22.04-x86_64 %c,cxx=gcc@11.4.0 + - ^diffutils@3.10 build_system=autotools arch=linux-ubuntu22.04-x86_64 %c=gcc@11.4.0 + - ^openssl@3.4.1~docs+shared build_system=generic certs=mozilla arch=linux-ubuntu22.04-x86_64 %c,cxx=gcc@11.4.0 + - ^ca-certificates-mozilla@2025-05-20 build_system=generic arch=linux-ubuntu22.04-x86_64 + - ^ncurses@6.5-20250705~symlinks+termlib abi=none build_system=autotools patches:=7a351bc arch=linux-ubuntu22.04-x86_64 %c,cxx=gcc@11.4.0 + - ^compiler-wrapper@1.0 build_system=generic arch=linux-ubuntu22.04-x86_64 +[e] ^gcc@11.4.0~binutils+bootstrap~graphite~nvptx~piclibs~profiled~strip build_system=autotools build_type=RelWithDebInfo languages:='c,c++,fortran' arch=linux-ubuntu22.04-x86_64 + - ^gcc-runtime@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64 +[e] ^glibc@2.35 build_system=autotools arch=linux-ubuntu22.04-x86_64 + - ^gmake@4.4.1~guile build_system=generic arch=linux-ubuntu22.04-x86_64 %c=gcc@11.4.0 + - ^openmpi@5.0.8+atomics~cuda~debug+fortran~gpfs~internal-hwloc~internal-libevent~internal-pmix~ipv6~java~lustre~memchecker~openshmem~rocm~romio+rsh~static~two_level_namespace+vt+wrapper-rpath build_system=autotools fabrics:=none romio-filesystem:=none schedulers:=none arch=linux-ubuntu22.04-x86_64 %c,cxx,fortran=gcc@11.4.0 + - ^autoconf@2.72 build_system=autotools arch=linux-ubuntu22.04-x86_64 + - ^m4@1.4.20+sigsegv build_system=autotools arch=linux-ubuntu22.04-x86_64 %c,cxx=gcc@11.4.0 + - ^libsigsegv@2.14 build_system=autotools arch=linux-ubuntu22.04-x86_64 %c=gcc@11.4.0 + - ^automake@1.16.5 build_system=autotools arch=linux-ubuntu22.04-x86_64 %c=gcc@11.4.0 + - ^hwloc@2.11.1~cairo~cuda~gl~level_zero~libudev+libxml2~nvml~opencl+pci~rocm build_system=autotools libs:=shared,static arch=linux-ubuntu22.04-x86_64 %c,cxx=gcc@11.4.0 + - ^libpciaccess@0.17 build_system=autotools arch=linux-ubuntu22.04-x86_64 %c=gcc@11.4.0 + - ^util-macros@1.20.1 build_system=autotools arch=linux-ubuntu22.04-x86_64 + - ^libxml2@2.13.5~http+pic~python+shared build_system=autotools arch=linux-ubuntu22.04-x86_64 %c=gcc@11.4.0 + - ^libiconv@1.18 build_system=autotools libs:=shared,static arch=linux-ubuntu22.04-x86_64 %c=gcc@11.4.0 + - ^xz@5.6.3~pic build_system=autotools libs:=shared,static arch=linux-ubuntu22.04-x86_64 %c=gcc@11.4.0 + - ^libevent@2.1.12+openssl build_system=autotools arch=linux-ubuntu22.04-x86_64 %c=gcc@11.4.0 + - ^libtool@2.4.7 build_system=autotools arch=linux-ubuntu22.04-x86_64 %c=gcc@11.4.0 + - ^findutils@4.10.0 build_system=autotools patches:=440b954 arch=linux-ubuntu22.04-x86_64 %c=gcc@11.4.0 + - ^gettext@0.23.1+bzip2+curses+git~libunistring+libxml2+pic+shared+tar+xz build_system=autotools arch=linux-ubuntu22.04-x86_64 %c,cxx=gcc@11.4.0 + - ^tar@1.35 build_system=autotools zip=pigz arch=linux-ubuntu22.04-x86_64 %c=gcc@11.4.0 + - ^pigz@2.8 build_system=makefile arch=linux-ubuntu22.04-x86_64 %c=gcc@11.4.0 + - ^zstd@1.5.7+programs build_system=makefile compression:=none libs:=shared,static arch=linux-ubuntu22.04-x86_64 %c,cxx=gcc@11.4.0 + - ^numactl@2.0.18 build_system=autotools arch=linux-ubuntu22.04-x86_64 %c=gcc@11.4.0 + - ^openssh@9.9p1+gssapi build_system=autotools arch=linux-ubuntu22.04-x86_64 %c,cxx=gcc@11.4.0 + - ^krb5@1.21.3+shared build_system=autotools arch=linux-ubuntu22.04-x86_64 %c,cxx=gcc@11.4.0 + - ^bison@3.8.2~color build_system=autotools arch=linux-ubuntu22.04-x86_64 %c,cxx=gcc@11.4.0 + - ^libedit@3.1-20240808 build_system=autotools arch=linux-ubuntu22.04-x86_64 %c=gcc@11.4.0 + - ^libxcrypt@4.4.38~obsolete_api build_system=autotools arch=linux-ubuntu22.04-x86_64 %c=gcc@11.4.0 + - ^perl@5.42.0+cpanm+opcode+open+shared+threads build_system=generic arch=linux-ubuntu22.04-x86_64 %c=gcc@11.4.0 + - ^berkeley-db@18.1.40+cxx~docs+stl build_system=autotools patches:=26090f4,b231fcc arch=linux-ubuntu22.04-x86_64 %c,cxx=gcc@11.4.0 + - ^bzip2@1.0.8~debug~pic+shared build_system=generic arch=linux-ubuntu22.04-x86_64 %c=gcc@11.4.0 + - ^gdbm@1.23 build_system=autotools arch=linux-ubuntu22.04-x86_64 %c=gcc@11.4.0 + - ^readline@8.3 build_system=autotools patches:=21f0a03 arch=linux-ubuntu22.04-x86_64 %c=gcc@11.4.0 + - ^pmix@6.0.0~munge~python build_system=autotools arch=linux-ubuntu22.04-x86_64 %c=gcc@11.4.0 + - ^prrte@4.0.0 build_system=autotools arch=linux-ubuntu22.04-x86_64 %c=gcc@11.4.0 + - ^flex@2.6.3+lex~nls build_system=autotools arch=linux-ubuntu22.04-x86_64 %c,cxx=gcc@11.4.0 + - ^pkgconf@2.5.1 build_system=autotools arch=linux-ubuntu22.04-x86_64 %c=gcc@11.4.0 + - ^zlib-ng@2.2.4+compat+new_strategies+opt+pic+shared build_system=autotools arch=linux-ubuntu22.04-x86_64 %c,cxx=gcc@11.4.0 \ No newline at end of file diff --git a/outputs/config/1.prefs.out b/outputs/config/1.prefs.out index bd123d2f8f..05188e9f81 100644 --- a/outputs/config/1.prefs.out +++ b/outputs/config/1.prefs.out @@ -1,50 +1,48 @@ $ spack spec hdf5 -Input spec --------------------------------- - - hdf5 - -Concretized --------------------------------- - - hdf5@1.14.3%clang@14.0.0-gfortran cppflags="-g" ~cxx~fortran~hl~ipo~java~map+mpi+shared~szip~threadsafe+tools api=default build_system=cmake build_type=Release generator=make arch=linux-ubuntu22.04-x86_64_v3 - - ^cmake@3.27.7%clang@14.0.0-gfortran cppflags="-g" ~doc+ncurses+ownlibs build_system=generic build_type=Release arch=linux-ubuntu22.04-x86_64_v3 - - ^curl@8.4.0%clang@14.0.0-gfortran cppflags="-g" ~gssapi~ldap~libidn2~librtmp~libssh~libssh2+nghttp2 build_system=autotools libs=shared,static tls=openssl arch=linux-ubuntu22.04-x86_64_v3 - - ^nghttp2@1.57.0%clang@14.0.0-gfortran cppflags="-g" build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 - - ^openssl@3.1.3%clang@14.0.0-gfortran cppflags="-g" ~docs+shared build_system=generic certs=mozilla arch=linux-ubuntu22.04-x86_64_v3 - - ^ca-certificates-mozilla@2023-05-30%clang@14.0.0-gfortran cppflags="-g" build_system=generic arch=linux-ubuntu22.04-x86_64_v3 - - ^perl@5.38.0%clang@14.0.0-gfortran cppflags="-g" +cpanm+opcode+open+shared+threads build_system=generic patches=714e4d1 arch=linux-ubuntu22.04-x86_64_v3 - - ^berkeley-db@18.1.40%clang@14.0.0-gfortran cppflags="-g" +cxx~docs+stl build_system=autotools patches=26090f4,b231fcc arch=linux-ubuntu22.04-x86_64_v3 - - ^ncurses@6.4%clang@14.0.0-gfortran cppflags="-g" ~symlinks+termlib abi=none build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 - - ^gmake@4.4.1%clang@14.0.0-gfortran cppflags="-g" ~guile build_system=generic arch=linux-ubuntu22.04-x86_64_v3 - - ^mpich@4.1.2%clang@14.0.0-gfortran cppflags="-g" ~argobots~cuda+fortran+hwloc+hydra+libxml2+pci~rocm+romio~slurm~vci~verbs+wrapperrpath build_system=autotools datatype-engine=auto device=ch4 netmod=ofi pmi=pmi arch=linux-ubuntu22.04-x86_64_v3 - - ^findutils@4.9.0%clang@14.0.0-gfortran cppflags="-g" build_system=autotools patches=440b954 arch=linux-ubuntu22.04-x86_64_v3 - - ^hwloc@2.9.1%clang@14.0.0-gfortran cppflags="-g" ~cairo~cuda~gl~libudev+libxml2~netloc~nvml~oneapi-level-zero~opencl+pci~rocm build_system=autotools libs=shared,static arch=linux-ubuntu22.04-x86_64_v3 - - ^libfabric@1.19.0%clang@14.0.0-gfortran cppflags="-g" ~debug~kdreg build_system=autotools fabrics=sockets,tcp,udp arch=linux-ubuntu22.04-x86_64_v3 - - ^libpciaccess@0.17%clang@14.0.0-gfortran cppflags="-g" build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 - - ^libtool@2.4.7%clang@14.0.0-gfortran cppflags="-g" build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 - - ^util-macros@1.19.3%clang@14.0.0-gfortran cppflags="-g" build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 - - ^libxml2@2.10.3%clang@14.0.0-gfortran cppflags="-g" +pic~python+shared build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 - - ^libiconv@1.17%clang@14.0.0-gfortran cppflags="-g" build_system=autotools libs=shared,static arch=linux-ubuntu22.04-x86_64_v3 - - ^xz@5.4.1%clang@14.0.0-gfortran cppflags="-g" ~pic build_system=autotools libs=shared,static arch=linux-ubuntu22.04-x86_64_v3 - - ^yaksa@0.3%clang@14.0.0-gfortran cppflags="-g" ~cuda~rocm build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 - - ^autoconf@2.69%clang@14.0.0-gfortran cppflags="-g" build_system=autotools patches=35c4492,7793209,a49dd5b arch=linux-ubuntu22.04-x86_64_v3 - - ^automake@1.16.5%clang@14.0.0-gfortran cppflags="-g" build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 - - ^m4@1.4.19%clang@14.0.0-gfortran cppflags="-g" +sigsegv build_system=autotools patches=9dc5fbd,bfdffa7 arch=linux-ubuntu22.04-x86_64_v3 - - ^diffutils@3.9%clang@14.0.0-gfortran cppflags="-g" build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 - - ^libsigsegv@2.14%clang@14.0.0-gfortran cppflags="-g" build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 - - ^python@3.11.6%clang@14.0.0-gfortran cppflags="-g" +bz2+crypt+ctypes+dbm~debug+libxml2+lzma~nis~optimizations+pic+pyexpat+pythoncmd+readline+shared+sqlite3+ssl~tkinter+uuid+zlib build_system=generic patches=13fa8bf,b0615b2,ebdca64,f2fd060 arch=linux-ubuntu22.04-x86_64_v3 - - ^bzip2@1.0.8%clang@14.0.0-gfortran cppflags="-g" ~debug~pic+shared build_system=generic arch=linux-ubuntu22.04-x86_64_v3 - - ^expat@2.5.0%clang@14.0.0-gfortran cppflags="-g" +libbsd build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 - - ^libbsd@0.11.7%clang@14.0.0-gfortran cppflags="-g" build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 - - ^libmd@1.0.4%clang@14.0.0-gfortran cppflags="-g" build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 - - ^gdbm@1.23%clang@14.0.0-gfortran cppflags="-g" build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 - - ^gettext@0.22.3%clang@14.0.0-gfortran cppflags="-g" +bzip2+curses+git~libunistring+libxml2+pic+shared+tar+xz build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 - - ^tar@1.34%clang@14.0.0-gfortran cppflags="-g" build_system=autotools zip=pigz arch=linux-ubuntu22.04-x86_64_v3 - - ^pigz@2.7%clang@14.0.0-gfortran cppflags="-g" build_system=makefile arch=linux-ubuntu22.04-x86_64_v3 - - ^zstd@1.5.5%clang@14.0.0-gfortran cppflags="-g" +programs build_system=makefile compression=none libs=shared,static arch=linux-ubuntu22.04-x86_64_v3 - - ^libffi@3.4.4%clang@14.0.0-gfortran cppflags="-g" build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 - - ^libxcrypt@4.4.35%clang@14.0.0-gfortran cppflags="-g" ~obsolete_api build_system=autotools patches=4885da3 arch=linux-ubuntu22.04-x86_64_v3 - - ^readline@8.2%clang@14.0.0-gfortran cppflags="-g" build_system=autotools patches=bbf97f1 arch=linux-ubuntu22.04-x86_64_v3 - - ^sqlite@3.43.2%clang@14.0.0-gfortran cppflags="-g" +column_metadata+dynamic_extensions+fts~functions+rtree build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 - - ^util-linux-uuid@2.38.1%clang@14.0.0-gfortran cppflags="-g" build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 - - ^pkgconf@1.9.5%clang@14.0.0-gfortran cppflags="-g" build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 - - ^zlib-ng@2.1.4%clang@14.0.0-gfortran cppflags="-g" +compat+opt build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 \ No newline at end of file + - hdf5@1.14.6~cxx~fortran~hl~ipo~java~map+mpi+shared~subfiling~szip~threadsafe+tools api=default build_system=cmake build_type=Release generator=make arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 + - ^cmake@3.31.8~doc+ncurses+ownlibs~qtgui build_system=generic build_type=Release arch=linux-ubuntu22.04-x86_64 %c,cxx=clang@14.0.0 + - ^curl@8.11.1~gssapi~ldap~libidn2~librtmp~libssh~libssh2+nghttp2 build_system=autotools libs:=shared,static tls:=openssl arch=linux-ubuntu22.04-x86_64 %c,cxx=clang@14.0.0 + - ^nghttp2@1.65.0 build_system=autotools arch=linux-ubuntu22.04-x86_64 %c,cxx=clang@14.0.0 + - ^diffutils@3.10 build_system=autotools arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 + - ^openssl@3.4.1~docs+shared build_system=generic certs=mozilla arch=linux-ubuntu22.04-x86_64 %c,cxx=clang@14.0.0 + - ^ca-certificates-mozilla@2025-05-20 build_system=generic arch=linux-ubuntu22.04-x86_64 + - ^perl@5.42.0+cpanm+opcode+open+shared+threads build_system=generic arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 + - ^berkeley-db@18.1.40+cxx~docs+stl build_system=autotools patches:=26090f4,b231fcc arch=linux-ubuntu22.04-x86_64 %c,cxx=clang@14.0.0 + - ^ncurses@6.5-20250705~symlinks+termlib abi=none build_system=autotools patches:=7a351bc arch=linux-ubuntu22.04-x86_64 %c,cxx=clang@14.0.0 + - ^compiler-wrapper@1.0 build_system=generic arch=linux-ubuntu22.04-x86_64 +[e] ^glibc@2.35 build_system=autotools arch=linux-ubuntu22.04-x86_64 + - ^gmake@4.4.1~guile build_system=generic arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 +[e] ^llvm@14.0.0+clang~cuda~flang+gold+libomptarget~libomptarget_debug~link_llvm_dylib~lld~lldb+llvm_dylib+lua~mlir+polly~python~split_dwarf~z3 build_system=cmake build_type=Release compiler-rt=runtime generator=ninja libcxx=runtime libunwind=runtime openmp=runtime patches:=1f42874,25bc503,6379168,8248141,b216cff,cb8e645 shlib_symbol_version=none targets:=all version_suffix=none arch=linux-ubuntu22.04-x86_64 + - ^mpich@4.3.1~argobots~cuda+fortran+hwloc+hydra~level_zero+libxml2+pci~rocm+romio~slurm~vci~verbs+wrapperrpath~xpmem build_system=autotools datatype-engine=auto device=ch4 netmod=ofi pmi=default arch=linux-ubuntu22.04-x86_64 %fortran=gcc@11.4.0 %c,cxx=clang@14.0.0 + - ^findutils@4.10.0 build_system=autotools patches:=440b954 arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 + - ^gettext@0.23.1+bzip2+curses+git~libunistring+libxml2+pic+shared+tar+xz build_system=autotools arch=linux-ubuntu22.04-x86_64 %c,cxx=clang@14.0.0 + - ^bzip2@1.0.8~debug~pic+shared build_system=generic arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 + - ^tar@1.35 build_system=autotools zip=pigz arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 + - ^pigz@2.8 build_system=makefile arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 + - ^zstd@1.5.7+programs build_system=makefile compression:=none libs:=shared,static arch=linux-ubuntu22.04-x86_64 %c,cxx=clang@14.0.0 +[e] ^gcc@11.4.0~binutils+bootstrap~graphite~nvptx~piclibs~profiled~strip build_system=autotools build_type=RelWithDebInfo languages:='c,c++,fortran' arch=linux-ubuntu22.04-x86_64 + - ^gcc-runtime@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64 + - ^hwloc@2.11.1~cairo~cuda~gl~level_zero~libudev+libxml2~nvml~opencl+pci~rocm build_system=autotools libs:=shared,static arch=linux-ubuntu22.04-x86_64 %c,cxx=clang@14.0.0 + - ^libfabric@2.2.0~cuda~debug~kdreg~level_zero~uring build_system=autotools fabrics:=sockets,tcp,udp arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 + - ^libpciaccess@0.17 build_system=autotools arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 + - ^util-macros@1.20.1 build_system=autotools arch=linux-ubuntu22.04-x86_64 + - ^libxml2@2.13.5~http+pic~python+shared build_system=autotools arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 + - ^libiconv@1.18 build_system=autotools libs:=shared,static arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 + - ^xz@5.6.3~pic build_system=autotools libs:=shared,static arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 + - ^yaksa@0.3~cuda~level_zero~rocm build_system=autotools arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 + - ^autoconf@2.72 build_system=autotools arch=linux-ubuntu22.04-x86_64 + - ^automake@1.16.5 build_system=autotools arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 + - ^libtool@2.4.7 build_system=autotools arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 + - ^m4@1.4.20+sigsegv build_system=autotools arch=linux-ubuntu22.04-x86_64 %c,cxx=clang@14.0.0 + - ^libsigsegv@2.14 build_system=autotools arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 + - ^python@3.13.5+bz2+ctypes+dbm~debug+libxml2+lzma~optimizations+pic+pyexpat+pythoncmd+readline+shared+sqlite3+ssl~tkinter+uuid+zlib build_system=generic arch=linux-ubuntu22.04-x86_64 %c,cxx=clang@14.0.0 + - ^expat@2.7.1+libbsd build_system=autotools arch=linux-ubuntu22.04-x86_64 %c,cxx=clang@14.0.0 + - ^libbsd@0.12.2 build_system=autotools arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 + - ^libmd@1.1.0 build_system=autotools arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 + - ^gdbm@1.23 build_system=autotools arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 + - ^libffi@3.4.8 build_system=autotools arch=linux-ubuntu22.04-x86_64 %c,cxx=clang@14.0.0 + - ^readline@8.3 build_system=autotools patches:=21f0a03 arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 + - ^sqlite@3.46.0+column_metadata+dynamic_extensions+fts~functions+rtree build_system=autotools arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 + - ^util-linux-uuid@2.41 build_system=autotools arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 + - ^pkgconf@2.5.1 build_system=autotools arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 + - ^zlib-ng@2.2.4+compat+new_strategies+opt+pic+shared build_system=autotools arch=linux-ubuntu22.04-x86_64 %c,cxx=clang@14.0.0 \ No newline at end of file diff --git a/outputs/config/2.externals.out b/outputs/config/2.externals.out index a279ec99d6..324ed1a2fb 100644 --- a/outputs/config/2.externals.out +++ b/outputs/config/2.externals.out @@ -1,9 +1,13 @@ -$ spack spec hdf5%clang - - hdf5@1.14.5%clang@14.0.0-gfortran cppflags=-g ~cxx~fortran~hl~ipo~java~map~mpi+shared~szip~threadsafe+tools api=default build_system=cmake build_type=Release generator=make arch=linux-ubuntu22.04-x86_64_v3 - - ^cmake@3.30.5%clang@14.0.0-gfortran cppflags=-g ~doc+ncurses+ownlibs~qtgui build_system=generic build_type=Release patches=dbc3892 arch=linux-ubuntu22.04-x86_64_v3 -[e] ^curl@7.81.0%gcc@11.4.0~gssapi~ldap~libidn2~librtmp~libssh~libssh2+nghttp2 build_system=autotools libs=shared,static tls=openssl arch=linux-ubuntu22.04-x86_64_v3 - - ^ncurses@6.5%clang@14.0.0-gfortran cppflags=-g ~symlinks+termlib abi=none build_system=autotools patches=7a351bc arch=linux-ubuntu22.04-x86_64_v3 -[e] ^glibc@2.35%clang@14.0.0-gfortran cppflags=-g build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 - - ^gmake@4.4.1%clang@14.0.0-gfortran cppflags=-g ~guile build_system=generic arch=linux-ubuntu22.04-x86_64_v3 - - ^pkgconf@2.2.0%clang@14.0.0-gfortran cppflags=-g build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 - - ^zlib-ng@2.2.1%clang@14.0.0-gfortran cppflags=-g +compat+new_strategies+opt+pic+shared build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 +$ spack spec hdf5 + - hdf5@1.14.6~cxx~fortran~hl~ipo~java~map~mpi+shared~szip~threadsafe+tools api=default build_system=cmake build_type=Release generator=make arch=linux-ubuntu22.04-x86_64 %c=gcc@11.4.0 + - ^cmake@3.31.8~doc+ncurses+ownlibs~qtgui build_system=generic build_type=Release arch=linux-ubuntu22.04-x86_64 %c,cxx=clang@14.0.0 +[e] ^curl@7.81.0~gssapi~ldap~libidn2~librtmp~libssh~libssh2+nghttp2 build_system=autotools libs:=shared,static tls:=openssl arch=linux-ubuntu22.04-x86_64 +[e] ^llvm@14.0.0+clang~cuda~flang+gold+libomptarget~libomptarget_debug~link_llvm_dylib~lld~lldb+llvm_dylib+lua~mlir+polly~python~split_dwarf~z3 build_system=cmake build_type=Release compiler-rt=runtime generator=ninja libcxx=runtime libunwind=runtime openmp=runtime patches:=1f42874,25bc503,6379168,8248141,b216cff,cb8e645 shlib_symbol_version=none targets:=all version_suffix=none arch=linux-ubuntu22.04-x86_64 + - ^ncurses@6.5-20250705~symlinks+termlib abi=none build_system=autotools patches:=7a351bc arch=linux-ubuntu22.04-x86_64 %c,cxx=clang@14.0.0 + - ^compiler-wrapper@1.0 build_system=generic arch=linux-ubuntu22.04-x86_64 +[e] ^gcc@11.4.0~binutils+bootstrap~graphite~nvptx~piclibs~profiled~strip build_system=autotools build_type=RelWithDebInfo languages:='c,c++,fortran' arch=linux-ubuntu22.04-x86_64 + - ^gcc-runtime@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64 +[e] ^glibc@2.35 build_system=autotools arch=linux-ubuntu22.04-x86_64 + - ^gmake@4.4.1~guile build_system=generic arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 + - ^pkgconf@2.5.1 build_system=autotools arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 + - ^zlib-ng@2.2.4+compat+new_strategies+opt+pic+shared build_system=autotools arch=linux-ubuntu22.04-x86_64 %c,cxx=clang@14.0.0 diff --git a/outputs/config/3.prefs.out b/outputs/config/3.prefs.out index 57249e07d2..f1048d7b1b 100644 --- a/outputs/config/3.prefs.out +++ b/outputs/config/3.prefs.out @@ -1,24 +1,21 @@ $ spack spec hdf5 -Input spec --------------------------------- - - hdf5 - -Concretized --------------------------------- - - hdf5@1.14.3%clang@14.0.0-gfortran cppflags="-g" ~cxx~fortran~hl~ipo~java~map~mpi+shared~szip~threadsafe+tools api=default build_system=cmake build_type=Release generator=make arch=linux-ubuntu22.04-x86_64_v3 - - ^cmake@3.27.7%clang@14.0.0-gfortran cppflags="-g" ~doc+ncurses+ownlibs build_system=generic build_type=Release arch=linux-ubuntu22.04-x86_64_v3 - - ^curl@8.4.0%clang@14.0.0-gfortran cppflags="-g" ~gssapi~ldap~libidn2~librtmp~libssh~libssh2+nghttp2 build_system=autotools libs=shared,static tls=openssl arch=linux-ubuntu22.04-x86_64_v3 - - ^nghttp2@1.57.0%clang@14.0.0-gfortran cppflags="-g" build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 - - ^openssl@3.1.3%clang@14.0.0-gfortran cppflags="-g" ~docs+shared build_system=generic certs=mozilla arch=linux-ubuntu22.04-x86_64_v3 - - ^ca-certificates-mozilla@2023-05-30%clang@14.0.0-gfortran cppflags="-g" build_system=generic arch=linux-ubuntu22.04-x86_64_v3 - - ^perl@5.38.0%clang@14.0.0-gfortran cppflags="-g" +cpanm+opcode+open+shared+threads build_system=generic patches=714e4d1 arch=linux-ubuntu22.04-x86_64_v3 - - ^berkeley-db@18.1.40%clang@14.0.0-gfortran cppflags="-g" +cxx~docs+stl build_system=autotools patches=26090f4,b231fcc arch=linux-ubuntu22.04-x86_64_v3 - - ^bzip2@1.0.8%clang@14.0.0-gfortran cppflags="-g" ~debug~pic+shared build_system=generic arch=linux-ubuntu22.04-x86_64_v3 - - ^diffutils@3.9%clang@14.0.0-gfortran cppflags="-g" build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 - - ^libiconv@1.17%clang@14.0.0-gfortran cppflags="-g" build_system=autotools libs=shared,static arch=linux-ubuntu22.04-x86_64_v3 - - ^gdbm@1.23%clang@14.0.0-gfortran cppflags="-g" build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 - - ^readline@8.2%clang@14.0.0-gfortran cppflags="-g" build_system=autotools patches=bbf97f1 arch=linux-ubuntu22.04-x86_64_v3 - - ^ncurses@6.4%clang@14.0.0-gfortran cppflags="-g" ~symlinks+termlib abi=none build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 - - ^gmake@4.4.1%clang@14.0.0-gfortran cppflags="-g" ~guile build_system=generic arch=linux-ubuntu22.04-x86_64_v3 - - ^pkgconf@1.9.5%clang@14.0.0-gfortran cppflags="-g" build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 - - ^zlib-ng@2.1.4%clang@14.0.0-gfortran cppflags="-g" +compat+opt build_system=autotools arch=linux-ubuntu22.04-x86_64_v3 \ No newline at end of file + - hdf5@1.14.6~cxx~fortran~hl~ipo~java~map~mpi+shared~szip~threadsafe+tools api=default build_system=cmake build_type=Release generator=make arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 + - ^cmake@3.31.8~doc+ncurses+ownlibs~qtgui build_system=generic build_type=Release arch=linux-ubuntu22.04-x86_64 %c,cxx=clang@14.0.0 + - ^curl@8.11.1~gssapi~ldap~libidn2~librtmp~libssh~libssh2+nghttp2 build_system=autotools libs:=shared,static tls:=openssl arch=linux-ubuntu22.04-x86_64 %c,cxx=clang@14.0.0 + - ^nghttp2@1.65.0 build_system=autotools arch=linux-ubuntu22.04-x86_64 %c,cxx=clang@14.0.0 + - ^diffutils@3.10 build_system=autotools arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 + - ^libiconv@1.18 build_system=autotools libs:=shared,static arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 + - ^openssl@3.4.1~docs+shared build_system=generic certs=mozilla arch=linux-ubuntu22.04-x86_64 %c,cxx=clang@14.0.0 + - ^ca-certificates-mozilla@2025-05-20 build_system=generic arch=linux-ubuntu22.04-x86_64 + - ^perl@5.42.0+cpanm+opcode+open+shared+threads build_system=generic arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 + - ^berkeley-db@18.1.40+cxx~docs+stl build_system=autotools patches:=26090f4,b231fcc arch=linux-ubuntu22.04-x86_64 %c,cxx=clang@14.0.0 + - ^bzip2@1.0.8~debug~pic+shared build_system=generic arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 + - ^gdbm@1.23 build_system=autotools arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 + - ^readline@8.3 build_system=autotools patches:=21f0a03 arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 + - ^ncurses@6.5-20250705~symlinks+termlib abi=none build_system=autotools patches:=7a351bc arch=linux-ubuntu22.04-x86_64 %c,cxx=clang@14.0.0 + - ^compiler-wrapper@1.0 build_system=generic arch=linux-ubuntu22.04-x86_64 +[e] ^glibc@2.35 build_system=autotools arch=linux-ubuntu22.04-x86_64 + - ^gmake@4.4.1~guile build_system=generic arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 +[e] ^llvm@14.0.0+clang~cuda~flang+gold+libomptarget~libomptarget_debug~link_llvm_dylib~lld~lldb+llvm_dylib+lua~mlir+polly~python~split_dwarf~z3 build_system=cmake build_type=Release compiler-rt=runtime generator=ninja libcxx=runtime libunwind=runtime openmp=runtime patches:=1f42874,25bc503,6379168,8248141,b216cff,cb8e645 shlib_symbol_version=none targets:=all version_suffix=none arch=linux-ubuntu22.04-x86_64 + - ^pkgconf@2.5.1 build_system=autotools arch=linux-ubuntu22.04-x86_64 %c=clang@14.0.0 + - ^zlib-ng@2.2.4+compat+new_strategies+opt+pic+shared build_system=autotools arch=linux-ubuntu22.04-x86_64 %c,cxx=clang@14.0.0 \ No newline at end of file diff --git a/tutorial_configuration.rst b/tutorial_configuration.rst index 16f297d99e..1931db393a 100644 --- a/tutorial_configuration.rst +++ b/tutorial_configuration.rst @@ -24,12 +24,10 @@ A partial list of some key configuration sections is provided below. - General settings (install location, number of build jobs, etc) * - concretizer - Specialization of the concretizer behavior (reuse, unification, etc) - * - compilers - - Define the compilers that Spack can use (required and system specific) * - Mirrors - Locations where spack can look for stashed source or binary distributions * - Packages - - Specific settings and rules for packages + - Define the compilers that Spack can use, and add rules/preferences for package concretization * - Modules - Naming, location and additional configuration of Spack generated modules @@ -147,58 +145,60 @@ YAML Format ----------- Spack configurations are nested YAML dictionaries with a specified schema. -The configuration is organized into sections based on theme (e.g., a 'compilers' section) and the highest-level keys of the dictionary specify the section. +The configuration is organized into sections based on theme (e.g., a 'packages' section) and the highest-level keys of the dictionary specify the section. Spack generally maintains a separate file for each section, although environments keep them together (in ``spack.yaml``). When Spack checks its configuration, the configuration scopes are updated as dictionaries in increasing order of precedence, allowing higher precedence files to override lower. YAML dictionaries use a colon ":" to specify key-value pairs. Spack extends YAML syntax slightly to allow a double-colon "::" to specify a key-value pair. When a double-colon is used, instead of adding that section, Spack replaces what was in that section with the new value. -For example, consider a user's compilers configuration file as follows: +For example, look at high-level config: + +.. code-block:: console + + $ spack config blame config .. code-block:: yaml - compilers:: - - compiler: - spec: gcc@11.4.0 - paths: - cc: /usr/bin/gcc - cxx: /usr/bin/g++ - f77: /usr/bin/gfortran - fc: /usr/bin/gfortran - flags: {} - operating_system: ubuntu22.04 - target: x86_64 - modules: [] - environment: {} - extra_rpaths: [] - - -This ensures that no other compilers are used, as the user configuration scope is the last scope searched and the ``compilers::`` line replaces information from all previous configuration files. -If the same configuration file had a single colon instead of the double colon, it would add the GCC version 11.3.0 compiler to whatever other compilers were listed in other configuration files. + --- config: + /etc/spack/config.yaml:2 suppress_gpg_warnings: True + /home/spack/spack/etc/spack/defaults/config.yaml:19 install_tree: + /home/spack/spack/etc/spack/defaults/config.yaml:20 root: $spack/opt/spack + ... + /home/spack/spack/etc/spack/defaults/config.yaml:238 aliases: + /home/spack/spack/etc/spack/defaults/config.yaml:239 concretise: concretize + /home/spack/spack/etc/spack/defaults/config.yaml:240 containerise: containerize + /home/spack/spack/etc/spack/defaults/config.yaml:241 rm: remove + +We can see overrides in action with: + +.. code-block:: console + + $ spack config add config:aliases::{} + $ spack config blame config + +.. code-block:: yaml + + --- config: + /home/spack/.spack/config.yaml:2 aliases: {} + +The default write scope is the user scope, which overrides the defaults. +You can undo this by editing the config section like: + +.. code-block:: console + + $ spack config edit config A configuration section appears nearly the same when managed in an environment's ``spack.yaml`` file except that the section is nested 1 level underneath the top-level 'spack' key. -For example the above ``compilers.yaml`` could be incorporated into an environment's ``spack.yaml`` like so: +For example the above ``config.yaml`` could be incorporated into an environment's ``spack.yaml`` like so: .. code-block:: yaml spack: specs: [] view: true - compilers:: - - compiler: - spec: gcc@11.4.0 - paths: - cc: /usr/bin/gcc - cxx: /usr/bin/g++ - f77: /usr/bin/gfortran - fc: /usr/bin/gfortran - flags: {} - operating_system: ubuntu22.04 - target: x86_64 - modules: [] - environment: {} - extra_rpaths: [] + config: + aliases:: {} .. _configs-tutorial-compilers: @@ -210,112 +210,76 @@ Compiler Configuration For most tasks, we can use Spack with the compilers auto-detected the first time Spack runs on a system. As discussed in the basic installation tutorial, we can also tell Spack where compilers are located using the ``spack compiler add`` command. However, in some circumstances, we want even more fine-grained control over the compilers available. -This section will teach you how to exercise that control using the compilers configuration file. +This section will teach you how to exercise that control using the compilers configuration. -We will start by opening the compilers configuration file: +We will start by opening the compilers configuration (which lives in the packages section): .. code-block:: console - $ spack config edit compilers + $ spack config edit packages -We start with no active environment, so this will open a ``compilers.yaml`` file for editing (you can also do this with an active environment): +We start with no active environment, so this will open a ``packages.yaml`` file for editing (you can also do this with an active environment): .. code-block:: yaml - compilers: - - compiler: - spec: clang@=14.0.0 - paths: - cc: /usr/bin/clang - cxx: /usr/bin/clang++ - f77: - fc: - flags: {} - operating_system: ubuntu22.04 - target: x86_64 - modules: [] - environment: {} - extra_rpaths: [] - - compiler: - spec: gcc@=10.5.0 - paths: - cc: /usr/bin/gcc-10 - cxx: /usr/bin/g++-10 - f77: /usr/bin/gfortran-10 - fc: /usr/bin/gfortran-10 - flags: {} - operating_system: ubuntu22.04 - target: x86_64 - modules: [] - environment: {} - extra_rpaths: [] - - compiler: - spec: gcc@=11.4.0 - paths: - cc: /usr/bin/gcc - cxx: /usr/bin/g++ - f77: /usr/bin/gfortran - fc: /usr/bin/gfortran - flags: {} - operating_system: ubuntu22.04 - target: x86_64 - modules: [] - environment: {} - extra_rpaths: [] + packages: + gcc: + externals: + - spec: gcc@10.5.0 languages:='c,c++,fortran' + prefix: /usr + extra_attributes: + compilers: + c: /usr/bin/gcc-10 + cxx: /usr/bin/g++-10 + fortran: /usr/bin/gfortran-10 + - spec: gcc@11.4.0 languages:='c,c++,fortran' + prefix: /usr + extra_attributes: + compilers: + c: /usr/bin/gcc + cxx: /usr/bin/g++ + fortran: /usr/bin/gfortran + llvm: + externals: + - spec: llvm@14.0.0+clang~flang~lld~lldb + prefix: /usr + extra_attributes: + compilers: + c: /usr/bin/clang + cxx: /usr/bin/clang++ This specifies two versions of the GCC compiler and one version of the Clang compiler with no Flang compiler. Now suppose we have a code that we want to compile with the Clang compiler for C/C++ code, but with gfortran for Fortran components. -We can do this by adding another entry to the ``compilers.yaml`` file: - -.. code-block:: yaml - :emphasize-lines: 2,6-7 - - - compiler: - spec: clang@=14.0.0-gfortran - paths: - cc: /usr/bin/clang - cxx: /usr/bin/clang++ - f77: /usr/bin/gfortran - fc: /usr/bin/gfortran - flags: {} - operating_system: ubuntu22.04 - target: x86_64 - modules: [] - environment: {} - extra_rpaths: [] - - -Let's talk about the sections of this compiler entry that we've changed. -The biggest change we've made is to the ``paths`` section. -This lists the paths to the compilers to use for each language/specification. -In this case, we point to the Clang compiler for C/C++ and the gfortran compiler for both specifications of Fortran. -We've also changed the ``spec`` entry for this compiler. -The ``spec`` entry is effectively the name of the compiler for Spack. -It consists of a name and a version number, separated by the ``@`` sigil. -The name must be one of the supported compiler names in Spack (aocc, apple-clang, arm, cce, clang, dpcpp, fj, gcc, intel, msvc, nag, nvhpc, oneapi, pgi, rocmcc, xl, xl_r). -The version number can be an arbitrary string of alphanumeric characters, as well as ``-``, ``.``, and ``_``. -The ``target`` and ``operating_system`` sections we leave unchanged. -These sections specify when Spack can use different compilers, and are primarily useful for configuration files that will be used across multiple systems. - -We can verify that our new compiler works by invoking it now: +We can do this by adding creating a toolchain config: .. code-block:: console - $ spack install --no-cache zlib %clang@14.0.0-gfortran - ... + $ spack config edit toolchains + +.. code-block:: yaml + toolchains: + clang_gfortran: + - spec: '%c=llvm@14.0.0' + when: '%c' + - spec: '%cxx=llvm@14.0.0' + when: '%cxx' + - spec: '%fortran=gcc@11.4.0' + when: '%fortran' -This new compiler also works on Fortran codes. -We'll show this by compiling a small package using ``cmake%gcc@11.4.0`` as a build dependency, since it is already available in our binary cache: +We are essentially saying "use Clang for c/c++, and use GCC for Fortran". +You can use this new entry like so: .. code-block:: console - $ spack install --reuse cmake %gcc@11.4.0 - ... - $ spack install --no-cache --reuse json-fortran %clang@=14.0.0-gfortran ^cmake%gcc@11.4.0 - ... + $ spack spec openblas %clang_gfortran +Note the identifier ``clang_gfortran`` is not itself a spec (you don't version it). +You reference it in other specs. +Note that without ``when: '%fortran'``, you could not use ``clang_gfortran`` with packages unless they depended on Fortran (likewise for the `when` statements on c/cxx). + +.. These sections specify when Spack can use different compilers, and are primarily useful for configuration files that will be used across multiple systems. ^^^^^^^^^^^^^^ Compiler flags @@ -329,22 +293,20 @@ As on the command line, the flags are set through the implicit build variables ` Let's open our compilers configuration file again and add a compiler flag: .. code-block:: yaml - :emphasize-lines: 8-9 - - - compiler: - spec: clang@=14.0.0-gfortran - paths: - cc: /usr/bin/clang - cxx: /usr/bin/clang++ - f77: /usr/bin/gfortran - fc: /usr/bin/gfortran - flags: - cppflags: -g - operating_system: ubuntu22.04 - target: x86_64 - modules: [] - environment: {} - extra_rpaths: [] + :emphasize-lines: 11-12 + + packages: + gcc: + externals: + - spec: gcc@11.4.0 languages:='c,c++,fortran' + prefix: /usr + extra_attributes: + compilers: + c: /usr/bin/gcc + cxx: /usr/bin/g++ + fortran: /usr/bin/gfortran + flags: + cppflags: -g We can test this out using the ``spack spec`` command to show how the spec is concretized: @@ -355,46 +317,45 @@ We can test this out using the ``spack spec`` command to show how the spec is co We can see that ``cppflags="-g"`` has been added to every node in the DAG. +.. It even added it to gcc-runtime, hmm... + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Advanced compiler configuration ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -There are four fields of the compiler configuration entry that we have not yet talked about. - -The ``target`` field of the compiler defines the cpu architecture **family** that the compiler supports. +Some additional fields not discussed yet, in an example: .. code-block:: yaml + :emphasize-lines: 6-7, 15-19 - - compiler: - ... - target: ppc64le - ... + packages: + gcc: + externals: + - spec: gcc@11.4.0 languages:='c,c++,fortran' + prefix: /usr + modules: + - gcc/11.4.0 + extra_attributes: + compilers: + c: /usr/bin/gcc + cxx: /usr/bin/g++ + fortran: /usr/bin/gfortran + flags: + cppflags: -g + extra_rpaths: + - /a/path/to/somewhere/important + environment: + set: + EG_A_LICENSE_FILE: 1713@license4 + +.. The ``target`` field of the compiler defines the cpu architecture **family** that the compiler supports. +.. (target isn't in the compiler schema in packages anymore: how do we say "target generic x86_64 whenever you use this compiler") The ``modules`` field of the compiler was originally designed to support older Cray systems, but can be useful on any system that has compilers that are only usable when a particular module is loaded. -Any modules in the ``modules`` field of the compiler configuration will be loaded as part of the build environment for packages using that compiler: - -.. code-block:: yaml - - - compiler: - ... - modules: - - PrgEnv-gnu - - gcc/5.3.0 - ... +Any modules in the ``modules`` field of the compiler configuration will be loaded as part of the build environment for packages using that compiler. The ``environment`` field of the compiler configuration is used for compilers that require environment variables to be set during build time. -For example, if your Intel compiler suite requires the ``INTEL_LICENSE_FILE`` environment variable to point to the proper license server, you can set this in ``compilers.yaml`` as follows: - -.. code-block:: yaml - - - compiler: - ... - environment: - set: - INTEL_LICENSE_FILE: 1713@license4 - ... - - +For example, if your Intel compiler suite requires the ``INTEL_LICENSE_FILE`` environment variable to point to the proper license server. In addition to ``set``, ``environment`` also supports ``unset``, ``prepend_path``, and ``append_path``. The ``extra_rpaths`` field of the compiler configuration is used for compilers that do not rpath all of their dependencies by default. @@ -402,15 +363,6 @@ Since compilers are often installed externally to Spack, Spack is unable to mana This can lead to packages not finding link dependencies imposed by the compiler properly. For compilers that impose link dependencies on the resulting executables that are not rpath'ed into the executable automatically, the ``extra_rpaths`` field of the compiler configuration tells Spack which dependencies to rpath into every executable created by that compiler. The executables will then be able to find the link dependencies imposed by the compiler. -As an example, this field can be set by: - -.. code-block:: yaml - - - compiler: - ... - extra_rpaths: - - /apps/intel/ComposerXE2017/compilers_and_libraries_2017.5.239/linux/compiler/lib/intel64_lin - ... .. _configs-tutorial-package-prefs: @@ -424,21 +376,22 @@ First, we will look at the default ``packages.yaml`` file. .. code-block:: console - $ spack config --scope defaults edit packages + $ spack config --scope=defaults:base edit packages .. literalinclude:: _spack_root/etc/spack/defaults/packages.yaml :language: yaml - :emphasize-lines: 18,45 + :emphasize-lines: 51 -This sets the default preferences for compilers and for providers of virtual packages. +This sets the default preferences for providers of virtual packages. +We can edit this to change provider preferences and also to create a preference for compilers. To illustrate how this works, suppose we want to change the preferences to prefer the Clang compiler and to prefer MPICH over OpenMPI. Currently, we prefer GCC and OpenMPI. .. literalinclude:: outputs/config/0.prefs.out :language: console - :emphasize-lines: 16 + :emphasize-lines: 15 Let's override these default preferences in an environment. @@ -466,18 +419,22 @@ When you have an activated environment, you can edit the associated configuratio spack: specs: [] view: true + concretizer: + unify: true packages: all: - compiler: [clang, gcc, intel, pgi, xl, nag, fj] - providers: - mpi: [mpich, openmpi] + prefer: + - "%llvm" + mpi: + require: mpich +We see if we retry that we now get what we want without getting any more specific on the command line. -Because of the configuration scoping we discussed earlier, this overrides the default settings just for these two items. +.. Because of the configuration scoping we discussed earlier, this overrides the default settings just for these two items. .. literalinclude:: outputs/config/1.prefs.out :language: console - :emphasize-lines: 18 + :emphasize-lines: 16 ^^^^^^^^^^^^^^^^^^^ @@ -486,28 +443,32 @@ Variant preferences As we've seen throughout this tutorial, HDF5 builds with MPI enabled by default in Spack. If we were working on a project that would routinely need serial HDF5, that might get annoying quickly, having to type ``hdf5~mpi`` all the time. -Instead, we'll update our preferences for HDF5. +Instead, we'll update our config to force disable it: .. code-block:: yaml - :emphasize-lines: 9-10 + :emphasize-lines: 12-14 spack: specs: [] view: true + concretizer: + unify: true packages: all: - compiler: [clang, gcc, intel, pgi, xl, nag, fj] - providers: - mpi: [mpich, openmpi] + prefer: + - "%llvm" + mpi: + require: mpich hdf5: - require: ~mpi + require: + - spec: "~mpi" -Now hdf5 will concretize without an MPI dependency by default. +Note if you define ``require`` under ``all`` and ``hdf5``, you must reintroduce any requirements in ``hdf5``. .. literalinclude:: outputs/config/3.prefs.out :language: console - :emphasize-lines: 8 + :emphasize-lines: 2 In general, every attribute that we can set for all packages we can set separately for an individual package. @@ -524,65 +485,35 @@ On these systems, we have a pre-installed curl. Let's tell Spack about this package and where it can be found: .. code-block:: yaml - :emphasize-lines: 11-14 + :emphasize-lines: 15-19 spack: specs: [] view: true + concretizer: + unify: true packages: all: - compiler: [clang, gcc, intel, pgi, xl, nag, fj] - providers: - mpi: [mpich, openmpi] + prefer: + - "%llvm" + mpi: + require: mpich hdf5: - require: ~mpi + require: + - spec: "~mpi" curl: externals: - spec: curl@7.81.0 %gcc@11.4.0 prefix: /usr - + buildable: false Here, we've told Spack that Curl 7.81.0 is installed on our system. We've also told it the installation prefix where Curl can be found. We don't know exactly which variants it was built with, but that's okay. +Finally, we set ``buildable: false`` to require that Spack not try to build its own. +The cmake config isn't strictly required, but you might get a strange concretization without it. -.. literalinclude:: outputs/config/0.externals.out - :language: console - - -You'll notice that Spack is now using the external Curl installation, but the compiler used to build Curl is now overriding our compiler preference of clang. -If we explicitly specify Clang: - -.. literalinclude:: outputs/config/1.externals.out - :language: console - -Spack concretizes to both HDF5 and Curl being built with Clang. -This has a side-effect of rebuilding Curl. -If we want to force Spack to use the system Curl, we have two choices. -We can either specify it on the command line, or we can tell Spack that it's not allowed to build its own Curl. -We'll go with the latter. - -.. code-block:: yaml - :emphasize-lines: 15 - - spack: - specs: [] - view: true - packages: - all: - compiler: [clang, gcc, intel, pgi, xl, nag, fj] - providers: - mpi: [mpich, openmpi] - hdf5: - require: ~mpi - curl: - externals: - - spec: curl@5.34.0 %gcc@11.4.0 - prefix: /usr - buildable: false - - -Now Spack will be forced to choose the external Curl. +.. The weighting/preferences dont work quite the same so I skipped right to buildable:false .. literalinclude:: outputs/config/2.externals.out :language: console @@ -602,16 +533,19 @@ To express that we don't want any other MPI installed, we can use the virtual `` While we're editing the ``spack.yaml`` file, make sure to configure HDF5 to be able to build with MPI again: .. code-block:: yaml - :emphasize-lines: 14-19 + :emphasize-lines: 19-24 spack: specs: [] view: true + concretizer: + unify: true packages: all: - compiler: [clang, gcc, intel, pgi, xl, nag, fj] - providers: - mpi: [mpich, openmpi] + prefer: + - "%llvm" + mpi: + require: mpich curl: externals: - spec: curl@7.81.0 %gcc@11.4.0 @@ -624,27 +558,25 @@ While we're editing the ``spack.yaml`` file, make sure to configure HDF5 to be a mpi: buildable: false -Now that we have configured Spack not to build any possible provider for MPI, we can try again. +.. 3.externals.out has mpich +.. The concretization result is strange and enables some qt stuff that makes it huge -.. literalinclude:: outputs/config/3.externals.out - :language: console - :emphasize-lines: 15 - -Notice that we still haven't build ``hdf5`` with our external ``mpich``. +If you run this as-is, you'll notice Spack still hasn't built ``hdf5`` with our external ``mpich``. The concretizer has instead turned off ``mpi`` support in ``hdf5``. To debug this, we will force Spack to use ``hdf5+mpi``. .. code-block:: console - $ spack spec hdf5%clang+mpi - ==> Error: concretization failed for the following reasons: - - 1. hdf5: '+mpi' conflicts with '^mpich@4.0:4.0.3' - 2. hdf5: '+mpi' conflicts with '^mpich@4.0:4.0.3' - required because conflict applies to spec ^mpich@4.0:4.0.3 - required because hdf5%clang+mpi requested from CLI + $ spack spec hdf5+mpi + ==> Error: failed to concretize `hdf5+mpi` for the following reasons: + 1. cannot satisfy a requirement for package 'mpich'. + 2. hdf5: '+mpi' conflicts with '^mpich@4.0:4.0.3' + 3. hdf5: '+mpi' conflicts with '^mpich@4.0:4.0.3' required because conflict is triggered when +mpi - required because hdf5%clang+mpi requested from CLI + required because hdf5+mpi requested explicitly + required because conflict constraint ^mpich@4.0:4.0.3 + required because mpich available as external when satisfying mpich@=4.0+hydra device=ch4 netmod=ofi + required because hdf5+mpi requested explicitly In this case, we cannot use the external mpich. The version is incompatible with ``hdf5``.