Closed mhoemmen closed 7 years ago
@bartlettroscoe
We move to this issue the cmake build error. As you mentioned that ST is tested nightly, this cmake error probably break all nightly tests today.
@mhoemmen Could you specify more about your configuration or check-in-script you use ? so we can reproduce the same error. The problem is that amesos2 installation wants to bring shylutacho together but the library is not on the export list.
@kyungjoo-kim,
There are several --st-extra-builds that are defined in the checkin-test-sems.sh script. There should be instructions in that script on how to run them. It is as easy as --st-extra-builds=<build1>,<build2>,...
. For example, you might try:
$ ./checkin-test-sems.sh --default-builds= --st-extra-builds=MPI_RELEASE_DEBUG_SHARED_ST \
--enable-all-packages=off --no-enable-fwd-packages --enable-packages=Amesos2 \
--local-do-all
However, these may not match up with the same builds that are run by the Trilinos Framework team that post to CDash but they should give you a pretty good shot at reproducing problems with ST builds of Trilinos.
The script reproduces the problem when Tacho is labeled with ST. The issue is gone when Tacho is EX because it simply disables tacho in the script.
@kyungjoo-kim I'm doing a Clang 3.9 build, using the check-in test script (not the remote one), but with the MKL TPL enabled.
@bartlettroscoe I'm using the --extra-builds=MPI_DEBUG
option; does that make a difference here?
I'm using the --extra-builds=MPI_DEBUG option; does that make a difference here?
Yes. Using --extra-builds
allows EX packages to be enabled while --st-extra-builds
does not. If you examine the STDOUT output from checkin-test.py it will show you that logic. This is also explain in the section "HANDLING OF PT, ST, AND EX CODE IN BUILT-IN AND EXTRA BUILDS" in ./checkin-test.py --help
. See:
(I need to compartmentalize and package up the documentation for checkin-test.py with --help-topic=<topic>
like I did for gitdist shown at https://tribits.org/doc/TribitsDevelopersGuide.html#gitdist-documentation).
I also experienced this error for Tacho when trying to build Amesos2 and BDDC:
CMake Error: install(EXPORT "Amesos2" ...) includes target "amesos2" which requires target "shylu_nodetacho" that is not in the export set.
CMake Error: install(EXPORT "ShyLU_DDBDDC" ...) includes target "shylu_ddbddc" which requires target "shylu_nodetacho" that is not in the export set.
@kyungjoo-kim : @searhein faced this error when explicitly enabling Tacho. @bartlettroscoe : Can you comment on how export lists are built ?
@bartlettroscoe : Can you comment on how export lists are built ?
This is code in a subsystem of TriBITS that I did not write and don't really know that much about at this point. I think the primary maintainer of that code is @nschloe (I could check git logs).
I think the primary maintainer of that code is nschloe (I could check git logs).
It's been several years since I contributed to TriBITS and it'll take me a while to delve back in again. I've never seen those errors before either. In any case, a minimal do-configure
would be helpful.
The priority of this just went up as it is blocking application integration. @kyungjoo-kim.
If someone runs 'cmake . &> configure.txt' in that build directory and then attaches 'configure.txt' to this GitHub Issue, that might allow me to reproduce this use case in my local build dire. Otherwise, I will need to have the full instructions for env setup (i.e. on the CEE LAN loading modules X,Y, and Z), the full cmake configure script, etc. But we might get lucky with just and be able to reproduce just by setting 'configure.out'.
my configure script is attached. The script uses SEMS modules.
CMAKE_PROJECT_DIR=/home/kyukim/Work/lib/trilinos/temp
CMAKE_INSTALL_DIR=/home/kyukim/Work/lib/trilinos/install/issue-1788
cmake \
-DTrilinos_ENABLE_TESTS:BOOL=ON \
-DTrilinos_ALLOW_NO_PACKAGES:BOOL=OFF \
-DTPL_ENABLE_MPI=ON \
-DCMAKE_BUILD_TYPE=RELEASE \
-DTrilinos_ENABLE_DEBUG=ON \
-DBUILD_SHARED_LIBS=ON \
-DTrilinos_ENABLE_Amesos2:BOOL=ON \
-DTrilinos_ENABLE_ShyLUTacho:BOOL=ON \
-DTrilinos_ENABLE_ALL_OPTIONAL_PACKAGES:BOOL=OFF \
-DTrilinos_ENABLE_ALL_FORWARD_DEP_PACKAGES:BOOL=OFF \
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_DIR} \
${CMAKE_PROJECT_DIR}
Even if it reports cmake error, I can successfully build the Trilinos and install it.
configure.txt is attached. configure.txt
Okay, I reproduced the failure:
$ cd ~/Trilinos.base2/BUILDS/GCC-4.8.4/MPI_RELEASE_DEBUG_SHARED_PT/
$ rm -r CMake*
$ source ~/Trilinos.base2/Trilinos/cmake/load_sems_dev_env.sh
$ cat do-configure
#!/bin/bash
cmake \
-DTPL_ENABLE_MPI=ON \
-DCMAKE_BUILD_TYPE=RELEASE \
-DTrilinos_ENABLE_DEBUG=ON \
-DBUILD_SHARED_LIBS=ON \
-DTrilinos_ENABLE_SECONDARY_TESTED_CODE=OFF \
-DTrilinos_CONFIGURE_OPTIONS_FILE:STRING=cmake/std/MpiReleaseDebugSharedPtSettings.cmake,cmake/std/BasicCiTestingSettings.cmake \
-DTrilinos_ENABLE_DEBUG_SYMBOLS=ON \
-DTrilinos_ENABLE_EXPLICIT_INSTANTIATION=ON \
-DTrilinos_ENABLE_CONFIGURE_TIMING=ON \
-DTrilinos_ENABLE_TESTS=ON \
-DTrilinos_TRACE_ADD_TEST=ON \
-DCTEST_BUILD_FLAGS=-j16 \
-DCTEST_PARALLEL_LEVEL=16 \
-DMEMORYCHECK_COMMAND_OPTIONS="-q --trace-children=yes --tool=memcheck \
--leak-check=yes --workaround-gcc296-bugs=yes \
--show-reachable=yes --num-callers=50 --gen-suppressions=all \
--suppressions=$SEMS_OPENMPI_ROOT/share/openmpi/openmpi-valgrind.supp" \
"$@" \
../../../Trilinos
$ ./do-configure \
-DTrilinos_ENABLE_Amesos2:BOOL=ON \
-DTrilinos_ENABLE_ShyLUTacho:BOOL=ON \
-DTrilinos_ENABLE_ALL_OPTIONAL_PACKAGES:BOOL=OFF \
-DTrilinos_ENABLE_ALL_FORWARD_DEP_PACKAGES:BOOL=OFF \
&> configure.out
$ echo $?
1
$ grep "CMake Error" configure.out
CMake Error: install(EXPORT "Amesos2" ...) includes target "amesos2" which requires target "shylutacho" that is not in the export set.
I will dig a little to see if I can find something obvious.
I know that the code related to this is in the file:
but I am just unfamiliar with all of the ins and outs of what is going on in there since I did not write the code and am not an expert on CMake export files.
I am wondering if this is something Kitware can help us with? I will ask them if they can help.
I created the SNL/Kitware contract issue:
to try to get some Kitware help on this (since I don't know this TriBITS subsystem very well).
(SNL staff can get access that site as described at https://snl-wiki.sandia.gov/display/TRIL.)
We did some old fashioned debugging of cut and paste of different CMakeLists.txt options from other packages where it works to Tacho. It worked ! @kyungjoo-kim will push the fix after some testing.
We did some old fashioned debugging of cut and paste of different CMakeLists.txt options from other packages where it works to Tacho. It worked ! @kyungjoo-kim will push the fix after some testing.
I will be curious to see what it was and see if it can be detected earlier with a better error message.
In tacho cmakefile, I forgot to add "TRIBITS_SUBPACKAGE_POSTPROCESS()". It would be better if we have better error message than the message with export list.
In tacho cmakefile, I forgot to add "TRIBITS_SUBPACKAGE_POSTPROCESS()". It would be better if we have better error message than the message with export list.
Okay, that is something we can catch. In fact, we are working on those types of checks in TriBITSPub/TriBITS#200 (but have not added checks for this yet).
FYI: New TriBITS checks pushed in trilinos/Trilinos@e2b8a39 automatically catch mistakes like this right away at the source. Hopefully these checks will save lost time and productivity like this in the future.
@trilinos/shylu
See #1784 for discussion. Here is the error: