Skip to content

Fix up Compiler levels for PPC machines #1020

Closed

Description

@mhdawson

Compilers on PPC were update to 4.9 recently.

What I'd like to do is:

  1. On BE just revert. We are already working on dropping BE from builds for 8.X and later. (I've removed from main download page, next step is to stop building in releases). (4.9 is only need to build later releases)

  2. on LE leave it at 4.9, validate that the binaries run on machines with gcc 4.8 installed and if ok update the release machine to match.

  3. Figure out how we have multiple compilers on each machine. We are likely to need this in the future and it would be good to know how we are going to accomplish this going forward.

  4. Update the ansible scripts so they do the right thing on PPC again.

Activity

  1. mhdawson commented on Nov 29, 2017

    @mhdawson
    MemberAuthor
  2. seishun commented on Nov 29, 2017

    @seishun
    Contributor

    I assume BE will be dropped from CI as well?

  3. gibfahn commented on Nov 29, 2017

    @gibfahn
    Member

    I assume BE will be dropped from CI as well?

    For newer release lines yes.

  4. mhdawson commented on Nov 29, 2017

    @mhdawson
    MemberAuthor

    @seishun as gibfahn says, BE machines will still be in the CI and will be used to test the release lines before 8.X. The CI jobs will be updated to that for BE they don't run and simply pass as we have done in other similar instances.

  5. mhdawson commented on Nov 29, 2017

    @mhdawson
    MemberAuthor

    Added this to release job

    if [[ $ARCH == ppc64 && ${NODE_MAJOR_VERSION} -gt 7 ]]; then
      echo "Not building $disttype on PPC Big Endian slave $NODE_NAME as not supported for v8.x and later"
      exit 0
    fi
    

    So we'll no longer build on for releases 8.x and above on PPC Big Endian.

    Will keep an eye on builds for next little while to make sure it does the right thing (I tested in a separate job and I believe it is good) and then add to test jobs.

  6. mhdawson commented on Nov 29, 2017

    @mhdawson
    MemberAuthor

    Note that archi is ppc64le for the LE machines so PPC sill still build on PPC LE for all versions.

  7. refack commented on Nov 30, 2017

    @refack
    Contributor

    Because of incompatibility with the libuv test jobs, I had to revert the default to gcc4.8 on all the 4 ppc machines (gcc4.9 is still installed).
    Now we just need to add a condition that will pick gcc4.9 for node>=9

  8. mhdawson commented on Nov 30, 2017

    @mhdawson
    MemberAuthor

    @refack be-1 seems broken now for Node.js test, while be-2 seems ok.

    The failures are:

    test-commit-plinux/nodes/ppcbe-ubuntu1404/out/Release/obj.target/v8_init/deps/v8/src/setup-isolate-full.o ../deps/v8/src/setup-isolate-full.cc
    In file included from ../deps/v8/src/base/logging.h:8:0,
                     from ../deps/v8/src/setup-isolate-full.cc:7:
    /usr/include/c++/4.8/cstring:41:28: fatal error: bits/c++config.h: No such file or directory
     #include <bits/c++config.h>
                                ^
    compilation terminated.
    make[2]: *** [/home/iojs/build/wor
    
  9. mhdawson commented on Nov 30, 2017

    @mhdawson
    MemberAuthor

    Is it possible you missed some steps on be-1 ?

    Can you also list the exact steps you followed so that we know how to update the ansible scripts to get to the same state ?

  10. mhdawson commented on Nov 30, 2017

    @mhdawson
    MemberAuthor

    Good forward, one more request is that we only change 1 machine at a time, validate that all is ok for a few days and then update the second machine once we are confident in the changes.

  11. mhdawson commented on Nov 30, 2017

    @mhdawson
    MemberAuthor

    Seems like only be-1 of the 2 BE machines were reverted.

    root@test-osuosl-ubuntu1404-ppc64-be-2:~# gcc --version
    gcc (Ubuntu 4.9.4-2ubuntu1~14.04.1) 4.9.4
    Copyright (C) 2015 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
    Last login: Thu Nov 30 17:49:56 2017 from 32.97.110.56
    root@test-osuosl-ubuntu1404-ppc64-be-1:~# gcc --version
    gcc (Ubuntu 4.8.5-2ubuntu1~14.04.1) 4.8.5
    Copyright (C) 2015 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    

    So seems the revert has not reverted back to the prior state.

    Both the le machines look like they were reversted.

  12. mhdawson commented on Nov 30, 2017

    @mhdawson
    MemberAuthor

    One thing I think may be related is that I think the default on PPCBE is 32 bit versus the 64 bit compiler and that may be related.

  13. mhdawson commented on Nov 30, 2017

    @mhdawson
    MemberAuthor

    @refack is it possible when installing/reverting 'g++-4.8-multilib' may have been removed ?

  14. mhdawson commented on Nov 30, 2017

    @mhdawson
    MemberAuthor

    I think that multilib may no longer be there:

    root@test-osuosl-ubuntu1404-ppc64-be-1:~# dpkg -l g++-4.8-multilib
    Desired=Unknown/Install/Remove/Purge/Hold
    | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
    |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
    ||/ Name                               Version                Architecture           Description
    +++-==================================-======================-======================-==========================================================================
    un  g++-4.8-multilib                   <none>                 <none>                 (no description available)
    
    
  15. mhdawson commented on Nov 30, 2017

    @mhdawson
    MemberAuthor

    @refack I'd like to have the steps you used for the revert to understand the sequence to see if re-installing multilib makes sense.

  16. 10 remaining items

  17. mhdawson commented on Nov 30, 2017

    @mhdawson
    MemberAuthor

    I'm guessing it is libuv-test-commit-linux, running that now

  18. mhdawson commented on Nov 30, 2017

    @mhdawson
    MemberAuthor
  19. mhdawson commented on Nov 30, 2017

    @mhdawson
    MemberAuthor

    libuv ran passed. @refack anything else I should check before updating be-2 in the same way. It seems to still have the 4.9 compiler.

  20. refack commented on Nov 30, 2017

    @refack
    Contributor
  21. mhdawson commented on Nov 30, 2017

    @mhdawson
    MemberAuthor

    @refack ok thanks.

  22. refack commented on Dec 1, 2017

    @refack
    Contributor

    BTW I found Ben's comment about compatibility: nodejs/node#13466 (comment) (mentioned in #762)

  23. mhdawson commented on Dec 1, 2017

    @mhdawson
    MemberAuthor

    Ok, don't see any failures on be-1 today, will plan to revert to 4.8 on be-2 on monday

  24. mhdawson commented on Dec 4, 2017

    @mhdawson
    MemberAuthor

    Reverted be-2, local compile test was ok, running CI now https://ci.nodejs.org/job/node-test-commit-plinux/nodes=ppcbe-ubuntu1404/13674/

  25. mhdawson commented on Dec 5, 2017

    @mhdawson
    MemberAuthor

    Created test-osuosl-ubuntu14-ppc64-le-3 for use in testing new ansible scripts/install of both 4.8 and 4.9 compilers at the same time.

  26. seishun commented on Jan 4, 2018

    @seishun
    Contributor

    @mhdawson what's the status of this? I assume dropping CI for BE is covered in #1068, but LE still uses an outdated compiler: https://ci.nodejs.org/job/node-test-commit-plinux/14374/nodes=ppcle-ubuntu1404/

  27. mhdawson commented on Jan 4, 2018

    @mhdawson
    MemberAuthor

    @jBarz is working on validating a dual compiler config for the power machines, getting him access in #1032. With the holidays it is stretching out a bit longer than expected.

  28. mhdawson commented on Feb 9, 2018

    @mhdawson
    MemberAuthor

    Making progress, landed new ansible scripts for PPC le, still need to roll out to all of the machines.

  29. mhdawson commented on May 11, 2018

    @mhdawson
    MemberAuthor

    This is complete, closing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions