Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • T Trilinos
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 936
    • Issues 936
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 22
    • Merge requests 22
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • James Willenbring
  • Trilinos
  • Issues
  • #3052

Closed
Open
Created Jul 02, 2018 by James Willenbring@jmwilleOwner

MueLu: Macro redefinition in ETI OFF build

Created by: mhoemmen

Sierra's Trilinos integration build reports the following error:

In file included from .../include/MueLu_ParameterListInterpreter.hpp:2:0,                 from .../include/MueLu_CreateTpetraPreconditioner.hpp:22,
                 from [some .cpp file]:
.../include/MueLu_ParameterListInterpreter_def.hpp:225:0: error: "MUELU_KOKKOS_FACTORY" redefined [-Werror]
 #define MUELU_KOKKOS_FACTORY(varName, oldFactory, newFactory) \
 ^
In file included from .../include/MueLu_FactoryManager.hpp:2:0,
                 from .../include/MueLu_Hierarchy_decl.hpp:67,
                 from .../include/MueLu_Hierarchy.hpp:1,
                 from [same .cpp file as above]:
.../include/MueLu_FactoryManager_def.hpp:88:0: note: this is the location of the previous definition
 #define MUELU_KOKKOS_FACTORY(varName, oldFactory, newFactory)   \

I'm guessing that MueLu developers didn’t test with ETI (explicit template instantiation) on off [edited by jhux2].

Diagnostic: Both macro definitions occur in _def.hpp files, which normally aren’t exposed to each other in ETI=ON builds.

HAVE_MUELU_KOKKOS_REFACTOR is undefined by default in both Trilinos’ CMake logic, and in Sierra’s Bjam logic for Trilinos. Thus, MueLu developers are seeing the same macro defines as Sierra.

@trilinos/muelu @jhux2

Possible Solution

Undefine MUELU_KOKKOS_FACTORY before and after each use.

Assignee
Assign to
Time tracking