[Buildroot] [PATCH v5 2/3] package/clapack: Remove

Arnout Vandecappelle (Essensium/Mind) arnout at mind.be
Sun Jul 25 11:12:30 UTC 2021


clapack has been unmaintained for a couple of years. It is
semi-automatically generated from lapack sources using the f2c
fortran-to-C converter, which itself is pretty much unmaintained.

Remove the package. Remove the dependency on !CLAPACK from lapack.
Automatically select lapack from legacy if possible.

Cc: Alexandre PAYEN <alexandre.payen at smile.fr>
Cc: Benjamin Kamath <kamath.ben at gmail.com>
Cc: Thomas De Schampheleire <thomas.de_schampheleire at nokia.com>
Cc: Romain Naour <romain.naour at smile.fr>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout at mind.be>
---
 Config.in.legacy                              |  9 +++
 DEVELOPERS                                    |  1 -
 package/Config.in                             |  1 -
 ...bf2c-to-be-built-as-a-static-library.patch | 32 --------
 ...est-build-sensitive-to-BUILD_TESTING.patch | 80 -------------------
 ...-to-run-arithchk-when-cross-compilin.patch | 70 ----------------
 ...add-library-and-header-install-rules.patch | 23 ------
 ...add-library-and-header-install-rules.patch | 24 ------
 package/clapack/0006-remove-uninit-f2c.patch  | 24 ------
 package/clapack/0007-off64-t.patch            | 16 ----
 package/clapack/Config.in                     | 33 --------
 package/clapack/clapack.hash                  |  5 --
 package/clapack/clapack.mk                    | 22 -----
 package/lapack/Config.in                      |  1 -
 14 files changed, 9 insertions(+), 332 deletions(-)
 delete mode 100644 package/clapack/0001-cmake-force-libf2c-to-be-built-as-a-static-library.patch
 delete mode 100644 package/clapack/0002-cmake-make-test-build-sensitive-to-BUILD_TESTING.patch
 delete mode 100644 package/clapack/0003-cmake-do-not-try-to-run-arithchk-when-cross-compilin.patch
 delete mode 100644 package/clapack/0004-cmake-blas-add-library-and-header-install-rules.patch
 delete mode 100644 package/clapack/0005-cmake-lapack-add-library-and-header-install-rules.patch
 delete mode 100644 package/clapack/0006-remove-uninit-f2c.patch
 delete mode 100644 package/clapack/0007-off64-t.patch
 delete mode 100644 package/clapack/Config.in
 delete mode 100644 package/clapack/clapack.hash
 delete mode 100644 package/clapack/clapack.mk

diff --git a/Config.in.legacy b/Config.in.legacy
index aee7e425ef..fdb0369de2 100644
--- a/Config.in.legacy
+++ b/Config.in.legacy
@@ -146,6 +146,15 @@ endif
 
 comment "Legacy options removed in 2021.08"
 
+config BR2_PACKAGE_CLAPACK
+	bool "cblas/clapack package removed"
+	select BR2_LEGACY
+	select BR2_PACKAGE_LAPACK if BR2_PACKAGE_LAPACK_ARCH_SUPPORTS && BR2_TOOLCHAIN_HAS_FORTRAN
+	help
+	  The clapack package was removed. LAPACK no longer generates a
+	  C version. Use lapack instead. This does require a Fortran
+	  compilerhowever.
+
 config BR2_PACKAGE_SPIDERMONKEY
 	bool "spidermonkey package removed"
 	select BR2_LEGACY
diff --git a/DEVELOPERS b/DEVELOPERS
index 596670993a..119c9e0862 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2387,7 +2387,6 @@ F:	package/lrzip/
 N:	Samuel Martin <s.martin49 at gmail.com>
 F:	package/armadillo/
 F:	package/canfestival/
-F:	package/clapack/
 F:	package/cwiid/
 F:	package/flite/
 F:	package/nginx/
diff --git a/package/Config.in b/package/Config.in
index 12b1323fc2..f49c700f9c 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1880,7 +1880,6 @@ menu "Other"
 	source "package/cctz/Config.in"
 	source "package/cereal/Config.in"
 	source "package/clang/Config.in"
-	source "package/clapack/Config.in"
 	source "package/cmocka/Config.in"
 	source "package/cppcms/Config.in"
 	source "package/cracklib/Config.in"
diff --git a/package/clapack/0001-cmake-force-libf2c-to-be-built-as-a-static-library.patch b/package/clapack/0001-cmake-force-libf2c-to-be-built-as-a-static-library.patch
deleted file mode 100644
index 8fede9da91..0000000000
--- a/package/clapack/0001-cmake-force-libf2c-to-be-built-as-a-static-library.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 4fe2f454e454d9e6b1e83b2ea67581990461ed36 Mon Sep 17 00:00:00 2001
-From: Samuel Martin <s.martin49 at gmail.com>
-Date: Sat, 11 Jan 2014 22:05:25 +0100
-Subject: [PATCH 1/6] cmake: force libf2c to be built as a static library
-
-As stated in INSTALL/LAPACK_version.c, liblapack requires to be linked
-against the static library of libf2c.
-
-Signed-off-by: Samuel Martin <s.martin49 at gmail.com>
----
- F2CLIBS/libf2c/CMakeLists.txt | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/F2CLIBS/libf2c/CMakeLists.txt b/F2CLIBS/libf2c/CMakeLists.txt
-index 43d7b3f..f98d66a 100644
---- a/F2CLIBS/libf2c/CMakeLists.txt
-+++ b/F2CLIBS/libf2c/CMakeLists.txt
-@@ -58,5 +58,10 @@ if(WIN32)
- endif()
- include_directories(${CLAPACK_SOURCE_DIR}/F2CLIBS/libf2c)
- include_directories(${CLAPACK_BINARY_DIR}/F2CLIBS/libf2c)
--add_library(f2c ${OFILES} ${CMAKE_CURRENT_BINARY_DIR}/arith.h)
-+add_library(f2c STATIC ${OFILES} ${CMAKE_CURRENT_BINARY_DIR}/arith.h)
- set_property(TARGET f2c PROPERTY PREFIX lib)
-+# Set fPIC on the library when build shared libraries is enabled, because
-+# libf2c.a will most likely be included by some shared libraries in such cases.
-+if(UNIX AND BUILD_SHARED_LIBS)
-+  set_target_properties(f2c PROPERTIES COMPILE_FLAGS "-fPIC")
-+endif()
--- 
-1.8.5.3
-
diff --git a/package/clapack/0002-cmake-make-test-build-sensitive-to-BUILD_TESTING.patch b/package/clapack/0002-cmake-make-test-build-sensitive-to-BUILD_TESTING.patch
deleted file mode 100644
index eac4164f5d..0000000000
--- a/package/clapack/0002-cmake-make-test-build-sensitive-to-BUILD_TESTING.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From 834c221936d9c460b44e3a65b6fedfb3193f491b Mon Sep 17 00:00:00 2001
-From: Samuel Martin <s.martin49 at gmail.com>
-Date: Sat, 11 Jan 2014 21:33:12 +0100
-Subject: [PATCH 2/6] cmake: make test build sensitive to BUILD_TESTING
-
-This patch prevent from wasting time building the tests if it's our
-wish.
-
-The test build takes a significant amount of time, and the binaries
-are not installed.
-
-Signed-off-by: Samuel Martin <s.martin49 at gmail.com>
----
- BLAS/TESTING/CMakeLists.txt | 3 +++
- CMakeLists.txt              | 9 ++++++---
- TESTING/CMakeLists.txt      | 4 ++++
- 3 files changed, 13 insertions(+), 3 deletions(-)
-
-diff --git a/BLAS/TESTING/CMakeLists.txt b/BLAS/TESTING/CMakeLists.txt
-index ec2c587..e7dc0b7 100644
---- a/BLAS/TESTING/CMakeLists.txt
-+++ b/BLAS/TESTING/CMakeLists.txt
-@@ -25,6 +25,9 @@
- #       make single FRC=FRC
- #
- #######################################################################
-+if(NOT BUILD_TESTING)
-+  return()
-+endif()
- 
- macro(add_blas_test name src)
-   get_filename_component(baseNAME ${src} NAME_WE)
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 320ccc6..0a362c0 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -1,6 +1,5 @@
- cmake_minimum_required(VERSION 2.6)
- project(CLAPACK C)
--enable_testing()
- include(CTest)
- 
- if(WIN32 AND NOT CYGWIN)
-@@ -11,7 +10,9 @@ else()
-   set(SECOND_SRC  ${CLAPACK_SOURCE_DIR}/INSTALL/second.c)
-   set(DSECOND_SRC  ${CLAPACK_SOURCE_DIR}/INSTALL/dsecnd.c)
- endif()
--enable_testing()
-+if(NOT BUILD_TESTING)
-+  enable_testing()
-+endif()
- option(USE_BLAS_WRAP "pre-pend f2c_ to each function in blas" OFF)
- if(NOT USE_BLAS_WRAP)
- # _zrotg_ seems to be missing in the wrap header
-@@ -21,7 +22,9 @@ include_directories(${CLAPACK_SOURCE_DIR}/INCLUDE)
- add_subdirectory(F2CLIBS)
- add_subdirectory(BLAS)
- add_subdirectory(SRC)
--add_subdirectory(TESTING)
-+if(NOT BUILD_TESTING)
-+  add_subdirectory(TESTING)
-+endif()
- set(CLAPACK_VERSION 3.2.1)
- set(CPACK_PACKAGE_VERSION_MAJOR 3)
- set(CPACK_PACKAGE_VERSION_MINOR 2)
-diff --git a/TESTING/CMakeLists.txt b/TESTING/CMakeLists.txt
-index d59359d..f6b083a 100644
---- a/TESTING/CMakeLists.txt
-+++ b/TESTING/CMakeLists.txt
-@@ -1,3 +1,7 @@
-+if(NOT BUILD_TESTING)
-+  return()
-+endif()
-+
- if(MSVC_VERSION)
- #  string(REPLACE "/STACK:10000000" "/STACK:900000000000000000"
- #    CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}")
--- 
-1.8.5.3
-
diff --git a/package/clapack/0003-cmake-do-not-try-to-run-arithchk-when-cross-compilin.patch b/package/clapack/0003-cmake-do-not-try-to-run-arithchk-when-cross-compilin.patch
deleted file mode 100644
index cd9828ff38..0000000000
--- a/package/clapack/0003-cmake-do-not-try-to-run-arithchk-when-cross-compilin.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From a2f0669fac1f8e7183b15cf7d14f0e99a2d8b012 Mon Sep 17 00:00:00 2001
-From: Samuel Martin <s.martin49 at gmail.com>
-Date: Sat, 11 Jan 2014 21:47:39 +0100
-Subject: [PATCH 3/6] cmake: do not try to run arithchk when cross-compiling to
- generate sources
-
-Instead, use a predefined arith.h if provided, or generate a default one.
-
-The arithchk binary is still built (but not installed) to allow the user to
-run it on its target and use it; so then allowing to build an optimized
-blas library.
-
-Signed-off-by: Samuel Martin <s.martin49 at gmail.com>
----
- F2CLIBS/libf2c/CMakeLists.txt | 38 ++++++++++++++++++++++++++++----------
- 1 file changed, 28 insertions(+), 10 deletions(-)
-
-diff --git a/F2CLIBS/libf2c/CMakeLists.txt b/F2CLIBS/libf2c/CMakeLists.txt
-index f98d66a..45a0804 100644
---- a/F2CLIBS/libf2c/CMakeLists.txt
-+++ b/F2CLIBS/libf2c/CMakeLists.txt
-@@ -38,17 +38,35 @@ set(TIME dtime_.c etime_.c)
- 
- # For INTEGER*8 support (which requires system-dependent adjustments to
- # f2c.h), add ${QINT} to the OFILES  assignment below...
--add_executable(arithchk arithchk.c)
--if(UNIX)
--  target_link_libraries(arithchk m)
-+if(CMAKE_CROSSCOMPILING)
-+  if(ARITH_H)
-+    message(STATUS "Using the user-defined '${ARITH_H}' as arith.h header.")
-+    configure_file("${ARITH_H}" "${CMAKE_CURRENT_BINARY_DIR}/arith.h" COPYONLY)
-+  else()
-+    message(STATUS "No user-defined arith.h header.")
-+    if(NOT EXISTS "${CMAKE_CURRENT_BINARY_DIR}/arith.h")
-+      message(WARNING "Generating the default non-optimized 'arith.h' header.
-+
-+To generate and provide a custom arith.h header:
-+run the cross-compiled arithchk binary on your target,
-+and use its output to fill your custom arith.h header.")
-+      file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/arith.h"
-+        "/* default, not optimized arith.h */")
-+    endif()
-+  endif()
-+else()
-+  add_executable(arithchk arithchk.c)
-+  if(UNIX)
-+    target_link_libraries(arithchk m)
-+  endif()
-+  set_target_properties(arithchk PROPERTIES COMPILE_DEFINITIONS
-+    "NO_FPINIT;NO_LONG_LONG")
-+  ADD_CUSTOM_COMMAND(
-+     OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/arith.h
-+     COMMAND arithchk > ${CMAKE_CURRENT_BINARY_DIR}/arith.h
-+     DEPENDS arithchk
-+     )
- endif()
--set_target_properties(arithchk PROPERTIES COMPILE_DEFINITIONS 
--  "NO_FPINIT;NO_LONG_LONG")
--ADD_CUSTOM_COMMAND(
--   OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/arith.h
--   COMMAND arithchk > ${CMAKE_CURRENT_BINARY_DIR}/arith.h
--   DEPENDS arithchk
--   )
- 
- 
- set(OFILES  ${MISC} ${POW} ${CX} ${DCX} ${REAL} ${DBL} ${INT} 
--- 
-1.8.5.3
-
diff --git a/package/clapack/0004-cmake-blas-add-library-and-header-install-rules.patch b/package/clapack/0004-cmake-blas-add-library-and-header-install-rules.patch
deleted file mode 100644
index e83b066dac..0000000000
--- a/package/clapack/0004-cmake-blas-add-library-and-header-install-rules.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From 675111e8ffc179276a7e4950fe4a4eda4d38a703 Mon Sep 17 00:00:00 2001
-From: Samuel Martin <s.martin49 at gmail.com>
-Date: Sat, 11 Jan 2014 21:48:32 +0100
-Subject: [PATCH 4/6] cmake: blas: add library and header install rules
-
-Signed-off-by: Samuel Martin <s.martin49 at gmail.com>
----
- BLAS/SRC/CMakeLists.txt | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/BLAS/SRC/CMakeLists.txt b/BLAS/SRC/CMakeLists.txt
-index d1caff8..a5de5a1 100644
---- a/BLAS/SRC/CMakeLists.txt
-+++ b/BLAS/SRC/CMakeLists.txt
-@@ -141,3 +141,5 @@ if(UNIX)
-   target_link_libraries(blas m)
- endif()
- target_link_libraries(blas f2c)
-+install(TARGETS blas LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
-+install(FILES "${CLAPACK_SOURCE_DIR}/INCLUDE/blaswrap.h" DESTINATION include)
--- 
-1.8.5.3
-
diff --git a/package/clapack/0005-cmake-lapack-add-library-and-header-install-rules.patch b/package/clapack/0005-cmake-lapack-add-library-and-header-install-rules.patch
deleted file mode 100644
index abba460b6c..0000000000
--- a/package/clapack/0005-cmake-lapack-add-library-and-header-install-rules.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 9dfac0d55a31be59a856bad9d3a5071d65176597 Mon Sep 17 00:00:00 2001
-From: Samuel Martin <s.martin49 at gmail.com>
-Date: Sat, 11 Jan 2014 21:49:22 +0100
-Subject: [PATCH 5/6] cmake: lapack: add library and header install rules
-
-Signed-off-by: Samuel Martin <s.martin49 at gmail.com>
----
- SRC/CMakeLists.txt | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/SRC/CMakeLists.txt b/SRC/CMakeLists.txt
-index ac4cce3..aa60555 100644
---- a/SRC/CMakeLists.txt
-+++ b/SRC/CMakeLists.txt
-@@ -377,4 +377,5 @@ if(BUILD_COMPLEX16)
- endif()
- add_library(lapack ${ALLOBJ} ${ALLXOBJ})
- target_link_libraries(lapack blas)
--
-+install(TARGETS lapack LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
-+install(FILES "${CLAPACK_SOURCE_DIR}/INCLUDE/clapack.h" DESTINATION include)
--- 
-1.8.5.3
-
diff --git a/package/clapack/0006-remove-uninit-f2c.patch b/package/clapack/0006-remove-uninit-f2c.patch
deleted file mode 100644
index 83c2c5c75f..0000000000
--- a/package/clapack/0006-remove-uninit-f2c.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-uninit.c includes glibc-specific <fpu_control.h> not provided by musl.
-Somewhat portable replacement is <fenv.h>, which is available in musl
-but requires non-trivial changes to uninit.c.
-
-f2c uses _uninit_f2c() from uninit.c to implement its -trapuv option,
-pre-initializiing floating-point variables to NaN and asking FPU to send
-SIGFPE whenever NaN value is encountered.
-
-clapack source has already been run through f2c without -trapuv,
-so uninit.c code is not used anywhere and can be safely excluded.
-
-Signed-off-by: Alex Suykov <alex.suykov at gmail.com>
-
---- a/F2CLIBS/libf2c/CMakeLists.txt
-+++ b/F2CLIBS/libf2c/CMakeLists.txt
-@@ -1,7 +1,7 @@
- set(MISC 
-   f77vers.c i77vers.c main.c s_rnge.c abort_.c exit_.c getarg_.c iargc_.c
-   getenv_.c signal_.c s_stop.c s_paus.c system_.c cabs.c ctype.c
--  derf_.c derfc_.c erf_.c erfc_.c sig_die.c uninit.c)
-+  derf_.c derfc_.c erf_.c erfc_.c sig_die.c)
- set(POW pow_ci.c pow_dd.c pow_di.c pow_hh.c pow_ii.c pow_ri.c pow_zi.c pow_zz.c)
- set(CX 	c_abs.c c_cos.c c_div.c c_exp.c c_log.c c_sin.c c_sqrt.c)
- set(DCX	z_abs.c z_cos.c z_div.c z_exp.c z_log.c z_sin.c z_sqrt.c)
diff --git a/package/clapack/0007-off64-t.patch b/package/clapack/0007-off64-t.patch
deleted file mode 100644
index bf66d3c95f..0000000000
--- a/package/clapack/0007-off64-t.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-musl only provides off64_t, not __off64_t.
-glibc and uclibc have both defined.
-
-Signed-off-by: Alex Suykov <alex.suykov at gmail.com>
-
---- a/F2CLIBS/libf2c/sysdep1.h
-+++ b/F2CLIBS/libf2c/sysdep1.h
-@@ -10,7 +10,7 @@
- 
- #ifdef __linux__
- #define USE_LARGEFILE
--#define OFF_T __off64_t
-+#define OFF_T off64_t
- #endif
- 
- #ifdef _AIX43
diff --git a/package/clapack/Config.in b/package/clapack/Config.in
deleted file mode 100644
index 98f94b0e60..0000000000
--- a/package/clapack/Config.in
+++ /dev/null
@@ -1,33 +0,0 @@
-config BR2_PACKAGE_CLAPACK_ARCH_SUPPORTS
-	bool
-	default y
-	# assembler: Error: value out of range
-	depends on !BR2_m68k_cf
-	# _fpu_control is used on PowerPC, but not available with
-	# uClibc or musl
-	depends on !BR2_powerpc || BR2_TOOLCHAIN_USES_GLIBC
-
-comment "clapack needs a glibc toolchain"
-	depends on BR2_powerpc
-	depends on !BR2_TOOLCHAIN_USES_GLIBC
-
-config BR2_PACKAGE_CLAPACK
-	bool "cblas/clapack"
-	depends on BR2_PACKAGE_CLAPACK_ARCH_SUPPORTS
-	help
-	  BLAS and LAPACK C implementation (f2c'ed version of).
-
-	  http://www.netlib.org/clapack/
-
-config BR2_PACKAGE_CLAPACK_ARITH_H
-	string "Custom BLAS arith.h"
-	depends on BR2_PACKAGE_CLAPACK
-	help
-	  To optimize BLAS library for the hardware, an 'arith.h' header
-	  should be provided.
-
-	  If empty, the library will not be optimized by the compiler.
-
-	  In any case an 'arithchk' program is built
-	  (but not installed), to be run on the target to generate this
-	  arith.h header.
diff --git a/package/clapack/clapack.hash b/package/clapack/clapack.hash
deleted file mode 100644
index ad586fac72..0000000000
--- a/package/clapack/clapack.hash
+++ /dev/null
@@ -1,5 +0,0 @@
-# Locally calculated
-sha256 0b3f782bc24845d85f36bafbff0f2f1384dc72df730fda4e7924ec1a70baca5a clapack-3.2.1-CMAKE.tgz
-# License files, locally calculated
-sha256 23014869214a231525b38c39fdb5f82364fa24154ac80fdcab2a79671460fd09 COPYING
-sha256 44561c447e91203ddc747beeca5cc2794d95ee982c17c578670e4f0408bc3904 F2CLIBS/libf2c/Notice
diff --git a/package/clapack/clapack.mk b/package/clapack/clapack.mk
deleted file mode 100644
index 9a083f3223..0000000000
--- a/package/clapack/clapack.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-################################################################################
-#
-# clapack
-#
-################################################################################
-
-CLAPACK_VERSION = 3.2.1
-CLAPACK_SOURCE = clapack-$(CLAPACK_VERSION)-CMAKE.tgz
-# This package provides 3 libraries:
-# - libf2c.a (not installed)
-# - libblas (statically linked with libf2c.a)
-# - liblapack (statically linked with libf2c.a)
-CLAPACK_LICENSE = HPND (libf2c), BSD-3-Clause (libblas and liblapack)
-CLAPACK_LICENSE_FILES = F2CLIBS/libf2c/Notice COPYING
-CLAPACK_SITE = http://www.netlib.org/clapack
-CLAPACK_INSTALL_STAGING = YES
-
-ifneq ($(BR2_PACKAGE_CLAPACK_ARITH_H),)
-CLAPACK_CONF_OPTS += -DARITH_H=$(BR2_PACKAGE_CLAPACK_ARITH_H)
-endif
-
-$(eval $(cmake-package))
diff --git a/package/lapack/Config.in b/package/lapack/Config.in
index e84a19bb45..4e92b49ab6 100644
--- a/package/lapack/Config.in
+++ b/package/lapack/Config.in
@@ -17,7 +17,6 @@ config BR2_PACKAGE_LAPACK
 	bool "lapack/blas"
 	depends on BR2_PACKAGE_LAPACK_ARCH_SUPPORTS
 	depends on BR2_TOOLCHAIN_HAS_FORTRAN
-	depends on !BR2_PACKAGE_CLAPACK
 	help
 	  LAPACK and BLAS FORTRAN implementation. This package
 	  installs two libraries: libblas and liblapack.
-- 
2.31.1



More information about the buildroot mailing list