[Buildroot] [PATCH] Drop ldconfig handling
Arnout Vandecappelle
arnout at mind.be
Wed Dec 30 14:25:32 UTC 2015
On 29-12-15 21:34, Yann E. MORIN wrote:
> Thomas, All,
>
> On 2015-12-29 21:27 +0100, Thomas Petazzoni spake thusly:
>> The ldconfig handling in the main Makefile is utterly broken, as it
>> calls the build machine ldconfig to generate the ld.so.cache of the
>> target. Unfortunately, the format of the ld.so.cache is architecture
>> specific, and therefore the build machine ldconfig cannot be used
>> as-is.
>>
>> This patch therefore simply drops using ldconfig entirely, and removes
>> /etc/ld.so.conf.d/ from the target skeleton. The idea is that all
>> libraries that should be loaded by the dynamic linker must be
>> installed in paths where the dynamic linker searches them by default
>> (typically /lib or /usr/lib).
>>
>> This might potentially break a few packages, but the only way to know
>> is to actually stop handling ldconfig. In order to be notified of such
>> cases, we add a check in target-finalize to verify that there is no
>> /etc/ld.so.conf file in the target.
>>
>> Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>> ---
>> Makefile | 14 ++------------
>> system/skeleton/etc/ld.so.conf.d/.empty | 0
>> 2 files changed, 2 insertions(+), 12 deletions(-)
>> delete mode 100644 system/skeleton/etc/ld.so.conf.d/.empty
>>
>> diff --git a/Makefile b/Makefile
>> index 1d69192..a15013e 100644
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -598,18 +598,8 @@ endif
>> xargs -r $(STRIPCMD) $(STRIP_STRIP_DEBUG)
>>
>> mkdir -p $(TARGET_DIR)/etc
>> - # Mandatory configuration file and auxiliary cache directory
>> - # for recent versions of ldconfig
>> - touch $(TARGET_DIR)/etc/ld.so.conf
>> - mkdir -p $(TARGET_DIR)/var/cache/ldconfig
>> - if [ -x "$(TARGET_CROSS)ldconfig" ]; \
>> - then \
>> - $(TARGET_CROSS)ldconfig -r $(TARGET_DIR) \
>> - -f $(TARGET_DIR)/etc/ld.so.conf; \
>> - else \
>> - /sbin/ldconfig -r $(TARGET_DIR) \
>> - -f $(TARGET_DIR)/etc/ld.so.conf; \
>> - fi
>> + test -f $(TARGET_DIR)/etc/ld.so.conf && \
>> + { echo "ERROR: we shouldn't have a /etc/ld.so.conf file"; exit 1; } || true
>
> We could also add (in case a package installs something in there):
>
> test -d $(TARGET_DIR)/etc/ld.so.conf.d && \
> { echo "ERROR: we shouldn't have a /etc/ld.so.conf.d directory"; exit 1; } || true
And it probably should be done after the overlay and post-build scripts, since
these may (and are likely to) add it.
Regards,
Arnout
>
> Otherwise:
>
> Reviewed-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
>
> Regards,
> Yann E. MORIN.
>
>> ( \
>> echo "NAME=Buildroot"; \
>> echo "VERSION=$(BR2_VERSION_FULL)"; \
>> diff --git a/system/skeleton/etc/ld.so.conf.d/.empty b/system/skeleton/etc/ld.so.conf.d/.empty
>> deleted file mode 100644
>> index e69de29..0000000
>> --
>> 2.6.4
>>
>> _______________________________________________
>> buildroot mailing list
>> buildroot at busybox.net
>> http://lists.busybox.net/mailman/listinfo/buildroot
>
--
Arnout Vandecappelle arnout at mind be
Senior Embedded Software Architect +32-16-286500
Essensium/Mind http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint: 7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
More information about the buildroot
mailing list