I'm on Slackware64-14.2. I have found a new audio software to play with, called Geonkick. The new program requires =>gcc-7. I upgraded stock gcc-5.5.0 package to gcc-9.3.0. The new program has a standalone version and an lv2 plugin version for use in host software. Both the standalone and the plugin, which is a shared object(.so), build and run with gcc-9.3.0 installed. Then I downgraded gcc.9.3.0 back to gcc-5.5, and Geonkick wouldn't run anymore, neither the shared object, nor the standalone executable. They look in /usr/lib64 for GLIBCXX_3.4.26 not /usr/gcc93/lib64. I figured I need both versions of gcc installed. I modified gcclegacy494.SlackBuild from SBo to install gcc-9.3.0 as package gcc93-9.3.0 in /usr/gcc93 concurrently with stock gcc-5.5. In order to make Geonkick build with gcc-9.3.0 I exported these varables:
Code:
export CC=/usr/gcc93/bin/gcc-9.3.0
export CXX=/usr/gcc93/bin/g++-9.3.0
So as not to have to prepend geonkick with
Code:
LD_PRELOAD=/usr/gcc93/lib64/libstdc++.so.6.0.28
every time I use the program I added theses linker options to $SLKCFLAGS variable in the slackbuild.
Code:
-L/usr/gcc93/lib64 -Wl,-rpath=/usr/gcc93/lib64
...and
Code:
export LD_RUN_PATH=/usr/gcc93/lib64/
Now the standalone executable works normally, but when loading the plugin in an lv2 plugin host, geonkick still fails with:
Code:
/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /usr/lib64/lv2/geonkick.lv2/libgeonkick_lv2.so)
$ strings /usr/lib64/libstdc++.so | grep GLIBC
Code:
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBC_2.3
GLIBC_2.2.5
GLIBC_2.14
GLIBC_2.18
GLIBC_2.17
GLIBC_2.3.2
GLIBCXX_DEBUG_MESSAGE_LENGTH
$ strings /usr/gcc93/lib64/libstdc++.so | grep GLIBC
Code:
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBCXX_3.4.25
GLIBCXX_3.4.26
GLIBCXX_3.4.27
GLIBCXX_3.4.28
GLIBC_2.2.5
GLIBC_2.3
GLIBC_2.14
GLIBC_2.6
GLIBC_2.4
GLIBC_2.18
GLIBC_2.16
GLIBC_2.17
GLIBC_2.3.2
GLIBCXX_DEBUG_MESSAGE_LENGTH
$ ldd /usr/lib64/lv2/geonkick.lv2/libgeonkick_lv2.so |grep libstdc++.so
Code:
libstdc++.so.6 => /usr/gcc93/lib64/libstdc++.so.6 (0x00007fca354ff000)
Any feedback would be greatly appreciated.