about summary refs log tree commit diff
path: root/nptl
Commit message (Collapse)AuthorAgeFilesLines
* Update.Ulrich Drepper2003-08-085-6/+48
| | | | | | | | | | | | | | | | 2003-08-07 Jakub Jelinek <jakub@redhat.com> * sysdeps/generic/ldsodefs.h (_rtld_global): Add _dl_rtld_lock_recursive and _dl_rtld_unlock_recursive. * elf/rtld.c (rtld_lock_default_lock_recursive, rtld_lock_default_unlock_recursive): New functions. (dl_main): Initialize _dl_rtld_lock_recursive and _dl_rtld_unlock_recursive. 2003-08-05 Jakub Jelinek <jakub@redhat.com> * elf/ldconfig.c (main): Append SLIBDIR and LIBDIR to config_file directories instead of prepending.
* Update.Ulrich Drepper2003-08-082-1/+8
| | | | | | | 2003-08-06 Jakub Jelinek <jakub@redhat.com> * tst-cancel17.c (do_test): Make len2 maximum of page size and PIPE_BUF.
* * pthread_create.c (__pthread_create_2_0): Clear new_attr.cpuset.Jakub Jelinek2003-08-071-0/+4
|
* (__pthread_create_2_0): Clear new_attr.cpuset.Jakub Jelinek2003-08-071-0/+1
|
* Bump to 0.56.Ulrich Drepper2003-08-041-1/+1
|
* Update.Ulrich Drepper2003-08-042-15/+21
| | | | | | | | 2003-08-03 Jakub Jelinek <jakub@redhat.com> * sysdeps/pthread/createthread.c (do_clone): Move error handling to first syscall error check. Move syscall error check for tkill into __ASSUME_CLONE_STOPPED #ifdef.
* Update.Ulrich Drepper2003-08-036-35/+167
| | | | | | | | | | | | | | | * sysdeps/pthread/createthread.c (do_clone): If __ASSUME_CLONE_STOPPED is not defined, do explicit synchronization. (create_thread): Do not lock pd->lock here. If __ASSUME_CLONE_STOPPED is not defined also unlock pd->lock for non-debugging case in case it is necessary. * pthread_create.c (start_thread): Always get and release pd->lock if __ASSUME_CLONE_STOPPED is not defined. (start_thread_debug): Removed. Adjust users. * allocatestack.c (allocate_stack): Always initialize lock if __ASSUME_CLONE_STOPPED is not defined. * Makefile (tests): Add tst-sched1. * tst-sched1.c: New file.
* Update.Ulrich Drepper2003-08-022-10/+9
| | | | | | | 2003-08-02 Ulrich Drepper <drepper@redhat.com> * sysdeps/pthread/createthread.c (do_clone): Only use sched_setschduler and pass correct parameters.
* Update.Ulrich Drepper2003-07-312-2/+8
| | | | | | | | | | | | | | * sysdeps/generic/bits/types.h (__ssize_t): Use __SSIZE_T_TYPE instead of __SWORD_TYPE. * sysdeps/generic/bits/typesizes.h (__SSIZE_T_TYPE): Define. * sysdeps/mach/hurd/bits/typesizes.h (__SSIZE_T_TYPE): Define. * sysdeps/unix/bsd/bsd4.4/freebsd/bits/typesizes.h (__SSIZE_T_TYPE): Define. * sysdeps/unix/sysv/linux/alpha/bits/typesizes.h (__SSIZE_T_TYPE): Define. * sysdeps/unix/sysv/linux/sparc/bits/typesizes.h (__SSIZE_T_TYPE): Define. * sysdeps/unix/sysv/linux/s390/bits/typesizes.h: New file.
* Update.Ulrich Drepper2003-07-319-15/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2003-07-31 Jakub Jelinek <jakub@redhat.com> * dlfcn/dlerror.c (once): New. (dlerror): Call __libc_once. (_dlerror_run): Remove once. 2003-07-31 Jakub Jelinek <jakub@redhat.com> * sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h (struct sigcontext): Sync with 2.5.7 and 2.5.73 kernel changes. 2003-07-31 Jakub Jelinek <jakub@redhat.com> * dlfcn/eval.c (funcall): Add noinline attribute to shut up warnings. * elf/rtld.c (dl_main): Cast ElfW(Addr) arguments with %Zx/%Zd formats to size_t. * elf/dl-lookup.c (_dl_debug_bindings): Likewise. * elf/tst-tls6.c (do_test): Use %zd format for l_tls_modid. * elf/tst-tls8.c (do_test): Use %zd format for modid1 and modid2. * gmon/tst-sprofil.c (main): Add parens to shut up warning. * iconv/tst-iconv3.c (main): Use %td instead of %zd for pointer difference argument. * stdio-common/tst-wc-printf.c (main): Cast arguments with %C format to wint_t. * stdlib/tst-limits.c (main): For WORD_BIT and LONG_BIT, use %d format and cast expected value to int. * sysdeps/generic/libc-start.c (STATIC): Add __attribute__((always_inline) if LIBC_START_MAIN is already defined. * sysdeps/powerpc/fpu/w_sqrt.c (a_nan, a_inf): Change from uint32_t to ieee_float_shape_type. (__sqrt): Avoid type punning. * sysdeps/powerpc/fpu/w_sqrtf.c (a_nan, a_inf): Change from uint32_t to ieee_float_shape_type. (__sqrtf): Avoid type punning. * sysdeps/s390/s390-32/dl-machine.h (elf_machine_rela): Don't define refsym if in dl-conflict.c. * sysdeps/s390/s390-64/dl-machine.h (elf_machine_rela): Likewise. * sysdeps/unix/sysv/linux/i386/semctl.c (union semun): Add __old_buf. (__new_semctl): Shut up warning. * sysdeps/unix/sysv/linux/semctl.c (union semun): Add __old_buf. (__new_semctl): Shut up warning. * sysdeps/unix/sysv/linux/shmctl.c (__new_shmctl): Wrap long lines. Change old into union of __old_shmid_ds and __old_shminfo structs. Adjust all users. * wcsmbs/wcsmbs-tst1.c (main): Cast arguments with %C format to wint_t. 2003-07-31 Jakub Jelinek <jakub@redhat.com> * sysdeps/unix/sysv/linux/utimes.c (__utimes): Fix actime and modtime computation. * sysdeps/unix/sysv/linux/futimes.c (__futimes): Likewise. * sysdeps/posix/utimes.c (__utimes): Likewise.
* Update.Ulrich Drepper2003-07-313-0/+15
| | | | | | | | | | 2003-07-31 Ulrich Drepper <drepper@redhat.com> * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S (__pthread_cond_timedwait): Don't use cmov unless HAVE_CMOV is defined. * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S: Define HAVE_CMOV. Patch by Nicholas Miell <nmiell@attbi.com>.
* Update.Ulrich Drepper2003-07-318-2/+376
| | | | | | | | | | | | | | | | | | | | | | 2003-07-30 Jakub Jelinek <jakub@redhat.com> * elf/dl-reloc.c (_dl_allocate_static_tls): Don't return any value, call dl_signal_error directly. If already relocated, call GL(dl_init_static_tls) directly, otherwise queue it for later. (CHECK_STATIC_TLS): Undo 2003-07-24 change. * elf/rtld.c (dl_main): Initialize GL(dl_init_static_tls). * elf/dl-open.c (dl_open_worker): Call GL_dl_init_static_tls for all static TLS initializations delayed in _dl_allocate_static_tls. * elf/dl-support.c (_dl_init_static_tls): New variable. * include/link.h (struct link_map): Add l_need_tls_init. * sysdeps/generic/ldsodefs.h (_rtld_global): Add _dl_init_static_tls. (_dl_nothread_init_static_tls): New prototype. (_dl_allocate_static_tls): Adjust prototype. * elf/tls-macros.h (VAR_INT_DEF): Add alignment directive. elf_machine_rela_relative): Adjust. (CHECK_STATIC_TLS): _dl_allocate_static_tls can fail now.
* * rt/tst-timer2.c: New file.Roland McGrath2003-07-293-6/+13
| | | | * rt/Makefile (tests): Add it.
* * elf/dl-support.c (_dl_hwcap): Add nocommon attribute.Roland McGrath2003-07-291-0/+4
|
* * elf/Makefile (tests) [$(build-shared) = yes]:Roland McGrath2003-07-291-0/+3
| | | | | Depend on $(test-modules). * dlfcn/Makefile: Likewise.
* Update.Ulrich Drepper2003-07-252-13/+35
| | | | | | | | 2003-07-24 Jakub Jelinek <jakub@redhat.com> * sysdeps/pthread/aio_cancel.c (aio_cancel): Return AIO_ALLDONE if aiocbp != NULL and has already completed. Return -1/EINVAL if aiocbp->aio_fildes does not match fildes.
* Update.Ulrich Drepper2003-07-231-1/+1
| | | | | | | | | 2003-07-23 Jakub Jelinek <jakub@redhat.com> * sysdeps/pthread/lio_listio.c (LIO_OPCODE_BASE): Define. (lio_listio): Use it. * sysdeps/pthread/lio_listio64.c: Include lio_listio.c instead of after few defines to avoid duplication.
* Update.Ulrich Drepper2003-07-229-6/+194
| | | | | | | | | | | | | | | | | * include/stdio.h (__libc_fatal): Add libc_hidden_proto. * include/dlfcn.h (__libc_dlopen_mode, __libc_dlsym, __libc_dlclose): Likewise. * elf/dl-libc.c (__libc_dlopen_mode, __libc_dlsym, __libc_dlclose): Add libc_hidden_def. * sysdeps/generic/libc_fatal.c (__libc_fatal): Likewise. * sysdeps/posix/libc_fatal.c (__libc_fatal): Likewise. * sysdeps/unix/sysv/linux/libc_fatal.c (__libc_fatal): Likewise. * elf/Versions (libc): Export __libc_dlopen_mode@@GLIBC_PRIVATE, __libc_dlsym@@GLIBC_PRIVATE and __libc_dlclose@@GLIBC_PRIVATE. * libio/Versions (libc): Export __libc_fatal@@GLIBC_PRIVATE. * sysdeps/generic/unwind-dw2.c: Readd #ifs removed during last change. * sysdeps/generic/unwind.inc: Removed.
* Update.Ulrich Drepper2003-07-228-11/+124
| | | | | | | | | | | | | | | | 2003-07-22 Jakub Jelinek <jakub@redhat.com> * include/resolv.h (__resp): Declare. Define to __libc_resp if in libc.so. (_res): If USE___THREAD, define to (*__resp). * resolv/res_libc.c (_res): Normal .bss variable with compat_symbol even if USE___THREAD. (__resp): New __thread variable. (__libc_resp): New alias. * resolv/Versions (libc): Export _res@GLIBC_2.0 even if USE_TLS && HAVE___THREAD. Export __resp@@GLIBC_PRIVATE. * sysdeps/generic/res-state.c (__res_state): Return __resp if USE___THREAD.
* Update.Ulrich Drepper2003-07-223-5/+3
| | | | * sysdeps/unix/sysv/linux/bits/sched.h (CLONE_STOPPED): Define.
* Update.Ulrich Drepper2003-07-212-0/+8
| | | | | | | | | | 2003-07-21 Ulrich Drepper <drepper@redhat.com> * Makerules (build-module-helper): Add -z defs unless explicitly said not to do it. * dlfcn/Makefile: Define various *-no-z-defs variables for test DSOs which has undefined symbols. * elf/Makefile: Likewise.
* Update.Ulrich Drepper2003-07-212-0/+6
| | | | | | | 2003-07-21 HJ Lu <hongjiu.lu@intel.com> * elf/ldconfig.c (search_dir): Treat symlink as regular file if it won't point to itself.
* Update.Ulrich Drepper2003-07-2011-74/+263
| | | | | | | | | | | | | | | | | | | | 2003-07-20 Ulrich Drepper <drepper@redhat.com> * Makefile (libpthread-routines): Add pthread_attr_getaffinity and pthread_attr_setaffinity. * Versions [libpthread] (GLIBC_2.3.3): Likewise. * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c: New file. * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: New file. * pthread_attr_destroy.c: Free cpuset element if allocated. * pthread_create.c: Pass iattr as additional parameter to create_thread. * sysdeps/pthread/createthread.c: If attribute is provided and a new thread is created with affinity set or scheduling parameters, start thread with CLONE_STOPPED. * sysdeps/pthread/pthread.h: Declare pthread_attr_getaffinity and pthread_attr_setaffinity. * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_attr): Add cpuset element.
* Update.Ulrich Drepper2003-07-153-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | More cancellation handling fixups. * sysdeps/unix/sysv/linux/not-cancel.h: Add waitpid_not_cancel. * sysdeps/generic/not-cancel.h: Likewise. * catgets/open_catalog.c: Use not-cancelable syscalls. * time/Makefile (CFLAGS-getdate.c): Add -fexceptions. * sysdeps/unix/sysv/linux/llseek.c: Must not be cancelable. * sysdeps/unix/syscalls.list: Don't mark lseek as cancelable. * dlfcn/dlfcn.h: Mark dlopen with __THROW again. * io/fcntl.h: Don't mark posix_fallocate with __THROW. * libio/fileops.c: Use not-cancelable syscalls for fclose. * libio/iopopen.c: Use no-cancelable syscalls. * libio/stdio.h: Mark popen and pclose with __THROW again. * misc/Makefile (CFLAGS-syslog.c): Add -fexceptions. * misc/syslog.c: Fix locking and cancellation cleanup handling. * posix/unistd.h: Mark ttyname and ttyname_r again with __THROW. * stdio-common/Makefile (CFLAGS-tmpfile.c, CFLAGS-tmpfile64.c, CFLAGS-tempname.c): Add -fexceptions. * stdlib/Makefile (CFLAGS-mkstemp.c): Add -fexceptions. * string/string.h: Mark strerror and strerror_r with _THROW again. * sysdeps/generic/unwind.inc: New file. Copied from gcc. * sysdeps/generic/unwind-dw2.c: Update from gcc version. Remove #ifs since we now need all the code compiled. * sysdeps/posix/spawni.c: Use close_not_cancel instead of close. * sysdeps/unix/closedir.c: Use not-cancelable syscalls. * sysdeps/unix/opendir.c: Likewise.
* Update.Ulrich Drepper2003-07-153-8/+17
| | | | | | | 2003-07-14 Ulrich Drepper <drepper@redhat.com> * sysdeps/pthread/configure.in: Require CFI directives also for ppc and s390.
* Update.Ulrich Drepper2003-07-142-3/+12
| | | | | | | 2003-07-14 Ulrich Drepper <drepper@redhat.com> * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Fix typo in test for compilation in libc.
* Update.Ulrich Drepper2003-07-1211-82/+258
| | | | | | | 2003-07-12 Kaz Kojima <kkojima@rr.iij4u.or.jp> * sysdeps/unix/sysv/linux/sh/socket.S: Save and restore the PR register across CENABLE and CDISABLE.
* Update.Ulrich Drepper2003-07-115-1/+30
| | | | | | | | | | * sysdeps/unix/sysv/linux/sigwait.c: Include string.h. * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise. * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise. * sysdeps/unix/sysv/linux/sleep.c (__sleep): Cast value to unsigned int before assigning to max to avoid warnings. 2003-07-11 Jakub Jelinek <jakub@redhat.com>
* Update.Ulrich Drepper2003-07-089-7/+41
| | | | | | | | | | | | | | | | | | | | 2003-07-08 Jakub Jelinek <jakub@redhat.com> * pthreadP.h (__pthread_unwind_next, __pthread_register_cancel, __pthread_unregister_cancel): Add prototypes and hidden_proto. * unwind.c (__pthread_unwind_next): Add hidden_def. * cleanup.c (__pthread_register_cancel, __pthread_unregister_cancel): Likewise. * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait): Use HIDDEN_JUMPTARGET to jump to __pthread_unwind. * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait): Likewise. * sysdeps/unix/sysv/linux/x86_64/sem_wait.S (sem_wait): Likewise. * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait): Likewise. * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once): Use HIDDEN_JUMPTARGET to call __pthread_register_cancel, __pthread_unregister_cancel and __pthread_unwind_next.
* Update.Ulrich Drepper2003-07-082-1/+17
| | | | | | | | | | | | | 2003-07-04 Jakub Jelinek <jakub@redhat.com> * sysdeps/s390/s390-32/elf/start.S: Emit position independent code if PIC. * sysdeps/s390/s390-64/elf/start.S: Likewise. 2003-07-07 Jakub Jelinek <jakub@redhat.com> * sysdeps/powerpc/powerpc64/elf/start.S: Put L(start_address) into .data.rel.ro.local section if PIC to avoid DT_TEXTREL.
* Update.Ulrich Drepper2003-07-083-13/+15
| | | | | | | | | | 2003-07-07 Ulrich Drepper <drepper@redhat.com> * sysdeps/unix/sysv/linux/kernel-features.h: Version __ASSUME_CORRECT_SI_PID and __ASSUME_TGKILL if possible. * sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Adjust for compilation with HAVE_AUX_SECURE defined.
* Update.Ulrich Drepper2003-07-089-9/+94
| | | | | | | | | | | | | | | | | 2003-07-07 Ulrich Drepper <drepper@redhat.com> * descr.h (struct pthread): Add pid field. * allocatestack.c (allocate_stack): Initialize pid field in descriptor. (__reclaim_stacks): Likewise. * init.c (sigcancel_handler): If __ASSUME_CORRECT_SI_PID is defined also check for PID of the signal source. (__pthread_initialize_minimal_internal): Also initialize pid field of initial thread's descriptor. * pthread_cancel.c: Use tgkill instead of tkill if possible. * sysdeps/unix/sysv/linux/fork.c: Likewise. * sysdeps/unix/sysv/linux/pt-raise.c: Likewise. * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise. * sysdeps/unix/sysv/linux/raise.c: Likewise.
* Update.Ulrich Drepper2003-07-052-3/+9
| | | | | | | | 2003-07-05 Ulrich Drepper <drepper@redhat.com> * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_push): Renamed. Fix use of parameter. (__libc_cleanup_pop): Likewise.
* Update.Ulrich Drepper2003-07-052-5/+23
| | | | | | | | 2003-07-04 Ulrich Drepper <drepper@redhat.com> * init.c (sigcancel_handler): Change parameters to match handler for SA_SIGACTION. Check signal number and code to recognize invalid invocations.
* (sigcancel_handler): Change parameters to match handler for SA_SIGACTION. ↵Ulrich Drepper2003-07-051-3/+14
| | | | Check signal number and code to recognize invalid invocations.
* * sysdeps/ia64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr):Roland McGrath2003-07-031-0/+5
| | | | Apply sizeof (struct pthread) bias to r13 value.
* 2003-07-03 Roland McGrath <roland@redhat.com>Roland McGrath2003-07-031-1/+1
| | | | | * sysdeps/ia64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Apply sizeof (struct pthread) bias to r13 value.
* CFI is only really required (so far) for x86 and hammer.Ulrich Drepper2003-07-031-1/+4
|
* Update.Ulrich Drepper2003-07-033-14/+16
| | | | | | 2003-07-03 Ulrich Drepper <drepper@redhat.com> * configure.in: Also check for .cfi_rel_offset pseudo-op.
* Update.Ulrich Drepper2003-07-031-1/+1
| | | | | | | | 2003-07-03 Ulrich Drepper <drepper@redhat.com> * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_AT_CLKTCK): Define. * sysdeps/unix/sysv/linux/prof-freq.h: New file.
* Update.Ulrich Drepper2003-07-035-15/+15
| | | | | | | | | | | 2003-07-03 Ulrich Drepper <drepper@redhat.com> * sysdeps/pthread/librt-cancellation.c (__pthread_unwind): Remove definition. * pthreadP.h (__pthread_unwind): Add hidden_proto if used in libpthread compilation. * unwind.c (__pthread_unwind): Add hidden_def. * Versions (libpthread) [GLIBC_PRIVATE]: Add __pthread_unwind.
* Update.Ulrich Drepper2003-07-024-1/+37
| | | | | | | | 2003-07-01 Ulrich Drepper <drepper@redhat.com> * libc-cancellation.c (__libc_cleanup_routine): Define. * sysdeps/pthread/bits/libc-lock.h (__pthread_cleanup_push): Define. (__pthread_cleanup_pop): Define.
* Update.Ulrich Drepper2003-07-0117-0/+1182
| | | | | | | | | | | | | | | | | | | | | 2003-07-01 Richard Henderson <rth@redhat.com> * sysdeps/alpha/elf/pt-initfini.c: New file. * sysdeps/alpha/pthread_spin_lock.S: New file. * sysdeps/alpha/pthread_spin_trylock.S: New file. * sysdeps/alpha/pthreaddef.h: New file. * sysdeps/alpha/td_ta_map_lwp2thr.c: New file. * sysdeps/alpha/tls.h: New file. * sysdeps/unix/sysv/linux/alpha/Makefile: New file. * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: New file. * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h: New file. * sysdeps/unix/sysv/linux/alpha/createthread.c: New file. * sysdeps/unix/sysv/linux/alpha/fork.c: New file. * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: New file. * sysdeps/unix/sysv/linux/alpha/pt-vfork.S: New file. * sysdeps/unix/sysv/linux/alpha/pthread_once.c: New file. * sysdeps/unix/sysv/linux/alpha/sem_post.c: New file. * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: New file.
* Update.Ulrich Drepper2003-07-012-19/+137
| | | | | | | 2003-07-01 Ulrich Drepper <drepper@redhat.com> * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Add correct cleanup support and unwind info.
* Update.Ulrich Drepper2003-07-014-2/+15
| | | | | * sysdeps/unix/sysv/linux/unwindbuf.sym: New file. * sysdeps/unix/sysv/linux/Makefile: Add rule to build unwindbuf.h.
* Update.Ulrich Drepper2003-07-016-60/+126
| | | | | | | | | | | | 2003-06-30 Ulrich Drepper <drepper@redhat.com> * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once): Use correct cleanup handler registration. Add unwind info. * tst-once3.c: Add cleanup handler and check it is called. * tst-once4.c: Likewise. * tst-oncex3.c: New file. * tst-oncex4.c: New file. * Makefile: Add rules to build and run tst-oncex3 and tst-oncex4.
* Update.Ulrich Drepper2003-06-293-0/+76
| | | | | | 2003-06-29 Ulrich Drepper <drepper@redhat.com> * sysdeps/pthread/configure.in: Check for C cleanup handling in gcc.
* Bump to 0.50.Ulrich Drepper2003-06-271-1/+1
|
* Update.Ulrich Drepper2003-06-272-4/+12
| | | | | * tst-cancel4.c (tf_msgrcv): Use IPC_PRIVATE in msgget call. (tf_msgsnd): Likewise.
* Update.Ulrich Drepper2003-06-273-4/+12
| | | | | | 2003-06-27 Ulrich Drepper <drepper@redhat.com> * rt/Makefile (CFLAGS-librt-cancellation.c): Define.