Linux binary compatibility flavour

Dear

I am a happy FreeBSD user since 1996. Now, I am running amd64-Release (14.4 and 15.0).
In a 14.4 machine, I was requested to run a linux64 new software. In this machine, there is a linux software thar runs smootly using CentOS compatibility.
I did: brandelf -T Linux * (to all linux binaries in the directory).

But now, when I tried to run this new software, I received:
Code:
./collaboration_server: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./collaboration_server)
./collaboration_server: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/home/marcos/Paraview/bin/../lib/libzmq.so.5)
./collaboration_server: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/home/marcos/Paraview/bin/../lib/libzmq.so.5)
An ldd binary_nome returns:
[/code]
collaboration_server:
libzmq.so.5 => /usr/home/marcos/Paraview/bin/../lib/libzmq.so.5 (0x12e73dac2000)
libstdc++.so.6 => /usr/local/lib/gcc10/libstdc++.so.6 (0x12e73e6c9000)
libm.so.6 => not found (0)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x12e73eebb000)
libc.so.6 => not found (0)
libpthread.so.0 => not found (0)
librt.so.1 => /lib/librt.so.1 (0x12e73f877000)
libm.so.6 => not found (0)
libc.so.6 => not found (0)
libm.so.5 => /lib/libm.so.5 (0x12e74047a000)
libc.so.7 => /lib/libc.so.7 (0x12e740bea000)
libthr.so.3 => /lib/libthr.so.3 (0x12e7429c9000)
[vdso] (0x12e73d425000)
[/code]

Thus, some libraries were found, another no.

I saw in the FreeBSD handbook that there are some Linux flavours binaries compatibility: debootstrap, Rocky 19 (I never heard about it). Please, I would like to ask you:

1) Is it possible to have more than one linux compatibility software installed? My guess is no but is better to be assure.

2) Is there any way to solve this problem without change the compatibility from CentOs for debian or other?

Thank you very much for your attention

Yours

Eduardo
 
1) Is it possible to have more than one linux compatibility software installed? My guess is no but is better to be assure.
Apparently it's not possible:

/usr/ports/emulators/linux_base-c7/Makefile
Rich (BB code):
137 PLIST_SUB=      LINUXBASE=${LINUXBASE} SYSCTLMIB=${SYSCTLMIB}

/usr/ports/emulators/linux_base-rl9/Makefile
Rich (BB code):
167 PLIST_SUB=      LINUXBASE=${LINUXBASE} SYSCTLMIB=${SYSCTLMIB}

/usr/ports/Mk/bsd.port.mk
Rich (BB code):
1008: LINUXBASE?=             /compat/linux

2) Is there any way to solve this problem without change the compatibility from CentOs for debian or other?
What does strings /compat/linux/usr/lib64/libstdc++.so.6 | grep GLIBCXX show?

libstdc++.so.6 => /usr/local/lib/gcc10/libstdc++.so.6 (0x12e73e6c9000)
This doesn't point to the /compat/linux libraries.

I don't have much experience with Linux compatibility, if above strings(1) show the right GLIBCXX, try exporting LD_LIBRARY_PATH=/compat/linux/usr/lib64.
 
Dear All

Thank you for your help.

The out put for is:
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_DEBUG_MESSAGE_LENGTH

I will investigate which is the expected output for a original linux machine.

I setenv LD_LIBRARY_PATH /compat/linux/usr/lib64:$LD_LIBRARY_PATH and did a ldd binary: "no complains about glibc.so" but some FreeBSD native binaries (vim as example) stopped. I removed the setenv line, reboot and now all is right (of course, glibc.so is missing again). The important is that some user, this setenv is ok. By now, I will wait for the user response about this fix.

Thank you a lot for your attention

Yours

Eduardo
 
Obviously the CentOS libstdc++.so.6 version doesn't have the necessary symbols (GLIBCXX_3.4.20, .21).

Try emulators/linux_base-rl9 instead.

Note: In the rl9 package, libstdc++.so.6 is a symlink to libstdc++.so.6.0.29.
Code:
% strings libstdc++.so.6.0.29 | grep GLIBCXX_3.4.2
GLIBCXX_3.4.2
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
GLIBCXX_3.4.29
 
Back
Top