Update.
After making everything work, I was able to successfully compile a legacy version of a simple form on the latest Arch Linux. All calls towards glibc were found and converted into versioned calls (mostly 2.2.5). So far so good.
However.
Running this app on Ubuntu 18 failed miserably. The call to dlopen failed.
Turns out that this has happened.
https://sourceware.org/glibc/wiki/Release/2.34#Libraries_merged_into_libcSo, no libdl.so.2 any more on these modern systems. My app was indeed only linked against libc.so.6 on the latest Arch Linux. The dlopen function is located in libc.so.6
And on Ubuntu 18 a function like dlopen is still located in libdl.so.2, resulting in the error "dlopen not found".
Sidenote.
I did not succeed in forcing the linker to link against an more or less empty libdl.so.2
(use --no-as-needed linker option)
Any ideas are very welcome !!
Update.
Forgot that the linker looks for static libs by default.
This works to get the unneeded libs into the executable:
--no-as-needed -l:libdl.so.2 -l:librt.so.1