Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Archer default GCC 5.1 - outdated dependencies #10

Open
ferdinandvanwyk opened this issue May 9, 2016 · 8 comments
Open

Archer default GCC 5.1 - outdated dependencies #10

ferdinandvanwyk opened this issue May 9, 2016 · 8 comments

Comments

@ferdinandvanwyk
Copy link
Contributor

ferdinandvanwyk commented May 9, 2016

As of writing, when changing the PrgEnv on Archer (as per the configuration script) to GNU, the version of GCC that's loaded is gcc/5.1.0.

When compiling HDF5 1.8.9 with this version of gcc, I get the following error:

In file included from ../../../src/hdf5.h:45:0,
                 from gif.h:27,
                 from writehdf.c:19:
../../../src/H5FDlog.h:65:81: warning: ISO C90 does not support 'long long' [-Wlong-long]
 H5_DLL herr_t H5Pset_fapl_log(hid_t fapl_id, const char *logfile, unsigned long long flags, size_t buf_si
                                                                                 ^
make[3]: Leaving directory `/home4/e424/e424/vanwyk1/tmp/hdf5-1.8.9/hl/tools/gif2h5'
make[3]: Entering directory `/home4/e424/e424/vanwyk1/tmp/hdf5-1.8.9/hl/tools'
make[3]: Nothing to be done for `all-am'.
make[3]: Leaving directory `/home4/e424/e424/vanwyk1/tmp/hdf5-1.8.9/hl/tools'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home4/e424/e424/vanwyk1/tmp/hdf5-1.8.9/hl/tools'
make[2]: Entering directory `/home4/e424/e424/vanwyk1/tmp/hdf5-1.8.9/hl'
make[2]: Nothing to be done for `all-am'.
make[2]: Leaving directory `/home4/e424/e424/vanwyk1/tmp/hdf5-1.8.9/hl'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home4/e424/e424/vanwyk1/tmp/hdf5-1.8.9/hl'
Making all in perform
make[1]: Entering directory `/home4/e424/e424/vanwyk1/tmp/hdf5-1.8.9/perform'
make[1]: *** No rule to make target `../tools/lib/libh5tools.la', needed by `h5perf_serial'.  Stop.
make[1]: Leaving directory `/home4/e424/e424/vanwyk1/tmp/hdf5-1.8.9/perform'
make: *** [all-recursive] Error 1

However, when I revert to gcc/4.8.1 HDF5 compiles fine suggesting we are falling behind when it comes to dependencies and leaving us with major headaches when we start fresh on a system. This issue documents what we use and what needs updating.

What version are we targeting? Helios is using an ancient gcc/4.4.7, whereas Archer now uses gcc/5.1 and will probably move to gcc/5.3 in the near future. Therefore gcc/5.1 is a reasonable target.

What we currently use:

  1. HDF5 1.8.9 (newest 1.8.16)
  2. NetCDF 4.2.1.1 (newest 4.4.0)
  3. GSL 1.16 (newest 2.1)
  4. Ruby set version (ideally 2.2.5 or higher)
  5. ncurses 5.9 (newest 6.0)
  6. readline 6.2 (newest 6.3)
  7. YAML 0.1.4 (newest .1.6)

Further comments will deal with updating these one by one using gcc/5.1.

@ferdinandvanwyk
Copy link
Contributor Author

ferdinandvanwyk commented May 10, 2016

Updating all the dependencies to the above versions (with Ruby 2.3.0) and compiling from source seems to work fine. Until you load an existing coderunner instance in which case I get the following error:

coderunner im -u
...
/home/e424/e424/vanwyk1/.rvm/gems/ruby-2.3.0/gems/gs2crmod-0.12.16/lib/gs2crmod/gsl_tools.rb:57:in `<top (required)>': uninitialized constant GSL::Matrix (NameError)
Did you mean?  Matrix
               NMatrix
...

I am unable to reproduce this on a local machine and it happens for both GSL 2.1 and 1.16 so doesn't seem related to that.

@edmundhighcock
Copy link
Member

OK, so the solution we've worked out is to release coderunner 1.0.x which uses the dependencies at the version we have always been using and then move the master to 1.1.x which will begin the process of moving to all the latest versions of the libraries and compatibility with the SciRuby framework.

@ferdinandvanwyk
Copy link
Contributor Author

I tried this again and the current status is as above. Using the following set of packages:

netcdf-4.4.0
gsl-2.1
hdf5-1.8.16
yaml-0.1.6
readline-6.3
ncurses-6.0
ruby-2.3.1 (built using RVM)

$ coderunner im -u
CodeRunner (c) 2009-2016. Written by Edmund Highcock & Ferdinand van Wyk. Loading...
Loading libraries...Warning: could not load rbgsl; limited functionality
............
Warning: could not load rbgsl; limited functionality
Loading modules for gs2, nil...
/home/e424/e424/vanwyk1/.rvm/gems/ruby-2.3.1/gems/gs2crmod-0.12.16/lib/gs2crmod/graphs.rb:152: warning: key :t_index is duplicated and overwritten on line 174
/home/e424/e424/vanwyk1/.rvm/gems/ruby-2.3.1/gems/gs2crmod-0.12.16/lib/gs2crmod/gsl_tools.rb:57:in `<top (required)>': uninitialized constant GSL::Matrix (NameError)
Did you mean?  Matrix
               NMatrix
    from /home/e424/e424/vanwyk1/.rvm/gems/ruby-2.3.1/gems/gs2crmod-0.12.16/lib/gs2crmod/gsl_data.rb:20:in `eval'
    from /home/e424/e424/vanwyk1/.rvm/gems/ruby-2.3.1/gems/gs2crmod-0.12.16/lib/gs2crmod/gsl_data.rb:20:in `<class:Gs2>'
    from /home/e424/e424/vanwyk1/.rvm/gems/ruby-2.3.1/gems/gs2crmod-0.12.16/lib/gs2crmod/gsl_data.rb:18:in `<class:CodeRunner>'
    from /home/e424/e424/vanwyk1/.rvm/gems/ruby-2.3.1/gems/gs2crmod-0.12.16/lib/gs2crmod/gsl_data.rb:17:in `<top (required)>'

@ferdinandvanwyk
Copy link
Contributor Author

Archer have now removed all gcc/4.x versions so the old dependencies lists don't work anymore.

@ferdinandvanwyk
Copy link
Contributor Author

Did we want to make a new minor version coderunner-1.1 with the updated dependencies?

@ferdinandvanwyk
Copy link
Contributor Author

Dependencies fixed with PR #11

@ferdinandvanwyk
Copy link
Contributor Author

https://github.com/SciRuby/nmatrix/wiki/Installation

note that nmatrix doesn't yet support gcc >=5.0

Oh no...

@edmundhighcock
Copy link
Member

That is a little unfortunate!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants