Implemented --omit-symbols=LIST configure option.#823
Conversation
Details: - Added a new option to 'configure' that allows the user to specify a list of symbols to omit from the library. The format of the option is --omit-symbols=LIST where LIST is a comma-separated list of symbol names (excluding any trailing underscore). This list is parsed into a list of #define directives that causes the relevant parts of BLIS to be ignored (or not). As such, the nature of this option is to only support omitting symbols which have been pre-identified as potential troublemakers when linking BLIS with other libraries such as LAPACK or ScaLAPACK. (This list may grow in the future as additional symbols are identified.) - Re-implemented the --enable-scalapack-compat configure option to utilize the underlying --omit-symbols=LIST infrastructure. - Implemented an --enable-lapack-compat option, which omits all of the known problematic symbols currently supported for omission. - This commit addresses Issue #816. Thanks to Timo Betcke for bringing it to our attention and to Devin Matthews for his advice and for his initial implementation of --enable-scalapack-compat (PR #813). - CREDITS file update.
|
I'm working on fixing some oversights in the original commit. Separately, we'll need to decide whether omitting a symbol should also cause |
I'd be OK making an exception to the "no symbol, no prototype" rule just for those two functions. |
Details: - Leave lsame_() and xerbla_() prototypes enabled even when their respective symbols are omitted from the library. - Fixed copy-and-paste bug. - Fixed typos in the #define directives.
|
@devinamatthews Given that we haven't heard from @tbetcke, I'm okay with merging this commit if you are. |
|
Good with me. |
Details:
configurethat allows the user to specify a list of symbols to omit from the library. The format of the option is--omit-symbols=LISTwhereLISTis a comma-separated list of symbol names (excluding any trailing underscore). This list is parsed into a list of#definedirectives that causes the relevant parts of BLIS to be ignored (or not). As such, the nature of this option is to only support omitting symbols which have been pre-identified as potential troublemakers when linking BLIS with other libraries such as LAPACK or ScaLAPACK. (This list may grow in the future as additional symbols are identified.)--enable-scalapack-compatconfigureoption to utilize the underlying--omit-symbols=LISTinfrastructure.--enable-lapack-compatoption, which omits all of the known problematic symbols currently supported for omission.--enable-scalapack-compat(PR Add a ScaLAPACK compatibility mode. #813).cc @tbetcke