I want to run an App, compiled on ArchLinux, which needs to be run still on Ubuntu 16.04 if needed. I don’t care about the size.
I used to do that for some of the games on https://portablelinuxgames.org. I built them on Archlinux in the Ubuntu 16.04 era, and they worked on Ubuntu 12.04 and 14.04.
All libs listed with ldd must be included.
Is there anything else needed to do?
You need to include the ELF interpreter itself: /lib/ld-linux.so.2 on 32bit or /lib64/ld-linux-x86-64.so.2 on 64bit.
Then you need a custom AppRun script that uses your included ELF interpreter to run your application’s binary: ./ld-linux-x86-64.so.2 <target_application> <whatever_parameters>.
Bear in mind it’s a tricky endeavour; it may work well on some applications, but some libraries don’t like this trick. That’s why it’s not usually the recommended way to package things.
I agree with @RazZziel that it is more a “last resort”.
I want to run an App, compiled on ArchLinux, which needs to be run still on Ubuntu 16.04 if needed.
Why? If it is your app, you could make the code changes needed for it to compile on the oldest still-supported Linux distribution, use that as the ingredients for the AppImage, and it would run on newer distributions as well. The core issue is that people don’t understand that they should always develop for the oldest systems users might have, not for the newest. The same thing drives me crazy on other platforms as well…