[Buildroot] [PATCH] uclibc: add simlinks from libdl/libm/libpthread/librt

Paul Cercueil paul at crapouillou.net
Sun Jun 14 17:51:23 UTC 2020


Hi Yann,

Le dim. 14 juin 2020 à 17:00, Yann E. MORIN <yann.morin.1998 at free.fr> 
a écrit :
> Paul, All,
> 
> On 2020-06-13 18:20 +0200, Paul Cercueil spake thusly:
>>  All the symbols that were previously present in libdl.so.0, 
>> libm.so.0,
>>  libpthread.so.0 and librt.so.0 are now all packed within uClibc.
>> 
>>  In order to keep binary compatibility with old executables, which 
>> were
>>  dynamically linked with one of the libraries above, add symbolic 
>> links
>>  to the uClibc shared library.
>> 
>>  Signed-off-by: Paul Cercueil <paul at crapouillou.net>
>>  ---
>>   package/uclibc/uclibc.mk | 4 ++++
>>   1 file changed, 4 insertions(+)
>> 
>>  diff --git a/package/uclibc/uclibc.mk b/package/uclibc/uclibc.mk
>>  index 3ba4589672..73664d5b0b 100644
>>  --- a/package/uclibc/uclibc.mk
>>  +++ b/package/uclibc/uclibc.mk
>>  @@ -424,6 +424,10 @@ define UCLIBC_INSTALL_TARGET_CMDS
>>   		RUNTIME_PREFIX=/ \
>>   		install_runtime
>>   	$(UCLIBC_INSTALL_UTILS_TARGET)
>>  +	ln -sf libuClibc-$(UCLIBC_VERSION).so $(TARGET_DIR)/lib/libdl.so.0
>>  +	ln -sf libuClibc-$(UCLIBC_VERSION).so $(TARGET_DIR)/lib/libm.so.0
>>  +	ln -sf libuClibc-$(UCLIBC_VERSION).so 
>> $(TARGET_DIR)/lib/libpthread.so.0
>>  +	ln -sf libuClibc-$(UCLIBC_VERSION).so $(TARGET_DIR)/lib/librt.so.0
> 
> This does not account for external toolchains.

True.

> I wonder how good those symlinks are anyway: uClibc has no ABI/API
> stability anyway, so there are no guarantee that a program linked
> against a version of uClibc will work against another version, or even
> the same version that was compiled with another configuration...

I didn't encounter any issue, everything works fine as intended. Tested 
with a broad panel of games compiled between 2014.05 and now.

> And I am not sure we want to condone such a case.
> 
> My opinion would be that, if you really need those legacy symlinks,
> then you should create them in a post-build script.

I had them in an overlay, but then everytime I merge upstream/master 
and uclibc gets bumped, my symlinks are stale and I end up with a 
rootfs that can't run the old binaries.

Cheers,
-Paul

> I'm leaving this patch opened in patchwork, so other maintainers may
> reverse my position.
> 
> Regards,
> Yann E. MORIN.
> 
>>   endef
>> 
>>   # STATIC has no ld* tools, only getconf
>>  --
>>  2.27.0
>> 
>>  _______________________________________________
>>  buildroot mailing list
>>  buildroot at busybox.net
>>  http://lists.busybox.net/mailman/listinfo/buildroot
> 
> --
> .-----------------.--------------------.------------------.--------------------.
> |  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' 
> conspiracy: |
> | +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___      
>          |
> | +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  
> There is no  |
> | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   
> conspiracy.  |
> '------------------------------^-------^------------------^--------------------'




More information about the buildroot mailing list