6

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?

hmn
  • 716
  • 7
  • 18
live2dream95
  • 5,829
  • 8
  • 27
  • 24
  • How did you test whether that symbol actually was available on the machine you tested on ? – nos Feb 18 '10 at 20:46

2 Answers2

3

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

javier-sanz
  • 2,504
  • 23
  • 23
3

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.

Eric Seppanen
  • 5,923
  • 30
  • 24