Skip to content

Xpetra: fixed dependency on Tpetra instantations

James Willenbring requested to merge brian-kelley:XpetraInstantFix into develop

Created by: brian-kelley

Satisfy dependency of Xpetra EpetraMap on Tpetra::Details::FixedHashTable with int/long and int/longlong as LO/GO. These dependencies always exist as long as Tpetra is enabled, but regardless of whether these LO/GO combinations are enabled in Tpetra ETI.



Xpetra_EpetraMap.cpp now includes the def of FixedHashTable so that these instantiations can be made, even if int/long and/or int/longlong haven't been enabled in ETI. The include is only done if Tpetra and Xpetra kokkos refactor are both enabled, because Xpetra::EpetraMap only uses FixedHashTable in this case.

Motivation and Context

This fixes an "undefined symbol" error during the final link of Albany (or any other app executable). Without this code change, the only workaround is to enable both TPETRA_INST_INT_LONG and TPETRA_INST_INT_LONG_LONG in configuration (huge code size increase). Only the instantiation of FixedHashTable is needed, not all of Tpetra.

How Has This Been Tested?

Tested by successfully building Trilinos/Albany without TPETRA_INST_INT_LONG.


  • My commit messages mention the appropriate GitHub issue numbers.
  • My code follows the code style of the affected package(s).
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the code contribution guidelines for this project.
  • I have added tests to cover my changes.
  • All new and existing tests passed.
  • No new compiler warnings were introduced.
  • These changes break backwards compatibility.

Merge request reports