I have an OSS package that includes 5 c++ programs.
It worked fine under various old linux distros. Now under SLED12
all these programs abort, using both Intel and GNU compilers.
The package also includes some Fortran90 programs, which still
run okay.
Valgind shows that the abortees load many dynamic libraries, then
==8529== Jump to the invalid address stated on the next line
==8529== at 0x0: ???
==8529== by 0x40036F1: dl_main (in /lib64/
ld-2.22.so)
==8529== by 0x4016304: _dl_sysdep_start (in /lib64/
ld-2.22.so)
==8529== by 0x40049E9: _dl_start (in /lib64/
ld-2.22.so)
==8529== by 0x4001157: ??? (in /lib64/
ld-2.22.so)
==8529== Address 0x0 is not stack'd, malloc'd or (recently) free'd
So it appears to me it is still in the loader, and has got a null
address from god knows where.
What is dl_main? Is it when the loader finally jumps to the start
of the main program?