regina-normal / regina

The main source code for Regina
Other
33 stars 14 forks source link

master does not build in Ubuntu 20.04 #70

Closed delooper closed 2 years ago

delooper commented 3 years ago

Greetings,

I'm having a little trouble compiling the current master branch in Ubuntu.

It looks like a simple problem -- we probably aren't telling the linker to look for the graphviz libraries, when building the GUI. Here is the precise error message:

[ 76%] Linking CXX executable regina-gui /usr/bin/ld: /usr/lib/x86_64-linux-gnu/graphviz/libgvplugin_core.so: undefined reference to __log10_finite' /usr/bin/ld: /usr/lib/x86_64-linux-gnu/graphviz/libgvplugin_core.so: undefined reference to__exp_finite' collect2: error: ld returned 1 exit status make[2]: [qtui/src/CMakeFiles/regina-gui.dir/build.make:1863: qtui/src/regina-gui] Error 1 make[1]: [CMakeFiles/Makefile2:2556: qtui/src/CMakeFiles/regina-gui.dir/all] Error 2 make: *** [Makefile:163: all] Error 2

I can edit simple CMake files, but the CMakeLists file in qtui/src looks fairly elaborate.

WPettersson commented 3 years ago

Can you please post the exact compiler version you're using? I don't have an Ubuntu 20.04 machine handy, but I expect this is actually caused by https://bugs.llvm.org/show_bug.cgi?id=45034 or similar, as __exp_finite and __log10_finite are not in any library but come from the compiler (IIRC).

Edit: Actually having dug some more, maybe it's not a compiler thing strictly. It could also be related to glibc 2.30 -> 2.31 changes. However, those shouldn't appear unless you haven't done a make clean since upgrading glibc. Can you also try make clean and then make to ensure that this is reproducible?

baburton commented 3 years ago

Hi - so I’ve seen this one too. Of the 20+ different linux platforms I build for, it happens on Ubuntu 20.04 and nowhere else.

Ryan - the cheap fix is here: https://github.com/regina-normal/aux/blob/master/packaging/debian/focal/patches/finite-math.diff If you’re not used to reading diffs, basically you need to add the line ADD_LINK_OPTIONS(-Wl,--allow-shlib-undefined) into qtui/src/CMakeLists.txt at the right place.

Will - any suggestions on how to bake this into the main source tree without adding --allow-shlib-undefined for everyone? (Um, so I guess I mean: any suggestion on how to detect the conditions under which this patch is needed?)

--

Prof. Benjamin Burton Computational Geometry & Topology Group School of Mathematics and Physics The University of Queensland, Australia

UQ ALLY :: Supporting and celebrating the diversity of sexuality, gender and sex at UQ. Pronouns: He, him, his

On 15 Jun 2021, at 6:32 pm, William Pettersson @.***> wrote:

Can you please post the exact compiler version you're using? I don't have an Ubuntu 20.04 machine handy, but I expect this is actually caused by https://bugs.llvm.org/show_bug.cgi?id=45034 or similar, as __exp_finite and __log10_finite are not in any library but come from the compiler (IIRC).

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe.

WPettersson commented 3 years ago

I've now gotten a virtual machine and done some digging, and I see the same issue and also don't have any good solutions.

Ben, if I had to implement something, I'd check $(lsb_release -is) == "Ubuntu" && $(lsb_release -rs) == "20.04". It's dirty, but I cannot find any better way to include this. I still have a hunch that it's something not-quite-right in Ubuntu, but don't know where to start.

delooper commented 3 years ago

The gcc version is: gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0

although it sounds like you're well past that.

Ben's diff file worked, it compiled fine.

Thanks.

Next up, porting my code from V5 to V6.

WPettersson commented 3 years ago

Okay, I'm sure this is not a Regina bug, I can replicate with a small example (see https://gist.github.com/WPettersson/014bb43f5063e06742ca06666c1b81d1). I'll post an Ubuntu bug for now, still don't know how to best deal with this for now though.

WPettersson commented 3 years ago

Okay there's a launchpad bug at https://bugs.launchpad.net/ubuntu/+source/graphviz/+bug/1932333 so I guess we wait and see.

baburton commented 2 years ago

Hi - the 7.0 release included a hack in the cmake scripts to work around this on Ubuntu 20.04.

Closing this issue now - Ben.