aboutsummaryrefslogtreecommitdiff
path: root/hurd
AgeCommit message (Collapse)AuthorFilesLines
2016-09-22hurdmalloc: Run fork handler as late as possible [BZ #19431]Samuel Thibault2-9/+10
This is the hurd-specific follow-up for 29d794863cd6e03115d3670707cc873a9965ba92 : hurdmalloc also needs the same fix * hurd/hurdmalloc.c (malloc_fork_prepare): Rename to _hurd_malloc_fork_prepare. (malloc_fork_parent): Rename to _hurd_malloc_fork_parent. (malloc_fork_child): Rename to _hurd_malloc_fork_child. (_hurd_fork_prepare_hook): Drop malloc_fork_prepare. (_hurd_fork_parent_hook): Drop malloc_fork_parent. (_hurd_fork_child_hook): Drop malloc_fork_child. * hurd/hurdmalloc.h (_hurd_malloc_fork_prepare, _hurd_malloc_fork_parent, _hurd_malloc_fork_child): Add declarations. * sysdeps/mach/hurd/fork.c (__fork): Call __malloc_fork_lock_parent after locking locks (notably hurd_dtable_lock). Call _hurd_malloc_fork_prepare after that. Call _hurd_malloc_fork_parent before __malloc_fork_unlock_parent and _hurd_malloc_fork_child before __malloc_fork_unlock_child.
2016-09-20Fix exc2signal.c templateSamuel Thibault1-12/+12
As a follow-up to 0e3426bbcf2ff61d06d580fc9362fde79953a281 * hurd/exc2signal.c: #include <hurd/signal.h> (_hurd_exception2signal): Replace 'exception', 'code', 'subcode', 'sigcode', 'error' parameters with 'detail' parameter. Fix code accordingly.
2016-01-13Fix O_DIRECTORY lookup on trivial translatorsFlavio Cruz1-2/+9
* hurd/lookup-retry.c (__hurd_file_name_lookup_retry): Do not remove leading slash when `file_name' is "/".
2016-01-04Update copyright dates with scripts/update-copyrights.Joseph Myers84-84/+84
2015-11-25Fix RPC breakage when longjumping from signal handlerSamuel Thibault1-1/+2
* hurd/sigunwind.c (_hurdsig_longjmp_from_handler): Destroy reply port of interrupted RPC instead of restoring it.
2015-10-20Convert 113 more function definitions to prototype style (files with ↵Joseph Myers1-7/+3
assertions). This mostly automatically-generated patch converts 113 function definitions in glibc from old-style K&R to prototype-style. Following my other recent such patches, this one deals with the case of function definitions in files that either contain assertions or where grep suggested they might contain assertions - and thus where it isn't possible to use a simple object code comparison as a sanity check on the correctness of the patch, because line numbers are changed. A few such automatically-generated changes needed to be supplemented by manual changes for the result to compile. openat64 had a prototype declaration with "..." but an old-style definition in sysdeps/unix/sysv/linux/dl-openat64.c, and "..." needed adding to the generated prototype in the definition (I've filed <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68024> for diagnosing such cases in GCC; the old state was undefined behavior not requiring a diagnostic, but one seems a good idea). In addition, as Florian has noted regparm attribute mismatches between declaration and definition are only diagnosed for prototype definitions, and five functions needed internal_function added to their definitions (in the case of __pthread_mutex_cond_lock, via the macro definition of __pthread_mutex_lock) to compile on i386. After this patch is in, remaining old-style definitions are probably most readily fixed manually before we can turn on -Wold-style-definition for all builds. Tested for x86_64 and x86 (testsuite). * crypt/md5-crypt.c (__md5_crypt_r): Convert to prototype-style function definition. * crypt/sha256-crypt.c (__sha256_crypt_r): Likewise. * crypt/sha512-crypt.c (__sha512_crypt_r): Likewise. * debug/backtracesyms.c (__backtrace_symbols): Likewise. * elf/dl-minimal.c (_itoa): Likewise. * hurd/hurdmalloc.c (malloc): Likewise. (free): Likewise. (realloc): Likewise. * inet/inet6_option.c (inet6_option_space): Likewise. (inet6_option_init): Likewise. (inet6_option_append): Likewise. (inet6_option_alloc): Likewise. (inet6_option_next): Likewise. (inet6_option_find): Likewise. * io/ftw.c (FTW_NAME): Likewise. (NFTW_NAME): Likewise. (NFTW_NEW_NAME): Likewise. (NFTW_OLD_NAME): Likewise. * libio/iofwide.c (_IO_fwide): Likewise. * libio/strops.c (_IO_str_init_static_internal): Likewise. (_IO_str_init_static): Likewise. (_IO_str_init_readonly): Likewise. (_IO_str_overflow): Likewise. (_IO_str_underflow): Likewise. (_IO_str_count): Likewise. (_IO_str_seekoff): Likewise. (_IO_str_pbackfail): Likewise. (_IO_str_finish): Likewise. * libio/wstrops.c (_IO_wstr_init_static): Likewise. (_IO_wstr_overflow): Likewise. (_IO_wstr_underflow): Likewise. (_IO_wstr_count): Likewise. (_IO_wstr_seekoff): Likewise. (_IO_wstr_pbackfail): Likewise. (_IO_wstr_finish): Likewise. * locale/programs/localedef.c (normalize_codeset): Likewise. * locale/programs/locarchive.c (add_locale_to_archive): Likewise. (add_locales_to_archive): Likewise. (delete_locales_from_archive): Likewise. * malloc/malloc.c (__libc_mallinfo): Likewise. * math/gen-auto-libm-tests.c (init_fp_formats): Likewise. * misc/tsearch.c (__tfind): Likewise. * nptl/pthread_attr_destroy.c (__pthread_attr_destroy): Likewise. * nptl/pthread_attr_getdetachstate.c (__pthread_attr_getdetachstate): Likewise. * nptl/pthread_attr_getguardsize.c (pthread_attr_getguardsize): Likewise. * nptl/pthread_attr_getinheritsched.c (__pthread_attr_getinheritsched): Likewise. * nptl/pthread_attr_getschedparam.c (__pthread_attr_getschedparam): Likewise. * nptl/pthread_attr_getschedpolicy.c (__pthread_attr_getschedpolicy): Likewise. * nptl/pthread_attr_getscope.c (__pthread_attr_getscope): Likewise. * nptl/pthread_attr_getstack.c (__pthread_attr_getstack): Likewise. * nptl/pthread_attr_getstackaddr.c (__pthread_attr_getstackaddr): Likewise. * nptl/pthread_attr_getstacksize.c (__pthread_attr_getstacksize): Likewise. * nptl/pthread_attr_init.c (__pthread_attr_init_2_1): Likewise. (__pthread_attr_init_2_0): Likewise. * nptl/pthread_attr_setdetachstate.c (__pthread_attr_setdetachstate): Likewise. * nptl/pthread_attr_setguardsize.c (pthread_attr_setguardsize): Likewise. * nptl/pthread_attr_setinheritsched.c (__pthread_attr_setinheritsched): Likewise. * nptl/pthread_attr_setschedparam.c (__pthread_attr_setschedparam): Likewise. * nptl/pthread_attr_setschedpolicy.c (__pthread_attr_setschedpolicy): Likewise. * nptl/pthread_attr_setscope.c (__pthread_attr_setscope): Likewise. * nptl/pthread_attr_setstack.c (__pthread_attr_setstack): Likewise. * nptl/pthread_attr_setstackaddr.c (__pthread_attr_setstackaddr): Likewise. * nptl/pthread_attr_setstacksize.c (__pthread_attr_setstacksize): Likewise. * nptl/pthread_condattr_setclock.c (pthread_condattr_setclock): Likewise. * nptl/pthread_create.c (__find_in_stack_list): Likewise. * nptl/pthread_getattr_np.c (pthread_getattr_np): Likewise. * nptl/pthread_mutex_cond_lock.c (__pthread_mutex_lock): Define to use internal_function. * nptl/pthread_mutex_init.c (__pthread_mutex_init): Convert to prototype-style function definition. * nptl/pthread_mutex_lock.c (__pthread_mutex_lock): Likewise. (__pthread_mutex_cond_lock_adjust): Likewise. Use internal_function. * nptl/pthread_mutex_timedlock.c (pthread_mutex_timedlock): Convert to prototype-style function definition. * nptl/pthread_mutex_trylock.c (__pthread_mutex_trylock): Likewise. * nptl/pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Likewise. (__pthread_mutex_unlock): Likewise. * nptl_db/td_ta_clear_event.c (td_ta_clear_event): Likewise. * nptl_db/td_ta_set_event.c (td_ta_set_event): Likewise. * nptl_db/td_thr_clear_event.c (td_thr_clear_event): Likewise. * nptl_db/td_thr_event_enable.c (td_thr_event_enable): Likewise. * nptl_db/td_thr_set_event.c (td_thr_set_event): Likewise. * nss/makedb.c (process_input): Likewise. * posix/fnmatch.c (__strchrnul): Likewise. (__wcschrnul): Likewise. (fnmatch): Likewise. * posix/fnmatch_loop.c (FCT): Likewise. * posix/glob.c (globfree): Likewise. (__glob_pattern_type): Likewise. (__glob_pattern_p): Likewise. * posix/regcomp.c (re_compile_pattern): Likewise. (re_set_syntax): Likewise. (re_compile_fastmap): Likewise. (regcomp): Likewise. (regerror): Likewise. (regfree): Likewise. * posix/regexec.c (regexec): Likewise. (re_match): Likewise. (re_search): Likewise. (re_match_2): Likewise. (re_search_2): Likewise. (re_search_stub): Likewise. Use internal_function (re_copy_regs): Likewise. (re_set_registers): Convert to prototype-style function definition. (prune_impossible_nodes): Likewise. Use internal_function. * resolv/inet_net_pton.c (inet_net_pton): Convert to prototype-style function definition. (inet_net_pton_ipv4): Likewise. * stdlib/strtod_l.c (____STRTOF_INTERNAL): Likewise. * sysdeps/pthread/aio_cancel.c (aio_cancel): Likewise. * sysdeps/pthread/aio_suspend.c (aio_suspend): Likewise. * sysdeps/pthread/timer_delete.c (timer_delete): Likewise. * sysdeps/unix/sysv/linux/dl-openat64.c (openat64): Likewise. Make variadic. * time/strptime_l.c (localtime_r): Convert to prototype-style function definition. * wcsmbs/mbsnrtowcs.c (__mbsnrtowcs): Likewise. * wcsmbs/mbsrtowcs_l.c (__mbsrtowcs_l): Likewise. * wcsmbs/wcsnrtombs.c (__wcsnrtombs): Likewise. * wcsmbs/wcsrtombs.c (__wcsrtombs): Likewise.
2015-10-10Remove unusued variableSamuel Thibault1-2/+0
hurd/hurd-raise.c (_hurd_raise_signal): Remove unused err variable.
2015-10-10Make _hurd_raise_signal directly return the errorSamuel Thibault1-3/+1
* hurd/hurd-raise.c (_hurd_raise_signal): Return error returned by __msg_sig_post.
2015-10-10Make _hurd_raise_signal return errorsSamuel Thibault2-4/+8
* hurd/hurd-raise.c (_hurd_raise_signal): Set errno to error returned by __msg_sig_post. * hurd/hurd/signal.h (_hurd_raise_signal): Add int return type.
2015-03-21Fix warningsSamuel Thibault1-0/+5
* sysdeps/mach/hurd/Makefile ($(common-objpfx)errnos.d): Depend on libc-modules.h * sysdeps/mach/hurd/i386/trampoline.c (_hurd_setup_sighandler): Remove unused declaration of _hurd_intr_rpc_msg_in_trap. * mach/mach_init.c (__mach_init): Test whether HAVE_HOST_PAGE_SIZE is defined instead of whether it is non-zero. * sysdeps/mach/hurd/i386/intr-msg.h (INTR_MSG_TRAP): Use "+m" input constraint instead of both input and output constraint. Use ecx clobber instead of %ecx. * sysdeps/mach/hurd/malloc-machine.h (mutex_init, mutex_lock, mutex_unlock): Use a statement expression instead of an expression list. * sysdeps/mach/hurd/setitimer.c (_hurd_itimer_thread_stack_size): Set type to vm_size_t instead of vm_address_t. * sysdeps/mach/hurd/fork.c (__fork): Test whether STACK_GROWTH_UP is defined instead of whether it is non-zero. * hurd/hurd/ioctl.h (_hurd_locked_install_cttyid): New declaration. * sysdeps/mach/hurd/setsid.c: Include <hurd/ioctl.h>. * sysdeps/mach/hurd/mmap.c (__mmap): Use 0 instead of NULL for comparisons with mapaddr. * nscd/nscd-client.h: Include <time.h>. * sysdeps/mach/hurd/dl-sysdep.c (fmh): Pass vm_offset_t dummy 9th parameter to __vm_region instead of int.
2015-02-08add hurd/hurdsocket.h file missing from a5eb23dSamuel Thibault1-0/+30
2015-02-07hurd: fix compilation of signal.h in C++Samuel Thibault1-2/+2
2015-02-07hurd: fix compilation of signal.h in C++Samuel Thibault1-1/+1
2015-02-07hurdselect: remove dead code.Samuel Thibault1-7/+0
This removes code which actually never happens, and is already taken care of in the function. This is in the second part of select, when the __mach_msg() function over the portset has returned something else than MACH_MSG_SUCCESS. I guess in the past the value returned by __mach_msg() was stored in err, so this code was necessary to set back err to 0, but now it is stored in msgerr, so err is already still 0 by default. It can thus never contain MACH_RCV_TIMED_OUT, i.e. the code is dead. The first case mentioned in the comment is already handled: on time out with no message, err is already still the default 0. On time out due to poll, err would still be 0, unless some of the io_select RPCs has returned EINTR, in which case it contains EINTR. If any other io_select RPCs had returned a proper answer, got!=0, and thus err is set to 0 just below. The code is thus indeed not useful any more.
2015-02-07hurd: fix sigstate lockingSamuel Thibault1-2/+1
It looks like _hurd_thread_sigstate used to return with the sigstate lock held long ago, but since that's no longer the case, don't unlock something that isn't locked. Note that it's unlikely this change fixes anything in practice since its current implementation (on i386) makes this call a nop.
2015-02-07hurdselect: Let select get interrupted by signalsSamuel Thibault1-1/+4
We need to set MACH_RCV_INTERRUPT to avoid __mach_msg just looping on signals, and then we can handle the interruption.
2015-02-07hurd: map nice levels 1-to-1 with Mach prio levelsSamuel Thibault1-2/+2
2015-02-07hurd: allow poll() array bigger than FD_SETSIZESamuel Thibault1-1/+1
2015-01-02Update copyright dates with scripts/update-copyrights.Joseph Myers83-83/+83
2014-02-26Consistently include Makeconfig after defining subdir.Joseph Myers1-4/+0
In <https://sourceware.org/ml/libc-alpha/2014-01/msg00196.html> I noted it was necessary to add includes of Makeconfig early in various subdirectory makefiles for the tests-special variable settings added by that patch to be conditional on configuration information. No-one commented on the general question there of whether Makeconfig should always be included immediately after the definition of subdir. This patch implements that early inclusion of Makeconfig in each directory (which is a lot easier than consistent placement of includes of Rules). Includes are added if needed, or moved up if already present. Subdirectory "all:" targets are removed, since Makeconfig provides one. There is potential for further cleanups I haven't done. Rules and Makerules have code such as ifneq "$(findstring env,$(origin headers))" "" headers := endif to override to empty any value of various variables that came from the environment. I think there is a case for Makeconfig setting all the subdirectory variables (other than subdir) to empty to ensure no outside value is going to take effect if a subdirectory fails to define a variable. (A list of such variables, possibly out of date and incomplete, is in manual/maint.texi.) Rules and Makerules would give errors if Makeconfig hadn't already been included, instead of including it themselves. The special code to override values coming from the environment would then be obsolete and could be removed. Tested x86_64, including that installed binaries are identical before and after the patch. * argp/Makefile: Include Makeconfig immediately after defining subdir. * assert/Makefile: Likewise. * benchtests/Makefile: Likewise. * catgets/Makefile: Likewise. * conform/Makefile: Likewise. * crypt/Makefile: Likewise. * csu/Makefile: Likewise. (all): Remove target. * ctype/Makefile: Include Makeconfig immediately after defining subdir. * debug/Makefile: Likewise. * dirent/Makefile: Likewise. * dlfcn/Makefile: Likewise. * gmon/Makefile: Likewise. * gnulib/Makefile: Likewise. * grp/Makefile: Likewise. * gshadow/Makefile: Likewise. * hesiod/Makefile: Likewise. * hurd/Makefile: Likewise. (all): Remove target. * iconvdata/Makefile: Include Makeconfig immediately after defining subdir. * inet/Makefile: Likewise. * intl/Makefile: Likewise. * io/Makefile: Likewise. * libio/Makefile: Likewise. (all): Remove target. * locale/Makefile: Include Makeconfig immediately after defining subdir. * login/Makefile: Likewise. * mach/Makefile: Likewise. (all): Remove target. * malloc/Makefile: Include Makeconfig immediately after defining subdir. (all): Remove target. * manual/Makefile: Include Makeconfig immediately after defining subdir. * math/Makefile: Likewise. * misc/Makefile: Likewise. * nis/Makefile: Likewise. * nss/Makefile: Likewise. * po/Makefile: Likewise. (all): Remove target. * posix/Makefile: Include Makeconfig immediately after defining subdir. * pwd/Makefile: Likewise. * resolv/Makefile: Likewise. * resource/Makefile: Likewise. * rt/Makefile: Likewise. * setjmp/Makefile: Likewise. * shadow/Makefile: Likewise. * signal/Makefile: Likewise. * socket/Makefile: Likewise. * soft-fp/Makefile: Likewise. * stdio-common/Makefile: Likewise. * stdlib/Makefile: Likewise. * streams/Makefile: Likewise. * string/Makefile: Likewise. * sunrpc/Makefile: Likewise. (all): Remove target. * sysvipc/Makefile: Include Makeconfig immediately after defining subdir. * termios/Makefile: Likewise. * time/Makefile: Likewise. * timezone/Makefile: Likewise. (all): Remove target. * wcsmbs/Makefile: Include Makeconfig immediately after defining subdir. * wctype/Makefile: Likewise. libidn/ChangeLog: * Makefile: Include Makeconfig immediately after defining subdir. localedata/ChangeLog: * Makefile: Include Makeconfig immediately after defining subdir. (all): Remove target. nptl/ChangeLog: * Makefile: Include Makeconfig immediately after defining subdir. nptl_db/ChangeLog: * Makefile: Include Makeconfig immediately after defining subdir.
2014-02-22Remove obsolete SHLIB_COMPAT conditionalization in Versions files.Roland McGrath1-29/+0
2014-02-10Use glibc_likely instead __builtin_expect.Ondřej Bílka1-1/+1
2014-01-01Update copyright notices with scripts/update-copyrightsAllan McRae83-83/+83
2013-09-04Remove --disable-versioning.Joseph Myers2-2/+2
2013-06-08Use (void) in no-arguments function definitions.Joseph Myers1-1/+1
2013-06-07Avoid use of "register" as optimization hint.Joseph Myers1-20/+20
2013-06-06Fix leading whitespaces.Ondrej Bilka3-7/+7
2013-06-05Remove trailing whitespace.Joseph Myers3-3/+3
2013-01-02Fix copyright notice corruption from update-copyright bug.Joseph Myers6-6/+6
2013-01-02Update copyright notices with scripts/update-copyrights.Joseph Myers83-88/+83
2013-01-01Add script to update copyright notices and reformat some to facilitate its use.Joseph Myers6-12/+6
2012-08-03Distinguish ELOOP diagnosis threshold from SYMLOOP_MAX.Roland McGrath1-2/+3
2012-05-10Hurd: avoid PLT call to strtoulThomas Schwinge1-5/+4
2012-05-10Hurd: hurdsock: reject negative domainsPino Toscano1-1/+7
2012-05-10Hurd: _hurd_select: check for invalid parameter valuesPino Toscano1-7/+21
2012-05-10Hurd: empty file names fail with ENOENTSamuel Thibault1-1/+4
2012-05-10Hurd: Missing critical region locks.Samuel Thibault1-0/+2
2012-05-10Hurd: Fix signal-catching functions.Samuel Thibault1-5/+8
2012-05-10Hurd: O_CLOEXEC in rtldThomas Schwinge3-7/+7
2012-03-20Move stdio-common/_itoa.h to sysdeps/genericH.J. Lu2-2/+2
2012-03-07Remove distribute variable from MakefilesUlrich Drepper1-5/+2
2012-02-09Replace FSF snail mail address with URLs.Paul Eggert83-249/+166
2011-09-10Cleanup of configuration optionsUlrich Drepper2-34/+3
Make several tool features mandatory and simplify the code.
2010-08-02Hurd: fix timeout rounding in selectSamuel Thibault1-1/+1
2010-06-02Hurd: Fix linkat symlink handling.Emilio Pozuelo Monfort2-2/+9
2010-04-26Hurd: Fix file_name_lookup_at error case return value.Emilio Pozuelo Monfort1-2/+2
2010-02-19Fix Hurd tiocsctty change.Carl Fredrik Hammar1-1/+1
2010-02-17Clean up Hurd TIOCSCTTY.Carl Fredrik Hammar1-19/+25
2010-02-17Use ioctl_handler_t typedef in Hurd ioctl macros.Carl Fredrik Hammar1-1/+1
2009-12-22Hurd: Fix possibly uninitialized variable in _hurd_locked_install_cttyid.Samuel Thibault1-14/+10