Commit Graph

24 Commits

Author SHA1 Message Date
Flavio Cruz
eb14819c14 Define __mig_strlen to support dynamically sized strings in hurd RPCs
We make lib{mach,hurd}user.so only call __mig_strlen which can be
relocated before libc.so is relocated, similar to what is done with
__mig_memcpy.
Message-Id: <ZE8DTRDpY2hpPZlJ@jupiter.tail36e24.ts.net>
2023-05-01 02:24:04 +02:00
Samuel Thibault
56010b73e8 hurd: break relocation loop between libc.so and lib{mach,hurd}user.so
See
https://sourceware.org/pipermail/libc-alpha/2020-November/119575.html

lib{mach,hurd}user.so gets relocated before libc.so, but its references
to strpcpy and memcpy would need an ifunc decision, which e.g. on
x86 relies on cpu_features, but libc.so's _rtld_global_ro is not
relocated yet.

We can however just make lib{mach,hurd}user.so only call non-ifunc
functions, which can be relocated before libc.so is relocated.
2020-11-14 00:52:52 +01:00
Samuel Thibault
2102bec982 hurd: add mach_print function
* mach/Versions (GLIBC_2.32): Add mach_print.
* sysdeps/mach/hurd/i386/libc.abilist (GLIBC_2.32): Add mach_print.
2020-04-14 13:19:18 +02:00
Samuel Thibault
42fc12ef73 hurd: Fix exec usage of mach_setup_thread
Exec needs that mach_setup_thread does *not* set up TLS since it works on
another task, so we have to split this into mach_setup_tls.

	* mach/mach.h (__mach_setup_tls, mach_setup_tls): Add prototypes.
	* mach/setup-thread.c (__mach_setup_thread): Move TLS setup to...
	(__mach_setup_tls): ... new function.
	(mach_setup_tls): New alias.
	* hurd/hurdsig.c (_hurdsig_init): Call __mach_setup_tls after
	__mach_setup_thread.
	* sysdeps/mach/hurd/profil.c (update_waiter): Likewise.
	* sysdeps/mach/hurd/setitimer.c (setitimer_locked): Likewise.
	* mach/Versions [libc] (mach_setup_tls): Add symbol.
	* sysdeps/mach/hurd/i386/libc.abilist (mach_setup_tls): Likewise.
2018-08-01 00:10:03 +02:00
Samuel Thibault
e01e0ddc42 hurd: Add expected ABI lists
* hurd/Versions: Fix version when _hurd_exec_paths was added.
* mach/Versions: Fix version when __mach_host_self_ was added.
* sysdeps/mach/hurd/i386/ld.abilist: New file.
* sysdeps/mach/hurd/i386/libBrokenLocale.abilist: New file.
* sysdeps/mach/hurd/i386/libanl.abilist: New file.
* sysdeps/mach/hurd/i386/libc.abilist: New file.
* sysdeps/mach/hurd/i386/libcrypt.abilist: New file.
* sysdeps/mach/hurd/i386/libdl.abilist: New file.
* sysdeps/mach/hurd/i386/libm.abilist: New file.
* sysdeps/mach/hurd/i386/libnsl.abilist: New file.
* sysdeps/mach/hurd/i386/libresolv.abilist: New file.
* sysdeps/mach/hurd/i386/librt.abilist: New file.
* sysdeps/mach/hurd/i386/libutil.abilist: New file.
2018-01-29 22:07:44 +01:00
Samuel Thibault
45a4f49ee5 hurd: Remove duplicate symbol version
* hurd/Versions (GLIBC_2.4): Remove __stack_chk_fail.
* mach/Versions (GLIBC_2.4): Remove __stack_chk_fail.
2017-08-28 14:19:55 +02:00
Samuel Thibault
6f4fc73ec9 hurd: Fix typo
* hurd/Versions: Fix typo.
* mach/Versions: Fix typo.
2017-08-28 14:16:50 +02:00
Samuel Thibault
97e02ad233 hurd: fix build with -fstack-protector-strong
libmachuser and libhurduser also need stack_chk_fail_local and they do not
link against libc_nonshared.

       * mach/stack_chk_fail_local.c: New file.
       * hurd/stack_chk_fail_local.c: New file.
       * mach/Machrules ($(interface-library)-routines): Add
       stack_chk_fail_local.
       * mach/Versions (GLIBC_2.4): Add __stack_chk_fail.
       * hurd/Versions (GLIBC_2.4): Add __stack_chk_fail.
2017-08-27 22:10:17 +02:00
Samuel Thibault
c77dd7eb9b Add missing __mach_host_self_ symbol in Versions
* mach/Versions (__mach_host_self_): Add symbol.
2015-09-22 02:02:20 +02:00
Roland McGrath
d4ec6ae19e Remove obsolete SHLIB_COMPAT conditionalization in Versions files. 2014-02-22 01:19:45 -08:00
Roland McGrath
4e5b051fad Revert unintentional commits. 2003-02-26 00:01:15 +00:00
Roland McGrath
1d02f71fe4 linuxthreads/ChangeLog
2003-02-25  Roland McGrath  <roland@redhat.com>


	* sysdeps/powerpc/powerpc64/dl-machine.h: Support new TLS relocs.
	* sysdeps/powerpc/powerpc64/dl-tls.h: New file.
2003-02-25 23:45:16 +00:00
Roland McGrath
3a2832a07f * sysdeps/mach/hurd/times.c: Fix typo in last change.
* sysdeps/mach/hurd/setpriority.c [POLICY_TIMESHARE_BASE_COUNT]:
	Use task_policy in place of task_priority.

	* sysdeps/generic/bits/mman.h
	(MS_ASYNC, MS_SYNC, MS_INVALIDATE): New macros.
	* sysdeps/mach/msync.c: New file.

	* sysdeps/mach/powerpc/syscall.S: New file.

	* mach/msg.c [MACH_MSG_OVERWRITE]
	(__mach_msg_trap, __mach_msg_overwrite): New functions.
	* mach/Versions (libc: GLIBC_2.0): Add mach_msg_overwrite and __ name.

	* sysdeps/mach/configure.in: Check for clock.defs to put into
	mach_interface_list.
	* sysdeps/mach/configure: Regenerated.

	* mach/Makefile (mach-machine): New variable, set from $(base-machine).
	($(objpfx)mach-syscalls.mk): Use it in place of $(base-machine).
	($(mach-syscalls:%=$(objpfx)%.S) static pattern rule):
	Use <mach/machine/syscall_sw.h> instead of <sysdep.h>.
	(mach-shortcuts): Add device_read_overwrite_request,
	device_read_overwrite, vm_read_overwrite, thread_switch.

	* configure.in (base_machine): Set to $machine by default.
	* configure: Regenerated.
2002-02-19 00:22:30 +00:00
Roland McGrath
bb2660079c 2001-12-22 Roland McGrath <roland@frob.com>
* mach/Versions (libc: GLIBC_2.2.5): Add mig_strncpy.
	* hurd/Versions (libc: GLIBC_2.2.5): Add _hurd_port_set
	and __hurd_self_sigstate.
2001-12-22 20:20:57 +00:00
Roland McGrath
d7b734741d 2001-08-23 Roland McGrath <roland@frob.com>
* mach/Versions (libc: GLIBC_2.2.5): New set; add __mach_msg_destroy,
	__mach_reply_port.
2001-08-24 21:47:43 +00:00
Roland McGrath
c2c67d1499 2000-04-02 Roland McGrath <roland@baalperazim.frob.com>
* mach/Versions: Define SHARED instead of PIC to affect shlib-compat.h.
	* hurd/Versions: Likewise.
2000-04-02 20:15:08 +00:00
Roland McGrath
693ef46bb1 2000-03-30 Roland McGrath <roland@baalperazim.frob.com>
* mach/Versions (libc: GLIBC_2.0)
	[SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)]: Conditionalize
	__vm_allocate on this.
	[SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)]: Conditionalize
	mutex- and spinlock-related symbols on this.
	[!SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)] (libc: HURD_CTHREADS_0.3):
	New version set.  Lock-related symbols go here instead in this case.
	* sysdeps/mach/hurd/Versions (libc: GLIBC_2.0): Remove
	_cthread_exit_routine, _cthread_init_routine, cthread_keycreate,
	cthread_getspecific, cthread_setspecific, __libc_getspecific.
	* hurd/Versions
	[SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)] (libc: GLIBC_2.0):
	Put them here instead.
	[!SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)] (libc: HURD_CTHREADS_0.3):
	New version set.  Those cthreads symbols go here instead in this case.
	* Versions.def (libc) [USE_IN_LIBIO]: Add HURD_CTHREADS_0.3 version.
2000-03-30 19:26:35 +00:00
Roland McGrath
684908c558 1999-06-25 Roland McGrath <roland@baalperazim.frob.com>
* mach/Versions (libc: GLIBC_2.0): Add __mig_strncpy.
1999-06-25 13:31:54 +00:00
Ulrich Drepper
edbe910117 Update.
* mach/Versions: Add mach_msg_send and mach_msg_receive.
	Patch by UCHIYAMA Yasushi <uch@nop.or.jp>.
1998-12-28 17:24:34 +00:00
Roland McGrath
aab217f3ee 1998-12-04 Mark Kettenis <kettenis@phys.uva.nl>
Provide backwards binary compatibility for the Hurd.
	* hurd/geteuids.c [PIC && DO_VERSIONING]: Make __getuids a weak
	alias for geteuids.
	* hurd/Versions [GLIBC_2.0]: Add __getuids,
	__hurd_file_name_lookup and _hurd_umask.
	[GLIBC_2.1]: Add _hurd_proc_init.
	* hurd/Makefile [versioning] (routines): Add compat-20.
	(shared-only-routines): Likewise.
	* hurd/hurdinit.c (_hurd_new_proc_init): Renamed from
	_hurd_proc_init.  Use it as the default _hurd_proc_init version
	for GLIBC_2.1.
	* hurd/compat-20.c: New file.
	* mach/Versions [GLIBC_2.0]: Add __vm_allocate.
1998-12-04 13:47:40 +00:00
Roland McGrath
42ee0538b8 1998-11-30 Mark Kettenis <kettenis@phys.uva.nl>
* mach/Versions [libc, GLIBC_2.0]: Add __spin_lock,
	__spin_lock_init,  __mutex_lock, __mutex_trylock,
	__mutex_unlock.
	Remove get_priviliged_ports.  Moved to hurd/Versions.

	* hurd/Versions [libc, GLIBC_2.0]: Add _end.  This makes the Hurd
	brk implementation see the end of the data segment of the program
	instead of the shared library.
	Add __hurd_errno_location.  This inline function is used in user
	programs.
	Add _hurd_critical_section_lock, _hurd_critical_section_unlock,
	_hurd_fd_get, _hurd_port_free, _hurd_port_get,
	_hurd_port_locked_get.  These inline functions are used by macros
	used in mail.local in the Hurd distribution.
	Add get_privileged_ports.  Moved here from mach/Versions.
	Remove __hurd_file_name_lookup,	__hurd_file_name_lookup_retry,
	__hurd_file_name_split, __hurd_file_name_path_lookup.  These are
	not used outside libc.

1998-11-30  Mark Kettenis  <kettenis@phys.uva.nl>

	* hurd/hurdstartup.c: Really include set-hooks.h with <> instead
	of "".
1998-11-30 18:45:57 +00:00
Roland McGrath
c2ef793036 1998-10-26 Roland McGrath <roland@baalperazim.frob.com>
* hurd/Versions: Add _hurd_dtable, _hurd_dtablesize,
	_hurd_dtable_lock, _hurd_intern_fd.

	* sysdeps/mach/hurd/Versions: Add cthread_keycreate,
	cthread_getspecific, cthread_setspecific, __libc_getspecific.

	* mach/Versions: Fix typo in last change.


	__mach_port_insert_right __mutex_trylock, __mutex_lock,
	__mutex_unlock, __swtch, __switch, __task_create, __task_suspend,
	__task_set_special_port, __task_terminate, __thread_depress_abort,
	__thread_switch, __vm_allocate, __vm_deallocate, __vm_map.  These
	functions are not used outside libc.
1998-10-26 00:11:36 +00:00
Roland McGrath
a825f8e844 1998-10-24 Mark Kettenis <kettenis@phys.uva.nl>
* mach/Versions: Add evc_wait, mach_error, mach_error_string,
	mach_error_type, mach_msg_destroy, mig_deallocate_reply_port.
	Remove __mach_host_self, __mach_reply_port, __mach_setup_thread,
	__mach_port_allocate, __mach_port_allocate_name,
	__mach_port_deallocate, __mach_port_insert_right, __mutex_init,
	__mutex_trylock, __mutex_lock, __mutex_unlock, __swtch, __switch,
	__task_create, __task_suspend, __task_set_special_port,
	__task_terminate, __thread_depress_abort, __thread_switch,
	__vm_allocate, __vm_deallocate, __vm_map.  These functions are not
	used outside libc.

	* sysdeps/mach/hurd/Versions: New file.
	[libc, GLIBC_2.0]: Add _cthread_exit_routine and
	_cthread_init_routine.  These are set by the Hurd cthreads library.
	Add __getcwd, __mmap.  If we don't add these, the weak definitions in
	the dynamic linker will not be replaced by the corresponding shared
	library routines once they are loaded.

1998-10-21  Mark Kettenis  <kettenis@phys.uva.nl>

	* sysdeps/mach/hurd/i386/init-first.c: Only define
	__libc_enable_secure if PIC is not defined.

1998-10-25  Roland McGrath  <roland@baalperazim.frob.com>

	* argp/Versions: Add _argp_unlock_xxx.  Lock-savvy functions call this
	to recurse into argp.
1998-10-25 20:09:00 +00:00
Roland McGrath
3c06881689 1998-10-24 Roland McGrath <roland@baalperazim.frob.com>
* sysdeps/mach/hurd/dl-sysdep.c (__getcwd): New weak function.

	* mach/Versions, hurd/Versions: Add numerous symbols.
	Remove libmachuser and libhurduser sections, punt
	versioning for those libraries for now.

	* misc/Versions: Add reboot here; it exists on all platforms.
	* sysdeps/unix/sysv/linux/Versions: Remove reboot here.
1998-10-24 01:36:01 +00:00