All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v2 0/2] Switch coreutils to symlink method
@ 2018-04-01 15:39 Thomas Petazzoni
  2018-04-01 15:39 ` [Buildroot] [PATCH v2 1/2] coreutils: rewrite for loop with foreach Thomas Petazzoni
  2018-04-01 15:39 ` [Buildroot] [PATCH v2 2/2] coreutils: use single binary in symlink method Thomas Petazzoni
  0 siblings, 2 replies; 5+ messages in thread
From: Thomas Petazzoni @ 2018-04-01 15:39 UTC (permalink / raw)
  To: buildroot

Hello,

This is a new iteration of Carlos Santos patch [1] for coreutils, with
the following changes:

 - Add a patch to use a foreach make loop instead of a for shell loop.

 - Use the symlink method instead of shell wrappers in all cases, not
   only in the merged /usr situation, by tweaking how some programs
   are moved from /usr/bin to /bin.

[1] https://patchwork.ozlabs.org/patch/819273/

Thanks,

Thomas

Carlos Santos (1):
  coreutils: use single binary in symlink method

Thomas Petazzoni (1):
  coreutils: rewrite for loop with foreach

 package/coreutils/coreutils.mk | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

-- 
2.14.3

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH v2 1/2] coreutils: rewrite for loop with foreach
  2018-04-01 15:39 [Buildroot] [PATCH v2 0/2] Switch coreutils to symlink method Thomas Petazzoni
@ 2018-04-01 15:39 ` Thomas Petazzoni
  2018-04-01 20:52   ` Peter Korsgaard
  2018-04-01 15:39 ` [Buildroot] [PATCH v2 2/2] coreutils: use single binary in symlink method Thomas Petazzoni
  1 sibling, 1 reply; 5+ messages in thread
From: Thomas Petazzoni @ 2018-04-01 15:39 UTC (permalink / raw)
  To: buildroot

This brings up error checking at each iteration of the loop for free,
which removes the need for "|| exit 1".

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 package/coreutils/coreutils.mk | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/package/coreutils/coreutils.mk b/package/coreutils/coreutils.mk
index 8259f42f4a..8880e77dcc 100644
--- a/package/coreutils/coreutils.mk
+++ b/package/coreutils/coreutils.mk
@@ -104,9 +104,9 @@ endif
 ifeq ($(BR2_ROOTFS_MERGED_USR),)
 define COREUTILS_CLEANUP_BIN
 	# some things go in root rather than usr
-	for f in $(COREUTILS_BIN_PROGS); do \
-		mv -f $(TARGET_DIR)/usr/bin/$$f $(TARGET_DIR)/bin/$$f || exit 1; \
-	done
+	$(foreach f,$(COREUTILS_BIN_PROGS), \
+		mv -f $(TARGET_DIR)/usr/bin/$(f) $(TARGET_DIR)/bin/$(f)
+	)
 endef
 COREUTILS_POST_INSTALL_TARGET_HOOKS += COREUTILS_CLEANUP_BIN
 endif
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH v2 2/2] coreutils: use single binary in symlink method
  2018-04-01 15:39 [Buildroot] [PATCH v2 0/2] Switch coreutils to symlink method Thomas Petazzoni
  2018-04-01 15:39 ` [Buildroot] [PATCH v2 1/2] coreutils: rewrite for loop with foreach Thomas Petazzoni
@ 2018-04-01 15:39 ` Thomas Petazzoni
  2018-04-01 20:57   ` Peter Korsgaard
  1 sibling, 1 reply; 5+ messages in thread
From: Thomas Petazzoni @ 2018-04-01 15:39 UTC (permalink / raw)
  To: buildroot

From: Carlos Santos <casantos@datacom.ind.br>

The symlink method is faster, since there is no shell fork/exec, and
provides extra space savings.

Signed-off-by: Carlos Santos <casantos@datacom.ind.br>
[Thomas: use the symlinks method not only for the merged /usr case,
but also in the non-merged case to be consistent, and therefore adjust
the logic that was moving the shell wrappers to a logic that recreates
the symlinks.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 package/coreutils/coreutils.mk | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/package/coreutils/coreutils.mk b/package/coreutils/coreutils.mk
index 8880e77dcc..4ef888829f 100644
--- a/package/coreutils/coreutils.mk
+++ b/package/coreutils/coreutils.mk
@@ -14,7 +14,7 @@ COREUTILS_LICENSE_FILES = COPYING
 COREUTILS_AUTORECONF = YES
 COREUTILS_GETTEXTIZE = YES
 
-COREUTILS_CONF_OPTS = --disable-rpath --enable-single-binary=shebangs \
+COREUTILS_CONF_OPTS = --disable-rpath --enable-single-binary=symlinks \
 	$(if $(BR2_TOOLCHAIN_USES_MUSL),--with-included-regex)
 COREUTILS_CONF_ENV = ac_cv_c_restrict=no \
 	ac_cv_func_chown_works=yes \
@@ -103,9 +103,10 @@ endif
 
 ifeq ($(BR2_ROOTFS_MERGED_USR),)
 define COREUTILS_CLEANUP_BIN
-	# some things go in root rather than usr
+	# some things go in /bin rather than /usr/bin
 	$(foreach f,$(COREUTILS_BIN_PROGS), \
-		mv -f $(TARGET_DIR)/usr/bin/$(f) $(TARGET_DIR)/bin/$(f)
+		rm -f $(TARGET_DIR)/usr/bin/$(f) && \
+		ln -sf ../usr/bin/coreutils $(TARGET_DIR)/bin/$(f)
 	)
 endef
 COREUTILS_POST_INSTALL_TARGET_HOOKS += COREUTILS_CLEANUP_BIN
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH v2 1/2] coreutils: rewrite for loop with foreach
  2018-04-01 15:39 ` [Buildroot] [PATCH v2 1/2] coreutils: rewrite for loop with foreach Thomas Petazzoni
@ 2018-04-01 20:52   ` Peter Korsgaard
  0 siblings, 0 replies; 5+ messages in thread
From: Peter Korsgaard @ 2018-04-01 20:52 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@bootlin.com> writes:

 > This brings up error checking at each iteration of the loop for free,
 > which removes the need for "|| exit 1".

 > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>

Committed, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH v2 2/2] coreutils: use single binary in symlink method
  2018-04-01 15:39 ` [Buildroot] [PATCH v2 2/2] coreutils: use single binary in symlink method Thomas Petazzoni
@ 2018-04-01 20:57   ` Peter Korsgaard
  0 siblings, 0 replies; 5+ messages in thread
From: Peter Korsgaard @ 2018-04-01 20:57 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@bootlin.com> writes:

 > From: Carlos Santos <casantos@datacom.ind.br>
 > The symlink method is faster, since there is no shell fork/exec, and
 > provides extra space savings.

 > Signed-off-by: Carlos Santos <casantos@datacom.ind.br>
 > [Thomas: use the symlinks method not only for the merged /usr case,
 > but also in the non-merged case to be consistent, and therefore adjust
 > the logic that was moving the shell wrappers to a logic that recreates
 > the symlinks.]
 > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>

Committed, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-04-01 20:57 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-01 15:39 [Buildroot] [PATCH v2 0/2] Switch coreutils to symlink method Thomas Petazzoni
2018-04-01 15:39 ` [Buildroot] [PATCH v2 1/2] coreutils: rewrite for loop with foreach Thomas Petazzoni
2018-04-01 20:52   ` Peter Korsgaard
2018-04-01 15:39 ` [Buildroot] [PATCH v2 2/2] coreutils: use single binary in symlink method Thomas Petazzoni
2018-04-01 20:57   ` Peter Korsgaard

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.