PETSc does not build on Ubuntu 16.04

Issue #1902 closed
Ian Hinder created an issue

When building the ET on Ubuntu 16.04, the PETSc external library fails during configuration. The error, from configure.log, is

Possible ERROR while running archiver:
stderr:
/usr/bin/ar: `u' modifier ignored since `D' is the default (see `U')
      Archiver is not functional
*******************************************************************************
         UNABLE to CONFIGURE with GIVEN OPTIONS    (see configure.log for details):
-------------------------------------------------------------------------------
You set a value for --with-ar=ar", but ar cannot be used
*******************************************************************************

Setting this as critical for the upcoming release, since people will likely want to build the ET on their Ubuntu 16.04 machines.

Keyword: PETSc

Comments (16)

  1. Erik Schnetter
    • removed comment

    Please give more information. What machine was this, what was the machine description, option list, thorn list, etc? Did this use Simfactory?

  2. Frank Löffler
    • removed comment

    In order to resolve this, we would have to apply this:

    diff --git a/lib/make/configure b/lib/make/configure
    index 13e9a04..2baf17e 100755
    --- a/lib/make/configure
    +++ b/lib/make/configure
    @@ -2847,7 +2847,7 @@ fi
     # Various flags
    
    
    -: ${ARFLAGS=rucs}
    +: ${ARFLAGS=rcs}
    
     # Some architectures can't pass the 's' flag to ar so need to use ranlib
     # to create an index in an archive file.
    

    This is sub-optimal, as this is a generated file, and regenerating it will reintroduce the bug. Upgrading to a newer version of autotools would be the proper solution.

    Given the proximity of the release, I instead for the moment propose to unset ARFLAGS in PETSc.

  3. Ian Hinder reporter
    • marked as
    • removed comment

    Replying to [comment:4 eschnett]:

    Please give more information. What machine was this, what was the machine description, option list, thorn list, etc? Did this use Simfactory?

    This was a ubuntu-16.04 docker container, and it uses the ubuntu.cfg optionlist from simfactory. The thornlist was einsteintoolkit.th, with the following thorns explicitly enabled:

    CactusElliptic/EllPETSc CactusUtils/TATPETSc ExternalLibraries/PETSc

    as is done for the standard Jenkins Ubuntu (12.04) tests.

    If you don't have access to a machine with Ubuntu 16.04, and have a machine with Docker installed, you can create your own container for Ubuntu 16.04 with the required packages for the ET by following the instructions at https://hub.docker.com/r/ianhinder/et-jenkins-slave/.

    Note that this is the first time I have tried to build the ET with this version of Ubuntu, and I had to modify the list of recommended packages from those in the ubuntu.cfg optionlist, since several of them no longer exist. The packages used in this container can be seen in the Dockerfile (https://bitbucket.org/ianhinder/et-jenkins-slave/src/ubuntu-16.04/Dockerfile.

    Reducing severity to major, because PETSc is not enabled by default in the ET thornlist. People using Ubuntu 16.04 will still not be able to use PETSc, but presumably it is disabled by default because it is not expected to work easily.

  4. Frank Löffler
    • removed milestone
    • changed component to Cactus
    • removed comment

    The workaround of unsetting ARFLAGS in build.sh was committed. Please test and re-add the release as milestone if necessary.

    Otherwise: this is likely a problem in configure.in of Cactus and will be handled there after the release.

  5. Ian Hinder reporter
    • removed comment

    You would need ssh access to the build node itself; we don't record all the build output in the Jenkins archive (it is too big). I'm not sure that blindly committing a change and waiting for the test system to pick it up to 'test' the change is the right way of going about debugging this problem. Instead, I suggest that you reproduce the problem yourself on your own machine. See comment:7. It should be really easy; I can help if you have trouble. Ideally, we would have infrastructure in place to have accounts for ET developers in a virtual environment with the different architectures we were testing, so that you could log in and compile Cactus yourself with a given OS, and reproduce the problem (like we do on clusters). We don't have that yet.

    Note that before, we were talking about 16.04. But now the main build of 12.04 is failing, so something has gotten worse. Note also that many external libraries are being rebuilt as a result of #1897, and failing. Even the 'full' build, which shouldn't be affected by #1897 (https://build.barrywardell.net/job/EinsteinToolkitFull/) is failing now, so the change to the ar behaviour has made 12.04 fail in a similar way to 16.04.

    I am attaching configure.log. This is from build 798 of 'EinsteinToolkit'.

  6. Frank Löffler
    • removed comment

    configure.log suggests that unsetting ARFLAGS resulted in PETSc assuming it to be empty. That was my mistake. I assumed this would mean it wouldn't been used. If I would have looked further dwon in the same file I would have seen that indeed, it was. I now committed a fix which, instead of unsetting ARFLAGS removes 'u' if present.

  7. Erik Schnetter
    • removed comment

    If the change didn't help, then let's undo the commit.

    The way to test this would be to set up a new Ubuntu VM and reproduce it there.

  8. Frank Löffler
    • removed comment

    The latest change did correct the problem, at least Jenkins now builds. It isn't a indication that 16.04 works, but the output shows that 'u' is gone from ARFLAGS. We would need someone with 16.04 to confirm that the problem is also gone there.

  9. Log in to comment