From 8650b8ccc1058841eb4b1fbd623b0353b71f449b Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Mon, 24 Aug 2026 23:36:03 +0200 Subject: [PATCH 1/2] Restore parts of the pre-PR5776 use of response files on OSX --- CMakeLists.txt | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index da2d89fb49..e8e2139fa1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -341,11 +341,13 @@ if (USE_OPENMP) endif() endif() -# Second part of "Argument list too long" fix when static libraries are -# built. See above for details. -if(APPLE AND BUILD_STATIC_LIBS) +# Fix "Argument list too long" for macOS - mostly seen with older OS versions on POWERPC or Intel CPUs +if(APPLE) + # Use response files + set(CMAKE_C_USE_RESPONSE_FILE_FOR_OBJECTS 1) # Always build static library first - set(STATIC_PATH "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${OpenBLAS_LIBNAME}.a") + if(BUILD_STATIC_LIBS) + set(STATIC_PATH "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${OpenBLAS_LIBNAME}.a") # Handle differences in how many response files are generated and/or where # they are stored for Ninja / Unix Makefiles. if("${CMAKE_GENERATOR}" MATCHES "Ninja") @@ -353,10 +355,12 @@ if(APPLE AND BUILD_STATIC_LIBS) "sh -c 'cat ${CMAKE_BINARY_DIR}/CMakeFiles/openblas_static.rsp | xargs -n 1024 ${CMAKE_AR} -ru ${STATIC_PATH} && exit 0' " "sh -c '${CMAKE_AR} -rs ${STATIC_PATH} ${CMAKE_BINARY_DIR}/driver/others/CMakeFiles/driver_others.dir/xerbla.c.o && exit 0' ") else() - set(CREATE_STATIC_LIBRARY_COMMAND - "sh -c 'cat ${CMAKE_BINARY_DIR}/CMakeFiles/${OpenBLAS_LIBNAME}_static.dir/objects*.rsp | xargs -n 1024 ${CMAKE_AR} -ru ${STATIC_PATH} && exit 0' " - "sh -c '${CMAKE_AR} -rs ${STATIC_PATH} ${CMAKE_BINARY_DIR}/driver/others/CMakeFiles/driver_others.dir/xerbla.c.o && exit 0' ") + add_library(${OpenBLAS_LIBNAME}_static STATIC ${TARGET_OBJS} ${OpenBLAS_DEF_FILE}) + set(STATIC_PATH "lib${OpenBLAS_LIBNAME}.a") endif() + set(CREATE_STATIC_LIBRARY_COMMAND + "sh -c 'cat ${CMAKE_BINARY_DIR}/CMakeFiles/${OpenBLAS_LIBNAME}_static.dir/objects*.rsp | xargs -n 1024 ${CMAKE_AR} -ru ${STATIC_PATH} && exit 0' " + "sh -c '${CMAKE_AR} -rs ${STATIC_PATH} ${CMAKE_BINARY_DIR}/driver/others/CMakeFiles/driver_others.dir/xerbla.c.o && exit 0' ") if(BUILD_SHARED_LIBS) add_dependencies(${OpenBLAS_LIBNAME}_shared ${OpenBLAS_LIBNAME}_static) set(SHARED_PATH "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libopenblas.${OpenBLAS_MAJOR_VERSION}.${OpenBLAS_MINOR_VERSION}.dylib") From 7a5b8aabd758e47b637ead7035cfba12b9cd9e7f Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Tue, 25 Aug 2026 14:19:27 +0200 Subject: [PATCH 2/2] fix missing endif --- CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index e8e2139fa1..86ae8f5f0a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -348,6 +348,7 @@ if(APPLE) # Always build static library first if(BUILD_STATIC_LIBS) set(STATIC_PATH "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${OpenBLAS_LIBNAME}.a") + endif () # Handle differences in how many response files are generated and/or where # they are stored for Ninja / Unix Makefiles. if("${CMAKE_GENERATOR}" MATCHES "Ninja")