Skip to content

CMake selective build improvements #637

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Conversation

christoph-conrads
Copy link
Contributor

Description

This merge request

  • makes CMake always install lapack.h even when LAPACKE is not built,
  • ensures all necessary object files are compiled when only a subset of the arithmetic (e.g., only real double-precision) is to be built, and
  • ensures all LAPACK code required by LAPACKE is present (e.g., LAPACKE_BUILD_SINGLE=ON implies BUILD_SINGLE=ON).

Checklist

  • The documentation has been updated.
  • If the PR solves a specific issue, it is set to be closed on merge.

@christoph-conrads
Copy link
Contributor Author

You can check for missing code with selective compilation with

env LDFLAGS='-Wl,-z,defs' cmake -DBUILD_SHARED_LIBS=ON ../lapack

@codecov
Copy link

codecov bot commented Nov 11, 2021

Codecov Report

Merging #637 (ac6679e) into master (1782d90) will not change coverage.
The diff coverage is n/a.

❗ Current head ac6679e differs from pull request most recent head ca0b206. Consider uploading reports for the commit ca0b206 to get more accurate results
Impacted file tree graph

@@           Coverage Diff           @@
##           master     #637   +/-   ##
=======================================
  Coverage    0.00%    0.00%           
=======================================
  Files        1894     1894           
  Lines      184034   184021   -13     
=======================================
+ Misses     184034   184021   -13     
Impacted Files Coverage Δ
SRC/cgeqrf.f 0.00% <0.00%> (ø)
SRC/cgerqf.f 0.00% <0.00%> (ø)
SRC/dgeqrf.f 0.00% <0.00%> (ø)
SRC/dgerqf.f 0.00% <0.00%> (ø)
SRC/sgeqrf.f 0.00% <0.00%> (ø)
SRC/sgerqf.f 0.00% <0.00%> (ø)
SRC/zgeqrf.f 0.00% <0.00%> (ø)
SRC/zgerqf.f 0.00% <0.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 1782d90...ca0b206. Read the comment docs.

If the user requests LAPACKE to be built for a certain arithmetic (e.g.,
real double-precision), check if the LAPACK library contains code for
the requested arithmetic.
Fix linking when only a subset of the available arithmetic (e.g., only
complex double-precision arithmetic) is built.
@christoph-conrads christoph-conrads force-pushed the 632-lapack_h-only-installed-in-LAPACKE-builds branch from ac6679e to ca0b206 Compare January 30, 2022 19:25
Copy link
Collaborator

@weslleyspereira weslleyspereira left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @christoph-conrads. Thanks for the improvements!
I think it is helpful to install lapack.h even when LAPACKE is off.

@langou langou merged commit 2a39774 into Reference-LAPACK:master Feb 15, 2022
@julielangou julielangou added this to the LAPACK 3.10.1 milestone Nov 12, 2022
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants