Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is Linux Standard Base (LSB) AppChecker reliable?

According to the LSB scanner, my binary is supposedly incompatible with a specific version of Linux because it uses GBLICXX_3.4.9 symbols. But when I tried to run the binary myself on that version, everything seems to work fine...

Can a binary even start on a Linux distro if that distro is missing the runtime libraries containing the required symbols?

like image 755
live2dream95 Avatar asked Feb 18 '10 20:02

live2dream95


People also ask

What is LSB package Linux?

The Linux Standard Base (LSB) was a joint project by several Linux distributions under the organizational structure of the Linux Foundation to standardize the software system structure, including the Filesystem Hierarchy Standard used in the Linux kernel.

Is Linux Standard Base an API?

The LSB contains both a set of Application Program Interfaces (APIs) and Application Binary Interfaces (ABIs). APIs may appear in the source code of portable applications, while the compiled binary of that application may use the larger set of ABIs.

What is Linux system base?

The Linux Standard Base is a project under the Free Standards Group. It attempts to develop and promote a set of binary standards that will increase compatibility among GNU/Linux and other similar systems. These standards will also enable software applications to run on any conforming system.


2 Answers

I don't know if I've understood well the question but as far as I know even though you have compiled your program with a modern glibc does not necessarily mean that you won't be able to execute into an older version. The next Linux command:

objdump -T "your exe or lib file" | grep GLIB

will show you which version of the glibc the symbols of your program belong to.

For further information there is a paper called How to write shared libraries by Ulrich Drepper that explains a lot of things of how symbols work in linux not only for shared libraries but also for executables

like image 104
javier-sanz Avatar answered Sep 22 '22 14:09

javier-sanz


I suspect they're warning you that you're using symbols that, even if they are available on your test system, may not be available on all LSB-compliant systems.

like image 25
Eric Seppanen Avatar answered Sep 20 '22 14:09

Eric Seppanen