GLIBCXX_3.4.26 not available -- PackageCompiler.jl -- should I recompile julia?

I’m running an Ubuntu 18.04.2 version of Linux on wsl version 1,0.
It comes with a GCC 7.5.0-3ubuntu1~18.04.
I’ve installed the latest julia prebuilt version 1.10.0.
It runs fine.

I have a problem, when I use the packageCompiler.jl to generate a shared object library for some julia code I intend to call from a C++ program.

When I run them, the default library is too old, I get this error.

ERROR: Unable to load dependent library /mypath/demo_build_for_linux/LibJuliaHFACompile/lib/julia/libjulia-codegen.so.1.10
Message:/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /mypath/demo_build_for_linux/LibJuliaHFACompile/lib/julia/libjulia-codegen.so.1.10)

If I run the executable with the LD_LIBRARY_PATH set to point to that julia library from the Julia packagecompiler.jl. I get a segmentation fault in that library. A previous version of packagecompiler used to work. So it could be something I did, but I’m thinking it is just dicing with death by doing things this way.

The error is:


[14353] signal (11.1): Segmentation fault
in expression starting at none:0
ijl_unbox_voidpointer at /cache/build/builder-amdci4-6/julialang/julia-release-1-dot-10/src/datatype.c:1273
__libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
_start at ./julia_HFA_demo (unknown line)
Allocations: 3289 (Pool: 3278; Big: 11); GC: 0

[14353] signal (11.1): Segmentation fault
in expression starting at none:0
ijl_unbox_voidpointer at /cache/build/builder-amdci4-6/julialang/julia-release-1-dot-10/src/datatype.c:1273
__libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
_start at ./julia_HFA_demo (unknown line)
Allocations: 3289 (Pool: 3278; Big: 11); GC: 0
Segmentation fault (core dumped)

This used to work, but I did some code cleanup on the packages, so I could have broken something, but I’m wondering if it is because of the library incompatibilities still.

I also have been unsuccessful in getting more helpful why am I erroring info out of the code. I need to put in some couts if all else fails here.

But in general, I’m wondering, if I should be building Julia from scratch if I am going to integrate packagecompiler.jl code with another program. Or does it matter? Is this a wild goose chase? Do I need to upgrade my compiler or linux version… (not always easy).

Any thoughts on how to debug this issue?

1 Like

I installed the latest ubuntu and the problem with requiring the library goes away.

I also found my problem. I renamed my base package when I was refactoring, so I was “using” a package name that didn’t exist in the precompiled package anymore in my example C++ build. No idea how I would ever have known this from the output error messages. I would have hoped that I would have received a different error maybe.

Silly mistake. I should have done a blanket search and replace refactoring on the project and not just the julia code.

1 Like