Unused, non-standard LAPACK C-interfaces
### Summary
Definition of unused, non-standard LAPACK C-interfaces in `lapacke.h` leads to issues when combining Eigen with other LAPACK-dependent C++ libraries.
### Environment
- **Operating System** : Linux (Ubuntu)
- **Architecture** : x64
- **Eigen Version** : 3.4.0
- **Compiler Version** : GCC 11.4.0
- **Compile Flags** : Any
- **Vector Extension** : Unimportant
### Explanation
Eigen includes its own `lapacke.h` header file (under src/misc) for defining the interfaces to the LAPACKE routines. These are used throughout the package for utilizing LAPACK. However, it also includes C-interfaces for the LAPACK routines themselves, even though they are not used.
Problems occur when wanting to utilize other (header-only) libraries that use other LAPACK C-interfaces. This is due to the fact that Eigen's definitions are actually not according to the standard (e.g. those defined in the `lapacke.h` file accompanying LAPACKE when installing it through apt/apt-get). More specifically: Missing `const` specifiers for arguments such as matrix sizes and leading dimension but also certain `char*` arguments that should be `char const*`. This mismatch results in clashes with LAPACK C-interfaces defined by the other libraries. Excluding the LAPACK C-interfaces of the other libraries is not an option as they rely on the 'constness' of certain arguments.
### Proposed solutions
As far as I know, the LAPACK C-interfaces may just be removed from the `lapacke.h` file. This seems to cause no problems in my project as they are never used.
If this is not an option, they should be updated to follow the standard. It may also be useful to introduce a preprocessor macro that when defined, includes the `lapack.h`/`lapacke.h` header files found on the system path, similarly to how MKL's `mkl_lapacke.h` header file is included in favor of Eigen's `lapacke.h` when `EIGEN_USE_MKL` is defined.
issue