Hello, I am following the "Open Source Analog Desi...
# analog-design
j
Hello, I am following the "Open Source Analog Design Flow" document to build Xyce which depends on Trilinos. I follow the instructions to build a parallel version of Trilinos which builds fine but when I attempt to configure Xyce it complains with:
Copy code
checking for Teuchos_SerialDenseMatrix.hpp... no
configure: error: Unable to compile a test program against Trilinos that includes Teuchos_Serial_DenseMatrix.hpp.  It is possible Trilinos was not properly configured or the environment has changed since Trilinos was installed.  See config.log for more information.
I seem to recall that when I last built Xyce I had to resort to a serial build (the clue is in the name of the missing file) unless that's a false memory. Any ideas on what might be wrong given I follow the recipe precisely?
t
There's nothing significant about that file; it's just that the "configure" script for Xyce is using it to test that it can find the header files for Teuchos; this is coming from a standard AC_CHECK_HEADER call in configure.ac. Beyond that, you might find some additional helpful information in build/config.log; you can compare to mine which has
Copy code
It was created by Xyce configure R::7.4, which was
generated by GNU Autoconf 2.69.  Invocation command line was

  $ ../configure CXXFLAGS=-O3 ARCHDIR=/home/tim/src/XyceLibs/Parallel CPPFLAGS=-I/usr/include/suitesparse --enable-mpi CXX=mpicxx CC=mpicc F77=mpif77 --enable-stokhos --enable-amesos2
at the top, and then about 80% through the file, I have
Copy code
configure:22891: $? = 0
configure:22900: result: yes
configure:22922: Found library and dependencies for Teuchos in Makefile.export.Teuchos
configure:23274: Found library and dependencies for Triutils in Makefile.export.Triutils
configure:23335: Found library and dependencies for Epetra in Makefile.export.Epetra
configure:23396: Found library and dependencies for EpetraExt in Makefile.export.EpetraExt
configure:23451: checking whether HAVE_TEUCHOS_COMPLEX is declared
configure:23451: mpicxx -std=gnu++11 -c -O3 -I/home/tim/src/XyceLibs/Parallel/include -I/u
sr/include/suitesparse conftest.cpp >&5
configure:23451: $? = 0
configure:23451: result: yes
configure:23460: checking Teuchos_SerialDenseMatrix.hpp usability
configure:23460: mpicxx -std=gnu++11 -c -O3 -I/home/tim/src/XyceLibs/Parallel/include -I/u
sr/include/suitesparse conftest.cpp >&5
configure:23460: $? = 0
configure:23460: result: yes
configure:23460: checking Teuchos_SerialDenseMatrix.hpp presence
configure:23460: mpicxx -std=gnu++11 -E -I/home/tim/src/XyceLibs/Parallel/include -I/usr/i
nclude/suitesparse conftest.cpp
configure:23460: $? = 0
configure:23460: result: yes
In particular, the line that tests for the Teuchos header file is
Copy code
mpicxx -std=gnu++11 -c -O3 -I/home/tim/src/XyceLibs/Parallel/include -I/usr/include/suitesparse conftest.cpp >&5
and indeed, I have the file
Teuchos_SerialDenseMatrix.hpp
installed in
/home/tim/src/XyceLibs/Parallel/include
. Either you're missing the include argument, or you're missing the directory. Figuring out which is the first step.
j
Thanks for answering - this should probably have been posted in the Xyce channel... My bad. I should have looked at config.log in the first instance rather than asking for a hint. I see further problems in the config environment test programs that look like they come from my compiler version/environment.
Copy code
configure:24526: mpicxx -std=gnu++11 -c -g -I/home/jsr/install/trilinos-master/parallel/include -I/usr/include/suitesparse conftest.cpp >&5
In file included from /home/jsr/install/trilinos-master/parallel/include/desul/atomics/Atomic_Ref.hpp:13,
                 from /home/jsr/install/trilinos-master/parallel/include/desul/atomics.hpp:12,
                 from /home/jsr/install/trilinos-master/parallel/include/Kokkos_Atomics_Desul_Wrapper.hpp:27,
                 from /home/jsr/install/trilinos-master/parallel/include/Kokkos_Atomic.hpp:49,
                 from /home/jsr/install/trilinos-master/parallel/include/Kokkos_Complex.hpp:23,
                 from /home/jsr/install/trilinos-master/parallel/include/Teuchos_ScalarTraits.hpp:59,
                 from /home/jsr/install/trilinos-master/parallel/include/Teuchos_BLAS.hpp:70,
                 from /home/jsr/install/trilinos-master/parallel/include/Teuchos_SerialDenseMatrix.hpp:47,
                 from conftest.cpp:99:
/home/jsr/install/trilinos-master/parallel/include/desul/atomics/Common.hpp:63:29: error: 'conditional_t' in namespace 'std' does not name a template type; did you mean 'conditional'?
   63 |   using memory_order = std::conditional_t<
      |                             ^~~~~~~~~~~~~
      |                             conditional
so compiler/stdlib compliance problem. Thanks again for the brain jog....