On 10/22/25 05:51, Collin Funk wrote:
Pádraig Brady <[email protected]> writes:

I notice that glibc's posix_spawn() reaps the child itself upon exec
error
(which I confirmed with `strace -ff`) but means we only get a single error
now from the following:
# Old behavior
     $ install src/install.c foo -s --strip-program=./foo
     install: cannot run './foo': Permission denied
     install: strip process terminated abnormally
# New behavior
     $ src/ginstall src/install.c foo -s --strip-program=./foo
     ginstall: cannot run './foo': Permission denied
That's fine though, and probably a slight improvement.

Yep, that is my preference as well. The second error message didn't seem
very helpful to me. Hopefully 'install' isn't running so long that you
forget you passed it '--strip-program=./foo'. :)

What about enhancing the diagnostic message?

diff --git a/src/install.c b/src/install.c
index 9cb13d429..40e901f24 100644
--- a/src/install.c
+++ b/src/install.c
@@ -518,7 +518,7 @@ strip (char const *name)

   bool ok = false;
   if (result != 0)
-    error (0, result, _("cannot run %s"), quoteaf (strip_program));
+    error (0, result, _("cannot run strip program %s"), quoteaf 
(strip_program));
   else
     {
       /* Wait for 'strip' to complete, and emit a warning message on failure  
*/


I'm not sure whether it's worth to add a condition to issue the previous message
with the default strip program:

diff --git a/src/install.c b/src/install.c
index 9cb13d429..40e901f24 100644
--- a/src/install.c
+++ b/src/install.c
@@ -518,7 +518,11 @@ strip (char const *name)

   bool ok = false;
   if (result != 0)
-    error (0, result, _("cannot run %s"), quoteaf (strip_program));
+    {
+      error (0, result, _("cannot run %s%s"),
+             streq (strip_program, "strip") ? "" : "strip program ",
+             quoteaf (strip_program));
+    }
   else
     {
       /* Wait for 'strip' to complete, and emit a warning message on failure  
*/

This yields:

  $ src/ginstall src/install.c foo -s   # with a non-working strip in PATH
  ginstall: cannot run 'strip': Exec format error

  $ src/ginstall src/install.c foo -s --strip-program=./README
  ginstall: cannot run strip program './README': Permission denied


Have a nice day,
Berny

Reply via email to