toolchain: move glibc nsswitch.conf handling to a post-target hook

nsswitch.conf is processed both by the toolchain, nss-mdns and
nss-myhostname without any guaranteed ordering in between.

The toolchain package ensures that nsswitch.conf is available, and the two
nss-* packages tweaks the content, so the toolchain processing should run
before the nss-* ones.  Toolchain is a dependency of all the packages, so
ensure this is done by moving the toolchain handling to a
post-target-install hook.

Also move the variable to toolchain/toolchain/toolchain.mk where the virtual
toolchain package is defined for clarity.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
Peter Korsgaard 2018-10-20 23:26:35 +02:00
parent 6433cefa5c
commit a181d5de36
2 changed files with 10 additions and 10 deletions

View File

@ -7,16 +7,6 @@
# Those customisations are added to the TARGET_FINALIZE_HOOKS, to be applied
# just after all packages have been built.
# Install default nsswitch.conf file if the skeleton doesn't provide it
ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),y)
define GLIBC_COPY_NSSWITCH_FILE
$(Q)if [ ! -f "$(TARGET_DIR)/etc/nsswitch.conf" ]; then \
$(INSTALL) -D -m 0644 package/glibc/nsswitch.conf $(TARGET_DIR)/etc/nsswitch.conf ; \
fi
endef
TOOLCHAIN_TARGET_FINALIZE_HOOKS += GLIBC_COPY_NSSWITCH_FILE
endif
# Install the gconv modules
ifeq ($(BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY),y)
TOOLCHAIN_GLIBC_GCONV_LIBS = $(call qstrip,$(BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_LIST))

View File

@ -37,4 +37,14 @@ TOOLCHAIN_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_MUSL_KERNEL_HEADERS_COMPATIBIL
TOOLCHAIN_INSTALL_STAGING = YES
endif
# Install default nsswitch.conf file if the skeleton doesn't provide it
ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),y)
define GLIBC_COPY_NSSWITCH_FILE
@if [ ! -f "$(TARGET_DIR)/etc/nsswitch.conf" ]; then \
$(INSTALL) -D -m 0644 package/glibc/nsswitch.conf $(TARGET_DIR)/etc/nsswitch.conf ; \
fi
endef
TOOLCHAIN_POST_INSTALL_TARGET_HOOKS += GLIBC_COPY_NSSWITCH_FILE
endif
$(eval $(virtual-package))