hurd: Fix linknamespace of spawni

Message ID 20181205222541.27924-1-samuel.thibault@ens-lyon.org
State New
Headers show
Series
  • hurd: Fix linknamespace of spawni
Related show

Commit Message

Samuel Thibault Dec. 5, 2018, 10:25 p.m.
* include/unistd.h (__confstr): Add prototype and hidden prototype.
	* posix/confstr.c (confstr): Rename to __confstr.
	(__confstr): Add hidden def.
	(confstr): Add weak alias for __confstr.
	* sysdeps/mach/hurd/spawni.c (__spawni): Call __confstr instead of
	confstr.
---
 ChangeLog                  | 9 +++++++++
 include/unistd.h           | 2 ++
 posix/confstr.c            | 4 +++-
 sysdeps/mach/hurd/spawni.c | 4 ++--
 4 files changed, 16 insertions(+), 3 deletions(-)

-- 
2.15.1

Comments

Florian Weimer Dec. 6, 2018, 2:34 p.m. | #1
* Samuel Thibault:

> 	* include/unistd.h (__confstr): Add prototype and hidden prototype.

> 	* posix/confstr.c (confstr): Rename to __confstr.

> 	(__confstr): Add hidden def.

> 	(confstr): Add weak alias for __confstr.

> 	* sysdeps/mach/hurd/spawni.c (__spawni): Call __confstr instead of

> 	confstr.


Looks reasonable to me, and it should fix the linknamespace failure.

Thanks,
Florian
Samuel Thibault Dec. 7, 2018, 7:23 p.m. | #2
Florian Weimer, le jeu. 06 déc. 2018 15:34:26 +0100, a ecrit:
> * Samuel Thibault:

> 

> > 	* include/unistd.h (__confstr): Add prototype and hidden prototype.

> > 	* posix/confstr.c (confstr): Rename to __confstr.

> > 	(__confstr): Add hidden def.

> > 	(confstr): Add weak alias for __confstr.

> > 	* sysdeps/mach/hurd/spawni.c (__spawni): Call __confstr instead of

> > 	confstr.

> 

> Looks reasonable to me, and it should fix the linknamespace failure.


Applied, thanks!

Samuel

Patch

diff --git a/include/unistd.h b/include/unistd.h
index a171b00326..a043431ecf 100644
--- a/include/unistd.h
+++ b/include/unistd.h
@@ -6,6 +6,8 @@ 
 libc_hidden_proto (_exit, __noreturn__)
 rtld_hidden_proto (_exit, __noreturn__)
 libc_hidden_proto (alarm)
+extern size_t __confstr (int name, char *buf, size_t len);
+libc_hidden_proto (__confstr)
 libc_hidden_proto (confstr)
 libc_hidden_proto (execl)
 libc_hidden_proto (execle)
diff --git a/posix/confstr.c b/posix/confstr.c
index de4cff76cc..73ebb2e254 100644
--- a/posix/confstr.c
+++ b/posix/confstr.c
@@ -29,7 +29,7 @@ 
    of BUF with the value corresponding to NAME and zero-terminate BUF.
    Return the number of bytes required to hold NAME's entire value.  */
 size_t
-confstr (int name, char *buf, size_t len)
+__confstr (int name, char *buf, size_t len)
 {
   const char *string = "";
   size_t string_len = 1;
@@ -289,4 +289,6 @@  confstr (int name, char *buf, size_t len)
     }
   return string_len;
 }
+libc_hidden_def (__confstr)
 libc_hidden_def (confstr)
+weak_alias (__confstr, confstr)
diff --git a/sysdeps/mach/hurd/spawni.c b/sysdeps/mach/hurd/spawni.c
index b98e991d3b..ecc21d2a57 100644
--- a/sysdeps/mach/hurd/spawni.c
+++ b/sysdeps/mach/hurd/spawni.c
@@ -629,10 +629,10 @@  __spawni (pid_t *pid, const char *file,
 	  /* There is no `PATH' in the environment.
 	     The default search path is the current directory
 	     followed by the path `confstr' returns for `_CS_PATH'.  */
-	  len = confstr (_CS_PATH, (char *) NULL, 0);
+	  len = __confstr (_CS_PATH, (char *) NULL, 0);
 	  path = (char *) __alloca (1 + len);
 	  path[0] = ':';
-	  (void) confstr (_CS_PATH, path + 1, len);
+	  (void) __confstr (_CS_PATH, path + 1, len);
 	}
 
       len = strlen (file) + 1;