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

"version `GLIBCXX_3.4.15' not found" #188

Open
danmattsson opened this issue Aug 26, 2016 · 7 comments
Open

"version `GLIBCXX_3.4.15' not found" #188

danmattsson opened this issue Aug 26, 2016 · 7 comments

Comments

@danmattsson
Copy link

danmattsson commented Aug 26, 2016

When trying to build our app (J2EE 1.8) on our build server (CentOS 6.3) using J2V8 4.5.0 in a Maven script we get the following error:

Caused by: java.lang.UnsatisfiedLinkError: Could not load J2V8 library. Reasons: 
    no j2v8_linux_x86_64 in java.library.path
    /root/libj2v8_linux_x86_64.so: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /root/libj2v8_linux_x86_64.so)

    at com.eclipsesource.v8.LibraryLoader.loadLibrary(LibraryLoader.java:75)
    at com.eclipsesource.v8.V8.load(V8.java:71)
    at com.eclipsesource.v8.V8.createV8Runtime(V8.java:145)
    ... 35 more

Works fine in OS X as well as Windows, any idea what might be wrong?

@trustin
Copy link

trustin commented Jan 3, 2017

The pre-built J2V8 binary provided in the official distribution requires GLIBC 3.4.15 or later, which means you need to run it on CentOS 7. Alternatively, you can build J2V8 by yourself on CentOS 6.

@matiwinnetou
Copy link
Contributor

matiwinnetou commented Jul 20, 2017

This will get even worse because soon glibc shipped in Ubuntu 16.04 will be most likely required to run J2V8. At the moment release for 4.8.0 uses Debian's JESSIE glibc. New build system in master is using latest Ubuntu 17.04 but we are discussing with @drywolf that this was probably premature decision. When I recommended Ubuntu 17.04 for our docker build I didn't think it will cause such issues with glibc and we didn't want to manually install cmake 3.16, sadly ubuntu 16.04 has older cmake 3.15 and we need at least 3.16.

@drywolf
Copy link
Contributor

drywolf commented Jul 20, 2017

I'm wondering if this is a similar scenario as for the requested Alpine support #289 that has come up some time ago.
One potential solution that I could think of, would be to make the used docker base image for a linux build a customizable parameter (https://stackoverflow.com/a/34600106 lets me believe that this is supported by docker, I have never used this approach yet though)

This would probably cover a lot of such cases where a Linux distribution has some specialties or particular requirements for the native compilation.
Right now this is just an idea, I will have to think about the consequences of this change for the rest of the build-system, but my first intuition tells me that this could be a worthwile addition.

@kernle32dll
Copy link

kernle32dll commented Jul 22, 2017

@drywolf You are right about that, and the Docker ARG can be used for exactly that. Maybe have the cmake version that is to be installed configurable. You can of course always install all kinds of cmake versions in parallel, and make the cmake version to be used a container configuration (environment vars).

@trustin
Copy link

trustin commented Jul 28, 2017

I really wish J2V8 is built against the oldest CentOS version which is not EOL'd, which will cover most users working for an enterprise.

@sherrybomb
Copy link

It would be helpful for requirements such as this to be documented. I couldn't find any requirements info already available.

@webclimber
Copy link

Is there a doc outlining how to compile against an older image of centos ?

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

7 participants