about summary refs log tree commit diff
path: root/hurd
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2018-04-02 22:07:28 +0000
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2018-04-02 22:08:55 +0000
commit7a8f45e302b4518da518b48ab54ab43249d606f1 (patch)
treea133a61119bb88126436c14862c29ba3a88805e2 /hurd
parent02008f83011862eda4aec358a369427b790d7cd8 (diff)
downloadglibc-7a8f45e302b4518da518b48ab54ab43249d606f1.tar.gz
glibc-7a8f45e302b4518da518b48ab54ab43249d606f1.tar.xz
glibc-7a8f45e302b4518da518b48ab54ab43249d606f1.zip
hurd: Avoid some libc.so PLTs
	* hurd/catch-signal.c (hurd_catch_signal): Rename to
	__hurd_catch_signal.
	(hurd_catch_signal): New strong alias.
	(hurd_safe_memset, hurd_safe_copyout, hurd_safe_copyin): Call
	__hurd_catch_signal instead of hurd_catch_signal.
	* hurd/exc2signal.c (_hurd_exception2signal): Add hidden def.
	* hurd/hurdexec.c (_hurd_init): Add hidden def.
	* hurd/hurdinit.c (_hurd_init): Add hidden def.
	* hurd/hurdsig.c: Include <mach/mig_support.h>.
	(_hurd_thread_sigstate): Add hidden def.
	(_hurd_internal_post_signal): Use __mutex_unlock instead of
	mutex_unlock.
	* hurd/intern-fd.c (_hurd_intern_fd): Add hidden def.
	* hurd/intr-msg.c (_hurd_intr_rpc_mach_msg): Add hidden def.
	* hurd/path-lookup.c (hurd_file_name_path_lookup): Rename to
	__hurd_file_name_path_lookup.
	(hurd_file_name_path_lookup): New strong alias.
	(file_name_path_lookup): Call __hurd_file_name_path_lookup instead of
	hurd_file_name_path_lookup.
	* mach/errstring.c (mach_error_type): Add hidden def.
	* mach/msg-destroy.c (__mach_msg_destroy): Add hidden def.
	* mach/mutex-init.c (__mutex_init): Add hidden def.
	* mach/spin-lock.c (__spin_lock_locked, __spin_lock, __spin_unlock,
	__spin_try_lock, __mutex_lock, __mutex_trylock): Add hidden defs.
	* mach/spin-solid.c (__spin_lock_solid): Add hidden def.
	* sysdeps/mach/hurd/getcwd.c
	(_hurd_canonicalize_directory_name_internal): Rename to
	__hurd_canonicalize_directory_name_internal.
	(_hurd_canonicalize_directory_name_internal): New strong alias.
	(__canonicalize_directory_name_internal, __getcwd): Call
	__hurd_canonicalize_directory_name_internal instead of
	_hurd_canonicalize_directory_name_internal.
	* sysdeps/mach/hurd/mig-reply.c: Include <mach/mig_support.h>.
	(__mig_get_reply_port, __mig_dealloc_reply_port, __mig_init): Add
	hidden defs.
	* sysdeps/hurd/include/hurd.h: New file.
	* sysdeps/hurd/include/hurd/fd.h: New file.
	* sysdeps/hurd/include/hurd/signal.h: New file.
	* sysdeps/mach/include/lock-intern.h: New file.
	* sysdeps/mach/include/mach.h: New file.
	* sysdeps/mach/include/mach/mig_support.h: New file.
	* sysdeps/mach/include/mach_error.h: New file.
Diffstat (limited to 'hurd')
-rw-r--r--hurd/catch-signal.c27
-rw-r--r--hurd/exc2signal.c1
-rw-r--r--hurd/hurdexec.c1
-rw-r--r--hurd/hurdinit.c1
-rw-r--r--hurd/hurdsig.c4
-rw-r--r--hurd/intern-fd.c1
-rw-r--r--hurd/intr-msg.c1
-rw-r--r--hurd/path-lookup.c27
8 files changed, 36 insertions, 27 deletions
diff --git a/hurd/catch-signal.c b/hurd/catch-signal.c
index b1e373992b..56ce86532d 100644
--- a/hurd/catch-signal.c
+++ b/hurd/catch-signal.c
@@ -22,10 +22,10 @@
 #include <assert.h>
 
 error_t
-hurd_catch_signal (sigset_t sigset,
-		   unsigned long int first, unsigned long int last,
-		   error_t (*operate) (struct hurd_signal_preemptor *),
-		   sighandler_t handler)
+__hurd_catch_signal (sigset_t sigset,
+		     unsigned long int first, unsigned long int last,
+		     error_t (*operate) (struct hurd_signal_preemptor *),
+		     sighandler_t handler)
 {
   /* We need to restore the signal mask, because otherwise the
      signal-handling code will have blocked the caught signal and for
@@ -73,6 +73,7 @@ hurd_catch_signal (sigset_t sigset,
 
   return error;
 }
+strong_alias (__hurd_catch_signal, hurd_catch_signal)
 
 
 error_t
@@ -83,9 +84,9 @@ hurd_safe_memset (void *dest, int byte, size_t nbytes)
       memset (dest, byte, nbytes);
       return 0;
     }
-  return hurd_catch_signal (sigmask (SIGBUS) | sigmask (SIGSEGV),
-			    (vm_address_t) dest, (vm_address_t) dest + nbytes,
-			    &operate, SIG_ERR);
+  return __hurd_catch_signal (sigmask (SIGBUS) | sigmask (SIGSEGV),
+			      (vm_address_t) dest, (vm_address_t) dest + nbytes,
+			      &operate, SIG_ERR);
 }
 
 
@@ -97,9 +98,9 @@ hurd_safe_copyout (void *dest, const void *src, size_t nbytes)
       memcpy (dest, src, nbytes);
       return 0;
     }
-  return hurd_catch_signal (sigmask (SIGBUS) | sigmask (SIGSEGV),
-			    (vm_address_t) dest, (vm_address_t) dest + nbytes,
-			    &operate, SIG_ERR);
+  return __hurd_catch_signal (sigmask (SIGBUS) | sigmask (SIGSEGV),
+			      (vm_address_t) dest, (vm_address_t) dest + nbytes,
+			      &operate, SIG_ERR);
 }
 
 error_t
@@ -110,9 +111,9 @@ hurd_safe_copyin (void *dest, const void *src, size_t nbytes)
       memcpy (dest, src, nbytes);
       return 0;
     }
-  return hurd_catch_signal (sigmask (SIGBUS) | sigmask (SIGSEGV),
-			    (vm_address_t) src, (vm_address_t) src + nbytes,
-			    &operate, SIG_ERR);
+  return __hurd_catch_signal (sigmask (SIGBUS) | sigmask (SIGSEGV),
+			      (vm_address_t) src, (vm_address_t) src + nbytes,
+			      &operate, SIG_ERR);
 }
 
 error_t
diff --git a/hurd/exc2signal.c b/hurd/exc2signal.c
index 73abb93baf..10aa1ca4cf 100644
--- a/hurd/exc2signal.c
+++ b/hurd/exc2signal.c
@@ -68,3 +68,4 @@ _hurd_exception2signal (struct hurd_signal_detail *detail, int *signo)
       break;
     }
 }
+libc_hidden_def (_hurd_exception2signal)
diff --git a/hurd/hurdexec.c b/hurd/hurdexec.c
index 027fa5a3ee..732c9ec34b 100644
--- a/hurd/hurdexec.c
+++ b/hurd/hurdexec.c
@@ -435,3 +435,4 @@ _hurd_exec_paths (task_t task, file_t file,
   free (env);
   return err;
 }
+libc_hidden_def (_hurd_exec_paths)
diff --git a/hurd/hurdinit.c b/hurd/hurdinit.c
index cc018a43ce..6af1ddf610 100644
--- a/hurd/hurdinit.c
+++ b/hurd/hurdinit.c
@@ -110,6 +110,7 @@ _hurd_init (int flags, char **argv,
      assume the availability of the POSIX.1 services we provide.  */
   RUN_HOOK (_hurd_subinit, ());
 }
+libc_hidden_def (_hurd_init)
 
 #include <hurd/signal.h>
 
diff --git a/hurd/hurdsig.c b/hurd/hurdsig.c
index 101dd76be1..31e8d336e3 100644
--- a/hurd/hurdsig.c
+++ b/hurd/hurdsig.c
@@ -23,6 +23,7 @@
 #include <pthreadP.h>
 #include <mach.h>
 #include <mach/thread_switch.h>
+#include <mach/mig_support.h>
 
 #include <hurd.h>
 #include <hurd/id.h>
@@ -120,6 +121,7 @@ _hurd_thread_sigstate (thread_t thread)
   __mutex_unlock (&_hurd_siglock);
   return ss;
 }
+libc_hidden_def (_hurd_thread_sigstate)
 
 /* Signal delivery itself is on this page.  */
 
@@ -1018,7 +1020,7 @@ _hurd_internal_post_signal (struct hurd_sigstate *ss,
 		      || ss->actions[signo].sa_handler == SIG_IGN
 		      || ss->actions[signo].sa_handler == SIG_DFL))
 		{
-		  mutex_unlock (&_hurd_siglock);
+		  __mutex_unlock (&_hurd_siglock);
 		  goto deliver_pending;
 		}
 	    __spin_unlock (&ss->lock);
diff --git a/hurd/intern-fd.c b/hurd/intern-fd.c
index 970800fd09..3b00824cc1 100644
--- a/hurd/intern-fd.c
+++ b/hurd/intern-fd.c
@@ -47,3 +47,4 @@ _hurd_intern_fd (io_t port, int flags, int dealloc)
 
   return fd;
 }
+libc_hidden_def (_hurd_intern_fd)
diff --git a/hurd/intr-msg.c b/hurd/intr-msg.c
index 5495edc08d..2f83ac6ce7 100644
--- a/hurd/intr-msg.c
+++ b/hurd/intr-msg.c
@@ -422,3 +422,4 @@ _hurd_intr_rpc_mach_msg (mach_msg_header_t *msg,
 
   return err;
 }
+libc_hidden_def (_hurd_intr_rpc_mach_msg)
diff --git a/hurd/path-lookup.c b/hurd/path-lookup.c
index 389a8ccd1b..5607d5809c 100644
--- a/hurd/path-lookup.c
+++ b/hurd/path-lookup.c
@@ -87,16 +87,16 @@ file_name_path_scan (const char *file_name, const char *path,
    if it is looked up using a prefix from PATH, *PREFIXED_NAME is set to
    malloced storage containing the prefixed name.  */
 error_t
-hurd_file_name_path_lookup (error_t (*use_init_port)
-			      (int which, error_t (*operate) (mach_port_t)),
-			    file_t (*get_dtable_port) (int fd),
-			    error_t (*lookup)
-			      (file_t dir, const char *name, int flags, mode_t mode,
-			       retry_type *do_retry, string_t retry_name,
-			       mach_port_t *result),
-			    const char *file_name, const char *path,
-			    int flags, mode_t mode,
-			    file_t *result, char **prefixed_name)
+__hurd_file_name_path_lookup (error_t (*use_init_port)
+			        (int which, error_t (*operate) (mach_port_t)),
+			      file_t (*get_dtable_port) (int fd),
+			      error_t (*lookup)
+			        (file_t dir, const char *name, int flags, mode_t mode,
+			         retry_type *do_retry, string_t retry_name,
+			         mach_port_t *result),
+			      const char *file_name, const char *path,
+			      int flags, mode_t mode,
+			      file_t *result, char **prefixed_name)
 {
   error_t scan_lookup (const char *name)
     {
@@ -106,6 +106,7 @@ hurd_file_name_path_lookup (error_t (*use_init_port)
     }
   return file_name_path_scan (file_name, path, scan_lookup, prefixed_name);
 }
+strong_alias (__hurd_file_name_path_lookup, hurd_file_name_path_lookup)
 
 file_t
 file_name_path_lookup (const char *file_name, const char *path,
@@ -114,9 +115,9 @@ file_name_path_lookup (const char *file_name, const char *path,
   error_t err;
   file_t result;
 
-  err = hurd_file_name_path_lookup (&_hurd_ports_use, &__getdport, 0,
-				    file_name, path, flags, mode,
-				    &result, prefixed_name);
+  err = __hurd_file_name_path_lookup (&_hurd_ports_use, &__getdport, 0,
+				      file_name, path, flags, mode,
+				      &result, prefixed_name);
 
   return err ? (__hurd_fail (err), MACH_PORT_NULL) : result;
 }