I've upgraded Optware-ng uClibc-ng from 1.0.15 to 1.0.26 a while ago. It
called for recompilation of most of the packages, but this issue seems to
be resolved now. The issue I'd like to report is that when the linker
(ld-uClibc.so.0) is built, UCLIBC_RUNTIME_PREFIX seems to evaluate to "/",
even though RUNTIME_PREFIX is set to "/opt" (see attached config). I had to
resort to patching uClibc-ng sources (
%OPTWARE_TARGET_PREFIX% is replaced with "/opt") to get this fixed. It
wasn't so with 1.0.15, setting RUNTIME_PREFIX to "/opt" made linker look
for libs only in "/opt/lib", "/opt/usr/lib", etc., and not in "/lib" and
such. Is this change intended, or is it a bug?
P.S. Another thing I noticed that you may want to know. Looking
at ldso/ldso/dl-elf.c, this line seems to be wrong:
> UCLIBC_RUNTIME_PREFIX "usr" LDSO_MULTILIB_DIR,
since LDSO_MULTILIB_DIR defaults to "lib" -- not "/lib", so I'm guessing
you want it this way:
> UCLIBC_RUNTIME_PREFIX "usr/" LDSO_MULTILIB_DIR,
Yitai Schwartz wrote,
> sysconf creates a lot of code dependencies.
> getpagesize dosen't.
> staticly linked code that calls malloc is now much smaller.
Thanks for the patch. Can you show us some results of the
> @Guo: Do you think this is the right patch?
It's OK, and we should put the "elif __NR_socketcall" to every
socketcall syscall implementation.
> What happens if an application tries to use recvmmsg running on an
> older Kernel, will it crash or just do nothing?
Kernel will return -EINVAL, no crash.