I find the following definitions in petscconf.h, which are wrong because the corresponding subroutines are present.
#define PETSC_MISSING_LAPACK_UNGQR 1 #define PETSC_MISSING_LAPACK_HETRS 1 #define PETSC_MISSING_LAPACK_HETRF 1 #define PETSC_MISSING_LAPACK_HETRI 1 This did not happen in 3.8, it is due to this change: https://bitbucket.org/petsc/petsc/commits/b8695a4a8c7 So now one cannot use PETSC_MISSING_LAPACK_UNGQR to protect a code that calls LAPACKungqr_ This is related to a message I sent 2 years ago to petsc-maint "Inconsistent naming of one Lapack subroutine", where I advocated renaming LAPACKungqr_ --> LAPACKorgqr_. But that thread did not end up in any modification... Jose