about summary refs log tree commit diff
path: root/sysdeps
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 /sysdeps
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 'sysdeps')
-rw-r--r--sysdeps/hurd/include/hurd.h5
-rw-r--r--sysdeps/hurd/include/hurd/fd.h4
-rw-r--r--sysdeps/hurd/include/hurd/signal.h6
-rw-r--r--sysdeps/mach/hurd/getcwd.c9
-rw-r--r--sysdeps/mach/hurd/mig-reply.c4
-rw-r--r--sysdeps/mach/include/lock-intern.h12
-rw-r--r--sysdeps/mach/include/mach.h4
-rw-r--r--sysdeps/mach/include/mach/mig_support.h6
-rw-r--r--sysdeps/mach/include/mach_error.h4
9 files changed, 50 insertions, 4 deletions
diff --git a/sysdeps/hurd/include/hurd.h b/sysdeps/hurd/include/hurd.h
new file mode 100644
index 0000000000..f740e9de0f
--- /dev/null
+++ b/sysdeps/hurd/include/hurd.h
@@ -0,0 +1,5 @@
+#ifndef	_HURD_H
+#include_next <hurd.h>
+libc_hidden_proto (_hurd_exec_paths)
+libc_hidden_proto (_hurd_init)
+#endif
diff --git a/sysdeps/hurd/include/hurd/fd.h b/sysdeps/hurd/include/hurd/fd.h
new file mode 100644
index 0000000000..b22f0c59f4
--- /dev/null
+++ b/sysdeps/hurd/include/hurd/fd.h
@@ -0,0 +1,4 @@
+#ifndef	_HURD_FD_H
+#include_next <hurd/fd.h>
+libc_hidden_proto (_hurd_intern_fd)
+#endif
diff --git a/sysdeps/hurd/include/hurd/signal.h b/sysdeps/hurd/include/hurd/signal.h
new file mode 100644
index 0000000000..fbd01bb80d
--- /dev/null
+++ b/sysdeps/hurd/include/hurd/signal.h
@@ -0,0 +1,6 @@
+#ifndef	_HURD_SIGNAL_H
+#include_next <hurd/signal.h>
+libc_hidden_proto (_hurd_exception2signal)
+libc_hidden_proto (_hurd_intr_rpc_mach_msg)
+libc_hidden_proto (_hurd_thread_sigstate)
+#endif
diff --git a/sysdeps/mach/hurd/getcwd.c b/sysdeps/mach/hurd/getcwd.c
index f6ca3dd9e3..c30b7c507b 100644
--- a/sysdeps/mach/hurd/getcwd.c
+++ b/sysdeps/mach/hurd/getcwd.c
@@ -37,7 +37,7 @@
    a slash to indicate that it is relative to some unknown root directory.  */
 
 char *
-_hurd_canonicalize_directory_name_internal (file_t thisdir,
+__hurd_canonicalize_directory_name_internal (file_t thisdir,
 					    char *buf,
 					    size_t size)
 {
@@ -282,6 +282,7 @@ _hurd_canonicalize_directory_name_internal (file_t thisdir,
   cleanup ();
   return NULL;
 }
+strong_alias (__hurd_canonicalize_directory_name_internal, _hurd_canonicalize_directory_name_internal)
 
 char *
 __canonicalize_directory_name_internal (const char *thisdir, char *buf,
@@ -291,7 +292,7 @@ __canonicalize_directory_name_internal (const char *thisdir, char *buf,
   file_t port = __file_name_lookup (thisdir, 0, 0);
   if (port == MACH_PORT_NULL)
     return NULL;
-  result = _hurd_canonicalize_directory_name_internal (port, buf, size);
+  result = __hurd_canonicalize_directory_name_internal (port, buf, size);
   __mach_port_deallocate (__mach_task_self (), port);
   return result;
 }
@@ -306,8 +307,8 @@ __getcwd (char *buf, size_t size)
 {
   char *cwd =
     __USEPORT (CWDIR,
-	       _hurd_canonicalize_directory_name_internal (port,
-							   buf, size));
+	       __hurd_canonicalize_directory_name_internal (port,
+							    buf, size));
   if (cwd && cwd[0] != '/')
     {
       /* `cwd' is an unknown root directory.  */
diff --git a/sysdeps/mach/hurd/mig-reply.c b/sysdeps/mach/hurd/mig-reply.c
index ddad12e070..8350354500 100644
--- a/sysdeps/mach/hurd/mig-reply.c
+++ b/sysdeps/mach/hurd/mig-reply.c
@@ -16,6 +16,7 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <mach.h>
+#include <mach/mig_support.h>
 #include <hurd/threadvar.h>
 
 /* These functions are called by MiG-generated code.  */
@@ -34,6 +35,7 @@ __mig_get_reply_port (void)
   return __hurd_local_reply_port;
 }
 weak_alias (__mig_get_reply_port, mig_get_reply_port)
+libc_hidden_def (__mig_get_reply_port)
 
 /* Called by MiG to deallocate the reply port.  */
 void
@@ -47,6 +49,7 @@ __mig_dealloc_reply_port (mach_port_t arg)
 			  MACH_PORT_RIGHT_RECEIVE, -1);
 }
 weak_alias (__mig_dealloc_reply_port, mig_dealloc_reply_port)
+libc_hidden_def (__mig_dealloc_reply_port)
 
 /* Called by mig interfaces when done with a port.  Used to provide the
    same interface as needed when a custom allocator is used.  */
@@ -66,3 +69,4 @@ __mig_init (void *stack)
   /* Do nothing.  */
 }
 weak_alias (__mig_init, mig_init)
+libc_hidden_def (__mig_init)
diff --git a/sysdeps/mach/include/lock-intern.h b/sysdeps/mach/include/lock-intern.h
new file mode 100644
index 0000000000..d0767ab37b
--- /dev/null
+++ b/sysdeps/mach/include/lock-intern.h
@@ -0,0 +1,12 @@
+#ifndef _LOCK_INTERN_H
+#include <mach/lock-intern.h>
+libc_hidden_proto (__spin_lock_locked)
+libc_hidden_proto (__spin_lock)
+libc_hidden_proto (__spin_lock_solid)
+libc_hidden_proto (__spin_unlock)
+libc_hidden_proto (__spin_try_lock)
+libc_hidden_proto (__mutex_init)
+libc_hidden_proto (__mutex_lock)
+libc_hidden_proto (__mutex_unlock)
+libc_hidden_proto (__mutex_trylock)
+#endif
diff --git a/sysdeps/mach/include/mach.h b/sysdeps/mach/include/mach.h
new file mode 100644
index 0000000000..1f77100b6e
--- /dev/null
+++ b/sysdeps/mach/include/mach.h
@@ -0,0 +1,4 @@
+#ifndef	_MACH_H
+#include_next <mach.h>
+libc_hidden_proto (__mach_msg_destroy)
+#endif
diff --git a/sysdeps/mach/include/mach/mig_support.h b/sysdeps/mach/include/mach/mig_support.h
new file mode 100644
index 0000000000..7b9015d7e7
--- /dev/null
+++ b/sysdeps/mach/include/mach/mig_support.h
@@ -0,0 +1,6 @@
+#ifndef _MACH_MIG_SUPPORT_H
+#include_next <mach/mig_support.h>
+libc_hidden_proto (__mig_get_reply_port)
+libc_hidden_proto (__mig_dealloc_reply_port)
+libc_hidden_proto (__mig_init)
+#endif
diff --git a/sysdeps/mach/include/mach_error.h b/sysdeps/mach/include/mach_error.h
new file mode 100644
index 0000000000..91463eb672
--- /dev/null
+++ b/sysdeps/mach/include/mach_error.h
@@ -0,0 +1,4 @@
+#ifndef	_MACH_ERROR_
+#include_next <mach_error.h>
+libc_hidden_proto (mach_error_type)
+#endif