Opened 7 years ago

Closed 7 years ago

#18369 closed enhancement (fixed)

upgrade eclib to version 20150510

Reported by: cremona Owned by:
Priority: minor Milestone: sage-6.7
Component: packages: standard Keywords: eclib
Cc: Merged in:
Authors: John Cremona Reviewers: Jeroen Demeyer, François Bissey
Report Upstream: N/A Work issues:
Branch: 7a76b67 (Commits, GitHub, GitLab) Commit: 7a76b676883e625480d6967299ad7e6a8a13c49d
Dependencies: #15642 Stopgaps:

Status badges

Description (last modified by cremona)

eclib version 20150510 contains some efficiency enhancements and also now compiles OK with C++-11.

New upstream source at http://homepages.warwick.ac.uk/staff/J.E.Cremona/ftp/progs/eclib-20150510.tar.bz2

Since version 20150423 the boost detection in libtool has been improved according to suggestions made on this ticket.

Change History (17)

comment:1 Changed 7 years ago by cremona

  • Description modified (diff)

comment:2 Changed 7 years ago by cremona

  • Authors set to John Cremona
  • Branch set to u/cremona/18359
  • Commit set to e7f6761e9372086c1c2579c81265c4cabe428698
  • Description modified (diff)
  • Status changed from new to needs_review

New commits:

e7f6761#18359 eclib update to 20150423

comment:3 Changed 7 years ago by chapoton

not working for me

checking for boostlib >= 1.35.0... yes
checking whether the Boost::System library is available... yes
checking for exit in -lboost_system... no
configure: error: Could not link against boost_system !
Error configuring eclib.

real	0m9.419s
user	0m1.373s
sys	0m1.608s
************************************************************************
Error installing package eclib-20150423

comment:4 Changed 7 years ago by cremona

Frederic, I have had real trouble with the boost configuration since I upgraded the version of the libtool boost config scripts. I thought I had solved it, but apparently not (except on my machine). Any chance you could help me diagnose and fix that? It is suppose to be that if you do not put --with-boost (or --with-boost=<path>) on the configure line, that no boost is used, but now it defaults the other way and whether or not it passes depends on the locally installed boost. (boost is only needed for running with a multithreaded, i.e. parallel, option, which I do not think is appropriate for Sage).

I have tried explicitly putting --with-boost=no on the command line but that does not work either, though I do not know why.

Thanks for testing.

comment:5 Changed 7 years ago by jdemeyer

Did you try --with-boost-system=no?

comment:6 Changed 7 years ago by jdemeyer

It seems that every piece of boost has its own independent(?) --with flag:

  --with-boost[=ARG]      use Boost library from a standard location
                          (ARG=yes), from the specified location (ARG=<path>),
                          or disable it (ARG=no) [ARG=yes]
  --with-boost-libdir=LIB_DIR
                          Force given directory for boost libraries. Note that
                          this will override library path detection, so use
                          this parameter only if default library detection
                          fails and you know exactly where your boost
                          libraries are located.
  --with-boost-system[=special-lib]
                          use the System library from boost - it is possible
                          to specify a certain library for the linker e.g.
                          --with-boost-system=boost_system-gcc-mt
  --with-boost-asio[=special-lib]
                          use the ASIO library from boost - it is possible to
                          specify a certain library for the linker e.g.
                          --with-boost-asio=boost_system-gcc41-mt-1_34
  --with-boost-thread[=special-lib]
                          use the Thread library from boost - it is possible
                          to specify a certain library for the linker e.g.
                          --with-boost-thread=boost_thread-gcc-mt

comment:7 Changed 7 years ago by jdemeyer

I recommend this fix:

# Boost 1.35.0+ required for Asio (1.25.0 for Thread)
AX_BOOST_BASE([1.35.0], [
AX_BOOST_SYSTEM
AX_BOOST_ASIO
AX_BOOST_THREAD
])

comment:8 Changed 7 years ago by jdemeyer

With this, the checks AX_BOOST_SYSTEM, AX_BOOST_ASIO and AX_BOOST_THREAD will only be done if AX_BOOST_BASE succeeded. Therefore, --with-boost=no will skip all 4.

comment:9 Changed 7 years ago by jdemeyer

  • Status changed from needs_review to needs_work

comment:10 Changed 7 years ago by cremona

That all sounds very good, I will test soon. Feel free to make a pull request at https://github.com/JohnCremona/eclib meanwhile

comment:11 Changed 7 years ago by fbissey

Jeroen's solution sounds good. I am guessing the reason you are seeing this now is because the detection default has changed. All those --with-xxx switch usually comes with a default state and now it is set to yes. For example in https://github.com/JohnCremona/eclib/blob/master/m4/ax_boost_system.m4 at line 53 you have

        [want_boost="yes"]

this means that if you don't pass anything it will assume you want it. If you want the old behaviour of "not on" unless I say so, you want to change that line to

        [want_boost="no"]

and similarly in all the other ax_boost_*.m4 files.

comment:12 Changed 7 years ago by cremona

You are right, the default changed in those m4 files. I think that the masters student who first put the boost support (for multithreading) into eclib manually edited the m4 files. With this release I upgraded the m4 files to the most recent ones I found online (I cannot remember why, certainly not all was working well before I did that), and this is the effect.

I think that Jeroen's solution is better than to edit the m4 files anyway. I have not had time to try it out or test it yet.

comment:13 Changed 7 years ago by git

  • Commit changed from e7f6761e9372086c1c2579c81265c4cabe428698 to 7a76b676883e625480d6967299ad7e6a8a13c49d

Branch pushed to git repo; I updated commit sha1. New commits:

7a76b67#18359 upgrade eclib to 20150510

comment:14 Changed 7 years ago by cremona

  • Description modified (diff)
  • Status changed from needs_work to needs_review
  • Summary changed from upgrade eclib to version 20150423 to upgrade eclib to version 20150510

Please try this. Note that the upstream source is now 20150510 instead of 20150423. The only change is in the boost detection where I use Jeroen's suggested change. In the Sage commit I updated the package version and checksum and added a line to the install script saying --with-boost="no". It works for me...

comment:15 Changed 7 years ago by fbissey

  • Reviewers set to Jeroen Demeyer, François Bissey
  • Status changed from needs_review to positive_review

Works for me, without or with boost (in sage-on-gentoo). It all behaves as expected as far as I can see.

comment:16 Changed 7 years ago by vbraun

  • Dependencies set to #15642

comment:17 Changed 7 years ago by vbraun

  • Branch changed from u/cremona/18359 to 7a76b676883e625480d6967299ad7e6a8a13c49d
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.