Comments (16)
I am not sure whether this was really caused by #98 or #99, as Doxygen seems to have a problem.
From the configure.log:
CMake Error at /nfs/gce/globalscratch/svcpetsc/petsc-hash-pkgs/7820d1/share/cmake-3.26/Modules/FindDoxygen.cmake:734 (message):
and
CMake Warning at /nfs/gce/globalscratch/svcpetsc/petsc-hash-pkgs/7820d1/share/cmake-3.26/Modules/FindDoxygen.cmake:492 (message): Unable to determine doxygen version: 1 Call Stack (most recent call first): /nfs/gce/globalscratch/svcpetsc/petsc-hash-pkgs/7820d1/share/cmake-3.26/Modules/FindDoxygen.cmake:655 (_Doxygen_find_doxygen) DOC/CMakeLists.txt:3 (find_package) /usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version
GLIBCXX_3.4.29' not found (required by /usr/bin/doxygen)
/usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version CXXABI_1.3.13' not found (required by /usr/bin/doxygen) /usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version
GLIBCXX_3.4.29' not found (required by /lib/x86_64-linux-gnu/libclang-14.so.13)
/usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version GLIBCXX_3.4.29' not found (required by /lib/x86_64-linux-gnu/libclang-cpp.so.14) /usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version
GLIBCXX_3.4.30' not found (required by /lib/x86_64-linux-gnu/libclang-cpp.so.14)
/usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version CXXABI_1.3.13' not found (required by /lib/x86_64-linux-gnu/libclang-cpp.so.14) /usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version
CXXABI_1.3.13' not found (required by /lib/x86_64-linux-gnu/libLLVM-14.so.1)
/usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version GLIBCXX_3.4.26' not found (required by /lib/x86_64-linux-gnu/libLLVM-14.so.1) /usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version
GLIBCXX_3.4.29' not found (required by /lib/x86_64-linux-gnu/libLLVM-14.so.1)
/usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version GLIBCXX_3.4.30' not found (required by /lib/x86_64-linux-gnu/libLLVM-14.so.1)
Looks like an issue with Doxygen in the runner.
@prj- Can you please do the following to help narrowing down the problem:
- Can you pass to SuperLU's CMake call this option:
-DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=TRUE
. This prevents CMake from running Doxygen. - Can you Git bisect the SuperLU commit triggering your problem?
from superlu.
Still not OK with -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=TRUE
, cf. https://gitlab.com/petsc/petsc/-/jobs/4435286701.
from superlu.
Thanks for the feedback! Disabling Doxygen triggered in issue that I fixed in the updated #102. The call to doxygen_add_docs
is only allowed when Doxygen has been found. Now it should work for you with -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=TRUE
.
from superlu.
@prj- #102 should have fixed the problem. Please check.
from superlu.
@gruenich and/or @xiaoyeli, this issue is still not fixed, you can look at https://gitlab.com/petsc/petsc/-/jobs/5105845302. This makes the latest SuperLU still unusable in PETSc. There is a release scheduled later this month, could you please try to fix this rather sooner than later? Why are you even looking for Doxygen in the first place if documentation is disabled?
from superlu.
-DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=TRUE
does the trick though, but I'm not sure why it's needed.
from superlu.
@gruenich
By default, can we disable doxygen generation? Users can generate doc by hand, not in each build.
If you set a PR, I will merge it.
Thhanks.
from superlu.
Sorry to hear that you still have a bad experience using SuperLU! But it is your Doxygen binary, that is broken. I quote from the configure.log that was created from the linked build:
/usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /usr/bin/doxygen)
/usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version `CXXABI_1.3.13' not found (required by /usr/bin/doxygen)
/usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /lib/x86_64-linux-gnu/libclang-14.so.13)
/usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /lib/x86_64-linux-gnu/libclang-cpp.so.14)
/usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /lib/x86_64-linux-gnu/libclang-cpp.so.14)
/usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version `CXXABI_1.3.13' not found (required by /lib/x86_64-linux-gnu/libclang-cpp.so.14)
/usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version `CXXABI_1.3.13' not found (required by /lib/x86_64-linux-gnu/libLLVM-14.so.1)
/usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /lib/x86_64-linux-gnu/libLLVM-14.so.1)
/usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /lib/x86_64-linux-gnu/libLLVM-14.so.1)
/usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /lib/x86_64-linux-gnu/libLLVM-14.so.1)
Please fix your CI runner to get a working Doxygen installed (or do explicitly remove the broken Doxygen).
To clarify, SuperLU does not automatically build the documentation with Doxygen. But it does check for Doxygen and prepare everything for the manual command. During the check Doxygen is called, this fails miserably on your system. You disable this check by passing -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=TRUE
, makes perfectly sense.
from superlu.
So, you think this is the proper behavior to not be able to build SuperLU, when a non-required package cannot be found or does not work correctly?
from superlu.
I view Doxygen is "external" to SuperLU. So we don't have control whether the users have doxygen or have a broken doxygen. I think the default behavior is NOT to check doxygen.
from superlu.
Exactly.. why can't I build SuperLU with a broken Doxygen if I don't care about the documentation?
Sure, thanks to your help, I now know about the ninja flag -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=TRUE
, and I've enforced it in PETSc. But we really shouldn't have to set this since we don't build the documentation (and users who build SuperLU outside of PETSc may very well run into the same issue, is the flag documented somewhere? I'm guessing this is an automatic variable generated by CMake).
from superlu.
@prj-
I added this guard in CMakeLists.txt:
if (enable_doc)
add_subdirectory(DOC)
endif
By default, enable_doc==OFF
Can you try the master branch now?
from superlu.
Here is the corresponding PETSc pipeline: https://gitlab.com/petsc/petsc/-/pipelines/1009190500.
from superlu.
@xiaoyeli You are breaking make doc
with your change. This will badly affect much more people compared to users with broken Doxygen. This issue must be fixed within CMake. Yesterday, I created a prototype patch. I hope to make a pull request later today. Please give me a couple of days more time to proceed.
@prj- You have to install libstdc++
in the right version to fix you Doxygen. Can you please give this a try?
from superlu.
@gruenich, no, I don't have admin rights to that machine. Again, I do not want to fix Doxygen, because I know some other users will have broken Doxygen. I don't see how Sherry's patch will break make doc
for users who don't set -Denable_doc=ON
.
This will badly affect much more people
Do you have some metrics on the number of SuperLU users who do make doc
?
from superlu.
I created a patch for CMake, see https://gitlab.kitware.com/cmake/cmake/-/merge_requests/8815. Let's see how far we get there.
from superlu.
Related Issues (20)
- Can not open โunistd.hโ for Visual Studio on Windows HOT 8
- matlab mex error
- Release 6.0.1? HOT 11
- Github workflow: Segmentation fault HOT 21
- EXAMPLE/cfgmr.c:83:16: error: conflicting types for 'caxpy_' HOT 14
- Usage of complex breaks code that include `complex.h` HOT 1
- Assessment of the difficulty in porting CPU architecture for the superlu HOT 1
- missing symbols for -DAdd__ HOT 1
- cmake error in "master" (endif without parentheses), commit (2c8ef7da153e87745f04f968eb2a995d735e64ec) HOT 1
- complex problems HOT 5
- slu_ddefs.h et al. declaring BLAS functions
- Unterminated #endif in superlu_config.fh with CMake HOT 3
- Cmake Build error due to TESTING/CMakeLists.txt HOT 1
- [CI] Add Windows runner for automated testing HOT 6
- Segfault in Windows tests HOT 5
- Compilation on arm Mac HOT 1
- Multiple definition error HOT 1
- Update the user guide
- Errors compiling on MacOSX HOT 9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from superlu.