Hi, 郭涛 wrote,
Hi Waldemar
The binary is statically linked except libc. It linked with shared library ld-uClibc.so.0. The ld-uClibc.so.0 is soft link to ld-uClibc-1.0.22.so.
Below is output of readelf
Okay, you might face two problems here:
a) your uClibc-ng isn't compiled with the same configured options as the original uClibc. Then the ABI is'nt the same and your application does not work.
b) some specific code between uClibc and uClibc-ng changed, so that the ABI changed. We never guarantee any stable ABI. For an embedded system with uClibc you better should have all the application source code.
If you design a firmware where you require a stable ABI, better use something like GNU C library. They use symbol versioning feature in the toolchain to guarantee a stable ABI even when you update the version.
Sorry, bad news.
If you want universal binaries, you might consider using static linking next time.
best regards Waldemar