All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v2 0/2] Make remote debugging easier
@ 2019-10-01  1:36 unixmania at gmail.com
  2019-10-01  1:36 ` [Buildroot] [PATCH v2 1/2] Strip binaries in the rootfs creation instead of in target-finalize unixmania at gmail.com
  2019-10-01  1:36 ` [Buildroot] [PATCH v2 2/2] toolchain: install gdbinit under TARGET_DIR unixmania at gmail.com
  0 siblings, 2 replies; 10+ messages in thread
From: unixmania at gmail.com @ 2019-10-01  1:36 UTC (permalink / raw)
  To: buildroot

From: Carlos Santos <unixmania@gmail.com>

Patch 1 moves binaries stripping to the rootfs creation instead of in
target-finalize. This allows us to find the non-stripped executables
under TARGET_DIR, rather than searching inside the build directory.

Patch 2 updates the gdbinit file to set sysroot to TARGET_DIR.

Carlos Santos (2):
  Strip binaries in the rootfs creation instead of in target-finalize
  toolchain: install gdbinit under TARGET_DIR

 Makefile                                      | 34 -----------------
 docs/manual/quickstart.txt                    |  5 ++-
 docs/manual/using-buildroot-debugger.txt      | 11 ++++--
 fs/common.mk                                  | 37 ++++++++++++++++++-
 toolchain/helpers.mk                          |  4 +-
 .../pkg-toolchain-external.mk                 |  4 +-
 6 files changed, 50 insertions(+), 45 deletions(-)

-- 
2.18.1

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

* [Buildroot] [PATCH v2 1/2] Strip binaries in the rootfs creation instead of in target-finalize
  2019-10-01  1:36 [Buildroot] [PATCH v2 0/2] Make remote debugging easier unixmania at gmail.com
@ 2019-10-01  1:36 ` unixmania at gmail.com
  2019-10-01  6:52   ` Thomas Petazzoni
  2020-04-13 14:02   ` Thomas Petazzoni
  2019-10-01  1:36 ` [Buildroot] [PATCH v2 2/2] toolchain: install gdbinit under TARGET_DIR unixmania at gmail.com
  1 sibling, 2 replies; 10+ messages in thread
From: unixmania at gmail.com @ 2019-10-01  1:36 UTC (permalink / raw)
  To: buildroot

From: Carlos Santos <unixmania@gmail.com>

Since commit 118534fe54 the root filesystem image is generated from a
temporary copy of TARGET_DIR, so we can strip the binaries in the copy,
only.

This allows us to easily find the non-stripped executables to debug with
gdbserver, as they are at the same relative path in TARGET_DIR as in the
target device, rather than searching inside the build directory.

Fixes: https://bugs.busybox.net/show_bug.cgi?id=10386

Signed-off-by: Carlos Santos <unixmania@gmail.com>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
---
CC: Ciro Santilli <ciro.santilli@gmail.com>
---
Changes v1->v2:
- Strip before running the fakeroot script, as suggested by Arnout
  Vandecappelle
- Change commit message accordingly. Removed paragraph about setting
  sysroot to TARGET_DIR in gdb, which is done in the next commit.
---
 Makefile     | 34 ----------------------------------
 fs/common.mk | 36 +++++++++++++++++++++++++++++++++++-
 2 files changed, 35 insertions(+), 35 deletions(-)

diff --git a/Makefile b/Makefile
index ecaae13846..57314e5f1d 100644
--- a/Makefile
+++ b/Makefile
@@ -614,38 +614,6 @@ RSYNC_VCS_EXCLUSIONS = \
 	--exclude .svn --exclude .git --exclude .hg --exclude .bzr \
 	--exclude CVS
 
-# When stripping, obey to BR2_STRIP_EXCLUDE_DIRS and
-# BR2_STRIP_EXCLUDE_FILES
-STRIP_FIND_COMMON_CMD = \
-	find $(TARGET_DIR) \
-	$(if $(call qstrip,$(BR2_STRIP_EXCLUDE_DIRS)), \
-		\( $(call finddirclauses,$(TARGET_DIR),$(call qstrip,$(BR2_STRIP_EXCLUDE_DIRS))) \) \
-		-prune -o \
-	) \
-	$(if $(call qstrip,$(BR2_STRIP_EXCLUDE_FILES)), \
-		-not \( $(call findfileclauses,$(call qstrip,$(BR2_STRIP_EXCLUDE_FILES))) \) )
-
-# Regular stripping for everything, except libpthread, ld-*.so and
-# kernel modules:
-# - libpthread.so: a non-stripped libpthread shared library is needed for
-#   proper debugging of pthread programs using gdb.
-# - ld.so: a non-stripped dynamic linker library is needed for valgrind
-# - kernel modules (*.ko): do not function properly when stripped like normal
-#   applications and libraries. Normally kernel modules are already excluded
-#   by the executable permission check, so the explicit exclusion is only
-#   done for kernel modules with incorrect permissions.
-STRIP_FIND_CMD = \
-	$(STRIP_FIND_COMMON_CMD) \
-	-type f \( -perm /111 -o -name '*.so*' \) \
-	-not \( $(call findfileclauses,libpthread*.so* ld-*.so* *.ko) \) \
-	-print0
-
-# Special stripping (only debugging symbols) for libpthread and ld-*.so.
-STRIP_FIND_SPECIAL_LIBS_CMD = \
-	$(STRIP_FIND_COMMON_CMD) \
-	\( -name 'ld-*.so*' -o -name 'libpthread*.so*' \) \
-	-print0
-
 ifeq ($(BR2_ECLIPSE_REGISTER),y)
 define TOOLCHAIN_ECLIPSE_REGISTER
 	./support/scripts/eclipse-register-toolchain `readlink -f $(O)` \
@@ -761,8 +729,6 @@ endif
 	rm -rf $(TARGET_DIR)/usr/doc $(TARGET_DIR)/usr/share/doc
 	rm -rf $(TARGET_DIR)/usr/share/gtk-doc
 	rmdir $(TARGET_DIR)/usr/share 2>/dev/null || true
-	$(STRIP_FIND_CMD) | xargs -0 $(STRIPCMD) 2>/dev/null || true
-	$(STRIP_FIND_SPECIAL_LIBS_CMD) | xargs -0 -r $(STRIPCMD) $(STRIP_STRIP_DEBUG) 2>/dev/null || true
 
 	test -f $(TARGET_DIR)/etc/ld.so.conf && \
 		{ echo "ERROR: we shouldn't have a /etc/ld.so.conf file"; exit 1; } || true
diff --git a/fs/common.mk b/fs/common.mk
index 842ea924a5..caa7825cbb 100644
--- a/fs/common.mk
+++ b/fs/common.mk
@@ -61,6 +61,38 @@ ROOTFS_COMMON_FINAL_RECURSIVE_DEPENDENCIES = $(sort \
 	) \
 	$(ROOTFS_COMMON_FINAL_RECURSIVE_DEPENDENCIES__X))
 
+# When stripping, obey to BR2_STRIP_EXCLUDE_DIRS and
+# BR2_STRIP_EXCLUDE_FILES
+STRIP_FIND_COMMON_CMD = \
+	find $(TARGET_DIR) \
+	$(if $(call qstrip,$(BR2_STRIP_EXCLUDE_DIRS)), \
+		\( $(call finddirclauses,$(TARGET_DIR),$(call qstrip,$(BR2_STRIP_EXCLUDE_DIRS))) \) \
+		-prune -o \
+	) \
+	$(if $(call qstrip,$(BR2_STRIP_EXCLUDE_FILES)), \
+		-not \( $(call findfileclauses,$(call qstrip,$(BR2_STRIP_EXCLUDE_FILES))) \) )
+
+# Regular stripping for everything, except libpthread, ld-*.so and
+# kernel modules:
+# - libpthread.so: a non-stripped libpthread shared library is needed for
+#   proper debugging of pthread programs using gdb.
+# - ld.so: a non-stripped dynamic linker library is needed for valgrind
+# - kernel modules (*.ko): do not function properly when stripped like normal
+#   applications and libraries. Normally kernel modules are already excluded
+#   by the executable permission check, so the explicit exclusion is only
+#   done for kernel modules with incorrect permissions.
+STRIP_FIND_CMD = \
+	$(STRIP_FIND_COMMON_CMD) \
+	-type f \( -perm /111 -o -name '*.so*' \) \
+	-not \( $(call findfileclauses,libpthread*.so* ld-*.so* *.ko) \) \
+	-print0
+
+# Special stripping (only debugging symbols) for libpthread and ld-*.so.
+STRIP_FIND_SPECIAL_LIBS_CMD = \
+	$(STRIP_FIND_COMMON_CMD) \
+	\( -name 'ld-*.so*' -o -name 'libpthread*.so*' \) \
+	-print0
+
 .PHONY: rootfs-common
 rootfs-common: $(ROOTFS_COMMON_DEPENDENCIES) target-finalize
 	@$(call MESSAGE,"Generating root filesystems common tables")
@@ -157,9 +189,11 @@ $$(BINARIES_DIR)/$$(ROOTFS_$(2)_FINAL_IMAGE_NAME): $$(ROOTFS_$(2)_DEPENDENCIES)
 		$$(BASE_TARGET_DIR)/ \
 		$$(TARGET_DIR)
 
+	$$(STRIP_FIND_CMD) | xargs -0 $$(STRIPCMD) 2>/dev/null || true
+	$$(STRIP_FIND_SPECIAL_LIBS_CMD) | xargs -0 -r $$(STRIPCMD) $$(STRIP_STRIP_DEBUG) 2>/dev/null || true
+
 	echo '#!/bin/sh' > $$(FAKEROOT_SCRIPT)
 	echo "set -e" >> $$(FAKEROOT_SCRIPT)
-
 	echo "chown -h -R 0:0 $$(TARGET_DIR)" >> $$(FAKEROOT_SCRIPT)
 	PATH=$$(BR_PATH) $$(TOPDIR)/support/scripts/mkusers $$(ROOTFS_FULL_USERS_TABLE) $$(TARGET_DIR) >> $$(FAKEROOT_SCRIPT)
 	echo "$$(HOST_DIR)/bin/makedevs -d $$(ROOTFS_FULL_DEVICES_TABLE) $$(TARGET_DIR)" >> $$(FAKEROOT_SCRIPT)
-- 
2.18.1

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

* [Buildroot] [PATCH v2 2/2] toolchain: install gdbinit under TARGET_DIR
  2019-10-01  1:36 [Buildroot] [PATCH v2 0/2] Make remote debugging easier unixmania at gmail.com
  2019-10-01  1:36 ` [Buildroot] [PATCH v2 1/2] Strip binaries in the rootfs creation instead of in target-finalize unixmania at gmail.com
@ 2019-10-01  1:36 ` unixmania at gmail.com
  1 sibling, 0 replies; 10+ messages in thread
From: unixmania at gmail.com @ 2019-10-01  1:36 UTC (permalink / raw)
  To: buildroot

From: Carlos Santos <unixmania@gmail.com>

Now that binaries are stripped only in the root filesystem we can use
TARGET_DIR as sysroot in gdb, instead of STAGING dir. Install gdbinit
at target/usr/share/buildroot but exclude it from the root filesystem
since it's required only at the host side.

Update the documentation accordingly.

Signed-off-by: Carlos Santos <unixmania@gmail.com>
---
CC: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
CC: Ciro Santilli <ciro.santilli@gmail.com>
---
 docs/manual/quickstart.txt                            |  5 +++--
 docs/manual/using-buildroot-debugger.txt              | 11 +++++++----
 fs/common.mk                                          |  1 +
 toolchain/helpers.mk                                  |  4 ++--
 .../toolchain-external/pkg-toolchain-external.mk      |  4 ++--
 5 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/docs/manual/quickstart.txt b/docs/manual/quickstart.txt
index 74158ae249..d2e48b4540 100644
--- a/docs/manual/quickstart.txt
+++ b/docs/manual/quickstart.txt
@@ -108,8 +108,9 @@ This directory contains several subdirectories:
   use the tarball image generated in +images/+ and extract it as
   root. Compared to +staging/+, +target/+ contains only the files and
   libraries needed to run the selected target applications: the
-  development files (headers, etc.) are not present, the binaries are
-  stripped.
+  development files (headers, etc.) are not present. The binaries are stripped
+  in the generation of the root filesystem but are left unstripped in
+  +target/+.
 
 * +host/+ contains the installation of tools compiled for the host
   that are needed for the proper execution of Buildroot, including the
diff --git a/docs/manual/using-buildroot-debugger.txt b/docs/manual/using-buildroot-debugger.txt
index d5293beb53..599f9f77d1 100644
--- a/docs/manual/using-buildroot-debugger.txt
+++ b/docs/manual/using-buildroot-debugger.txt
@@ -35,15 +35,18 @@ Then, on the host, you should start the cross gdb using the following
 command line:
 
 ----------------------------
-<buildroot>/output/host/bin/<tuple>-gdb -x <buildroot>/output/staging/usr/share/buildroot/gdbinit foo
+<buildroot>/output/host/bin/<tuple>-gdb -x <buildroot>/output/target/usr/share/buildroot/gdbinit foo
 ----------------------------
 
 Of course, +foo+ must be available in the current directory, built
 with debugging symbols. Typically you start this command from the
-directory where +foo+ is built (and not from +output/target/+ as the
-binaries in that directory are stripped).
+directory where +foo+ is built or from from +output/target/+, as in
 
-The +<buildroot>/output/staging/usr/share/buildroot/gdbinit+ file will tell the
+----------------------------
+<buildroot>/output/host/bin/<tuple>-gdb -x <buildroot>/output/target/usr/share/buildroot/gdbinit output/target/usr/bib/foo
+----------------------------
+
+The +<buildroot>/output/target/usr/share/buildroot/gdbinit+ file will tell the
 cross gdb where to find the libraries of the target.
 
 Finally, to connect to the target from the cross gdb:
diff --git a/fs/common.mk b/fs/common.mk
index caa7825cbb..612baffca2 100644
--- a/fs/common.mk
+++ b/fs/common.mk
@@ -186,6 +186,7 @@ $$(BINARIES_DIR)/$$(ROOTFS_$(2)_FINAL_IMAGE_NAME): $$(ROOTFS_$(2)_DEPENDENCIES)
 	mkdir -p $$(ROOTFS_$(2)_DIR)
 	rsync -auH \
 		--exclude=/$$(notdir $$(TARGET_DIR_WARNING_FILE)) \
+		--exclude=/usr/share/buildroot \
 		$$(BASE_TARGET_DIR)/ \
 		$$(TARGET_DIR)
 
diff --git a/toolchain/helpers.mk b/toolchain/helpers.mk
index 6a4f7223c8..4ee3ba3e99 100644
--- a/toolchain/helpers.mk
+++ b/toolchain/helpers.mk
@@ -458,8 +458,8 @@ check_toolchain_ssp = \
 # Generate gdbinit file for use with Buildroot
 #
 gen_gdbinit_file = \
-	mkdir -p $(STAGING_DIR)/usr/share/buildroot/ ; \
-	echo "set sysroot $(STAGING_DIR)" > $(STAGING_DIR)/usr/share/buildroot/gdbinit
+	mkdir -p $(TARGET_DIR)/usr/share/buildroot/ ; \
+	echo "set sysroot $(TARGET_DIR)" > $(TARGET_DIR)/usr/share/buildroot/gdbinit
 
 # Given a path, determine the relative prefix (../) needed to return to the
 # root level. Note that the last component is treated as a file component; use a
diff --git a/toolchain/toolchain-external/pkg-toolchain-external.mk b/toolchain/toolchain-external/pkg-toolchain-external.mk
index c00211d59c..613e170855 100644
--- a/toolchain/toolchain-external/pkg-toolchain-external.mk
+++ b/toolchain/toolchain-external/pkg-toolchain-external.mk
@@ -469,7 +469,7 @@ endef
 #
 # Generate gdbinit file for use with Buildroot
 #
-define TOOLCHAIN_EXTERNAL_INSTALL_GDBINIT
+define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_GDBINIT
 	$(Q)if test -f $(TARGET_CROSS)gdb ; then \
 		$(call MESSAGE,"Installing gdbinit"); \
 		$(gen_gdbinit_file); \
@@ -569,7 +569,6 @@ define $(2)_INSTALL_STAGING_CMDS
 	$$(TOOLCHAIN_EXTERNAL_CREATE_STAGING_LIB_SYMLINK)
 	$$(TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS)
 	$$(TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER)
-	$$(TOOLCHAIN_EXTERNAL_INSTALL_GDBINIT)
 endef
 
 # Even though we're installing things in both the staging, the host
@@ -579,6 +578,7 @@ define $(2)_INSTALL_TARGET_CMDS
 	$$(TOOLCHAIN_EXTERNAL_CREATE_TARGET_LIB_SYMLINK)
 	$$(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_LIBS)
 	$$(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_GDBSERVER)
+	$$(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_GDBINIT)
 	$$(TOOLCHAIN_EXTERNAL_FIXUP_UCLIBCNG_LDSO)
 endef
 
-- 
2.18.1

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

* [Buildroot] [PATCH v2 1/2] Strip binaries in the rootfs creation instead of in target-finalize
  2019-10-01  1:36 ` [Buildroot] [PATCH v2 1/2] Strip binaries in the rootfs creation instead of in target-finalize unixmania at gmail.com
@ 2019-10-01  6:52   ` Thomas Petazzoni
  2019-10-01 11:26     ` Carlos Santos
  2019-10-01 20:15     ` Yann E. MORIN
  2020-04-13 14:02   ` Thomas Petazzoni
  1 sibling, 2 replies; 10+ messages in thread
From: Thomas Petazzoni @ 2019-10-01  6:52 UTC (permalink / raw)
  To: buildroot

On Mon, 30 Sep 2019 22:36:53 -0300
unixmania at gmail.com wrote:

> From: Carlos Santos <unixmania@gmail.com>
> 
> Since commit 118534fe54 the root filesystem image is generated from a
> temporary copy of TARGET_DIR, so we can strip the binaries in the copy,
> only.
> 
> This allows us to easily find the non-stripped executables to debug with
> gdbserver, as they are at the same relative path in TARGET_DIR as in the
> target device, rather than searching inside the build directory.
> 
> Fixes: https://bugs.busybox.net/show_bug.cgi?id=10386
> 
> Signed-off-by: Carlos Santos <unixmania@gmail.com>
> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

I see Arnout reviewed-by this, and while I understand the goal, I am
not sure this is the real direction/solution we want for this problem.
I believe the real solution we have been talking about for a long time
is to install everything in STAGING_DIR (not just libraries). This way,
unstripped binaries with debugging symbols with all be in STAGING_DIR.

To me, the change being proposed here makes TARGET_DIR really different
from what ends up in the final rootfs image. While we admittely already
have a few differences, I personally like to keep the idea of
TARGET_DIR being really what's on the target root filesystem, with as
few differences as possible.

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

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

* [Buildroot] [PATCH v2 1/2] Strip binaries in the rootfs creation instead of in target-finalize
  2019-10-01  6:52   ` Thomas Petazzoni
@ 2019-10-01 11:26     ` Carlos Santos
  2019-10-01 20:15     ` Yann E. MORIN
  1 sibling, 0 replies; 10+ messages in thread
From: Carlos Santos @ 2019-10-01 11:26 UTC (permalink / raw)
  To: buildroot

On Tue, Oct 1, 2019 at 3:52 AM Thomas Petazzoni
<thomas.petazzoni@bootlin.com> wrote:
>
> On Mon, 30 Sep 2019 22:36:53 -0300
> unixmania at gmail.com wrote:
>
> > From: Carlos Santos <unixmania@gmail.com>
> >
> > Since commit 118534fe54 the root filesystem image is generated from a
> > temporary copy of TARGET_DIR, so we can strip the binaries in the copy,
> > only.
> >
> > This allows us to easily find the non-stripped executables to debug with
> > gdbserver, as they are at the same relative path in TARGET_DIR as in the
> > target device, rather than searching inside the build directory.
> >
> > Fixes: https://bugs.busybox.net/show_bug.cgi?id=10386
> >
> > Signed-off-by: Carlos Santos <unixmania@gmail.com>
> > Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
>
> I see Arnout reviewed-by this, and while I understand the goal, I am
> not sure this is the real direction/solution we want for this problem.
> I believe the real solution we have been talking about for a long time
> is to install everything in STAGING_DIR (not just libraries). This way,
> unstripped binaries with debugging symbols with all be in STAGING_DIR.
>
> To me, the change being proposed here makes TARGET_DIR really different
> from what ends up in the final rootfs image. While we admittely already
> have a few differences, I personally like to keep the idea of
> TARGET_DIR being really what's on the target root filesystem, with as
> few differences as possible.

We could make it optional, keeping the the current behavior by default.

-- 
Carlos Santos <unixmania@gmail.com>

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

* [Buildroot] [PATCH v2 1/2] Strip binaries in the rootfs creation instead of in target-finalize
  2019-10-01  6:52   ` Thomas Petazzoni
  2019-10-01 11:26     ` Carlos Santos
@ 2019-10-01 20:15     ` Yann E. MORIN
  1 sibling, 0 replies; 10+ messages in thread
From: Yann E. MORIN @ 2019-10-01 20:15 UTC (permalink / raw)
  To: buildroot

Thomas, Carlos, Arnout, All,

On 2019-10-01 08:52 +0200, Thomas Petazzoni spake thusly:
> On Mon, 30 Sep 2019 22:36:53 -0300
> unixmania at gmail.com wrote:
> 
> > From: Carlos Santos <unixmania@gmail.com>
> > 
> > Since commit 118534fe54 the root filesystem image is generated from a
> > temporary copy of TARGET_DIR, so we can strip the binaries in the copy,
> > only.
> > 
> > This allows us to easily find the non-stripped executables to debug with
> > gdbserver, as they are at the same relative path in TARGET_DIR as in the
> > target device, rather than searching inside the build directory.
> > 
> > Fixes: https://bugs.busybox.net/show_bug.cgi?id=10386
> > 
> > Signed-off-by: Carlos Santos <unixmania@gmail.com>
> > Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
> 
> I see Arnout reviewed-by this, and while I understand the goal, I am
> not sure this is the real direction/solution we want for this problem.
> I believe the real solution we have been talking about for a long time
> is to install everything in STAGING_DIR (not just libraries). This way,
> unstripped binaries with debugging symbols with all be in STAGING_DIR.

I agree with Thomas here.

The dichotomy between staging/ and target/ has no raison-d'?tre nowadays.

The idea would be to ensure that all packages install in staging/,
always. Then, identify packages that have different commands for target/
and staging/ and make them identical. Finally, remove the target install
commands, and genreate it as a copy of staging at the beginning of the
target-finalize step.

Yes, the real patches will be a bit more gory than the ideal view above.
But except for some special snowflakes (qt5, I'm looking at you), it
should be fairly straghtforward...

> To me, the change being proposed here makes TARGET_DIR really different
> from what ends up in the final rootfs image. While we admittely already
> have a few differences, I personally like to keep the idea of
> TARGET_DIR being really what's on the target root filesystem, with as
> few differences as possible.

I beg to slightly disagree here, and with a much more controversial view
on the topic: we should just get rid of target/ altogether. The only
valid artefacts we generates are the images in images/

But that one is definitely not on the table. ;-)

Regards,
Yann E. MORIN.

> Thomas
> -- 
> Thomas Petazzoni, CTO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
> _______________________________________________
> 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.  |
'------------------------------^-------^------------------^--------------------'

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

* [Buildroot] [PATCH v2 1/2] Strip binaries in the rootfs creation instead of in target-finalize
  2019-10-01  1:36 ` [Buildroot] [PATCH v2 1/2] Strip binaries in the rootfs creation instead of in target-finalize unixmania at gmail.com
  2019-10-01  6:52   ` Thomas Petazzoni
@ 2020-04-13 14:02   ` Thomas Petazzoni
  2020-04-13 23:41     ` Carlos Santos
  1 sibling, 1 reply; 10+ messages in thread
From: Thomas Petazzoni @ 2020-04-13 14:02 UTC (permalink / raw)
  To: buildroot

Hello Carlos,

On Mon, 30 Sep 2019 22:36:53 -0300
unixmania at gmail.com wrote:

> From: Carlos Santos <unixmania@gmail.com>
> 
> Since commit 118534fe54 the root filesystem image is generated from a
> temporary copy of TARGET_DIR, so we can strip the binaries in the copy,
> only.
> 
> This allows us to easily find the non-stripped executables to debug with
> gdbserver, as they are at the same relative path in TARGET_DIR as in the
> target device, rather than searching inside the build directory.
> 
> Fixes: https://bugs.busybox.net/show_bug.cgi?id=10386
> 
> Signed-off-by: Carlos Santos <unixmania@gmail.com>
> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
> ---
> CC: Ciro Santilli <ciro.santilli@gmail.com>
> ---
> Changes v1->v2:
> - Strip before running the fakeroot script, as suggested by Arnout
>   Vandecappelle
> - Change commit message accordingly. Removed paragraph about setting
>   sysroot to TARGET_DIR in gdb, which is done in the next commit.
> ---
>  Makefile     | 34 ----------------------------------
>  fs/common.mk | 36 +++++++++++++++++++++++++++++++++++-
>  2 files changed, 35 insertions(+), 35 deletions(-)

There's been feedback from both Yann and me on this patch, and both of
us think this is not the approach we want to take. Instead, we'd rather
see everything installed to STAGING_DIR as the way of fixing the
original issue.

So I've marked both patches as Rejected in patchwork. Of course, if
other people disagree with this decision, we can always revisit and
rediscuss the matter.

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

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

* [Buildroot] [PATCH v2 1/2] Strip binaries in the rootfs creation instead of in target-finalize
  2020-04-13 14:02   ` Thomas Petazzoni
@ 2020-04-13 23:41     ` Carlos Santos
  2020-04-14  5:36       ` Thomas Petazzoni
  0 siblings, 1 reply; 10+ messages in thread
From: Carlos Santos @ 2020-04-13 23:41 UTC (permalink / raw)
  To: buildroot

On Mon, Apr 13, 2020 at 11:02 AM Thomas Petazzoni
<thomas.petazzoni@bootlin.com> wrote:
>
> Hello Carlos,
>
> On Mon, 30 Sep 2019 22:36:53 -0300
> unixmania at gmail.com wrote:
>
> > From: Carlos Santos <unixmania@gmail.com>
> >
> > Since commit 118534fe54 the root filesystem image is generated from a
> > temporary copy of TARGET_DIR, so we can strip the binaries in the copy,
> > only.
> >
> > This allows us to easily find the non-stripped executables to debug with
> > gdbserver, as they are at the same relative path in TARGET_DIR as in the
> > target device, rather than searching inside the build directory.
> >
> > Fixes: https://bugs.busybox.net/show_bug.cgi?id=10386
> >
> > Signed-off-by: Carlos Santos <unixmania@gmail.com>
> > Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
> > ---
> > CC: Ciro Santilli <ciro.santilli@gmail.com>
> > ---
> > Changes v1->v2:
> > - Strip before running the fakeroot script, as suggested by Arnout
> >   Vandecappelle
> > - Change commit message accordingly. Removed paragraph about setting
> >   sysroot to TARGET_DIR in gdb, which is done in the next commit.
> > ---
> >  Makefile     | 34 ----------------------------------
> >  fs/common.mk | 36 +++++++++++++++++++++++++++++++++++-
> >  2 files changed, 35 insertions(+), 35 deletions(-)
>
> There's been feedback from both Yann and me on this patch, and both of
> us think this is not the approach we want to take. Instead, we'd rather
> see everything installed to STAGING_DIR as the way of fixing the
> original issue.
>
> So I've marked both patches as Rejected in patchwork. Of course, if
> other people disagree with this decision, we can always revisit and
> rediscuss the matter.

Just to remind you, the problem was reported two and a half years ago
and the situation is still the same. Perfect is the enemy of good and
later easily becomes never. Anyway, your project, your rules.

-- 
Carlos Santos <unixmania@gmail.com>

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

* [Buildroot] [PATCH v2 1/2] Strip binaries in the rootfs creation instead of in target-finalize
  2020-04-13 23:41     ` Carlos Santos
@ 2020-04-14  5:36       ` Thomas Petazzoni
  2020-04-14 10:46         ` Carlos Santos
  0 siblings, 1 reply; 10+ messages in thread
From: Thomas Petazzoni @ 2020-04-14  5:36 UTC (permalink / raw)
  To: buildroot

Hello Carlos,

On Mon, 13 Apr 2020 20:41:11 -0300
Carlos Santos <unixmania@gmail.com> wrote:

> > There's been feedback from both Yann and me on this patch, and both of
> > us think this is not the approach we want to take. Instead, we'd rather
> > see everything installed to STAGING_DIR as the way of fixing the
> > original issue.
> >
> > So I've marked both patches as Rejected in patchwork. Of course, if
> > other people disagree with this decision, we can always revisit and
> > rediscuss the matter.  
> 
> Just to remind you, the problem was reported two and a half years ago
> and the situation is still the same. Perfect is the enemy of good and
> later easily becomes never. Anyway, your project, your rules.

Why do you have to be so aggressive immediately ? Don't you have in
your palette of expression, some intermediate feelings, where you can
express concern and possibly frustration, without the agression ? Be
constructive instead of aggressive ?

It is deeply annoying that we can never say anything about your patches
and the approach you're taking without getting back a missile. This is
not how open-source works. We discuss, understand each others concerns,
find good trade-offs and make progress.

Have you read our concerns ? As far as I can see, your only reply was
to make it optional, which really only makes the whole thing even more
complicated.

I would really like to build a more constructive and collaborative work
relationship with you. You are always sending very good and valuable
contributions of high-quality, but there's a total impossibility of
discussing them if we have some fundamental concerns about them. All of
us maintainers always fear to reply negatively to one of your
contributions, because we know we are going to get back an aggression.
This is not how it should work. This is not why we all want to
contribute together to the same project.

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

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

* [Buildroot] [PATCH v2 1/2] Strip binaries in the rootfs creation instead of in target-finalize
  2020-04-14  5:36       ` Thomas Petazzoni
@ 2020-04-14 10:46         ` Carlos Santos
  0 siblings, 0 replies; 10+ messages in thread
From: Carlos Santos @ 2020-04-14 10:46 UTC (permalink / raw)
  To: buildroot

ing Tue, Apr 14, 2020 at 2:36 AM Thomas Petazzoni
<thomas.petazzoni@bootlin.com> wrote:
>
> Hello Carlos,
>
> On Mon, 13 Apr 2020 20:41:11 -0300
> Carlos Santos <unixmania@gmail.com> wrote:
>
> > > There's been feedback from both Yann and me on this patch, and both of
> > > us think this is not the approach we want to take. Instead, we'd rather
> > > see everything installed to STAGING_DIR as the way of fixing the
> > > original issue.
> > >
> > > So I've marked both patches as Rejected in patchwork. Of course, if
> > > other people disagree with this decision, we can always revisit and
> > > rediscuss the matter.
> >
> > Just to remind you, the problem was reported two and a half years ago
> > and the situation is still the same. Perfect is the enemy of good and
> > later easily becomes never. Anyway, your project, your rules.

---8<---
> Have you read our concerns ? As far as I can see, your only reply was
> to make it optional, which really only makes the whole thing even more
> complicated.
---8<---

I have read the concerns. They sound reasonable but at the same time
there was an assumption (or promise) that the problem would vanish
once the dichotomy between staging/ and target/ be eliminated. Fair
enough, but no ETA was provided and the fact that the problem still
exists should be an alert about how difficult the solution is.

So two questions must be answered:

1. Is the problem reported by Ciro Santilli in bug 10386 real? If the
answer is "no", there's nothing else to argue about. Otherwise, jump
to question 2.

2. Is anybody able to estimate how long it will take to provide a solution?

-- 
Carlos Santos <unixmania@gmail.com>

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

end of thread, other threads:[~2020-04-14 10:46 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-01  1:36 [Buildroot] [PATCH v2 0/2] Make remote debugging easier unixmania at gmail.com
2019-10-01  1:36 ` [Buildroot] [PATCH v2 1/2] Strip binaries in the rootfs creation instead of in target-finalize unixmania at gmail.com
2019-10-01  6:52   ` Thomas Petazzoni
2019-10-01 11:26     ` Carlos Santos
2019-10-01 20:15     ` Yann E. MORIN
2020-04-13 14:02   ` Thomas Petazzoni
2020-04-13 23:41     ` Carlos Santos
2020-04-14  5:36       ` Thomas Petazzoni
2020-04-14 10:46         ` Carlos Santos
2019-10-01  1:36 ` [Buildroot] [PATCH v2 2/2] toolchain: install gdbinit under TARGET_DIR unixmania at gmail.com

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.