Macaulay2 / M2

The primary source code repository for Macaulay2, a system for computing in commutative algebra, algebraic geometry and related fields.
https://macaulay2.com
343 stars 230 forks source link

Trying to build on Macaulay2-1.10 #761

Closed halaar closed 4 years ago

halaar commented 6 years ago

Hello @DanGrayson, David Eisenbud wants the latest Macaulay2-1.10 on our HPC systems at MSRI. I am attempting to build 1.10 on Ubuntu 14.04 LTS. After resolving a few minor dependency errors, I am getting a build error:

Steps to reproduce on Ubuntu 14.04:

  1. git clone M2 source.
  2. ./configure
  3. Resolve lzma dependency by: apt-get install lunzip lzma-dev
  4. run ./configure again to finish configuring.
  5. make gets the following error:
    
    user@system:~/M2# make
    include/config.Makefile:12: *** GNU make version 3.81 is too old.  Stop.
halaar commented 6 years ago

I was able to compile but I need to upgrade GCC. Since I want to stick with the system package manager, I will just upgrade our HPC system to the latest Ubuntu.

/usr/bin/M2-binary: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version CXXABI_1.3.8' not found (required by /usr/bin/M2-binary) /usr/bin/M2-binary: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: versionGLIBCXX_3.4.20' not found (required by /usr/bin/M2-binary) /usr/bin/M2-binary: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/bin/M2-binary)

DanGrayson commented 6 years ago

Yes, make 3.81 is too old to build Macaulay2 -- we depend on features of version 4.

I'm not sure you have to upgrade gcc - Ubuntu 14.04 has version 4.8.4. I'll try to build 1.11 here and post it foryou.

DanGrayson commented 6 years ago

It built fine, but a test fails! So now I have to try to get rid of that. Perhaps it's a compiler bug -- I'll try building a more modern compiler.

DanGrayson commented 6 years ago

Odd: gcc-7.1.0 can't compile itself under 14.04.

DanGrayson commented 6 years ago

I built gcc-7.3.0, but the same bug is evident:

i1 : loadPackage "Nauty"
--storing configuration for package Nauty in /home/dan/.Macaulay2/init-Nauty.m2

o1 = Nauty

o1 : Package

i2 : assert(apply(toList(1..8), n -> #removeIsomorphs generateBipartiteGraphs n) == {1, 2, 3, 7, 13, 35, 88, 303})
stdio:2:1:(3): error: assertion failed

i3 : apply(toList(1..8), n -> #removeIsomorphs generateBipartiteGraphs n)

o3 = {1, 2, 3, 7, 15, 48, 125, 381}
DanGrayson commented 6 years ago

Under Ubuntu 16.04 that Nauty test succeeds, with gcc 5.4.0.

I'm reluctant to release it under Ubuntu 14.04 with a test giving the wrong answer.

Also now we have noticed a bug in the documentation generator, which plagues packages that export symbols with the same name as one exported before.

mahrud commented 4 years ago

Should this be closed?