Commit Graph

24 Commits

Author SHA1 Message Date
Samuel Thibault
28f6186f3e hurd: take __USE_EXTERN_INLINES into account and restrict inlines
* hurd/hurd.h (__hurd_fail): Always declare function, and provide inline
version only if __USE_EXTERN_INLINES is defined.
* hurd/hurd/fd.h (_hurd_fd_error_signal, _hurd_fd_error, __hurd_dfail,
__hurd_sockfail): Likewise.
(_hurd_fd_get): Always declare functions, and provide inline versions
only if __USE_EXTERN_INLINES and _LIBC are defined and IS_IN(libc).
* hurd/hurd/port.h (_hurd_port_init, _hurd_port_locked_get,
_hurd_port_get, _hurd_port_free, _hurd_port_locked_set,
_hurd_port_set): Always declare functions, and provide inline versions
only if __USE_EXTERN_INLINES and _LIBC are defined and
IS_IN(libc).
* hurd/hurd/signal.h (_hurd_self_sigstate, _hurd_critical_section_lock,
_hurd_critical_section_unlock): Likewise.
* hurd/hurd/threadvar.h (__hurd_threadvar_location_from_sp,
* __hurd_threadvar_location): Likewise.
* hurd/hurd/userlink.h (_hurd_userlink_link, _hurd_userlink_unlink,
_hurd_userlink_clear): Likewise.
* mach/lock-intern.h (__spin_lock_init, __spin_lock, __mutex_lock,
__mutex_unlock, __mutex_trylock): Always declare functions, and provide
inline versions only if __USE_EXTERN_INLINES and _LIBC are defined.
* mach/mach/mig_support.h (__mig_strncpy): Likewise.
* sysdeps/generic/machine-lock.h (__spin_unlock, __spin_try_lock,
__spin_lock_locked): Likewise.
* sysdeps/mach/i386/machine-lock.h (__spin_unlock, __spin_try_lock,
__spin_lock_locked): Likewise.
* mach/spin-lock.c (__USE_EXTERN_INLINES): Define to 1.
* hurd/Versions (libc: GLIBC_2.27): Add _hurd_fd_error_signal,
_hurd_fd_error, __hurd_dfail, __hurd_sockfail, _hurd_port_locked_set,
__hurd_threadvar_location_from_sp, __hurd_threadvar_location,
_hurd_userlink_link, _hurd_userlink_unlink, _hurd_userlink_clear.
2018-01-28 18:46:23 +01:00
Samuel Thibault
311ba8dc44 hurd: Use the new file_exec_paths RPC
From: Emilio Pozuelo Monfort <pochu27@gmail.com>
From: Svante Signell <svante.signell@gmail.com>

Pass the file paths of executable to the exec server, both relative and
absolute, which exec needs to properly execute and avertise #!-scripts.
Previously, the exec server tried to guess the name from argv[0] but argv[0]
only contains the executable name by convention.

	* hurd/hurdexec.c (_hurd_exec): Deprecate function.
	(_hurd_exec_paths): New function.
	* hurd/hurd.h (_hurd_exec): Deprecate function.
	(_hurd_exec_paths): Declare function.
	* hurd/Versions: Export _hurd_exec_paths.
	* sysdeps/mach/hurd/execve.c: Include <stdlib.h> and <stdio.h>
	(__execve): Use __getcwd to build absolute path, and use
	_hurd_exec_paths instead of _hurd_exec.
	* sysdeps/mach/hurd/spawni.c: Likewise.
	* sysdeps/mach/hurd/fexecve.c: Use _hurd_exec_paths instead of
	_hurd_exec.
2018-01-09 01:37:34 +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
Roland McGrath
d4ec6ae19e Remove obsolete SHLIB_COMPAT conditionalization in Versions files. 2014-02-22 01:19:45 -08:00
Roland McGrath
7d55d698b8 2002-03-11 Roland McGrath <roland@frob.com>
* Versions.def (libc): Add GLIBC_2.2.6.
	* hurd/Versions (libc: GLIBC_2.2.6): Add __errno_location.
	* sysdeps/mach/hurd/errnos.awk: In generated macro, use
	__errno_location instead of __hurd_errno_location, and don't inline it.
	* sysdeps/mach/hurd/bits/errno.h: Regenerated.
	* hurd/errno.c: New file.
	* hurd/Makefile (routines): Add errno.
2002-03-11 21:28:28 +00:00
Roland McGrath
9ce8b3c817 * hurd/Versions (libc: GLIBC_2.0): Add _S_catch_exception_raise_state,
_S_catch_exception_raise_state_identity,
	_hurdsig_fault_catch_exception_raise_state,
	_hurdsig_fault_catch_exception_raise_state_identity.

	* mach/shortcut.awk: Don't apply the /^}$/ rule when $proto == "".

	* sysdeps/mach/getsysstats.c (__get_avphys_pages) [HOST_VM_INFO]: Use
	__host_info with HOST_VM_INFO flavor instead of __vm_statistics.

	* sysdeps/mach/hurd/getpriority.c [TASK_SCHED_TIMESHARE_INFO]: Find
	`base_priority' in PIP->timeshare_base_info instead of PIP->taskinfo.

	* sysdeps/mach/hurd/dl-sysdep.c [FMH]: Define for i386 only.
	(fmh, unfmh): Define these functions only #if FMH.  Otherwise define
	them as no-op macros.
	[FMH] (ELF_MACHINE_USER_ADDRESS_MASK): Redefine it to zero.
	(__mmap): Uncomment uses of ELF_MACHINE_USER_ADDRESS_MASK.

	* sysdeps/powerpc/dl-machine.h
	(ELF_MACHINE_USER_ADDRESS_MASK): New macro.
2002-02-18 01:50:52 +00:00
Roland McGrath
61c83c3f05 * sysdeps/mach/configure.in: Add some checks for Mach headers
to ensure a sane installation.
	(mach_interface_list): Define this variable by checking for .defs
	files found in various variants.
	* configure.in (mach_interface_list): AC_SUBST this.
	* config.make.in (mach-interface-list): New substituted variable.
	* mach/Makefile (user-interfaces): Define this using the value
	of $(mach-interface-list) instead of mach, mach4.
	Updated other references to mach_interface to use it as well.

	* sysdeps/mach/powerpc/machine-lock.h: Avoid multi-line strings.

	* mach/msgserver.c [NDR_CHAR_ASCII] (mig_reply_header_t): #define as
	mig_reply_error_t for OSF Mach variant.

	* mach/Makefile (routines): Remove bootprivport.
	* mach/bootprivport.c: File removed.  It has never been used.

	* mach/msg-destroy.c (__mach_msg_destroy) [MACH_MSG_PORT_DESCRIPTOR]:
	Grok the OSF flavor of message format.
	(mach_msg_destroy_port): For MAKE_SEND and
	MAKE_SEND_ONCE rights, create an destroy a right to ensure proper
	no-senders notification.

2002-02-06  Roland McGrath  <roland@frob.com>

	* hurd/Versions (libc: GLIBC_2.0): Move cthread_fork, cthread_detach
	to here if 2.0 compatibility enabled ...
	(libc: GLIBC_2.1.3): ... from here.
2002-02-17 07:19:11 +00:00
Roland McGrath
a5eb7027b9 * hurd/Versions (libc: GLIBC_2.2.5): Add _hurd_port_set,
_hurd_port_init, and __hurd_self_sigstate.
2001-12-22 20:52:21 +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
f0b1a6c876 * hurd/Versions (libc: GLIBC_2.2.5): New set; add _hurd_raise_signal,
_hurdsig_interrupt_timeout, _hurdsig_fault_preemptor.

	* sysdeps/posix/shm_unlink.c (shm_unlink): __unlink -> unlink.

	* mach/Versions (libc: GLIBC_2.2.5): New set; add __mach_msg_destroy,
	__mach_reply_port.
2001-08-24 21:47:53 +00:00
Roland McGrath
0b32ff01b8 2001-08-21 Roland McGrath <roland@frob.com>
* hurd/Versions (GLIBC_2.2.5): New set, define __hurd_fail here.
	* Versions.def (libc): Add GLIBC_2.2.5 set.
	* hurd/hurd.h (_HURD_H_EXTERN_INLINE): New macro.
	(__hurd_fail): Use that instead of _EXTERN_INLINE in decl.
2001-08-21 20:32:21 +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
72e1a75071 1999-11-18 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurdsig.c (_hurdsig_init): If __hurd_threadvar_stack_mask is
        nonzero, use cthread_fork to create the signal thread.
        * hurd/msgportdemux.c (_hurd_msgport_receive): Initialize
        _hurd_msgport_thread here (to self).
        * sysdeps/mach/hurd/fork.c (__fork): When __hurd_sigthread_stack_end
        is zero, instead compute child signal thread's starting SP from parent
        signal thread's current SP and the threadvar_stack variables.
        * hurd/Versions (GLIBC_2.1.3): Add cthread_fork, cthread_detach.
        These are now referenced weakly by _hurdsig_init.

        * hurd/report-wait.c (_S_msg_report_wait): Fix typo:
        &_hurd_itimer_thread not &_hurd_msgport_thread.

1999-10-01  Roland McGrath  <roland@baalperazim.frob.com>

        * hurd/hurdfchdir.c (_hurd_change_directory_port_from_fd): Rewrite
        without HURD_DPORT_USE to clean up warnings.
        * hurd/dtable.c (get_dtable_port): Likewise.

        * hurd/hurdioctl.c (rectty_dtable): Renamed to install_ctty.
        (install_ctty): Do the changing of the cttyid port cell here, inside
        the critical section while we holding the dtable lock.
        (_hurd_setcttyid, tiocsctty, tiocnotty): Use that instead of changing
        the port cell and calling rectty_dtable.
        (_hurd_locked_install_cttyid): New function, split out of install_ctty.
        (install_ctty): Use it inside a critical section, with the lock held.
        * sysdeps/mach/hurd/setsid.c (__setsid): Use
        _hurd_locked_install_cttyid to effect the cttyid and dtable changes
        after proc_setsid, having held the dtable lock throughout.
        * hurd/dtable.c (ctty_new_pgrp): With the dtable lock held, check the
        cttyid port for null and bail out early if so.  The dtable lock
        serializes us after any cttyid change and its associated dtable update.
1999-12-03 05:01:23 +00:00
Roland McGrath
0bd019279b * Versions.def (libc): Move GLIBC_2.2 dependency from GLIBC_2.1.1 to
GLIBC_2.1.3.

1999-11-13  Roland McGrath  <roland@baalperazim.frob.com>
1999-11-13 23:52:38 +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
9efbaa50e8 1998-12-03 Mark Kettenis <kettenis@phys.uva.nl>
* hurd/Versions [GLIBC_2.1]: Add _hurd_proc_init. 
* hurd/Versions: Move geteuids and seteuids from GLIBC_2.0 to 
GLIBC_2.1.
1998-12-03 23:55:13 +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
2d6d072823 1998-11-28 Roland McGrath <roland@baalperazim.frob.com>
* hurd/setuids.c: Renamed to ... 
* hurd/seteuids.c: this. 
(setuids): Renamed to seteuids. 
* hurd/getuids.c: Renamed to ... 
* hurd/geteuids.c: this. 
(__getuids): Renamed to geteuids, no aliases. 
* hurd/hurd.h (geteuids, seteuids): Declare them. 
* hurd/Versions: Replace getuids; __getuids with geteuids; seteuids. 
* hurd/Makefile (routines): Updated.
1998-11-29 10:10:47 +00:00
Roland McGrath
cc2c908005 1998-10-26 Roland McGrath <roland@baalperazim.frob.com>
* hurd/Versions: Add _hurd_dtable, _hurd_dtablesize, 
_hurd_dtable_lock, _hurd_intern_fd.
1998-10-26 00:03:17 +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
Ulrich Drepper
b0b67c47a5 Update.
1998-07-02 21:51  Ulrich Drepper  <drepper@cygnus.com>

	* Makeconfig: Define list of subdirs as all-subdirs and make subdirs
	a copy.
	* Makefile: Add rules to generate map files.
	(distribute): Remove libc.map, add Versions.def and versions.awk.
	* Makerules: Change rules to find map files on common-objpfx.
	* elf/Makefile: Likewise.
	* md5-crypt/Makefile: Likewise.
	* nis/Makefile (libnsl-map): Remove.
	* Versions.def: New file.
	* versions.awk: New file.
	* argp/Versions: New file.
	* assert/Versions: New file.
	* catgets/Versions: New file.
	* csu/Versions: New file.
	* ctype/Versions: New file.
	* db/Versions: New file.
	* debug/Versions: New file.
	* dirent/Versions: New file.
	* elf/Versions: New file.
	* gmon/Versions: New file.
	* grp/Versions: New file.
	* hesiod/Versions: New file.
	* hurd/Versions: New file.
	* iconv/Versions: New file.
	* inet/Versions: New file.
	* intl/Versions: New file.
	* io/Versions: New file.
	* libio/Versions: New file.
	* linuxthreads/Versions: New file.
	* locale/Versions: New file.
	* login/Versions: New file.
	* malloc/Versions: New file.
	* math/Versions: New file.
	* md5-crypt/Versions: New file.
	* misc/Versions: New file.
	* nis/Versions: New file.
	* nss/Versions: New file.
	* posix/Versions: New file.
	* pwd/Versions: New file.
	* resolv/Versions: New file.
	* resource/Versions: New file.
	* rt/Versions: New file.
	* setjmp/Versions: New file.
	* shadow/Versions: New file.
	* signal/Versions: New file.
	* socket/Versions: New file.
	* stdio/Versions: New file.
	* stdio-common/Versions: New file.
	* stdlib/Versions: New file.
	* streams/Versions: New file.
	* string/Versions: New file.
	* sunrpc/Versions: New file.
	* sysdeps/alpha/Versions: New file.
	* sysdeps/alpha/fpu/Versions: New file.
	* sysdeps/i386/Versions: New file.
	* sysdeps/sparc/Versions: New file.
	* sysdeps/unix/sysv/Versions: New file.
	* sysdeps/unix/sysv/linux/Versions: New file.
	* sysdeps/unix/sysv/linux/alpha/Versions: New file.
	* sysdeps/unix/sysv/linux/i386/Versions: New file.
	* sysdeps/unix/sysv/linux/mips/Versions: New file.
	* sysvipc/Versions: New file.
	* termios/Versions: New file.
	* time/Versions: New file.
	* wcsmbs/Versions: New file.
	* wctype/Versions: New file.
	* libc.map: Removed.
	* db/libdb.map: Removed.
	* elf/libdl.map: Removed.
	* hesiod/libnss_hesiod.map: Removed.
	* hurd/libhurduser.map: Removed.
	* hurd/libmachuser.map: Removed.
	* linuxthreads/libpthread.map: Removed.
	* locale/libBrokenLocale.map: Removed.
	* login/libutil.map: Removed.
	* math/libm.map: Removed.
	* md5-crypt/libcrypt.map: Removed.
	* nis/libnsl.map: Removed.
	* nis/libnsl_compat.map: Removed.
	* nis/libnss_nis.map: Removed.
	* nis/libnss_nisplus.map: Removed.
	* nss/libnss_db.map: Removed.
	* nss/libnss_files.map: Removed.
	* resolv/libnss_dns.map: Removed.
	* resolv/libresolv.map: Removed.
	* rt/librt.map: Removed.

	* elf/dl-load.c (fillin_rpath): Fix test for trusted directory.
	Fix typos.

	* elf/rtld.c (process_dl_debug): Recognize 'all'.
	(process_envvars): LD_BIND_NOW must be followed by y, Y, or 1.

	* sysdeps/generic/elf/backtracesyms.c: Allocate string memory of
	correct size.

	* sysdeps/unix/sysv/linux/getsysstats.c (get_proc_path): Fix typo
	in comment.
1998-07-02 22:51:40 +00:00