aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2002-12-16Update.Ulrich Drepper
* sysdeps/unix/sysv/linux/syscalls.list: Add epoll_create, epoll_ctl, and epoll_wait. * sysdeps/unix/sysv/linux/Versions [libc: GLIBC_2.3.2]: Add epoll_create, epoll_ctl, and epoll_wait. * sysdeps/unix/sysv/linux/sys/epoll.h: New file. * sysdeps/unix/sysv/linux/Dist: Add sys/epoll.h. * sysdeps/unix/sysv/linux/Makefile [subdir=misc] (sysdep_headers): Add sys/epoll.h. 2002-12-16 Art Haas <ahaas@airmail.net> * sysdeps/generic/bp-semctl.h: Convert GCC extension initializer syntax to C99 * sysdeps/unix/sysv/aix/settimer.c: Same. * sysdeps/unix/sysv/aix/sleep.c: Same. * sysdeps/unix/sysv/aix/usleep.c: Same. 2002-12-16 Ulrich Drepper <drepper@redhat.com>
2002-12-16Update.Ulrich Drepper
2002-12-16 Ulrich Drepper <drepper@redhat.com> * stdio-common/Makefile (routines): Remove lockfile. Add flockfile, ftrylockfile, and funlockfile. * sysdeps/generic/lockfile.c: Removed. Each function has its own file. * sysdeps/generic/flockfile.c: New file. * sysdeps/generic/ftrylockfile.c: New file. * sysdeps/generic/funlockfile.c: New file.
2002-12-16Update.Ulrich Drepper
2002-12-16 Jakub Jelinek <jakub@redhat.com> * sysdeps/unix/sysv/linux/i386/socket.S: Use CENABLE and CDISABLE macros instead of doing the calls directly. * sysdeps/unix/make-syscalls.sh: Add ptw-*.$o target name to rules. * Makerules ($(+sysdir_pfx)sysd-rules): Emit rules for ptw-% targets. 2002-12-16 Jakub Jelinek <jakub@redhat.com> * sysdeps/i386/fpu/bits/mathinline.h: Backout last change. * sysdeps/ieee754/bits/nan.h: Likewise. * sysdeps/unix/sysv/linux/ia64/syscalls.list (__syscall_open, __syscall_wait4, __syscall_ioctl, __syscall_write): Add.
2002-12-16Backout last change.Ulrich Drepper
2002-12-16* sunrpc/xdr_mem.c (xdrmem_inline): Fix argument type.Roland McGrath
* sunrpc/xdr_rec.c (xdrrec_inline): Likewise. * sunrpc/xdr_stdio.c (xdrstdio_inline): Likewise. * sysdeps/unix/sysv/linux/syscalls.list: Add getpmsg, putpmsg. * sysdeps/unix/sysv/linux/mips/syscalls.list: Remove s_getpmsg, s_putpmsg. * sysdeps/unix/sysv/linux/i386/getpmsg.c: File removed. * sysdeps/unix/sysv/linux/i386/putpmsg.c: File removed. * sysdeps/unix/sysv/linux/m68k/getpmsg.c: File removed. * sysdeps/unix/sysv/linux/m68k/putpmsg.c: File removed. * sysdeps/unix/sysv/linux/mips/getpmsg.c: File removed. * sysdeps/unix/sysv/linux/mips/putpmsg.c: File removed. * sysdeps/unix/sysv/linux/powerpc/getpmsg.c: File removed. * sysdeps/unix/sysv/linux/powerpc/putpmsg.c: File removed.
2002-12-162002-12-16 Roland McGrath <roland@redhat.com>Roland McGrath
* sunrpc/xdr_mem.c (xdrmem_inline): Fix argument type. * sunrpc/xdr_rec.c (xdrrec_inline): Likewise. * sunrpc/xdr_stdio.c (xdrstdio_inline): Likewise.
2002-12-16Update.Ulrich Drepper
* init.c (__pthread_initialize_minimal_internal): Renamed from __pthread_initialize_minimal. Make old name an alias. This converts a normal relocation into a relative relocation.
2002-12-16(__pthread_initialize_minimal_internal): Renamed from ↵Ulrich Drepper
__pthread_initialize_minimal. Make old name an alias. This converts a normal relocation into a relative relocation.
2002-12-16* sunrpc/rpc/xdr.h (struct XDR.xdr_ops.x_inline): 2nd argRoland McGrath
is now u_int, not int. (struct XDR.x_handy): Now u_int, not int. * sunrpc/xdr_mem.c: Include <limits.h>. (xdrmem_getlong, xdrmem_putlong, xdrmem_getbytes, xdrmem_putbytes, xdrmem_inline, xdrmem_getint32, xdrmem_putint32): x_handy is now unsigned, not signed. Do not decrement x_handy if no change is made. (xdrmem_setpos): Check for int overflow. * sunrpc/xdr_sizeof.c (x_inline): 2nd arg is now unsigned. (xdr_sizeof): Remove cast that is now unnecessary, now that x_handy is unsigned.
2002-12-16* iconv/gconv_conf.c: Convert GCC extension initializer syntax to C99.Roland McGrath
* iconvdata/gap.awk: Likewise. * iconvdata/gen-8bit-gap-1.sh: Likewise. * iconvdata/gen-8bit-gap.sh: Likewise. * locale/C-address.c: Likewise. * locale/C-collate.c: Likewise. * locale/C-ctype.c: Likewise. * locale/C-identification.c: Likewise. * locale/C-measurement.c: Likewise. * locale/C-messages.c: Likewise. * locale/C-monetary.c: Likewise. * locale/C-name.c: Likewise. * locale/C-numeric.c: Likewise. * locale/C-paper.c: Likewise. * locale/C-telephone.c: Likewise. * locale/C-time.c: Likewise. * nscd/connections.c: Likewise. * nscd/grpcache.c: Likewise. * nscd/hstcache.c: Likewise. * nscd/pwdcache.c: Likewise. * stdio-common/vfprintf.c: Likewise. * stdlib/random.c: Likewise. * sysdeps/generic/siglist.c: Likewise. * sysdeps/i386/fpu/bits/mathinline.h: Likewise. * sysdeps/ieee754/bits/nan.h: Likewise. * sysdeps/posix/sprofil.c: Likewise. * sysdeps/unix/sysv/linux/sleep.c: Likewise. * sysdeps/unix/sysv/linux/sysctl.c: Likewise. * sysdeps/unix/sysv/linux/usleep.c: Likewise.
2002-12-15* sysdeps/unix/sysv/linux/readv.c (do_readv): Use prototype defn.Roland McGrath
* sysdeps/unix/sysv/linux/wait.c: Don't include <nptl/pthreadP.h> or <tls.h> here, no need for it. * sysdeps/unix/sysv/linux/waitpid.c: Likewise. * sysdeps/unix/sysv/linux/i386/fcntl.c (do_fcntl): Take ARG as void * parameter, not varargs parameter. * sysdeps/generic/sysdep-cancel.h (LIBC_CANCEL_RESET): Evaluate the argument so it's not an unused variable. * resolv/resolv.h (__p_key_syms, __p_cert_syms, __p_class_syms, __p_type_syms, __p_rcode_syms): Remove decls, never really intended for users. * resolv/Versions (libresolv: GLIBC_2.3.2): New set, add __p_rcode. 2002-12-15 Art Haas <ahaas@airmail.net> * nscd/connections.c: C99 initializer conversion. * nscd/grpcache.c: Same. * nscd/hstcache.c: Same. * nscd/pwdcache.c: Same.
2002-12-152002-12-15 Roland McGrath <roland@redhat.com>Roland McGrath
* sysdeps/unix/sysv/linux/readv.c (do_readv): Use prototype defn.
2002-12-15Update.Ulrich Drepper
2002-12-15 Ulrich Drepper <drepper@redhat.com> * sysdeps/unix/sysv/linux/i386/fcntl.c (do_fcntl): This is the original __libc_fcntl code. Just renamed. * sysdeps/unix/sysv/linux/m68k/clone.S: Make inline syscall to _exit. 2002-12-14 Olaf Hering <olh@suse.de> * sysdeps/powerpc/bits/setjmp.h: Include <bits/wordsize.h>. * sysdeps/powerpc/powerpc64/setjmp.S: Fix typo in r18 load.
2002-12-15Remove creat, poll, pselect, readv, select, sigpause, sigsuspend, ↵Ulrich Drepper
sigwaitinfo, waitid, and writev wrappers.
2002-12-15* sysdeps/unix/sysv/linux/m68k/clone.S: Make inline syscall toAndreas Schwab
_exit.
2002-12-15Make inline syscall to _exit.Andreas Schwab
2002-12-15Update.Ulrich Drepper
* Versions [libpthread: GLIBC_2.3.2]: Remove creat, poll, pselect, readv, select, sigpause, sigsuspend, sigwaitinfo, waitid, writev. * Makefile (libpthread-routines): Remove pt-creat, pt-poll, pt-pselect, pt-readv, pt-select, pt-sigpause, pt-sigsuspend, pt-sigwaitinfo, pt-waitid, and pt-writev. * pt-creat.c: Removed. * pt-poll.c: Removed. * pt-pselect.c: Removed. * pt-readv.c: Removed. * pt-select.c: Removed. * pt-sigpause.c: Removed. * pt-sigsuspend.c: Removed. * pt-sigwaitinfo.c: Removed. * pt-waitid.c: Removed. * pt-writev.c: Removed.
2002-12-15Update.Ulrich Drepper
* init.c (pthread_functions): New variable. (__pthread_initialize_minimal): Pass pointer to pthread_functions (or NULL) to __libc_pthread_init. * forward.c: Rewrite to use __libc:pthread_functions array to get function addresses. * sysdeps/unix/sysv/linux/fork.h: Remove __libc_pthread_init prototype. * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init): Take new parameter. Copy content of variable pointed to by it to __libc_pthread_init. * pthreadP.h (struct pthread_functions): New type. (__libc_pthread_init): Declare. * pthread_attr_destroy.c: Add namespace protected alias. * pthread_attr_getdetachstate.c: Likewise. * pthread_attr_getinheritsched.c: Likewise. * pthread_attr_getschedparam.c: Likewise. * pthread_attr_getschedpolicy.c: Likewise. * pthread_attr_getscope.c: Likewise. * pthread_attr_setdetachstate.c: Likewise. * pthread_attr_setinheritsched.c: Likewise. * pthread_attr_setschedparam.c: Likewise. * pthread_attr_setschedpolicy.c: Likewise. * pthread_attr_setscope.c: Likewise. * pthread_cond_broadcast.c: Likewise. * pthread_cond_destroy.c: Likewise. * pthread_cond_init.c: Likewise. * pthread_cond_signal.c: Likewise. * pthread_cond_wait.c: Likewise. * pthread_condattr_destroy.c: Likewise. * pthread_condattr_init.c: Likewise. * pthread_equal.c: Likewise. * pthread_exit.c: Likewise. * pthread_getschedparam.c: Likewise. * pthread_self.c: Likewise. * pthread_setcancelstate.c: Likewise. * pthread_setschedparam.c: Likewise. * pthread_mutex_destroy.c: Likewise. * pthread_mutex_init.c: Likewise. * pthreadP.h: Add prototypes for the aliases.
2002-12-15Add namespace protected alias.Ulrich Drepper
2002-12-152002-12-14 Olaf Hering <olh@suse.de>Roland McGrath
* sysdeps/powerpc/bits/setjmp.h: Include <bits/wordsize.h>. * sysdeps/powerpc/powerpc64/setjmp.S: Fix typo in r18 load.
2002-12-152002-12-14 Olaf Hering <olh@suse.de>Roland McGrath
* sysdeps/powerpc/bits/setjmp.h: Include <bits/wordsize.h>. * sysdeps/powerpc/powerpc64/setjmp.S: Fix typo in r18 load.
2002-12-15Update.Ulrich Drepper
* sysdeps/unix/sysv/linux/libc_fatal.c: New file.
2002-12-15Update.Ulrich Drepper
2002-12-15 Ulrich Drepper <drepper@redhat.com> * sysdeps/generic/sysdep-cancel.h: Add dummy definitions for SINGLE_THREAD_P, LIBC_CANCEL_ASYNC, and LIBC_CANCEL_RESET. * sysdeps/unix/sysv/linux/open64.c: New file. * sysdeps/generic/pselect.c: Add support for cancellation handling. * sysdeps/posix/open64.c: Likewise. * sysdeps/posix/sigpause.c: Likewise. * sysdeps/posix/sigwait.c: Likewise. * sysdeps/posix/system.c: Likewise. * sysdeps/posix/waitid.c: Likewise. * sysdeps/unix/sysv/linux/accept.S: Likewise. * sysdeps/unix/sysv/linux/connect.S: Likewise. * sysdeps/unix/sysv/linux/llseek.c: Likewise. * sysdeps/unix/sysv/linux/msgrcv.c: Likewise. * sysdeps/unix/sysv/linux/msgsnd.c: Likewise. * sysdeps/unix/sysv/linux/poll.c: Likewise. * sysdeps/unix/sysv/linux/pread.c: Likewise. * sysdeps/unix/sysv/linux/pread64.c: Likewise. * sysdeps/unix/sysv/linux/pwrite.c: Likewise. * sysdeps/unix/sysv/linux/pwrite64.c: Likewise. * sysdeps/unix/sysv/linux/readv.c: Likewise. * sysdeps/unix/sysv/linux/recv.S: Likewise. * sysdeps/unix/sysv/linux/recvfrom.S: Likewise. * sysdeps/unix/sysv/linux/recvmsg.S: Likewise. * sysdeps/unix/sysv/linux/send.S: Likewise. * sysdeps/unix/sysv/linux/sendmsg.S: Likewise. * sysdeps/unix/sysv/linux/sendto.S: Likewise. * sysdeps/unix/sysv/linux/sigsuspend.c: Likewise. * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise. * sysdeps/unix/sysv/linux/sigwait.c: Likewise. * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise. * sysdeps/unix/sysv/linux/tcdrain.c: Likewise. * sysdeps/unix/sysv/linux/wait.c: Likewise. * sysdeps/unix/sysv/linux/waitpid.c: Likewise. * sysdeps/unix/sysv/linux/writev.c: Likewise. * sysdeps/unix/sysv/linux/i386/fcntl.c: Likewise. * sysdeps/unix/sysv/linux/i386/socket.S: Likewise.
2002-12-15Update.Ulrich Drepper
2002-12-14 Ulrich Drepper <drepper@redhat.com> * sysdeps/unix/sysv/linux/i386/pt-socket.S: Changes folded into the regular Linux version. Remove file. * sysdeps/unix/sysv/linux/connect.S: Likewise. Remove file. * sysdeps/unix/sysv/linux/llseek.c: Likewise. Remove file. * sysdeps/unix/sysv/linux/msgrcv.c: Likewise. Remove file. * sysdeps/unix/sysv/linux/msgsnd.c: Likewise. Remove file. * sysdeps/unix/sysv/linux/open64.c: Likewise. Remove file. * sysdeps/unix/sysv/linux/poll.c: Likewise. Remove file. * sysdeps/unix/sysv/linux/pread.c: Likewise. Remove file. * sysdeps/unix/sysv/linux/pread64.c: Likewise. Remove file. * sysdeps/unix/sysv/linux/pselect.c: Likewise. Remove file. * sysdeps/unix/sysv/linux/pwrite.c: Likewise. Remove file. * sysdeps/unix/sysv/linux/pwrite64.c: Likewise. Remove file. * sysdeps/unix/sysv/linux/readv.c: Likewise. Remove file. * sysdeps/unix/sysv/linux/recv.S: Likewise. Remove file. * sysdeps/unix/sysv/linux/recvfrom.S: Likewise. Remove file. * sysdeps/unix/sysv/linux/recvmsg.S: Likewise. Remove file. * sysdeps/unix/sysv/linux/send.S: Likewise. Remove file. * sysdeps/unix/sysv/linux/sendmsg.S: Likewise. Remove file. * sysdeps/unix/sysv/linux/sendto.S: Likewise. Remove file. * sysdeps/unix/sysv/linux/sigpause.c: Likewise. Remove file. * sysdeps/unix/sysv/linux/sigsuspend.c: Likewise. Remove file. * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise. Remove file. * sysdeps/unix/sysv/linux/sigwait.c: Likewise. Remove file. * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise. Remove file. * sysdeps/unix/sysv/linux/system.c: Likewise. Remove file. * sysdeps/unix/sysv/linux/tcdrain.c: Likewise. Remove file. * sysdeps/unix/sysv/linux/wait.c: Likewise. Remove file. * sysdeps/unix/sysv/linux/waitid.c: Likewise. Remove file. * sysdeps/unix/sysv/linux/waitpid.c: Likewise. Remove file. * sysdeps/unix/sysv/linux/writev.c: Likewise. Remove file. * sysdeps/unix/sysv/linux/i386/fcntl.c: Likewise. Remove file.
2002-12-15Update.Ulrich Drepper
* sysdeps/generic/sysdep-cancel.h: New file. * sysdeps/unix/make-syscalls.sh: Handle C at start of args as cancelable syscall. * sysdeps/unix/inet/syscalls.list (accept, connect, recv, recvfrom, recvmsg, send, sendmsg, sendto): Make cancelable. * sysdeps/unix/mman/syscalls.list (msync): Likewise. * sysdeps/unix/sysv/linux/alpha/syscalls.list (llseek, pread, pwrite, accept, connect, recv, recvfrom, recvmsg, send, sendmsg, sendto, osf_select): Likewise. * sysdeps/unix/sysv/linux/hppa/syscalls.list (accept, connect, recv, recvfrom, recvmsg, send, sendmsg, sendto): Likewise. * sysdeps/unix/sysv/linux/ia64/syscalls.list (llseek, pread, pwrite, accept, connect, recv, recvfrom, recvmsg, send, sendmsg, sendto): Likewise. * sysdeps/unix/sysv/linux/mips/syscalls.list (accept, connect, recv, recvfrom, recvmsg, send, sendmsg, sendto): Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list (llseek, pread, pwrite, accept, connect, recv, recvfrom, recvmsg, send, sendmsg, sendto): Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list (llseek, pread, pwrite, accept, connect, recv, recvfrom, recvmsg, send, sendmsg, sendto, select): Likewise. * sysdeps/unix/sysv/linux/x86_64/syscalls.list (llseek, pread, pwrite, accept, connect, recvfrom, recvmsg, sendmsg, sendto): Likewise. * sysdeps/unix/sysv/linux/syscalls.list (creat, nanosleep, pause, select, fcntl): Likewise. * sysdeps/unix/sysv/syscalls.list (pause, poll): Likewise. * sysdeps/unix/syscalls.list (close, fcntl, fsync, lseek, open, read, readv, select, sigsuspend, write, writev): Likewise. 2002-12-14 Jakub Jelinek <jakub@redhat.com>
2002-12-14Update.Ulrich Drepper
2002-12-14 Jakub Jelinek <jakub@redhat.com> * dirent/bug-readdir1.c: Include unistd.h.
2002-12-14Update.Ulrich Drepper
2002-12-13 Jakub Jelinek <jakub@redhat.com> * locale/programs/locale.c: Include locarchive.h. (ARCHIVE_NAME): Define. (write_archive_locales): New function. (write_locales): Use it. Ensure the same locale is not printed multiple times in verbose mode. Mode LC_IDENTIFICATION and LC_CTYPE printing into... (print_LC_IDENTIFICATION, print_LC_CTYPE): ... these helper functions. (struct nameent): New type. (nameentcmp): New function.
2002-12-14Include locarchive.h. (ARCHIVE_NAME): Define. (write_archive_locales): New ↵Ulrich Drepper
function. (write_locales): Use it. Ensure the same locale is not printed multiple times in verbose mode. Mode LC_IDENTIFICATION and LC_CTYPE printing into... (print_LC_IDENTIFICATION, print_LC_CTYPE): ... these helper functions. (struct nameent): New type. (nameentcmp): New function.
2002-12-13* posix/regex_internal.c (re_string_context_at): Guard wide charRoland McGrath
code with #ifdef RE_ENABLE_I18N. 2002-11-22 Paolo Bonzini <bonzini@gnu.org> * posix/regcomp.c (regcomp): __re_compile_fastmap -> re_compile_fastmap
2002-12-132002-12-14 Jakub Jelinek <jakub@redhat.com>Roland McGrath
* posix/regex_internal.c (re_string_context_at): Guard wide char code with #ifdef RE_ENABLE_I18N.
2002-12-13(test_loaded): Don't overwrite a value another thread might have found.Ulrich Drepper
2002-12-13Update.Ulrich Drepper
* forward.c (test_loaded): Prevent recursive calls.
2002-12-13(test_loaded): Prevent recursive calls.Ulrich Drepper
2002-12-13* posix/bug-regex15.c: New file.Roland McGrath
* posix/Makefile (tests): Add it. * test-skeleton.c (TEST_DATA_LIMIT): New macro, default to 64MB. (main): Set RLIMIT_DATA limit to TEST_DATA_LIMIT (or lower if need be).
2002-12-132002-12-13 Roland McGrath <roland@redhat.com>Roland McGrath
* posix/bug-regex15.c: New file. * posix/Makefile (tests): Add it.
2002-12-13Update.Ulrich Drepper
* elf/dl-misc.c (_dl_debug_vdprintf): Don't depend on 5-digit PIDs.
2002-12-13Update.Ulrich Drepper
2002-12-13 Ulrich Drepper <drepper@redhat.com> * misc/syslog.c (log_cleanup): Don't use parameter in __libc_lock_unlock call, use syslog_lock directly. Adjust callers to pass NULL instead of a pointer to syslog_lock.
2002-12-13Cancellation handling inside libc.Ulrich Drepper
2002-12-13* td_ta_thr_iter.c (iterate_thread_list): Handle special case ofRoland McGrath
uninitialized __stack_user (zeros), hard-wire just the main thread. * td_thr_get_info.c (td_thr_get_info): Fix ti_lid initialization.
2002-12-132002-12-12 Roland McGrath <roland@redhat.com>Roland McGrath
* td_ta_thr_iter.c (iterate_thread_list): Handle special case of uninitialized __stack_user (zeros), hard-wire just the main thread.
2002-12-13Update.Ulrich Drepper
* iconvdata/Makefile: iconv-rules: Add definition to use gconv.map linker map for all iconv modules. (distribute): Add gconv.map. * iconvdata/gconv.map: New file.
2002-12-13Update.Ulrich Drepper
* elf/Makefile: Also check all iconv modules for text relocations.
2002-12-13Update.Ulrich Drepper
* stdlib/Makefile: Remove code to automatically import GMP.
2002-12-12Update.Ulrich Drepper
* elf/Makefile (tests): Add rules to build and run check-textrel. * elf/check-textrel.c: New file.
2002-12-12Update.Ulrich Drepper
2002-12-12 Ulrich Drepper <drepper@redhat.com> * sysdeps/unix/sysv/linux/i386/sysdep.h (SETUP_PIC_REG): Add .size directive.
2002-12-12Update.Ulrich Drepper
2002-12-12 Ulrich Drepper <drepper@redhat.com> * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Correct access to __libc_locking_needed for PIC.
2002-12-12Update.Ulrich Drepper
2002-12-12 Jakub Jelinek <jakub@redhat.com> * sysdeps/pthread/bits/libc-lock.h (__libc_locking_needed): Only declare for libc.so. (__libc_lock_init, __libc_lock_init_recursive): Change into comma expression. (__libc_lock_lock): Put into statement expression. (__libc_lock_unlock): Remove trailing semicolon. * sysdeps/unix/sysv/linux/fork.h (__libc_pthread_init): Fix typo.
2002-12-12(__libc_locking_needed): Only declare for libc.so. (__libc_lock_init, ↵Ulrich Drepper
__libc_lock_init_recursive): Change into comma expression. (__libc_lock_lock): Put into statement expression. (__libc_lock_unlock): Remove trailing semicolon.
2002-12-12* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use asm operand withRoland McGrath
"m" constraint to refer to __libc_locking_needed. Declare it here.
2002-12-122002-12-12 Roland McGrath <roland@redhat.com>Roland McGrath
* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use asm operand with "m" constraint to refer to __libc_locking_needed. Declare it here.