Skip to content

Missing symbol running v10 on s390x #25774

Description

@nealef
  • Version: v10
  • Platform: s390x
  • Distribution: RHEL 7.6

When running on RHEL 7 running the node command results in a message: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found.

Activity

  1. mhdawson commented on Jan 28, 2019

    @mhdawson
    Member

    @nodejs/platform-s390

    @nealef have you tried on other versions of RHEL 7 as well ?

    @gdams can you see if you can recreate on our internal RHEL 7 machines?

  2. nealef commented on Jan 28, 2019

    @nealef
    Author

    Versions (7.5)? Or platforms (x86_64)?

  3. mhdawson commented on Jan 28, 2019

    @mhdawson
    Member

    I meant versions like 7.5 etc. Trying to narrow down were we should try to reproduce. Understood that this is reported as an s390x only issue.

  4. nealef commented on Jan 28, 2019

    @nealef
    Author

    Yes, same problem on 7.5 as well. We had a similar problem with openJDK-11 which also uses the J9 engine from IBM.

  5. nealef commented on Jan 28, 2019

    @nealef
    Author

    It works on Ubuntu:

    NAME="Ubuntu"
    VERSION="18.04.1 LTS (Bionic Beaver)"
    

    This system uses gcc 7.3.0 though.

  6. richardlau commented on Jan 28, 2019

    @richardlau
    Member

    Node.js 10 requires gcc 4.9.4 or higher: https://github.com/nodejs/node/blob/v10.x/BUILDING.md#supported-toolchains

    According to https://access.redhat.com/solutions/19458 the default gcc on RHEL7 is 4.8.x.

  7. mhdawson commented on Jan 28, 2019

    @mhdawson
    Member

    x86 has the RHEL Developer toolset and more importantly a centos version that makes things easier on x86 so that's what I expected.

    For s390, the community builds/tests on RHEL72 but needs the 4.9.4 compiler due to requirements from V8.

  8. mhdawson commented on Jan 28, 2019

    @mhdawson
    Member

    Assuming 7.6 still has 4.8.x as mentioned by @richardlau I'm not surprised that you need to add the 4.9.4 compiler or at least libstdc++ from the 4.9.4 compiler, was just not expecting it to be reported as needing something from libc.

  9. nealef commented on Jan 28, 2019

    @nealef
    Author

    Assuming 7.6 still has 4.8.x as mentioned by @richardlau I'm not surprised that you need to add the compiler or at least libstdc++ from the 4.9.4, was just not expecting it to be reported as needing something from libc.

    My mistake with libc. It is libdstdc++ from gcc.

  10. mhdawson commented on Jan 28, 2019

    @mhdawson
    Member

    @nealef ah, that makes sense then. You will need to add the updated libstdc++ to your ld_library_path as that is expected behaviour. Unfortunate but we did not want to start statically linking things in a way that is different for s390x than for other platforms so it's one of the requirements for running 10.x on versions that have a default compiler earlier than 4.9.X

  11. nealef commented on Jan 28, 2019

    @nealef
    Author

    But there is no 4.9.x for RHEL on s390x. x86_64 CentOS 7 also only has 4.8.5. From where did your dev systems get the updated libstdc++?

  12. mscdex commented on Jan 28, 2019

    @mscdex
    Contributor

    Perhaps from a devtoolset?

  13. richardlau commented on Jan 28, 2019

    @richardlau
    Member

    I think we're building it from source: nodejs/build#1157

  14. nealef commented on Jan 29, 2019

    @nealef
    Author

    Perhaps from a devtoolset?

    Do you have a RHEL7 (x86_64) where it's running? If so, would you rpm -q -f rpm -q -f /lib64/libstdc++.so.*

  15. nealef commented on Jan 29, 2019

    @nealef
    Author

    I saw from #1157 that you're installing your own 4.9.4. I also mentioned in that issue that SCLO is available for s390x. I believe RHEL now has a subset which includes devtoolset-6/7/8. It's also available from our CentOS clone ClefOS.

  16. added
    s390xIssues and PRs related to the s390x architecture.
    on Jan 29, 2019
  17. richardlau commented on Feb 15, 2019

    @richardlau
    Member

    Is this closeable now?

  18. nealef commented on Feb 15, 2019

    @nealef
    Author

    I think so. I had been trying with the RH SCLO devtoolset-7 to provide the appropriate library but had a couple of unrelated issues. I am curious as to what is in 4.9.4 that is required?

  19. richardlau commented on Feb 15, 2019

    @richardlau
    Member

    I think so. I had been trying with the RH SCLO devtoolset-7 to provide the appropriate library but had a couple of unrelated issues. I am curious as to what is in 4.9.4 that is required?

    For reference, #13466 is where the version was bumped from 4.8.5 to 4.9.4.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    s390xIssues and PRs related to the s390x architecture.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions