From d539685c49a83686c72a32e658594cf304f184f0 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Sun, 12 Oct 2025 14:04:34 -0700 Subject: [PATCH 1/4] rewrite lapacke headers with pre/postfixes if necessary --- Makefile.install | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/Makefile.install b/Makefile.install index 3c8d47642b..bd126999ae 100644 --- a/Makefile.install +++ b/Makefile.install @@ -93,9 +93,28 @@ endif ifneq ($(OSNAME), AIX) ifneq ($(NO_LAPACKE), 1) + @cp $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke.h lapacke_h.tmp +ifdef SYMBOLPREFIX + @sed 's/LAPACKE_.*[^() ]*/$(SYMBOLPREFIX)&/g' lapacke_h.tmp > lapacke.tmp2 + @mv lapacke.tmp2 lapacke_h.tmp +endif +ifdef SYMBOLSUFFIX + @sed 's/LAPACKE_*[^() ]*/&$(SYMBOLSUFFIX)/g' lapacke_h.tmp > lapacke.tmp2 + @mv lapacke.tmp2 lapacke_h.tmp +endif + @-install -m644 lapacke_h.tmp "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke.h" @echo Copying LAPACKE header files to $(DESTDIR)$(OPENBLAS_INCLUDE_DIR) + @cp $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapack.h lapack_h.tmp +ifdef SYMBOLPREFIX + @sed 's/LAPACK_[a-z1-9]*(\.\.\.)/$(SYMBOLPREFIX)&/g' lapack_h.tmp > lapack.tmp2 + @mv lapack.tmp2 lapack_h.tmp +endif +ifdef SYMBOLSUFFIX + @sed 's/\(#define $(SYMBOLPREFIX)LAPACK_[a-z1-9].*\)\((...)\)/\1$(SYMBOLSUFFIX)\2/g' lapack_h.tmp > lapack.tmp2 + @mv lapack.tmp2 lapack_h.tmp +endif @-install -m644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapack.h "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapack.h" - @-install -m644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke.h "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke.h" + #@-install -m644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke.h "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke.h" @-install -m644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke_config.h "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke_config.h" @-install -m644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke_mangling_with_flags.h.in "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke_mangling.h" @-install -m644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke_utils.h "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke_utils.h" From 96f34621fb53ae4fd45e8ac3f368b4f86d5555d6 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Wed, 15 Oct 2025 09:02:18 -0700 Subject: [PATCH 2/4] Add symbol pre- and/or postfixes to lapack.h and lapacke.h --- CMakeLists.txt | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5895cf060a..5825ad33bc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -703,6 +703,39 @@ if(NOT NO_LAPACKE) COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/lapack-netlib/LAPACKE/include/lapacke_mangling_with_flags.h.in "${CMAKE_BINARY_DIR}/lapacke_mangling.h" ) install (FILES ${CMAKE_BINARY_DIR}/lapacke_mangling.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + if (NOT (${SYMBOLPREFIX}${SYMBOLSUFFIX} STREQUAL "")) + message (STATUS "Generating lapacke.h in ${CMAKE_INSTALL_INCLUDEDIR}") + set(LAPACKE_H ${CMAKE_BINARY_DIR}/generated/lapacke.h) + file(READ ${CMAKE_CURRENT_SOURCE_DIR}/lapack-netlib/LAPACKE/include/lapacke.h LAPACKE_H_CONTENTS) + if (NOT ${SYMBOLPREFIX} STREQUAL "") + string(REGEX REPLACE "(LAPACKE_*)" " ${SYMBOLPREFIX}\\1" LAPACKE_H_CONTENTS_NEW "${LAPACKE_H_CONTENTS}") + string(REPLACE "_ ${SYMBOLPREFIX}LAPACKE_H_" "_LAPACKE_H_" LAPACKE_H_CONTENTS ${LAPACKE_H_CONTENTS_NEW}) + string(REPLACE "${SYMBOLPREFIX}LAPACKE_malloc" "LAPACKE_malloc" LAPACKE_H_CONTENTS_NEW ${LAPACKE_H_CONTENTS}) + string(REPLACE "${SYMBOLPREFIX}LAPACKE_free" "LAPACKE_free" LAPACKE_H_CONTENTS ${LAPACKE_H_CONTENTS_NEW}) + set(LAPACKE_H_CONTENTS_NEW ${LAPACKE_H_CONTENTS}) + endif() + if (NOT ${SYMBOLSUFFIX} STREQUAL "") + string(REGEX REPLACE "(${SYMBOLPREFIX}LAPACKE_[a-z1-9]*[^ (]*)" "\\1${SYMBOLSUFFIX}" LAPACKE_H_CONTENTS_NEW "${LAPACKE_H_CONTENTS}") + string(REPLACE "#define${SYMBOLSUFFIX}" "#define" LAPACKE_H_CONTENTS ${LAPACKE_H_CONTENTS_NEW}) + string(REPLACE "LAPACKE_malloc${SYMBOLSUFFIX}" "LAPACKE_malloc" LAPACKE_H_CONTENTS_NEW ${LAPACKE_H_CONTENTS}) + string(REPLACE "LAPACKE_free${SYMBOLSUFFIX}" "LAPACKE_free" LAPACKE_H_CONTENTS ${LAPACKE_H_CONTENTS_NEW}) + set(LAPACKE_H_CONTENTS_NEW ${LAPACKE_H_CONTENTS}) + endif() + file(WRITE ${LAPACKE_H} "${LAPACKE_H_CONTENTS_NEW}") + install (FILES ${LAPACKE_H} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + message (STATUS "Generating lapack.h in ${CMAKE_INSTALL_INCLUDEDIR}") + set(LAPACK_H ${CMAKE_BINARY_DIR}/generated/lapack.h) + file(READ ${CMAKE_CURRENT_SOURCE_DIR}/lapack-netlib/LAPACKE/include/lapack.h LAPACK_H_CONTENTS) + if (NOT ${SYMBOLPREFIX} STREQUAL "") + string(REGEX REPLACE "(LAPACK_[a-z1-9]*[ \(][.\)]*)" "${SYMBOLPREFIX}\\1" LAPACK_H_CONTENTS_NEW "${LAPACK_H_CONTENTS}") + set(LAPACK_H_CONTENTS ${LAPACK_H_CONTENTS_NEW}) + endif() + if (NOT ${SYMBOLSUFFIX} STREQUAL "") + string(REGEX REPLACE "(${SYMBOLPREFIX}LAPACK_[a-z1-9]*)([ \(].\)" "\\1${SYMBOLSUFFIX}\\2" LAPACK_H_CONTENTS_NEW "${LAPACK_H_CONTENTS}") + endif() + file(WRITE ${LAPACK_H} "${LAPACK_H_CONTENTS_NEW}") + install (FILES ${LAPACK_H} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +endif() endif() # Install pkg-config files From 3d5010bf3705ab6d12aa9a05e06eeccc8ed0b36c Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Thu, 16 Oct 2025 11:35:27 +0200 Subject: [PATCH 3/4] Fix test for pre/postfix --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5825ad33bc..2d1a3d0da8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -703,7 +703,7 @@ if(NOT NO_LAPACKE) COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/lapack-netlib/LAPACKE/include/lapacke_mangling_with_flags.h.in "${CMAKE_BINARY_DIR}/lapacke_mangling.h" ) install (FILES ${CMAKE_BINARY_DIR}/lapacke_mangling.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) - if (NOT (${SYMBOLPREFIX}${SYMBOLSUFFIX} STREQUAL "")) + if (NOT (x${SYMBOLPREFIX}${SYMBOLSUFFIX} STREQUAL "x")) message (STATUS "Generating lapacke.h in ${CMAKE_INSTALL_INCLUDEDIR}") set(LAPACKE_H ${CMAKE_BINARY_DIR}/generated/lapacke.h) file(READ ${CMAKE_CURRENT_SOURCE_DIR}/lapack-netlib/LAPACKE/include/lapacke.h LAPACKE_H_CONTENTS) From 92fe96b46087edd5f9e528b141567e0cfc5fff80 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Sun, 2 Nov 2025 13:17:31 -0800 Subject: [PATCH 4/4] fix processing of lapacke.h --- Makefile.install | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Makefile.install b/Makefile.install index bd126999ae..5fc6b9560c 100644 --- a/Makefile.install +++ b/Makefile.install @@ -95,11 +95,11 @@ ifneq ($(OSNAME), AIX) ifneq ($(NO_LAPACKE), 1) @cp $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke.h lapacke_h.tmp ifdef SYMBOLPREFIX - @sed 's/LAPACKE_.*[^() ]*/$(SYMBOLPREFIX)&/g' lapacke_h.tmp > lapacke.tmp2 + @sed 's/LAPACKE_[a-z1-9].[^() ]*/$(SYMBOLPREFIX)&/g' lapacke_h.tmp > lapacke.tmp2 @mv lapacke.tmp2 lapacke_h.tmp endif ifdef SYMBOLSUFFIX - @sed 's/LAPACKE_*[^() ]*/&$(SYMBOLSUFFIX)/g' lapacke_h.tmp > lapacke.tmp2 + @sed 's/LAPACKE_[a-z1-9].[^() ]*/&$(SYMBOLSUFFIX)/g' lapacke_h.tmp > lapacke.tmp2 @mv lapacke.tmp2 lapacke_h.tmp endif @-install -m644 lapacke_h.tmp "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke.h" @@ -113,8 +113,7 @@ ifdef SYMBOLSUFFIX @sed 's/\(#define $(SYMBOLPREFIX)LAPACK_[a-z1-9].*\)\((...)\)/\1$(SYMBOLSUFFIX)\2/g' lapack_h.tmp > lapack.tmp2 @mv lapack.tmp2 lapack_h.tmp endif - @-install -m644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapack.h "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapack.h" - #@-install -m644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke.h "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke.h" + @-install -m644 lapack_h.tmp "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapack.h" @-install -m644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke_config.h "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke_config.h" @-install -m644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke_mangling_with_flags.h.in "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke_mangling.h" @-install -m644 $(NETLIB_LAPACK_DIR)/LAPACKE/include/lapacke_utils.h "$(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke_utils.h"