Recently the Linux-glibc team has release a new version of libc.so.6.
And some distros have integrated it.

But when you compile your application, at linking, the new table of signed 
symbols of that new libc.so.6 will be assigned.
It has as result that the application will run only on systems with that 
minimum libc.so.6 version and not on distros with previous version of libc.so.6.

The most "Catholic" option to fix this is to install a VM old distro with all 
needed for fpc and compile your application on that old distro and share that 
binary.
Not very "out-of-the-box".

Fortunately, Robert Rosee found a solution that dont need to tweak fpc-complier 
source and not install a VM.
https://forum.lazarus.freepascal.org/index.php/topic,58888.msg483626.html#msg483626

With msegui it is even better if we change some things in msegui source.
With those changes, a msegui application compiled on any system with libc.so 
older or newer will make your binary works:

  *   on Linux 32 from 1994-05-16 till libc.so die.
  *   on Linux 64 from 2002-01-20 till libc.so die.

(For X11 library, first version X11R6 (still used) date from 1994-05-16 till 
forever (X11 will always survive), so no problems there)

To enable this, you will need to only add this parameter for compilation 
"-dglibc225".
The fake libdl.so will be created by a patch using  "Command before compiling" 
and removed using "Command after compiling" in project option.

I did test it and it works on old distro more than 20 years ago!

What do you think, do you agree if I commit the change? (note that if you dont 
use "-dglibc225" nor the fake libdl.so, it will remain like it is now).

Fre;D
_______________________________________________
mseide-msegui-talk mailing list
mseide-msegui-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk

Reply via email to