From 95224e462dc1a8d0d4bfdd41cdedddea8fa5734b Mon Sep 17 00:00:00 2001 From: "Mark C. Miller" Date: Mon, 16 Dec 2024 13:56:38 -0800 Subject: [PATCH 1/3] Build issues for mac x86_64 and mac arm64 (#20113) (#20135) --- src/CMake/DetermineVisItArchitecture.cmake | 2 + src/bin/frontendlauncher | 7 +- src/bin/internallauncher | 10 + src/common/misc/InstallationFunctions.C | 15 +- src/config-site/sce2aux.cmake | 233 ++++++++++++++++++ src/osxfixup/osxfixup.py | 8 +- src/test/tests/unit/launcher.py | 1 + src/tools/dev/masonry/bootstrap_visit.py | 46 +++- src/tools/dev/masonry/masonry.py | 73 +++--- .../mb-3.4.2-darwin-22-x86_64-release.json | 49 ++++ .../mb-3.4.2-darwin-23-arm64-release.json | 49 ++++ .../Contents/Frameworks/libz-1.2.13.dylib | 2 +- src/tools/dev/masonry/test/test_notarize.py | 2 + src/tools/dev/scripts/bv_support/bv_adios.sh | 5 + src/tools/dev/scripts/bv_support/bv_advio.sh | 9 + .../dev/scripts/bv_support/bv_cfitsio.sh | 7 + src/tools/dev/scripts/bv_support/bv_hdf5.sh | 11 +- src/tools/dev/scripts/bv_support/bv_netcdf.sh | 2 +- src/tools/dev/scripts/bv_support/bv_ospray.sh | 55 ++++- src/tools/dev/scripts/bv_support/bv_python.sh | 6 +- src/tools/dev/scripts/bv_support/bv_qt.sh | 34 +-- src/tools/dev/scripts/bv_support/bv_qt6.sh | 15 +- src/tools/dev/scripts/bv_support/bv_silo.sh | 2 +- src/tools/dev/scripts/visit-create-chksums | 3 +- src/tools/dev/scripts/visit-create-chksums.py | 3 +- 25 files changed, 553 insertions(+), 96 deletions(-) create mode 100644 src/config-site/sce2aux.cmake create mode 100644 src/tools/dev/masonry/opts/mb-3.4.2-darwin-22-x86_64-release.json create mode 100644 src/tools/dev/masonry/opts/mb-3.4.2-darwin-23-arm64-release.json diff --git a/src/CMake/DetermineVisItArchitecture.cmake b/src/CMake/DetermineVisItArchitecture.cmake index e492f8720a6..3c8f84a6db5 100644 --- a/src/CMake/DetermineVisItArchitecture.cmake +++ b/src/CMake/DetermineVisItArchitecture.cmake @@ -76,6 +76,8 @@ MACRO(DETERMINE_VISIT_ARCHITECTURE ARCH) ENDIF(${_OSX_MAJOR_VERSION} STREQUAL "1") ELSEIF(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86_64") SET(${ARCH} darwin-x86_64) + ELSEIF(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "arm64") + SET(${ARCH} darwin-arm64) ELSE(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "i386") SET(${ARCH} darwin-ppc) ENDIF(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "i386") diff --git a/src/bin/frontendlauncher b/src/bin/frontendlauncher index 735f569e35e..693fd3df067 100755 --- a/src/bin/frontendlauncher +++ b/src/bin/frontendlauncher @@ -73,7 +73,12 @@ if test "$osname" = "Linux"; then platform="linux-intel" fi elif test "$osname" = "Darwin"; then - platform="darwin-x86_64" + proc=$(uname -m) + if test "$proc" = "x86_64"; then + platform="darwin-x86_64" + elif test "$proc" = "arm64"; then + platform="darwin-arm64" + fi elif test "$osname" = "AIX"; then if test "$OBJECT_MODE" = "32"; then platform="ibm-aix-pwr" diff --git a/src/bin/internallauncher b/src/bin/internallauncher index 17fa2d855ff..d3e26734c4d 100755 --- a/src/bin/internallauncher +++ b/src/bin/internallauncher @@ -2800,6 +2800,8 @@ class MainLauncher(object): if mach == "x86_64": supportedarches.append("darwin-x86_64") supportedarches.append("darwin-i386") + elif mach == "arm64": + supportedarches.append("darwin-arm64") else: supportedarches.append("darwin-i386") else: @@ -2832,6 +2834,14 @@ class MainLauncher(object): supportedarches.append("darwin-x86_64") supportedarches.append("darwin-i386") break + procname = line.find("Chip:") + if procname != -1: + if "Apple M" in line: + supportedarches.append("darwin-arm64") + else: + supportedarches.append("darwin-x86_64") + supportedarches.append("darwin-i386") + break elif self.os == "freebsd": mach = uname("-m") version = uname("-r") diff --git a/src/common/misc/InstallationFunctions.C b/src/common/misc/InstallationFunctions.C index 30a604359f3..3f394e0e3a3 100644 --- a/src/common/misc/InstallationFunctions.C +++ b/src/common/misc/InstallationFunctions.C @@ -948,6 +948,7 @@ ReadInstallationInfo(std::string &distName, std::string &configName, std::string "darwin-i386", "darwin-x86_64", + "darwin-arm64", // Deprecated "darwin-ppc", @@ -977,6 +978,7 @@ ReadInstallationInfo(std::string &distName, std::string &configName, std::string "darwin-i386", "darwin-x86_64", + "darwin-arm64", // Deprecated "darwin-ppc", @@ -1068,13 +1070,16 @@ ReadInstallationInfo(std::string &distName, std::string &configName, std::string } } -#ifdef __APPLE__ +#if defined(__APPLE__) if(!platformDetermined) { - if(sizeof(long) == 8) - distName = "darwin-x86_64"; - else - distName = "darwin-i386"; +# if defined(__arm64__) + distName = "darwin-arm64"; +# elif defined(__x86_64__) + distName = "darwin-x86_64"; +# else + distName = "darwin-i386"; +# endif platformDetermined = true; } #endif diff --git a/src/config-site/sce2aux.cmake b/src/config-site/sce2aux.cmake new file mode 100644 index 00000000000..72045274c9d --- /dev/null +++ b/src/config-site/sce2aux.cmake @@ -0,0 +1,233 @@ +#/Users/miller86/visit/3.4RC/release/build-mb-3.4.2-darwin-23-arm64-release/thirdparty_shared/third_party/cmake/3.24.3/darwin-arm64/bin/cmake +## +## /Users/miller86/visit/3.4RC/src/tools/dev/scripts/build_visit generated host.cmake +## created: Fri Dec 13 09:33:08 PST 2024 +## system: Darwin sce2aux 23.6.0 Darwin Kernel Version 23.6.0: Thu Sep 12 23:35:29 PDT 2024; root:xnu-10063.141.1.701.1~1/RELEASE_ARM64_T6000 arm64 +## by: miller86 + +## +## Setup VISITHOME & VISITARCH variables. +## +SET(VISITHOME /Users/miller86/visit/3.4RC/release/build-mb-3.4.2-darwin-23-arm64-release/thirdparty_shared/third_party) +SET(VISITARCH darwin-arm64) + +## Compiler flags. +## +VISIT_OPTION_DEFAULT(VISIT_C_COMPILER clang TYPE FILEPATH) +VISIT_OPTION_DEFAULT(VISIT_CXX_COMPILER clang++ TYPE FILEPATH) +VISIT_OPTION_DEFAULT(VISIT_FORTRAN_COMPILER no TYPE FILEPATH) +VISIT_OPTION_DEFAULT(VISIT_C_FLAGS "-fno-common -fexceptions" TYPE STRING) +VISIT_OPTION_DEFAULT(VISIT_CXX_FLAGS "-fno-common -fexceptions" TYPE STRING) + +## +## Parallel Build Setup. +## +VISIT_OPTION_DEFAULT(VISIT_PARALLEL ON TYPE BOOL) +## (configured w/ mpi compiler wrapper) +VISIT_OPTION_DEFAULT(VISIT_MPI_COMPILER /Users/miller86/visit/3.4RC/release/build-mb-3.4.2-darwin-23-arm64-release/thirdparty_shared/third_party/mpich/3.3.1/darwin-arm64/bin/mpicc TYPE FILEPATH) + +## +## VisIt Thread Option +## +VISIT_OPTION_DEFAULT(VISIT_THREAD OFF TYPE BOOL) + +############################################################## +## +## Database reader plugin support libraries +## +## The HDF5 and NetCDF libraries must be first so that +## their libdeps are defined for any plugins that need them. +## +## For libraries with LIBDEP settings, order matters. +## Libraries with LIBDEP settings that depend on other +## Library's LIBDEP settings must come after them. +############################################################## +## + +## +## ZLIB +## +SETUP_APP_VERSION(ZLIB 1.2.13) +VISIT_OPTION_DEFAULT(VISIT_ZLIB_DIR ${VISITHOME}/zlib/${ZLIB_VERSION}/${VISITARCH}) + +## +## Python +## +VISIT_OPTION_DEFAULT(VISIT_PYTHON_DIR ${VISITHOME}/python/3.9.18/${VISITARCH}) + +## +## QT6 +## +SETUP_APP_VERSION(QT 6.4.2) +VISIT_OPTION_DEFAULT(VISIT_QT_DIR ${VISITHOME}/qt/6.4.2/${VISITARCH}) + +## +## OSPRay +## +SETUP_APP_VERSION(OSPRAY 3.2.0) +VISIT_OPTION_DEFAULT(VISIT_OSPRAY_DIR ${VISITHOME}/ospray/${OSPRAY_VERSION}/${VISITARCH}) + +## +## VTK +## +SETUP_APP_VERSION(VTK 9.2.6) +VISIT_OPTION_DEFAULT(VISIT_VTK_DIR ${VISITHOME}/vtk/${VTK_VERSION}/${VISITARCH}) +VISIT_OPTION_DEFAULT(VISIT_VTK_INCDEP ZLIB_INCLUDE_DIR) +VISIT_OPTION_DEFAULT(VISIT_VTK_LIBDEP ZLIB_LIBRARY) + +## +## MPICH +## +SETUP_APP_VERSION(MPICH 3.3.1) +VISIT_OPTION_DEFAULT(VISIT_MPICH_DIR ${VISITHOME}/mpich/${MPICH_VERSION}/${VISITARCH}) +VISIT_OPTION_DEFAULT(VISIT_MPICH_INSTALL ON TYPE BOOL) + +# Tell VisIt the parallel compiler so it can deduce parallel flags +VISIT_OPTION_DEFAULT(VISIT_MPI_COMPILER ${VISIT_MPICH_DIR}/bin/mpicc TYPE FILEPATH) +VISIT_OPTION_DEFAULT(VISIT_PARALLEL ON TYPE BOOL) + +## +## SZIP +## +VISIT_OPTION_DEFAULT(VISIT_SZIP_DIR ${VISITHOME}/szip/2.1/${VISITARCH}) + +## +## HDF5 +## +VISIT_OPTION_DEFAULT(VISIT_HDF5_DIR ${VISITHOME}/hdf5/1.8.14/${VISITARCH}) +VISIT_OPTION_DEFAULT(VISIT_HDF5_MPI_DIR ${VISITHOME}/hdf5_mpi/1.8.14/${VISITARCH}) +VISIT_OPTION_DEFAULT(VISIT_HDF5_LIBDEP ${VISITHOME}/szip/2.1/${VISITARCH}/lib sz ${VISITHOME}/zlib/${ZLIB_VERSION}/${VISITARCH}/lib z TYPE STRING) +VISIT_OPTION_DEFAULT(VISIT_HDF5_MPI_LIBDEP ${VISITHOME}/szip/2.1/${VISITARCH}/lib sz ${VISITHOME}/zlib/${ZLIB_VERSION}/${VISITARCH}/lib z TYPE STRING) + +## +## ADIOS +## (configured w/ mpi compiler wrapper) +## +SETUP_APP_VERSION(ADIOS 1.13.1) +VISIT_OPTION_DEFAULT(VISIT_ADIOS_DIR ${VISITHOME}/adios/${ADIOS_VERSION}/${VISITARCH}) + +## +## BLOSC2 +## +VISIT_OPTION_DEFAULT(VISIT_BLOSC2_DIR ${VISITHOME}/blosc2/2.11.3/${VISITARCH}) + +## +## ADIOS2 +## +SETUP_APP_VERSION(ADIOS2 2.10.0-rc1) +VISIT_OPTION_DEFAULT(VISIT_ADIOS2_DIR ${VISITHOME}/adios2-ser/${ADIOS2_VERSION}/${VISITARCH}) +## (configured w/ mpi compiler wrapper) +VISIT_OPTION_DEFAULT(VISIT_ADIOS2_PAR_DIR ${VISITHOME}/adios2-par/${ADIOS2_VERSION}/${VISITARCH}) + +## +## AdvIO +## +VISIT_OPTION_DEFAULT(VISIT_ADVIO_DIR ${VISITHOME}/AdvIO/1.2/${VISITARCH}) + +## +## BOOST +## +SETUP_APP_VERSION(BOOST 1_67_0) +VISIT_OPTION_DEFAULT(VISIT_BOOST_DIR ${VISITHOME}/boost/${BOOST_VERSION}/${VISITARCH}) + +## +## Boxlib +## +VISIT_OPTION_DEFAULT(VISIT_BOXLIB_DIR ${VISITHOME}/boxlib/1.3.5/${VISITARCH}) + +## +## CFITSIO +## +VISIT_OPTION_DEFAULT(VISIT_CFITSIO_DIR ${VISITHOME}/cfitsio/3006/${VISITARCH}) + +## +## CGNS +## +VISIT_OPTION_DEFAULT(VISIT_CGNS_DIR ${VISITHOME}/cgns/4.1.0/${VISITARCH}) +VISIT_OPTION_DEFAULT(VISIT_CGNS_LIBDEP HDF5_LIBRARY_DIR hdf5 ${VISIT_HDF5_LIBDEP} TYPE STRING) + +## +## Silo +## +VISIT_OPTION_DEFAULT(VISIT_SILO_DIR ${VISITHOME}/silo/4.10.2/${VISITARCH}) +VISIT_OPTION_DEFAULT(VISIT_SILO_LIBDEP HDF5_LIBRARY_DIR hdf5 ${VISIT_HDF5_LIBDEP} ZLIB_LIBRARY_DIR z TYPE STRING) + +## +## Conduit +## +SETUP_APP_VERSION(CONDUIT 0.9.2) +VISIT_OPTION_DEFAULT(VISIT_CONDUIT_DIR ${VISITHOME}/conduit/v0.9.2/${VISITARCH}) +VISIT_OPTION_DEFAULT(VISIT_CONDUIT_LIBDEP HDF5_LIBRARY_DIR hdf5 ${VISIT_HDF5_LIBDEP} ${VISIT_SILO_LIBDEP} TYPE STRING) + +## +## FMS +## +VISIT_OPTION_DEFAULT(VISIT_FMS_DIR ${VISITHOME}/fms/0.2/${VISITARCH}) +VISIT_OPTION_DEFAULT(VISIT_FMS_LIBDEP CONDUIT_LIBRARY_DIR conduit CONDUIT_LIBRARY_DIR conduit_blueprint CONDUIT_LIBRARY_DIR conduit_relay ${VISIT_CONDUIT_LIBDEP} TYPE STRING) + +## +## GDAL +## +VISIT_OPTION_DEFAULT(VISIT_GDAL_DIR ${VISITHOME}/gdal/2.2.4/${VISITARCH}) + +## +## H5Part +## +SETUP_APP_VERSION(H5PART 1.6.6) +VISIT_OPTION_DEFAULT(VISIT_H5PART_DIR ${VISITHOME}/h5part/${H5PART_VERSION}/${VISITARCH}) +VISIT_OPTION_DEFAULT(VISIT_H5PART_LIBDEP HDF5_LIBRARY_DIR hdf5 ${VISIT_HDF5_LIBDEP} TYPE STRING) + +## +## IceT +## +VISIT_OPTION_DEFAULT(VISIT_ICET_DIR ${VISITHOME}/icet/77c708f9090236b576669b74c53e9f105eedbd7e/${VISITARCH}) + +## +## MFEM +## +VISIT_OPTION_DEFAULT(VISIT_MFEM_DIR ${VISITHOME}/mfem/4.6/${VISITARCH}) +VISIT_OPTION_DEFAULT(VISIT_MFEM_INCDEP CONDUIT_INCLUDE_DIR FMS_INCLUDE_DIR TYPE STRING) +VISIT_OPTION_DEFAULT(VISIT_MFEM_LIBDEP ${VISIT_CONDUIT_LIBDEP} ${VISITHOME}/zlib/${ZLIB_VERSION}/${VISITARCH}/lib z TYPE STRING) + +## +## Mili +## +VISIT_OPTION_DEFAULT(VISIT_MILI_DIR ${VISITHOME}/mili/23.02/${VISITARCH}) + +## +## MOAB +## +VISIT_OPTION_DEFAULT(VISIT_MOAB_DIR ${VISITHOME}/moab/5.5.0/${VISITARCH}) +VISIT_OPTION_DEFAULT(VISIT_MOAB_LIBDEP HDF5_LIBRARY_DIR hdf5 ${VISIT_HDF5_LIBDEP} TYPE STRING) +VISIT_OPTION_DEFAULT(VISIT_MOAB_MPI_DIR ${VISITHOME}/moab_mpi/5.5.0/${VISITARCH}) +VISIT_OPTION_DEFAULT(VISIT_MOAB_MPI_LIBDEP HDF5_MPI_LIBRARY_DIR hdf5_mpi ${VISIT_HDF5_MPI_LIBDEP} TYPE STRING) + +## +## NetCDF +## +VISIT_OPTION_DEFAULT(VISIT_NETCDF_DIR ${VISITHOME}/netcdf/4.1.1/${VISITARCH}) +VISIT_OPTION_DEFAULT(VISIT_NETCDF_LIBDEP HDF5_LIBRARY_DIR hdf5_hl HDF5_LIBRARY_DIR hdf5 ${VISIT_HDF5_LIBDEP} TYPE STRING) + +## +## QWT +## +SETUP_APP_VERSION(QWT 6.3.0) +VISIT_OPTION_DEFAULT(VISIT_QWT_DIR ${VISITHOME}/qwt/${QWT_VERSION}/${VISITARCH}) + +## +## Uintah +## +SETUP_APP_VERSION(UINTAH 2.6.3) +VISIT_OPTION_DEFAULT(VISIT_UINTAH_DIR ${VISITHOME}/uintah/${UINTAH_VERSION}/${VISITARCH}) + +## +## VTKM +## +VISIT_OPTION_DEFAULT(VISIT_VTKM_DIR ${VISITHOME}/vtkm/v1.9.0/${VISITARCH}) + +## +## Xdmf +## +VISIT_OPTION_DEFAULT(VISIT_XDMF_DIR ${VISITHOME}/Xdmf/2.1.1/${VISITARCH}) +VISIT_OPTION_DEFAULT(VISIT_XDMF_LIBDEP HDF5_LIBRARY_DIR hdf5 ${VISITHOME}/vtk/${VTK_VERSION}/${VISITARCH}/lib vtklibxml2.${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION} TYPE STRING) + diff --git a/src/osxfixup/osxfixup.py b/src/osxfixup/osxfixup.py index 8ff8ed755f8..266343770b7 100755 --- a/src/osxfixup/osxfixup.py +++ b/src/osxfixup/osxfixup.py @@ -223,7 +223,13 @@ def fixup_items(items,lib_maps,prefix_path): shexe(dep_cmd) def main(): - prefix_path = "darwin-x86_64" + if os.uname().machine == "x86_64": + prefix_path = "darwin-x86_64" + elif os.uname().machine == "arm64": + prefix_path = "darwin-arm64" + else: + print("[response from 'os.uname().machine' is not recognized]") + sys.exit(-1) if len(sys.argv) > 1: prefix_path = sys.argv[1] prefix_path = os.path.abspath(prefix_path) diff --git a/src/test/tests/unit/launcher.py b/src/test/tests/unit/launcher.py index dea79a7c81f..8b3cce6c159 100644 --- a/src/test/tests/unit/launcher.py +++ b/src/test/tests/unit/launcher.py @@ -177,6 +177,7 @@ def FormatLauncherOutput(cmd): "linux-intel" : "$PLATFORM", "linux-x86_64" : "$PLATFORM", "darwin-i386" : "$PLATFORM", + "darwin-arm64" : "$PLATFORM", "darwin-x86_64" : "$PLATFORM"} output = FilterLauncherOutput(output, replacements) diff --git a/src/tools/dev/masonry/bootstrap_visit.py b/src/tools/dev/masonry/bootstrap_visit.py index cbc140bf30e..6ffff991dc6 100644 --- a/src/tools/dev/masonry/bootstrap_visit.py +++ b/src/tools/dev/masonry/bootstrap_visit.py @@ -1,3 +1,21 @@ +# +# I usually work from a git worktree that is peer or child dir of the main `develop` repo +# 1. Create a `release` folder there +# 2. Ensure masonry options file is updated with correct +# - VisIt version number +# - Git branch name (or tag or commit hash) +# - architecture +# - keychain profile name +# - path to entitlements file +# - nthreads setting (for make -j) +# +# cd to `release` folder and run command like so... +# +# env PATH=/usr/local/bin:/usr/bin:/bin:/sbin:/usr/sbin python3 ../src/tools/dev/masonry/bootstrap_visit.py ../src/tools/dev/masonry/opts/mb-3.4.2-darwin-23-arm64-release.json +# +# First try will fail. When it does, cd to the build-mb-x.y.z-arch... folder and create a symlink +# named `visit` to ../.. from that build folder and restart. +# import sys import json import subprocess @@ -219,11 +237,21 @@ def steps_install(opts,build_type,ctx): target="install") ctx.triggers["build"].append(a_make_install) +######################################################################## +# NOTE: Mark C. Miller, Fri Dec 13 19:13:32 PST 2024 +# I believe CMake's `make package` target tries to also use hdiutil. +# When make is invoked with a lot of parallelism (e.g. -j8 or more), +# I believe a race condition occurs in CMake sometimes causing the +# `make package` operation to fail during `hdiutil` command with +# "Resource busy" error. So, here we override nthreads to force use +# of just a single thread. +######################################################################## + def steps_package(opts,build_type,ctx): build_dir = pjoin(opts["build_dir"],"build.%s" % build_type.lower()) a_make_pkg = "package_" + build_type.lower() ctx.actions[a_make_pkg] = make(description="building visit package", - nthreads=opts["make_nthreads"], + nthreads=1, working_dir=build_dir, target="package") ctx.triggers["build"].append(a_make_pkg) @@ -237,7 +265,7 @@ def steps_package(opts,build_type,ctx): working_dir=build_dir, description="configuring visit (osx bundle)") ctx.actions[a_make_bundle] = make(description="packaging visit (osx bundle)", - nthreads=opts["make_nthreads"], + nthreads=1, working_dir=build_dir, target="package") ctx.triggers["build"].extend([a_cmake_bundle, @@ -308,9 +336,11 @@ def steps_osx_dmg_sanity_checks(opts,build_type,ctx): test_base = "mount/VisIt.app/Contents/Resources/%s/%s" % (actual_version, opts["arch"]) # stop at any error + final_dmg_name = "visit%s.darwin%s-%s.dmg" % (opts["version"].replace('.','_'),os.uname().release[0:2],os.uname().machine) + test_cmd = "" - test_cmd += "hdiutil attach -mountpoint mount VisIt-%s.dmg\n" - test_dylib = "libvtkRenderingCore-*.*.dylib " + test_cmd += "hdiutil attach -mountpoint mount %s\n" % final_dmg_name + test_dylib = "libvtkRenderingCore*.*.dylib " test_cmd += "otool -L %s/lib/%s | grep @exe\n" test_cmd += "otool -L %s/lib/%s | grep build-mb\n" test_cmd += "otool -L %s/lib/%s | grep build-mb | wc -l\n" @@ -323,10 +353,10 @@ def steps_osx_dmg_sanity_checks(opts,build_type,ctx): # verify the app test_cmd += "spctl -a -t exec -vv mount/VisIt.app\n" test_cmd += "hdiutil detach mount\n" - test_cmd = test_cmd % (actual_version,test_base,test_dylib, - test_base,test_dylib, - test_base,test_dylib, - test_base,test_dylib) + test_cmd = test_cmd % (test_base,test_dylib, + test_base,test_dylib, + test_base,test_dylib, + test_base,test_dylib) saction = "osx_sanity_" + build_type.lower() ctx.actions[saction] = shell(cmd=test_cmd, description="sanity check", diff --git a/src/tools/dev/masonry/masonry.py b/src/tools/dev/masonry/masonry.py index f01a073d4aa..6600dad014d 100755 --- a/src/tools/dev/masonry/masonry.py +++ b/src/tools/dev/masonry/masonry.py @@ -397,8 +397,7 @@ def execute(self,base,key,tag,parent_res): cmd = 'codesign --force --options runtime --timestamp' cmd += ' --entitlements %s' % self.params["entitlements"] cmd += ' -s "%s" %s' % (self.params["cert"], binary) - rcode, rout = shexe(cmd, ret_output=True, echo=True, env=env) - print("[res: %s]" % rout) + rcode, rout = shexe(cmd, ret_output=True, env=env) # codesign VisIt.app visit_app = pjoin(bundle_dir, "VisIt-%s/VisIt.app" % self.params["build_version"]) @@ -406,7 +405,6 @@ def execute(self,base,key,tag,parent_res): cmd += ' --entitlements %s' % self.params["entitlements"] cmd += ' -s "%s" %s' % (self.params["cert"], visit_app) rcode, rout = shexe(cmd, ret_output=True, echo=True, env=env) - print("[res: %s]" % rout) # Create DMG to upload to Apple notarize_dir = pjoin(self.params["build_dir"], "notarize.%s" % self.params["build_type"]) @@ -427,6 +425,13 @@ def execute(self,base,key,tag,parent_res): # the dmg creation process is unreliable, it can often fail with: # hdiutil: create failed - Resource busy # but then works fine on subsequent tries, so we try here multiple times + # + # NOTE (miller86) Mark C. Miller, Fri Dec 13 19:12:02 PST 2024 + # I believe the "Resource busy" condition we sometimes hit is actually not + # from hdiutil commands here but instead down in CMake's `make package` + # logic when large parallel task counts are used (e.g. -j8 or more). + # So, in the trigger in the bootstrap, we override nthreads to 1 there in + # hopes of preventing the "Resource busy" error in hdiutil commands. ########################################################################## dmg_created = False @@ -447,52 +452,49 @@ def execute(self,base,key,tag,parent_res): raise RuntimeError(msg, cmd, dmg_create_output) ###################################### - # Upload to Apple Notary Service + # Submit to Apple Notary Service ###################################### - cmd = [ - "xcrun", "notarytool", "submit", - "--apple-id", self.params["username"], - "--keychain-profile", self.params["password"], - "--team-id", self.params["asc_provider"], - "--output-format", "json", - temp_dmg - ] + cmd = 'xcrun notarytool submit' + cmd += ' --apple-id "%s"' % self.params["username"] + cmd += ' --keychain-profile %s' % self.params["password"] + cmd += ' --team-id %s' % self.params["asc_provider"] + cmd += ' --output-format json' + cmd += ' %s' % temp_dmg rcode, rout = shexe(cmd, ret_output=True, echo=True, env=env) if rcode != 0: - raise RuntimeError("[error submitting VisIt dmg for notarization]", cmd) + raise RuntimeError("[error submitting VisIt dmg for notarization, error='%s']"%rout, cmd) jr = json.loads(rout) uuid = jr.get("id") print("[id: %s]" % uuid) # Check status of notarization request - cmd = [ - "xcrun", "notarytool", "info", - "--apple-id", self.params["username"], - "--keychain-profile", self.params["password"], - "--team-id", self.params["asc_provider"], - "--output-format", "json", - uuid - ] + cmd = 'xcrun notarytool info' + cmd += ' --apple-id "%s"' % self.params["username"] + cmd += ' --keychain-profile %s' % self.params["password"] + cmd += ' --team-id %s' % self.params["asc_provider"] + cmd += ' --output-format json' + cmd += ' %s' % uuid status = "in progress" - while "in progress" in status: - time.sleep(30) + while "progress" in status: + time.sleep(120) # check status every two minutes rcode, rout = shexe(cmd, ret_output=True, echo=True, env=env) jr = json.loads(rout) - status = jr.get("status") - status = status.strip() - status = status.lower() - print("[status: %s]" % status) + status = jr.get("status").strip().lower() + print('Status check result: %s ("%s")'%(status,rout)) - ################################### + ################################################################# # Staple notarization ticket to app bundle - ################################### + # NOTE: Mark C. Miller, Sat Dec 14 09:06:34 PST 2024 + # Stapling helps users who are not connected to a network still + # be able to validate the VisIt .dmg download before using it. + ################################################################# - if status == "accepted": + if "accepted" in status: cmd = "xcrun stapler staple %s" % visit_app rcode, rout = shexe(cmd, ret_output=True, echo=True, env=env) - print("[stapler: %s]" % rout) + print('[stapler result: "%s"]' % rout) if rcode != 0: raise RuntimeError("[error stapling VisIt (bad network or on VPN?)]", cmd) @@ -500,16 +502,17 @@ def execute(self,base,key,tag,parent_res): dmg_stapled = pjoin(notarize_dir, "VisIt.stpl.dmg") cmd = "hdiutil create -srcFolder %s -o %s" % (src_folder, dmg_stapled) rcode, rout = shexe(cmd, ret_output=True, echo=True, env=env) - print("[hdiutil: %s]" % rout) + print('[hdiutil result: "%s"]' % rout) if rcode != 0: raise RuntimeError("[error creating stapled VisIt.stpl.dmg]", cmd) - dmg_release = pjoin(notarize_dir, "VisIt-%s.dmg" % self.params["build_version"]) + final_dmg_name = "visit%s.darwin%s-%s.dmg" % (self.params["build_version"].replace('.','_'),os.uname().release[0:2],os.uname().machine) + dmg_release = pjoin(notarize_dir, final_dmg_name) cmd = "hdiutil convert %s -format UDZO -o %s" % (dmg_stapled, dmg_release) rcode, rout = shexe(cmd, ret_output=True, echo=True, env=env) - print("[hdiutil:convert: %s]" % rout) + print('[hdiutil convert result: "%s"]' % rout) if rcode != 0: - raise RuntimeError("[error creating final VisIt-{0}.dmg]".format(self.params["build_version"]), cmd) + raise RuntimeError("[error creating final {0}]".format(final_dmg_name), cmd) else: raise RuntimeError("Notarization Failed!") except KeyboardInterrupt as e: diff --git a/src/tools/dev/masonry/opts/mb-3.4.2-darwin-22-x86_64-release.json b/src/tools/dev/masonry/opts/mb-3.4.2-darwin-22-x86_64-release.json new file mode 100644 index 00000000000..f70cca7c3b8 --- /dev/null +++ b/src/tools/dev/masonry/opts/mb-3.4.2-darwin-22-x86_64-release.json @@ -0,0 +1,49 @@ +{"bootstrap_visit": + {"version": "3.4.2", + "build_types": ["release"], + "branch": "3.4RC", + "arch": "darwin-x86_64", + "cert": "Developer ID Application: Lawrence Livermore National Laboratory (A827VH86QR)", + "entitlements": "/Users/miller86/visit/visit/34rc/src/tools/dev/masonry/opts/visit.entitlements", + "notarize": {"username":"miller86@llnl.gov", + "password":"VisIt", + "asc_provider":"A827VH86QR", + "bundle_id":"gov.llnl.visit"}, + "make_nthreads": 8, + "skip_checkout": "yes", + "git": {"mode":"ssh","git_uname":"markcmiller86"}, + "cmake_extra_opts" : "-DCMAKE_VERBOSE_MAKEFILE=ON", + "build_visit": { "cmake_ver": "3.24.3", + "args":"--no-thirdparty", + "libs":["cmake", + "vtkm", + "python", + "vtk", + "qt6", + "qwt", + "boost", + "mpich", + "adios", + "blosc2", + "adios2", + "advio", + "boxlib", + "cfitsio", + "conduit", + "gdal", + "fms", + "h5part", + "hdf5", + "cgns", + "netcdf", + "mfem", + "ospray", + "silo", + "szip", + "icet", + "mili", + "zlib", + "xdmf", + "uintah", + "moab"]} +}} diff --git a/src/tools/dev/masonry/opts/mb-3.4.2-darwin-23-arm64-release.json b/src/tools/dev/masonry/opts/mb-3.4.2-darwin-23-arm64-release.json new file mode 100644 index 00000000000..4ec96d2245c --- /dev/null +++ b/src/tools/dev/masonry/opts/mb-3.4.2-darwin-23-arm64-release.json @@ -0,0 +1,49 @@ +{"bootstrap_visit": + {"version": "3.4.2", + "build_types": ["release"], + "branch": "3.4RC", + "arch": "darwin-arm64", + "cert": "Developer ID Application: Lawrence Livermore National Laboratory (A827VH86QR)", + "entitlements": "/Users/miller86/visit/3.4RC/src/tools/dev/masonry/opts/visit.entitlements", + "notarize": {"username":"miller86@llnl.gov", + "password":"VisIt-arm64", + "asc_provider":"A827VH86QR", + "bundle_id":"gov.llnl.visit"}, + "make_nthreads": 16, + "skip_checkout": "yes", + "git": {"mode":"ssh","git_uname":"markcmiller86"}, + "cmake_extra_opts" : "-DCMAKE_VERBOSE_MAKEFILE=ON", + "build_visit": { "cmake_ver": "3.24.3", + "args":"--no-thirdparty", + "libs":["cmake", + "vtkm", + "python", + "vtk", + "qt6", + "qwt", + "boost", + "mpich", + "adios", + "blosc2", + "adios2", + "advio", + "boxlib", + "cfitsio", + "conduit", + "gdal", + "fms", + "h5part", + "hdf5", + "cgns", + "netcdf", + "mfem", + "ospray", + "silo", + "szip", + "icet", + "mili", + "zlib", + "xdmf", + "uintah", + "moab"]} +}} diff --git a/src/tools/dev/masonry/test/TestDmgNotarization.app/Contents/Frameworks/libz-1.2.13.dylib b/src/tools/dev/masonry/test/TestDmgNotarization.app/Contents/Frameworks/libz-1.2.13.dylib index 9921777a88c..ebf0c442137 100755 --- a/src/tools/dev/masonry/test/TestDmgNotarization.app/Contents/Frameworks/libz-1.2.13.dylib +++ b/src/tools/dev/masonry/test/TestDmgNotarization.app/Contents/Frameworks/libz-1.2.13.dylib @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:77988a2c41a92e1472d895bfd02ace4e6a8fba0cacbfe7d7b5440e9576b45efb +oid sha256:b778114bfcc2deb1dcc42225114baf8c61b9577c96f7c303639e486d7855dfb0 size 323088 diff --git a/src/tools/dev/masonry/test/test_notarize.py b/src/tools/dev/masonry/test/test_notarize.py index 2f79b47dedf..866538b62f7 100644 --- a/src/tools/dev/masonry/test/test_notarize.py +++ b/src/tools/dev/masonry/test/test_notarize.py @@ -13,6 +13,8 @@ "password":"VisIt", "asc_provider":"A827VH86QR" } +if os.uname().machine == "arm64": + params["password"]:"VisIt-arm64" temp_dmg = "TestDmgNotarization.dmg" temp_app = "TestDmgNotarization.app" diff --git a/src/tools/dev/scripts/bv_support/bv_adios.sh b/src/tools/dev/scripts/bv_support/bv_adios.sh index 4caef9c854a..6ba386b2380 100644 --- a/src/tools/dev/scripts/bv_support/bv_adios.sh +++ b/src/tools/dev/scripts/bv_support/bv_adios.sh @@ -310,6 +310,11 @@ function build_adios WITH_BLOSC_ARGS="--without-blosc" fi + # Fix compilation error on newer Darwin + if [[ "$OPSYS" == "Darwin" && $(uname -r | cut -d'.' -f1) -ge 23 ]]; then + sed -i '' 's/^libparse_test_query_xml_a_LIBADD/#libparse_test_query_xml_a_LIBADD/' tests/C/query/common/Makefile.in + fi + set -x sh -c "./configure ${OPTIONAL} CXX=\"$CXX_COMPILER\" CC=\"$C_COMPILER\" \ CFLAGS=\"$CFLAGS $C_OPT_FLAGS $WITH_MPI_INC\" \ diff --git a/src/tools/dev/scripts/bv_support/bv_advio.sh b/src/tools/dev/scripts/bv_support/bv_advio.sh index d299f3a7846..135c47b7aff 100644 --- a/src/tools/dev/scripts/bv_support/bv_advio.sh +++ b/src/tools/dev/scripts/bv_support/bv_advio.sh @@ -71,6 +71,15 @@ function apply_advio_12_darwin_patch patch -p0 << \EOF --- AdvIO-1.2/configure 2006-02-14 05:19:56.000000000 -0800 +++ AdvIO-1.2/configure.new 2024-02-09 16:28:49.000000000 -0800 +@@ -1003,7 +1003,7 @@ + #line 1004 "configure" + #include "confdefs.h" + +-main(){return(0);} ++int main(){return(0);} + EOF + if { (eval echo configure:1009: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + ac_cv_prog_cc_works=yes @@ -1897,11 +1897,12 @@ #line 1898 "configure" #include "confdefs.h" diff --git a/src/tools/dev/scripts/bv_support/bv_cfitsio.sh b/src/tools/dev/scripts/bv_support/bv_cfitsio.sh index a2e496e5672..7320c7157c1 100644 --- a/src/tools/dev/scripts/bv_support/bv_cfitsio.sh +++ b/src/tools/dev/scripts/bv_support/bv_cfitsio.sh @@ -140,6 +140,13 @@ function build_cfitsio info "Configuring CFITSIO . . ." cd $CFITSIO_BUILD_DIR || error "Can't cd to cfits IO build dir." + # + # Fix an issue with configure + # + if [[ "$OPSYS" == "Darwin" && $(uname -r | cut -d'.' -f1) -ge 23 ]]; then + sed -i '' 's/^main(){return(0);}/int main(){return(0);}/' configure + fi + C_OPT_FLAGS="-Wno-error=implicit-function-declaration" set -x env CXX="$CXX_COMPILER" CC="$C_COMPILER" \ diff --git a/src/tools/dev/scripts/bv_support/bv_hdf5.sh b/src/tools/dev/scripts/bv_support/bv_hdf5.sh index 80d89779305..32cb5ec3549 100644 --- a/src/tools/dev/scripts/bv_support/bv_hdf5.sh +++ b/src/tools/dev/scripts/bv_support/bv_hdf5.sh @@ -137,7 +137,7 @@ function bv_hdf5_ensure function apply_hdf5_1814_static_patch { info "Patching hdf5 1.8.14 for static build" - patch -p0 << EOF + patch -p0 << \EOF *** src/H5PL.c.orig 2015-10-23 11:51:35.000000000 -0700 --- src/H5PL.c 2015-10-23 11:56:48.000000000 -0700 *************** @@ -467,7 +467,7 @@ EOF function apply_hdf5_1814_isatty_patch { info "Patching hdf5 1.8.14 for isatty" - patch -p0 << EOF + patch -p0 << \EOF --- hl/src/H5LTanalyze.c.orig 2014-11-07 04:53:42.000000000 -0800 +++ hl/src/H5LTanalyze.c 2021-02-01 13:40:36.000000000 -0800 @@ -40,6 +40,7 @@ @@ -539,6 +539,13 @@ function build_hdf5 fi fi + # + # Fix a test failing to compile + # + if [[ "$OPSYS" == "Darwin" && $(uname -r | cut -d'.' -f1) -ge 23 ]]; then + sed -i '' 's/{NULL}};/{0}};/' test/tmisc.c + fi + # # Configure HDF5 # diff --git a/src/tools/dev/scripts/bv_support/bv_netcdf.sh b/src/tools/dev/scripts/bv_support/bv_netcdf.sh index d8f442caa46..8605a89dff8 100644 --- a/src/tools/dev/scripts/bv_support/bv_netcdf.sh +++ b/src/tools/dev/scripts/bv_support/bv_netcdf.sh @@ -422,7 +422,7 @@ function build_netcdf return 1 fi - if [[ -n "$(uname -rs | grep 'Darwin 21')" ]] ; then + if [[ "$OPSYS" == "Darwin" ]] ; then # there is an include file on newer macOS #include which case-clashes # with any file living in a dir that is -I included on the compilation line mv -f VERSION VERSION.orig diff --git a/src/tools/dev/scripts/bv_support/bv_ospray.sh b/src/tools/dev/scripts/bv_support/bv_ospray.sh index f999531f8f8..f873a54cd2d 100644 --- a/src/tools/dev/scripts/bv_support/bv_ospray.sh +++ b/src/tools/dev/scripts/bv_support/bv_ospray.sh @@ -53,21 +53,34 @@ function bv_ospray_depends_on function bv_ospray_info { - export OSPRAY_VERSION=${OSPRAY_VERSION:-"3.0.0"} - export OSPRAY_FILE=${OSPRAY_FILE:-"ospray-${OSPRAY_VERSION}.tar.gz"} - export OSPRAY_SRC_DIR=${OSPRAY_SRC_DIR:-"${OSPRAY_FILE%.tar*}"} - export OSPRAY_BUILD_DIR=${OSPRAY_BUILD_DIR:-"${OSPRAY_SRC_DIR}-build"} - export OSPRAY_SHA256_CHECKSUM="d8d8e632d77171c810c0f38f8d5c8387470ca19b75f5b80ad4d3d12007280288" - export OSPRAY_LIBS_FILE=${OSPRAY_LIBS_FILE:-"ospray-libs-${OSPRAY_VERSION}.tar.gz"} - export OSPRAY_LIBS_DIR=${OSPRAY_LIBS_DIR:-"${OSPRAY_LIBS_FILE%.tar*}"} - export OSPRAY_LIBS_SHA256_CHECKSUM="8ab33df7ea88d7eb3b9170fc3b6342e77cd105d9549db8bce31cddd5a0336f2f" + if [[ "$OPSYS" == "Darwin" ]]; then + export OSPRAY_VERSION=${OSPRAY_VERSION:-"3.2.0"} + if [[ "$(uname -m)" == "x86_64" ]]; then + export OSPRAY_FILE=${OSPRAY_FILE:-"ospray-${OSPRAY_VERSION}.x86_64.macosx.zip"} + export OSPRAY_SHA256_CHECKSUM="073587a9fe4f985086e8d1e1c4749860ae81259e4806fe9475792e7864fe0e9c" + elif [[ "$(uname -m)" == "arm64" ]]; then + export OSPRAY_FILE=${OSPRAY_FILE:-"ospray-${OSPRAY_VERSION}.arm64.macosx.zip"} + export OSPRAY_SHA256_CHECKSUM="adcaf17e4ed4e98d707a49b07e6ad833029ccff24f45ce3ae33c73254f1ca6a7" + fi + # This isn't really a "source" dir because its pre-built binaries we're dealing with + export OSPRAY_SRC_DIR=${OSPRAY_SRC_DIR:-"${OSPRAY_FILE%.zip*}"} + export OSPRAY_BUILD_DIR=${OSPRAY_BUILD_DIR:-"${OSPRAY_SRC_DIR}-build"} + else + export OSPRAY_VERSION=${OSPRAY_VERSION:-"3.0.0"} + export OSPRAY_FILE=${OSPRAY_FILE:-"ospray-${OSPRAY_VERSION}.tar.gz"} + export OSPRAY_SRC_DIR=${OSPRAY_SRC_DIR:-"${OSPRAY_FILE%.tar*}"} + export OSPRAY_BUILD_DIR=${OSPRAY_BUILD_DIR:-"${OSPRAY_SRC_DIR}-build"} + export OSPRAY_SHA256_CHECKSUM="d8d8e632d77171c810c0f38f8d5c8387470ca19b75f5b80ad4d3d12007280288" + export OSPRAY_LIBS_FILE=${OSPRAY_LIBS_FILE:-"ospray-libs-${OSPRAY_VERSION}.tar.gz"} + export OSPRAY_LIBS_DIR=${OSPRAY_LIBS_DIR:-"${OSPRAY_LIBS_FILE%.tar*}"} + export OSPRAY_LIBS_SHA256_CHECKSUM="8ab33df7ea88d7eb3b9170fc3b6342e77cd105d9549db8bce31cddd5a0336f2f" + fi } function bv_ospray_print { print "%s%s\n" "OSPRAY_FILE=" "${OSPRAY_FILE}" print "%s%s\n" "OSPRAY_VERSION=" "${OSPRAY_VERSION}" - print "%s%s\n" "OSPRAY_COMPATIBILITY_VERSION=" "${OSPRAY_COMPATIBILITY_VERSION}" print "%s%s\n" "OSPRAY_SRC_DIR=" "${OSPRAY_SRC_DIR}" print "%s%s\n" "OSPRAY_BUILD_DIR=" "${OSPRAY_BUILD_DIR}" } @@ -89,7 +102,11 @@ function bv_ospray_host_profile echo "##" >> $HOSTCONF if [[ "$USE_SYSTEM_OSPRAY" == "no" ]]; then echo "SETUP_APP_VERSION(OSPRAY ${OSPRAY_VERSION})" >> $HOSTCONF - echo "VISIT_OPTION_DEFAULT(VISIT_OSPRAY_DIR \${VISITHOME}/ospray/\${OSPRAY_VERSION}/\${VISITARCH}/ospray)" >> $HOSTCONF + if [[ "$OPSYS" == "Darwin" ]]; then + echo "VISIT_OPTION_DEFAULT(VISIT_OSPRAY_DIR \${VISITHOME}/ospray/\${OSPRAY_VERSION}/\${VISITARCH})" >> $HOSTCONF + else + echo "VISIT_OPTION_DEFAULT(VISIT_OSPRAY_DIR \${VISITHOME}/ospray/\${OSPRAY_VERSION}/\${VISITARCH}/ospray)" >> $HOSTCONF + fi else local _tmp_=$(basename ${OSPRAY_CONFIG_DIR}) echo "SETUP_APP_VERSION(OSPRAY ${_tmp_:7})" >> $HOSTCONF @@ -109,7 +126,9 @@ function bv_ospray_is_enabled function bv_ospray_ensure { if [[ "$DO_OSPRAY" == "yes" && "$USE_SYSTEM_OSPRAY" == "no" ]]; then - download_file ${OSPRAY_LIBS_FILE} + if [[ "$OPSYS" != "Darwin" ]]; then + download_file ${OSPRAY_LIBS_FILE} + fi ensure_built_or_ready "ospray" $OSPRAY_VERSION $OSPRAY_BUILD_DIR $OSPRAY_FILE $OSPRAY_URL if [[ $? != 0 ]] ; then ANY_ERRORS="yes" @@ -209,6 +228,20 @@ function build_ospray return 1 fi + if [[ "$OPSYS" == "Darwin" ]]; then + # The above "untar" operation produced the pre-built binaries we need. + # Just install them now. Removing com.apple.quarantine attribute may + # trigger an email inquiry from LLNL cyber-security team. Just let them + # know its part of Intel software we use in our release. + pushd $OSPRAY_SRC_DIR 1>/dev/null 2>&1 + find . -name '*.dylib' -exec xattr -d com.apple.quarantine {} \; + mkdir -p ${OSPRAY_INSTALL_DIR} + cp -R include lib ${OSPRAY_INSTALL_DIR}/. + info "Installed OSPRay from pre-built binaries. . . " + popd 1>/dev/null 2>&1 + return 0 + fi + # # Make a build directory for an out-of-source build. # diff --git a/src/tools/dev/scripts/bv_support/bv_python.sh b/src/tools/dev/scripts/bv_support/bv_python.sh index 90650a16454..d17d6f1f361 100644 --- a/src/tools/dev/scripts/bv_support/bv_python.sh +++ b/src/tools/dev/scripts/bv_support/bv_python.sh @@ -65,8 +65,8 @@ function install_py_module pushd ${MOD_DIR} > /dev/null info "Installing ${MOD_NAME} ..." - echo ${PYTHON_COMMAND} -m pip --no-cache-dir --disable-pip-version-check install --no-index --no-deps --no-build-isolation . - ${PYTHON_COMMAND} -m pip --no-cache-dir --disable-pip-version-check install --no-index --no-deps --no-build-isolation . + echo ${PYTHON_COMMAND} -m pip --no-cache-dir --disable-pip-version-check install --no-index --no-deps --no-build-isolation --no-binary :all: . + ${PYTHON_COMMAND} -m pip --no-cache-dir --disable-pip-version-check install --no-index --no-deps --no-build-isolation --no-binary :all: . if test $? -ne 0 ; then popd > /dev/null @@ -696,7 +696,7 @@ function build_pillow CC=${C_COMPILER} CXX=${CXX_COMPILER} CFLAGS="${PYEXT_CFLAGS}" \ CXXFLAGS="${PYEXT_CXXFLAGS}" \ LDFLAGS="${PYEXT_LDFLAGS}" \ - ${PYTHON_COMMAND} ./setup.py build_ext --disable-webp --disable-webpmux --disable-freetype --disable-lcms --disable-tiff --disable-xcb --disable-jpeg2000 --disable-jpeg install --prefix="${PYHOME}" + ${PYTHON_COMMAND} ./setup.py build_ext --disable-webp --disable-webpmux --disable-freetype --disable-lcms --disable-tiff --disable-xcb --disable-jpeg2000 --disable-jpeg install --prefix="${PYHOME} --single-version-externally-managed --record record.txt" set +x if test $? -ne 0 ; then diff --git a/src/tools/dev/scripts/bv_support/bv_qt.sh b/src/tools/dev/scripts/bv_support/bv_qt.sh index 683027469bf..121ab2d8dfe 100644 --- a/src/tools/dev/scripts/bv_support/bv_qt.sh +++ b/src/tools/dev/scripts/bv_support/bv_qt.sh @@ -326,7 +326,7 @@ function apply_qt_patch function apply_qt_5101_linux_mesagl_patch { info "Patching qt 5.10.1 for Linux and Mesa-as-GL" - patch -p0 <> $output $cmd jvisit$version.tar.gz >> $output $cmd VisIt-$version.dmg >> $output - $cmd visit$version2.darwin-x86_64.tar.gz >> $output + $cmd visit$version2.darwin22-x86_64.tar.gz >> $output + $cmd visit$version2.darwin23-arm64.tar.gz >> $output $cmd visit$version2.linux-x86_64-debian10.tar.gz >> $output $cmd visit$version2.linux-x86_64-debian11.tar.gz >> $output $cmd visit$version2.linux-x86_64-fedora31.tar.gz >> $output diff --git a/src/tools/dev/scripts/visit-create-chksums.py b/src/tools/dev/scripts/visit-create-chksums.py index 1bcc4acd839..b80b240a9b0 100755 --- a/src/tools/dev/scripts/visit-create-chksums.py +++ b/src/tools/dev/scripts/visit-create-chksums.py @@ -71,7 +71,8 @@ def main(): res["src"] = {} ver_underscores = ver.replace(".","_") exe_files = [ "VisIt-%s.dmg" % ver, - "visit%s.darwin-x86_64.tar.gz" % ver_underscores, + "visit%s.darwin22-x86_64.tar.gz" % ver_underscores, + "visit%s.darwin23-arm64.tar.gz" % ver_underscores, "visit%s.linux-x86_64-debian10.tar.gz" % ver_underscores, "visit%s.linux-x86_64-debian11.tar.gz" % ver_underscores, "visit%s.linux-x86_64-debian12.tar.gz" % ver_underscores, From 3f1127a09671af027073adea2054445baf680a87 Mon Sep 17 00:00:00 2001 From: Eric Brugger Date: Mon, 16 Dec 2024 16:41:32 -0800 Subject: [PATCH 2/3] Add support for building on crossroads. (#20119) (#20136) --- scripts/run-build-visit | 83 ++++--- src/config-site/xr-fe1.cmake | 231 ++++++++++++++++++ src/tools/dev/scripts/bv_support/bv_adios2.sh | 4 +- src/tools/dev/scripts/bv_support/bv_blosc2.sh | 5 + src/tools/dev/scripts/bv_support/bv_hdf5.sh | 4 +- 5 files changed, 281 insertions(+), 46 deletions(-) create mode 100644 src/config-site/xr-fe1.cmake diff --git a/scripts/run-build-visit b/scripts/run-build-visit index 6477aeb30f9..db27cb0bd0d 100755 --- a/scripts/run-build-visit +++ b/scripts/run-build-visit @@ -9,13 +9,13 @@ # Usage: # run-build-visit - -v -s # Valid machine names: -# poodle (LC, Linux, x86_64, toss4), -# lassen (LC, Linux, power9), -# rzwhippet (LC, Linux, x86_64, toss4), -# rzvernal (LC, Linux, x86_64, toss4-cray), -# trinity (LANL, x86_64) -# tuolumne (LC, Linux, x86_64, toss4-cray), -# rzadams (LC, Linux, x86_64, toss4-cray) +# poodle (LC, Linux, x86_64, toss4), +# lassen (LC, Linux, power9), +# rzwhippet (LC, Linux, x86_64, toss4), +# rzvernal (LC, Linux, x86_64, toss4-cray), +# crossroads (LANL, x86_64) +# tuolumne (LC, Linux, x86_64, toss4-cray), +# rzadams (LC, Linux, x86_64, toss4-cray) # # Modifications: # Eric Brugger, Fri Feb 17 09:36:29 PST 2023 @@ -71,6 +71,9 @@ # Justin Privitera, Fri Nov 22 16:40:46 PST 2024 # Removed kickit with extreme prejudice. # +# Eric Brugger, Wed Dec 4 16:00:35 PST 2024 +# Removed trinity and added crossroads. +# #----------------------------------------------------------------------- # @@ -80,7 +83,7 @@ poodle=false lassen=false rzgenie=false rzvernal=false -trinity=false +crossroads=false tuolumne=false machine_name="unknown" @@ -118,9 +121,9 @@ do machine_name="rzvernal" shift ;; - -trinity) - trinity=true - machine_name="trinity" + -crossroads) + crossroads=true + machine_name="crossroads" shift ;; -tuolumne) @@ -151,13 +154,13 @@ if [ "$build_visit_script" = "undefined" ] || [ "$version" = "undefined" ] then echo "Usage: - -v -s " echo "Valid machine names:" - echo " poodle (LC, Linux, x86_64, toss4)," - echo " lassen (LC, Linux, power9)," - echo " rzwhippet (LC, Linux, x86_64, toss4)," - echo " rzvernal (LC, Linux, x86_64, toss4-cray)," - echo " trinity (LANL, Linux, x86_64)" - echo " tuolumne (LC, Linux, x86_64, toss4-cray)," - echo " rzadams (LC, Linux, x86_64, toss4-cray)" + echo " poodle (LC, Linux, x86_64, toss4)," + echo " lassen (LC, Linux, power9)," + echo " rzwhippet (LC, Linux, x86_64, toss4)," + echo " rzvernal (LC, Linux, x86_64, toss4-cray)," + echo " crossroads (LANL, Linux, x86_64)" + echo " tuolumne (LC, Linux, x86_64, toss4-cray)," + echo " rzadams (LC, Linux, x86_64, toss4-cray)" exit fi @@ -178,7 +181,7 @@ fi # Info and set ran_build_visit # if [ "$poodle" = true ] || [ "$lassen" = true ] || [ "$rzwhippet" = true ] || \ - [ "$rzvernal" = true ] || [ "$trinity" = true ] || \ + [ "$rzvernal" = true ] || [ "$crossroads" = true ] || \ [ "$tuolumne" = true ]; then echo "Building on $machine_name" ran_build_visit=true @@ -198,7 +201,7 @@ elif [ "$rzvernal" = true ]; then dest_dir=/usr/workspace/visit/visit/thirdparty_shared/$version/toss4-cray-gfx90a elif [ "$tuolumne" = true ]; then dest_dir=/usr/workspace/visit/visit/thirdparty_shared/$version/toss4-cray-gfx942 -elif [ "$trinity" = true ]; then +elif [ "$crossroads" = true ]; then dest_dir=/usr/projects/views/visit/thirdparty_shared/$version else echo "case for $machine_name not implemented. Bailing out." @@ -211,7 +214,7 @@ fi if [ "$poodle" = true ] || [ "$lassen" = true ] || [ "$rzwhippet" = true ] || \ [ "$rzvernal" = true ] || [ "$tuolumne" = true ]; then dest_group=visit -elif [ "$trinity" = true ]; then +elif [ "$crossroads" = true ]; then dest_group=viz else echo "case for $machine_name not implemented. Bailing out." @@ -222,7 +225,7 @@ fi # housekeeping # if [ "$poodle" = true ] || [ "$lassen" = true ] || [ "$rzwhippet" = true ] || \ - [ "$rzvernal" = true ] || [ "$trinity" = true ] || \ + [ "$rzvernal" = true ] || [ "$crossroads" = true ] || \ [ "$tuolumne" = true ]; then if [ -f ${build_visit_script}_log.${machine_name} ]; then mv ${build_visit_script}_log.${machine_name} ${build_visit_script}_log @@ -266,19 +269,15 @@ elif [ "$rzvernal" = true ]; then PAR_INCLUDE=-I/usr/tce/packages/cray-mpich/cray-mpich-8.1.28-gcc-12.2.1-magic/include \ ./$build_visit_script --group ${dest_group} --required --optional --mesagl --uintah --parallel \ --qt6 --qwt --no-pyside --no-gdal --no-uintah --no-visit --makeflags -j24 --thirdparty-path ${dest_dir} -elif [ "$trinity" = true ]; then - module swap PrgEnv-intel/6.0.10 PrgEnv-gnu/6.0.10 - module swap gcc/11.2.0 gcc/8.2.0 - export XTPE_LINK_TYPE=dynamic - export CRAYPE_LINK_TYPE=dynamic - env C_COMPILER=/opt/cray/pe/craype/2.7.15/bin/cc \ - CXX_COMPILER=/opt/cray/pe/craype/2.7.15/bin/CC \ - PAR_COMPILER=/opt/cray/pe/craype/2.7.15/bin/cc \ - PAR_COMPILER_CXX=/opt/cray/pe/craype/2.7.15/bin/CC \ - PAR_INCLUDE=-I/opt/cray/pe/mpt/7.7.20/gni/mpich-gnu/8.2/include \ - PAR_LIBS="-L/opt/cray/pe/mpt/7.7.20/gni/mpich-gnu/8.2/lib -Wl,-rpath=/opt/cray/pe/mpt/7.7.20/gni/mpich-gnu/8.2/lib -lmpich" \ +elif [ "$crossroads" = true ]; then + env C_COMPILER=gcc \ + CXX_COMPILER=g++ \ + PAR_COMPILER=mpicc \ + PAR_COMPILER_CXX=mpic++ \ + PAR_INCLUDE=-I/opt/cray/pe/mpich/8.1.28/ofi/intel/2022.1/include \ + PAR_LIBS="-L/opt/cray/pe/mpich/8.1.28/ofi/intel/2022.1/lib -Wl,-rpath=/opt/cray/pe/mpich/8.1.28/ofi/intel/intel/lib" \ ./$build_visit_script --group ${dest_group} --required --optional --mesagl --parallel \ - --no-adios --no-adios2 --no-mili --no-pyside --qt510 --qwt --no-visit \ + --qt6 --qwt --no-adios --no-gdal --no-pyside --no-visit \ --makeflags -j16 --thirdparty-path ${dest_dir} elif [ "$tuolumne" = true ]; then env CC=gcc \ @@ -296,7 +295,7 @@ fi # Final housekeeping and permissions # if [ "$poodle" = true ] || [ "$lassen" = true ] || [ "$rzwhippet" = true ] || \ - [ "$rzvernal" = true ] || [ "$trinity" = true ] || \ + [ "$rzvernal" = true ] || [ "$crossroads" = true ] || \ [ "$tuolumne" = true ]; then mv ${build_visit_script}_log ${build_visit_script}_log.${machine_name} # just in case perms @@ -316,12 +315,12 @@ then echo "Invalid or missing machine name." echo "Usage: - -v -s " echo "Valid machine names:" - echo " poodle (LC, Linux, x86_64, toss4)," - echo " lassen (LC, Linux, power9)," - echo " rzgenie (LC, Linux, x86_64, toss3)," - echo " rzvernal (LC, Linux, x86_64, toss4-cray)," - echo " trinity (LANL, Linux, x86_64)" - echo " tuolumne (LC, Linux, x86_64, toss4-cray)," - echo " rzadams (LC, Linux, x86_64, toss4-cray)," + echo " poodle (LC, Linux, x86_64, toss4)," + echo " lassen (LC, Linux, power9)," + echo " rzgenie (LC, Linux, x86_64, toss3)," + echo " rzvernal (LC, Linux, x86_64, toss4-cray)," + echo " crossroads (LANL, Linux, x86_64)" + echo " tuolumne (LC, Linux, x86_64, toss4-cray)," + echo " rzadams (LC, Linux, x86_64, toss4-cray)," exit fi diff --git a/src/config-site/xr-fe1.cmake b/src/config-site/xr-fe1.cmake new file mode 100644 index 00000000000..5b6015c86d2 --- /dev/null +++ b/src/config-site/xr-fe1.cmake @@ -0,0 +1,231 @@ +#/usr/projects/views/visit/thirdparty_shared/3.4.2/cmake/3.24.3/linux-x86_64_gcc-12.2/bin/cmake +## +## ./build_visit3_4_2 generated host.cmake +## created: Wed 04 Dec 2024 03:51:16 PM MST +## system: Linux xr-fe1 5.14.21-150400.24.111_12.0.90-cray_shasta_c #1 SMP Fri Apr 19 23:37:58 UTC 2024 (18c041e) x86_64 x86_64 x86_64 GNU/Linux +## by: brugger + +## +## Setup VISITHOME & VISITARCH variables. +## +SET(VISITHOME /usr/projects/views/visit/loser/thirdparty_shared/3.4.2) +SET(VISITARCH linux-x86_64_gcc-12.2) + +## Compiler flags. +## +VISIT_OPTION_DEFAULT(VISIT_C_COMPILER cc TYPE FILEPATH) +VISIT_OPTION_DEFAULT(VISIT_CXX_COMPILER CC TYPE FILEPATH) +VISIT_OPTION_DEFAULT(VISIT_FORTRAN_COMPILER no TYPE FILEPATH) +VISIT_OPTION_DEFAULT(VISIT_C_FLAGS " -m64 -fPIC -fvisibility=hidden" TYPE STRING) +VISIT_OPTION_DEFAULT(VISIT_CXX_FLAGS " -m64 -fPIC -fvisibility=hidden" TYPE STRING) + +## +## Parallel Build Setup. +## +VISIT_OPTION_DEFAULT(VISIT_PARALLEL ON TYPE BOOL) +## (configured w/ mpi compiler wrapper) +VISIT_OPTION_DEFAULT(VISIT_MPI_COMPILER mpicc TYPE FILEPATH) +VISIT_OPTION_DEFAULT(VISIT_CREATE_SOCKET_RELAY_EXECUTABLE ON) + +## +## VisIt Thread Option +## +VISIT_OPTION_DEFAULT(VISIT_THREAD OFF TYPE BOOL) + +## +## Turn on DDT support. +## +##VISIT_OPTION_DEFAULT(VISIT_DDT ON TYPE BOOL) + +############################################################## +## +## Database reader plugin support libraries +## +## The HDF5 and NetCDF libraries must be first so that +## their libdeps are defined for any plugins that need them. +## +## For libraries with LIBDEP settings, order matters. +## Libraries with LIBDEP settings that depend on other +## Library's LIBDEP settings must come after them. +############################################################## +## + +## +## ZLIB +## +SETUP_APP_VERSION(ZLIB 1.2.13) +VISIT_OPTION_DEFAULT(VISIT_ZLIB_DIR ${VISITHOME}/zlib/${ZLIB_VERSION}/${VISITARCH}) + +## +## Python +## +VISIT_OPTION_DEFAULT(VISIT_PYTHON_DIR ${VISITHOME}/python/3.9.18/${VISITARCH}) + +## +## LLVM +## +VISIT_OPTION_DEFAULT(VISIT_LLVM_DIR ${VISITHOME}/llvm/6.0.1/${VISITARCH}) + +## +## MesaGL +## +VISIT_OPTION_DEFAULT(VISIT_MESAGL_DIR ${VISITHOME}/mesagl/17.3.9/${VISITARCH}) + +## +## QT6 +## +SETUP_APP_VERSION(QT 6.4.2) +VISIT_OPTION_DEFAULT(VISIT_QT_DIR ${VISITHOME}/qt/6.4.2/${VISITARCH}) + +## +## OSPRay +## +SETUP_APP_VERSION(OSPRAY 3.0.0) +VISIT_OPTION_DEFAULT(VISIT_OSPRAY_DIR ${VISITHOME}/ospray/${OSPRAY_VERSION}/${VISITARCH}/ospray) + +## +## VTK +## +SETUP_APP_VERSION(VTK 9.2.6) +VISIT_OPTION_DEFAULT(VISIT_VTK_DIR ${VISITHOME}/vtk/${VTK_VERSION}/${VISITARCH}) +VISIT_OPTION_DEFAULT(VISIT_VTK_INCDEP ZLIB_INCLUDE_DIR) +VISIT_OPTION_DEFAULT(VISIT_VTK_LIBDEP ZLIB_LIBRARY) + +## +## SZIP +## +VISIT_OPTION_DEFAULT(VISIT_SZIP_DIR ${VISITHOME}/szip/2.1/${VISITARCH}) + +## +## HDF5 +## +VISIT_OPTION_DEFAULT(VISIT_HDF5_DIR ${VISITHOME}/hdf5/1.8.14/${VISITARCH}) +VISIT_OPTION_DEFAULT(VISIT_HDF5_MPI_DIR ${VISITHOME}/hdf5_mpi/1.8.14/${VISITARCH}) +VISIT_OPTION_DEFAULT(VISIT_HDF5_LIBDEP ${VISITHOME}/szip/2.1/${VISITARCH}/lib sz ${VISITHOME}/zlib/${ZLIB_VERSION}/${VISITARCH}/lib z TYPE STRING) +VISIT_OPTION_DEFAULT(VISIT_HDF5_MPI_LIBDEP ${VISITHOME}/szip/2.1/${VISITARCH}/lib sz ${VISITHOME}/zlib/${ZLIB_VERSION}/${VISITARCH}/lib z TYPE STRING) + +## +## BLOSC2 +## +VISIT_OPTION_DEFAULT(VISIT_BLOSC2_DIR ${VISITHOME}/blosc2/2.11.3/${VISITARCH}) + +## +## ADIOS2 +## +SETUP_APP_VERSION(ADIOS2 2.10.0-rc1) +VISIT_OPTION_DEFAULT(VISIT_ADIOS2_DIR ${VISITHOME}/adios2-ser/${ADIOS2_VERSION}/${VISITARCH}) +## (configured w/ mpi compiler wrapper) +VISIT_OPTION_DEFAULT(VISIT_ADIOS2_PAR_DIR ${VISITHOME}/adios2-par/${ADIOS2_VERSION}/${VISITARCH}) + +## +## AdvIO +## +VISIT_OPTION_DEFAULT(VISIT_ADVIO_DIR ${VISITHOME}/AdvIO/1.2/${VISITARCH}) + +## +## BOOST +## +SETUP_APP_VERSION(BOOST 1_67_0) +VISIT_OPTION_DEFAULT(VISIT_BOOST_DIR ${VISITHOME}/boost/${BOOST_VERSION}/${VISITARCH}) + +## +## Boxlib +## +VISIT_OPTION_DEFAULT(VISIT_BOXLIB_DIR ${VISITHOME}/boxlib/1.3.5/${VISITARCH}) + +## +## CFITSIO +## +VISIT_OPTION_DEFAULT(VISIT_CFITSIO_DIR ${VISITHOME}/cfitsio/3006/${VISITARCH}) + +## +## CGNS +## +VISIT_OPTION_DEFAULT(VISIT_CGNS_DIR ${VISITHOME}/cgns/4.1.0/${VISITARCH}) +VISIT_OPTION_DEFAULT(VISIT_CGNS_LIBDEP HDF5_LIBRARY_DIR hdf5 ${VISIT_HDF5_LIBDEP} TYPE STRING) + +## +## Silo +## +VISIT_OPTION_DEFAULT(VISIT_SILO_DIR ${VISITHOME}/silo/4.10.2/${VISITARCH}) +VISIT_OPTION_DEFAULT(VISIT_SILO_LIBDEP HDF5_LIBRARY_DIR hdf5 ${VISIT_HDF5_LIBDEP} ZLIB_LIBRARY_DIR z TYPE STRING) + +## +## Conduit +## +SETUP_APP_VERSION(CONDUIT 0.9.2) +VISIT_OPTION_DEFAULT(VISIT_CONDUIT_DIR ${VISITHOME}/conduit/v0.9.2/${VISITARCH}) +VISIT_OPTION_DEFAULT(VISIT_CONDUIT_LIBDEP HDF5_LIBRARY_DIR hdf5 ${VISIT_HDF5_LIBDEP} ${VISIT_SILO_LIBDEP} TYPE STRING) + +## +## FMS +## +VISIT_OPTION_DEFAULT(VISIT_FMS_DIR ${VISITHOME}/fms/0.2/${VISITARCH}) +VISIT_OPTION_DEFAULT(VISIT_FMS_LIBDEP CONDUIT_LIBRARY_DIR conduit CONDUIT_LIBRARY_DIR conduit_blueprint CONDUIT_LIBRARY_DIR conduit_relay ${VISIT_CONDUIT_LIBDEP} TYPE STRING) + +## +## H5Part +## +SETUP_APP_VERSION(H5PART 1.6.6) +VISIT_OPTION_DEFAULT(VISIT_H5PART_DIR ${VISITHOME}/h5part/${H5PART_VERSION}/${VISITARCH}) +VISIT_OPTION_DEFAULT(VISIT_H5PART_LIBDEP HDF5_LIBRARY_DIR hdf5 ${VISIT_HDF5_LIBDEP} TYPE STRING) + +## +## IceT +## +VISIT_OPTION_DEFAULT(VISIT_ICET_DIR ${VISITHOME}/icet/77c708f9090236b576669b74c53e9f105eedbd7e/${VISITARCH}) + +## +## MFEM +## +VISIT_OPTION_DEFAULT(VISIT_MFEM_DIR ${VISITHOME}/mfem/4.6/${VISITARCH}) +VISIT_OPTION_DEFAULT(VISIT_MFEM_INCDEP CONDUIT_INCLUDE_DIR FMS_INCLUDE_DIR TYPE STRING) +VISIT_OPTION_DEFAULT(VISIT_MFEM_LIBDEP ${VISIT_CONDUIT_LIBDEP} ${VISITHOME}/zlib/${ZLIB_VERSION}/${VISITARCH}/lib z TYPE STRING) + +## +## Mili +## +VISIT_OPTION_DEFAULT(VISIT_MILI_DIR ${VISITHOME}/mili/23.02/${VISITARCH}) + +## +## MOAB +## +VISIT_OPTION_DEFAULT(VISIT_MOAB_DIR ${VISITHOME}/moab/5.5.0/${VISITARCH}) +VISIT_OPTION_DEFAULT(VISIT_MOAB_LIBDEP HDF5_LIBRARY_DIR hdf5 ${VISIT_HDF5_LIBDEP} TYPE STRING) +VISIT_OPTION_DEFAULT(VISIT_MOAB_MPI_DIR ${VISITHOME}/moab_mpi/5.5.0/${VISITARCH}) +VISIT_OPTION_DEFAULT(VISIT_MOAB_MPI_LIBDEP HDF5_MPI_LIBRARY_DIR hdf5_mpi ${VISIT_HDF5_MPI_LIBDEP} TYPE STRING) + +## +## NetCDF +## +VISIT_OPTION_DEFAULT(VISIT_NETCDF_DIR ${VISITHOME}/netcdf/4.1.1/${VISITARCH}) +VISIT_OPTION_DEFAULT(VISIT_NETCDF_LIBDEP HDF5_LIBRARY_DIR hdf5_hl HDF5_LIBRARY_DIR hdf5 ${VISIT_HDF5_LIBDEP} TYPE STRING) + +## +## OpenEXR +## +VISIT_OPTION_DEFAULT(VISIT_OPENEXR_DIR ${VISITHOME}/openexr/2.2.0/${VISITARCH}) + +## +## PIDX +## +SETUP_APP_VERSION(PIDX 0.9.3) +VISIT_OPTION_DEFAULT(VISIT_PIDX_DIR ${VISITHOME}/pidx/${PIDX_VERSION}/${VISITARCH}) + +## +## QWT +## +SETUP_APP_VERSION(QWT 6.3.0) +VISIT_OPTION_DEFAULT(VISIT_QWT_DIR ${VISITHOME}/qwt/${QWT_VERSION}/${VISITARCH}) + +## +## VTKM +## +VISIT_OPTION_DEFAULT(VISIT_VTKM_DIR ${VISITHOME}/vtkm/v1.9.0/${VISITARCH}) + +## +## Xdmf +## +VISIT_OPTION_DEFAULT(VISIT_XDMF_DIR ${VISITHOME}/Xdmf/2.1.1/${VISITARCH}) +VISIT_OPTION_DEFAULT(VISIT_XDMF_LIBDEP HDF5_LIBRARY_DIR hdf5 ${VISITHOME}/vtk/${VTK_VERSION}/${VISITARCH}/lib64 vtklibxml2-${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION} TYPE STRING) + diff --git a/src/tools/dev/scripts/bv_support/bv_adios2.sh b/src/tools/dev/scripts/bv_support/bv_adios2.sh index 6a71940896a..0900d2665d8 100644 --- a/src/tools/dev/scripts/bv_support/bv_adios2.sh +++ b/src/tools/dev/scripts/bv_support/bv_adios2.sh @@ -205,9 +205,7 @@ function build_adios2 # note: lib dir can be `lib``, or `lib64` depending on the platform if [[ -d "${BLOSC2_INSTALL_DIR}/lib64/" ]] ; then BLOSC2_LIBRARY="${BLOSC2_INSTALL_DIR}/lib64/libblosc2.${SO_EXT}" - fi - - if [[ -d "${BLOSC2_INSTALL_DIR}/lib/" ]] ; then + elif [[ -d "${BLOSC2_INSTALL_DIR}/lib/" ]] ; then BLOSC2_LIBRARY="${BLOSC2_INSTALL_DIR}/lib/libblosc2.${SO_EXT}" fi diff --git a/src/tools/dev/scripts/bv_support/bv_blosc2.sh b/src/tools/dev/scripts/bv_support/bv_blosc2.sh index e01aa907baf..0d3e4852bdb 100644 --- a/src/tools/dev/scripts/bv_support/bv_blosc2.sh +++ b/src/tools/dev/scripts/bv_support/bv_blosc2.sh @@ -72,6 +72,11 @@ function build_blosc2 cd $BLOSC2_BUILD_DIR || error "Can't cd to BLOSC2 source dir." cfg_opts="-DCMAKE_INSTALL_PREFIX:PATH=${VISITDIR}/blosc2/${BLOSC2_VERSION}/${VISITARCH}" + # Enable ssse3 target feature on intel and amd processors. + if [[ "$(uname -m)" == "x86_64" ]] ; then + cfg_opts="$cfg_opts -DCMAKE_C_FLAGS=-mssse3" + cfg_opts="$cfg_opts -DCMAKE_CXX_FLAGS=-mssse3" + fi CMAKE_BIN="${CMAKE_INSTALL}/cmake" if test -e bv_run_cmake.sh ; then diff --git a/src/tools/dev/scripts/bv_support/bv_hdf5.sh b/src/tools/dev/scripts/bv_support/bv_hdf5.sh index 32cb5ec3549..53e49729ba8 100644 --- a/src/tools/dev/scripts/bv_support/bv_hdf5.sh +++ b/src/tools/dev/scripts/bv_support/bv_hdf5.sh @@ -635,10 +635,12 @@ function build_hdf5 fi # In order to ensure $cf_fortranargs is expanded to build the arguments to - # configure, we wrap the invokation in 'sh -c "..."' syntax C_OPT_FLAGS="-Wno-error=implicit-function-declaration" + # ignore conversion of NULL to int. + C_OPT_FLAGS="$C_OPT_FLAGS -Wno-error=int-conversion" info "Invoking command to configure $bt HDF5" set -x + # configure, we wrap the invokation in 'sh -c "..."' syntax sh -c "../configure CC=\"$cf_c_compiler\" \ CFLAGS=\"$CFLAGS $C_OPT_FLAGS $cf_extra_flags\" $cf_fortranargs \ --prefix=\"$VISITDIR/hdf5${cf_par_suffix}/$HDF5_VERSION/$VISITARCH\" \ From 02347a2cd01061d3956d0e5e39e0f55e7845d4f3 Mon Sep 17 00:00:00 2001 From: Justin Privitera <35237779+JustinPrivitera@users.noreply.github.com> Date: Tue, 17 Dec 2024 15:19:49 -0800 Subject: [PATCH 3/3] fix sierra config site for conduit (#20147) (#20148) --- src/config-site/sierra4358.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/config-site/sierra4358.cmake b/src/config-site/sierra4358.cmake index 342599d945b..2642b7f044b 100644 --- a/src/config-site/sierra4358.cmake +++ b/src/config-site/sierra4358.cmake @@ -151,8 +151,8 @@ VISIT_OPTION_DEFAULT(VISIT_SILO_LIBDEP HDF5_LIBRARY_DIR hdf5 ${VISIT_HDF5_LIBDEP ## ## Conduit ## -SETUP_APP_VERSION(CONDUIT 0.9.1) -VISIT_OPTION_DEFAULT(VISIT_CONDUIT_DIR ${VISITHOME}/conduit/v0.9.1/${VISITARCH}) +SETUP_APP_VERSION(CONDUIT 0.9.2) +VISIT_OPTION_DEFAULT(VISIT_CONDUIT_DIR ${VISITHOME}/conduit/v0.9.2/${VISITARCH}) VISIT_OPTION_DEFAULT(VISIT_CONDUIT_LIBDEP HDF5_LIBRARY_DIR hdf5 ${VISIT_HDF5_LIBDEP} ${VISIT_SILO_LIBDEP} TYPE STRING) ##