From 62898227fc9ace37d20d2422cfb8d3f53e146f9f Mon Sep 17 00:00:00 2001 From: Dana Robinson Date: Mon, 20 May 2024 04:46:49 -0700 Subject: [PATCH] Fix libtool sed cleanup on MacOS Convert sed -i line to sed > libtool.bak && mv libtool.bak libtool to avoid non-portable -i option. --- configure.ac | 3 ++- release_docs/RELEASE.txt | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 00b4fd55d70..7b8c25c79cc 100644 --- a/configure.ac +++ b/configure.ac @@ -4617,7 +4617,8 @@ fi ## linker flags: -l with no library name; -l , specifically gfortran or m. ## This sed script corrects "-l " first and then "-l " with no library name. ## If the order is not preserved, all instances of "-l " will be removed. -sed -e '/^postdeps/ s/-l \([a-zA-Z]\)/-l\1/g' -e '/^postdeps/ s/-l //g' -i libtool +sed -e '/^postdeps/ s/-l \([a-zA-Z]\)/-l\1/g' -e '/^postdeps/ s/-l //g' libtool > libtool.bak +mv -- libtool.bak libtool ## show the configure settings cat src/libhdf5.settings diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index 157e956996c..3fab61f4548 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -1674,6 +1674,22 @@ Bug Fixes since HDF5-1.14.0 release Configuration ------------- + - Fixed/reverted an Autotools configure hack that causes problems on MacOS + + A sed line in configure.ac was added in the past to paper over some + problems with older versions of the Autotools that would add incorrect + linker flags. This used the -i option in a way that caused silent + errors on MacOS that did not break the build. + + The original fix for this problem (in 1.14.4) removed the sed line + entirely, but it turns out that the sed cleanup is still necessary + on some systems, where empty -l options will be added to the libtool + script. + + This sed line has been restored and reworked to not use -i. + + Fixes GitHub issues #3843 and #4448 + - Fixed a list index out of range issue in the runTest.cmake file Fixed an issue in config/cmake/runTest.cmake where the CMake logic