SCIENTIFIC-LINUX-USERS Archives

January 2020

SCIENTIFIC-LINUX-USERS@LISTSERV.FNAL.GOV

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
"Patrick J. LoPresti" <[log in to unmask]>
Reply To:
Patrick J. LoPresti
Date:
Thu, 30 Jan 2020 17:03:27 -0800
Content-Type:
text/plain
Parts/Attachments:
text/plain (37 lines)
On Thu, Jan 30, 2020 at 12:02 PM Andrew C Aitchison
<[log in to unmask]> wrote:
>
> On Thu, 30 Jan 2020, Yasha Karant wrote:
>
>
> > Calibre needs RuntimeError: Failed to load icu with error:
> > /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by
> > /opt/calibre/lib/libicui18n.so.64)
>
> I'm running SL6 and Ubuntu19... so don't know the exact details for RHEL7
> but the softwarecollections repo should have a devtoolset-8-gcc package
> (or more likely a set of packages) with a with suitable compiler and
> runtime.

The devtoolset-X packages will not help with this problem, unless
maybe you are recompiling Calibre itself. The main purpose of the
devtoolsets is to let you use a newer compiler to create executables
that can run on an *unmodified* RHEL7 system. Red Hat has hacked the
devtoolset GCC to use rely only on the original libstdc++; i.e. the
original CXXABI.

This error just means the executable you have requires a newer
libstdc++. The certain way to get one is to compile a newer GCC from
source on RHEL7. One of the artifacts of this build will be the newer
libstdc++.so that you need. Make sure the newer libstdc++.so.6 resides
in your LD_LIBRARY_PATH, and your Calibre executable might run. At the
very least, it will fail differently.

As a short cut, you could try copying libstdc++.so.6 from a RHEL8
system and put it somewhere in your LD_LIBRARY_PATH. But that might
create new missing dependencies of its own, or be incompatible with
the RHEL7 dynamic linker, etc. I have not tried it because I get
around this sort of issue by compiling GCC.

 - Pat

ATOM RSS1 RSS2