toolchain: move glibc nsswitch.conf handling to a post-target hook
authorPeter Korsgaard <peter@korsgaard.com>
Sat, 20 Oct 2018 21:26:35 +0000 (23:26 +0200)
committerPeter Korsgaard <peter@korsgaard.com>
Sat, 20 Oct 2018 23:50:35 +0000 (01:50 +0200)
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>
toolchain/toolchain.mk
toolchain/toolchain/toolchain.mk

index e7451e26432468e08ace72805346b5d30308c916..08d1649603d03c9d5147f6fca098baadb52f81c0 100644 (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))
index 91c9ca2eff6495610b4ef2e2500df446a860d305..17fb62147e8d27d11fcd57c2838f44734780049d 100644 (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))