[SOLVED] App compiled in 21.1 doesn't run in 20.3 lazarus / 32-Linux ---------------------------------------------------------------------- petevick · 2023-05-10 16:24 I've recently upgraded my Linux 20.3 PC to Linux 21.1, What I've found out is that any project compiled in 21.1 will not run in 20.3. Fortunately I have a 20.3 VirtualBox installed, and if I compile a project in that it will run in 21.1. Both my PC and the VM run Linux Mint Cinnamon and both are 64 bit. In the short term I'll use the VM for compilation, but I'd like to get the compatibility issue sorted in 21.1. The Project Options>Compiler Options>Config and Target>Target Platform are all set set to Default, changing Target OS to Linux makes no difference. I really can't see any other setting that would help with the compatibility. ---------------------------------------------------------------------- Fred vS · 2023-05-10 17:06 Hello. Try to run the application from terminal. If you get that kind of message: Quote./my_program: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./my_program) It is because the application was linked with a newer libc.so.6 sub- version than the one in the system. See here: https://forum.lazarus.freepascal.org/index.php/topic,58888.0.html To resume, the only cure is to compile+link your application on a older distro ( with VM for example ). libc.so.6 is backward compatible (they promise) so the app compiled on older distro should run on new distro. ---------------------------------------------------------------------- petevick · 2023-05-10 17:34 Quote from: Fred vS on May 10, 2023, 07:06:08 pmHello. Try to run the application from terminal. If you get that kind of message: Quote./my_program: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./my_program) It is because the application was linked with a newer libc.so.6 sub- version than the one in the system. See here: https://forum.lazarus.freepascal.org/index.php/topic,58888.0.html To resume, the only cure is to compile+link your application on a older distro ( with VM for example ). libc.so.6 is backward compatible (they promise) so the app compiled on older distro should run on new distro. Thanks for the repy Fred vS. I don't get a message like that, this is the full output..... Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i pete@pete-B450M:/usr/bin$ startlazarusNote: (lazarus) 10917 TIDEInstances.StartUserBuiltIDE Starting custom IDE: aProcess.Executable=/home/pete/.lazarus/bin/lazarus Params=[]pete@pete-B450M:/usr/bin$ Hint: (lazarus) [TMainIDE.ParseCmdLineOptions] PrimaryConfigPath="/home/pete/.lazarus"Hint: (lazarus) [TMainIDE.ParseCmdLineOptions] SecondaryConfigPath="/etc/lazarus"TMainIDE.DoOpenProjectFile A "/home/pete/Projects/BPM v1.3.0/BPM.lpi"Hint: (lazarus) [TBuildManager.SetBuildTarget] Old=x86_64-linux-gtk2 New=x86_64-linux- gtk2 Changed: OS/CPU=True LCL=FalseTCustomFormEditor.JITListFindAncestors Class=TImageTCustomFormEditor.JITListFindAncestors Class=TEditTCustomFormEditor.JITListFindAncestors Class=TSpeedButtonTCustomFormEditor.JITListFindAncestors Class=TLabelTCustomFormEditor.JITListFindAncestors Class=TListBoxTCustomFormEditor.JITListFindAncestors Class=TLabelTCustomFormEditor.JITListFindAncestors Class=TSpeedButtonTCustomFormEditor.JITListFindAncestors Class=TStatusBarTCustomFormEditor.JITListFindAncestors Class=TLabelTCustomFormEditor.JITListFindAncestors Class=TListBoxTCustomFormEditor.JITListFindAncestors Class=TLabelTCustomFormEditor.JITListFindAncestors Class=TSpeedButtonTCustomFormEditor.JITListFindAncestors Class=TSpeedButtonTCustomFormEditor.JITListFindAncestors Class=TSpeedButtonTCustomFormEditor.JITListFindAncestors Class=TEditTCustomFormEditor.JITListFindAncestors Class=TLabelTCustomFormEditor.JITListFindAncestors Class=TLabelTCustomFormEditor.JITListFindAncestors Class=TSpeedButtonTCustomFormEditor.JITListFindAncestors Class=TSpeedButtonTCustomFormEditor.JITListFindAncestors Class=TSpeedButtonTCustomFormEditor.JITListFindAncestors Class=TSpeedButtonTCustomFormEditor.JITListFindAncestors Class=TSpeedButtonTCustomFormEditor.JITListFindAncestors Class=TListBoxTCustomFormEditor.JITListFindAncestors Class=TPanelTCustomFormEditor.JITListFindAncestors Class=TTrackBarTCustomFormEditor.JITListFindAncestors Class=TLabelTCustomFormEditor.JITListFindAncestors Class=TSpeedButtonTCustomFormEditor.JITListFindAncestors Class=TSpeedButtonTCustomFormEditor.JITListFindAncestors Class=TSpeedButtonTCustomFormEditor.JITListFindAncestors Class=TSpeedButtonTCustomFormEditor.JITListFindAncestors Class=TSpeedButtonTCustomFormEditor.JITListFindAncestors Class=TSpeedButtonTCustomFormEditor.JITListFindAncestors Class=TSpeedButtonTCustomFormEditor.JITListFindAncestors Class=TLabelTCustomFormEditor.JITListFindAncestors Class=TSaveDialogTCustomFormEditor.JITListFindAncestors Class=TPopupMenuTCustomFormEditor.JITListFindAncestors Class=TMenuItemTCustomFormEditor.JITListFindAncestors Class=TMenuItemTCustomFormEditor.JITListFindAncestors Class=TMenuItemTCustomFormEditor.JITListFindAncestors Class=TOpenDialogTCustomFormEditor.JITListFindAncestors Class=TImageListLoadLFM Creating designer for hidden component of /home/pete/Projects/BPM v1.3.0/unit1.pasInitOpenedProjectFile select form in designer: Form1:TForm1 TDesigner There could be something in line 6, but it's above my pay grade. I do know that both my 21.1 PC and 20.3 VM both use gtk2. I already use a Linux x32 VM for compiling for 32bit installs and a Windows10 x32 VM, so one extra step isn't a deal breaker really. Thanks again for the reply. ---------------------------------------------------------------------- Fred vS · 2023-05-10 17:42 Hello. Quote What I've found out is that any project compiled in 21.1 will not run in 20.3. Ha, so I miss something, I was thinking that you get trouble with a binary compiled on  21.1 that does not run in 20.3. ---------------------------------------------------------------------- petevick · 2023-05-10 17:49 Quote from: Fred vS on May 10, 2023, 07:42:18 pmHello. Quote What I've found out is that any project compiled in 21.1 will not run in 20.3. Ha, so I miss something, I was thinking that you get trouble with a binary compiled on  21.1 that does not run in 20.3.  You thought correctly, a binary I compiled in 21.1 does not run in 20.3, but a binary I compiled in 20.3 does run in 21.1, I'm confusing myself a bit now ---------------------------------------------------------------------- Fred vS · 2023-05-10 18:00 Quote from: petevick on May 10, 2023, 07:49:24 pmQuote from: Fred vS on May 10, 2023, 07:42:18 pmHello. Quote What I've found out is that any project compiled in 21.1 will not run in 20.3. Ha, so I miss something, I was thinking that you get trouble with a binary compiled on  21.1 that does not run in 20.3.  You thought correctly, a binary I compiled in 21.1 does not run in 20.3, but a binary I compiled in 20.3 does run in 21.1, I'm confusing myself a bit now  So, what's when you do via a terminal on 20.3 (replace mybinary_21 with name of your application compiled on 21.1): Code: Bash  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i > cd directory_of_mybinary> ./mybinary_21 What is the message of terminal? ---------------------------------------------------------------------- petevick · 2023-05-10 18:55 Quote from: Fred vS on May 10, 2023, 08:00:28 pmSo, what's when you do via a terminal on 20.3 (replace mybinary_21 with name of your application compiled on 21.1): Code: Bash  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i > cd directory_of_mybinary> ./mybinary_21 What is the message of terminal? I get the following.... Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i pete@pete- VirtualBox:/media/sf_pete/Projects/BPM v1.3.0$ ./BPM./BPM: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./BPM)pete@pete-VirtualBox:/media/sf_pete/Projects/BPM v1.3.0$ .....so this is confirmation of your post above that it's a newer version of libc.so.6. I probably should have stayed with 20.3  but at least it's getting compiled in a nice clean 20.3 VM. Thanks for your help and clarification Trev vs, much appreciated ---------------------------------------------------------------------- dbannon · 2023-05-11 01:39 For the record, I have updated the "what works" table here - https://forum.lazarus.freepascal.org/index.php/topic,58888.msg479612.h tml#msg479612 Davo