2000-11-13 H.J. Lu * config.make.in (build-compile-time-compatible): New. * configure.in: Add --enable-build-compile-time-compatible. Check "symver _sym,sym@@@VERS" if compile-time compatibility is enabled. * configure: Rebuilt. 2000-11-09 H.J. Lu * sunrpc/Versions (GLIBC_2.1): Remove xdr_cryptkeyarg, xdr_cryptkeyarg2, xdr_cryptkeyres, xdr_des_block, xdr_key_netstarg, xdr_key_netstres, xdr_keybuf and xdr_keystatus. * time/Versions (GLIBC_2.1): Move getitimer to ... * sysdeps/unix/sysv/linux/alpha/Versions (GLIBC_2.1): Here. 2000-11-09 H.J. Lu * io/Versions (GLIBC_2.1.1): Remove lockf64. 2000-11-09 H.J. Lu * Makeconfig (CPPFLAGS-.os): Add -DSHARED. (CPPFLAGS-.oS): Likewise. (pic-ccflag): Add -DSHARED -DPIC. 2000-11-07 H.J. Lu * misc/bits/symver.h.in: New. * misc/bits/symverinfo.h.in: New. * Makerules ($(common-objpfx)bits/symver.h): New target. Depend on $(common-objpfx)sysd-versions. ($(common-objpfx)bits/symverinfo.h): Likewise. ($(common-objpfx)sysd-versions): Also depend on $(..)misc/bits/symver.h.in and $(..)misc/bits/symverinfo.h.in. Handle $(build-compile-time-compatible) != yes. (common-generated): Add bits/symver.h and bits/symverinfo.h. * include/features.h: Include if _LIBC is not defined. * include/libc-symbols.h: Include for symbol_version and default_symbol_version. (_GLIBC_VERSIONED_SOURCE): Defined if SHARED is not defined. * misc/Makefile (headers): Add bits/symver.h and bits/symverinfo.h. * scripts/versions.awk: Also generate bits/symver.h and bits/symverinfo.h. Index: gnu/glibc-2.1/Makeconfig diff -u gnu/glibc-2.1/Makeconfig:1.5 gnu/glibc-2.1/Makeconfig:1.7 --- gnu/glibc-2.1/Makeconfig:1.5 Thu Nov 9 12:24:19 2000 +++ gnu/glibc-2.1/Makeconfig Mon Nov 13 16:43:50 2000 @@ -599,11 +599,11 @@ # Under --enable-shared, we will build a shared library of PIC objects. # The PIC object files are named foo.os. object-suffixes += .os -CPPFLAGS-.os = -DPIC +CPPFLAGS-.os = -DSHARED -DPIC CFLAGS-.os = $(filter %frame-pointer,$(+cflags)) $(pic-ccflag) libtype.os := lib%_pic.a # This can be changed by a sysdep makefile -pic-ccflag = -fPIC +pic-ccflag = -fPIC -DSHARED -DPIC endif ifeq (yes,$(build-profile)) # Under --enable-profile, we will build a static library of profiled objects. @@ -643,7 +643,7 @@ # shared objects. We don't want to use CFLAGS-os because users may, for # example, make that processor-specific. CFLAGS-.oS = $(CFLAGS-.o) $(pic-ccflag) -CPPFLAGS-.oS = $(CPPFLAGS-.o) -DPIC +CPPFLAGS-.oS = $(CPPFLAGS-.o) -DSHARED -DPIC libtype.oS = lib%_nonshared.a endif Index: gnu/glibc-2.1/Makerules diff -u gnu/glibc-2.1/Makerules:1.1.1.57 gnu/glibc-2.1/Makerules:1.6 --- gnu/glibc-2.1/Makerules:1.1.1.57 Sun May 7 16:34:25 2000 +++ gnu/glibc-2.1/Makerules Thu Nov 16 09:51:11 2000 @@ -268,7 +268,9 @@ ifdef sysd-dirs-done ifeq ($(versioning),yes) -include $(common-objpfx)sysd-versions -$(addprefix $(common-objpfx),$(version-maps)): $(common-objpfx)sysd-versions +$(addprefix $(common-objpfx),$(version-maps)) \ + $(common-objpfx)bits/symver.h \ + $(common-objpfx)bits/symverinfo.h: $(common-objpfx)sysd-versions common-generated += $(version-maps) postclean-generated += sysd-versions Versions.all @@ -285,15 +287,38 @@ $(..)scripts/versions.awk \ $(wildcard $(all-subdirs:%=$(..)%/Versions)) \ $(wildcard $(sysdirs:%=%/Versions)) \ + $(..)misc/bits/symver.h.in \ + $(..)misc/bits/symverinfo.h.in \ $(sysd-versions-force) { echo 'sysd-versions-subdirs = $(all-subdirs) $(config-sysdirs)' ; \ LC_ALL=C $(AWK) -v buildroot=$(common-objpfx) -v defsfile=$< \ - -v move_if_change='$(move-if-change)' \ - -f $(filter-out $< $(sysd-versions-force),$^); \ + -v srcroot=$(..) -v move_if_change='$(move-if-change)' \ + -f $(filter-out $< $(sysd-versions-force) \ + $(..)misc/bits/symver.h.in \ + $(..)misc/bits/symverinfo.h.in,$^); \ } > $@T mv -f $@T $@ +ifneq ($(build-compile-time-compatible),yes) + echo "/* This is a dummy file. */" \ + > $(common-objpfx)bits/symverinfo.h.new + cp $(..)misc/bits/symver.h.in $(common-objpfx)bits/symver.h.new + echo "#endif /* bits/symver.h */" \ + >> $(common-objpfx)bits/symver.h.new +endif + $(move-if-change) $(common-objpfx)bits/symverinfo.h.new \ + $(common-objpfx)bits/symverinfo.h + $(move-if-change) $(common-objpfx)bits/symver.h.new \ + $(common-objpfx)bits/symver.h endif # avoid-generated +else +$(common-objpfx)bits/symver.h: $(..)misc/bits/symver.h.in + $(make-target-directory) + echo "/* This is a dummy file. */" > $@ +$(common-objpfx)bits/symverinfo.h: $(..)misc/bits/symverinfo.h.in + $(make-target-directory) + echo "/* This is a dummy file. */" > $@ endif # $(versioning) = yes +common-generated += bits/symver.h bits/symverinfo.h endif # sysd-dirs-done ifndef compile-command.S Index: gnu/glibc-2.1/config.make.in diff -u gnu/glibc-2.1/config.make.in:1.3 gnu/glibc-2.1/config.make.in:1.4 --- gnu/glibc-2.1/config.make.in:1.3 Wed Feb 16 16:23:55 2000 +++ gnu/glibc-2.1/config.make.in Mon Nov 13 16:43:51 2000 @@ -58,6 +58,7 @@ build-omitfp = @omitfp@ build-bounded = @bounded@ build-static-nss = @static_nss@ +build-compile-time-compatible = @build_compile_time_compatible@ stdio = @stdio@ add-ons = @subdirs@ cross-compiling = @cross_compiling@ Index: gnu/glibc-2.1/configure.in diff -u gnu/glibc-2.1/configure.in:1.3 gnu/glibc-2.1/configure.in:1.4 --- gnu/glibc-2.1/configure.in:1.3 Wed Jan 12 08:53:24 2000 +++ gnu/glibc-2.1/configure.in Mon Nov 13 16:43:51 2000 @@ -137,6 +137,14 @@ AC_DEFINE(DO_STATIC_NSS) fi +dnl Do we want to provide the compile-time compatibility? +AC_ARG_ENABLE(build-compile-time-compatible, dnl +[ --enable-build-compile-time-compatible + provide compile-time compatibility [default=no]], + build_compile_time_compatible=$enableval, + build_compile_time_compatible=no) +AC_SUBST(build_compile_time_compatible) + AC_ARG_ENABLE(force-install, [ --disable-force-install don't force installation of files from this package, even if they are older than the installed files], @@ -717,6 +725,29 @@ libc_cv_asm_symver_directive=no fi rm -f conftest*]) + +if test $build_compile_time_compatible = yes; then + AC_CACHE_CHECK(for .symver assembler directive with @@@, libc_cv_asm_fullsymver_directive, + [cat > conftest.s <&AC_FD_CC 2>&AC_FD_CC; then + libc_cv_asm_fullsymver_directive=yes + else + libc_cv_asm_fullsymver_directive=no + fi + rm -f conftest*]) + if test $libc_cv_asm_fullsymver_directive = no; then + echo "\ +*** ERROR: The compile-time compatiblility needs the full symbol +*** versioning support in assembler. You need recent binutils +*** (binutils 2.10.0.36 or newer)." + exit 1 + fi +fi + AC_CACHE_CHECK(for ld --version-script, libc_cv_ld_version_script_option, [dnl if test $libc_cv_asm_symver_directive = yes; then cat > conftest.s < + +/* Get the symbol versioning infomation. */ +# include #endif #endif /* features.h */ Index: gnu/glibc-2.1/include/libc-symbols.h diff -u gnu/glibc-2.1/include/libc-symbols.h:1.6 gnu/glibc-2.1/include/libc-symbols.h:1.11 --- gnu/glibc-2.1/include/libc-symbols.h:1.6 Sun Aug 8 10:03:32 1999 +++ gnu/glibc-2.1/include/libc-symbols.h Sat Nov 18 14:15:15 2000 @@ -331,17 +331,14 @@ #endif /* Have GNU ld. */ #if DO_VERSIONING -# ifdef __ASSEMBLER__ -# define symbol_version(real, name, version) \ - .symver real, name##@##version -# define default_symbol_version(real, name, version) \ - .symver real, name##@##@##version -# else -# define symbol_version(real, name, version) \ - __asm__ (".symver " #real "," #name "@" #version) -# define default_symbol_version(real, name, version) \ - __asm__ (".symver " #real "," #name "@@" #version) +# define symbol_version(real, name, version) \ + _symbol_version(real, name, version) +# define default_symbol_version(real, name, version) \ + _default_symbol_version(real, name, version) +# ifndef SHARED +# define _GLIBC_VERSIONED_SOURCE # endif +# include #else # define symbol_version(real, name, version) # define default_symbol_version(real, name, version) \ Index: gnu/glibc-2.1/io/Versions diff -u gnu/glibc-2.1/io/Versions:1.1.1.4 gnu/glibc-2.1/io/Versions:1.2 --- gnu/glibc-2.1/io/Versions:1.1.1.4 Wed Jan 12 08:46:05 2000 +++ gnu/glibc-2.1/io/Versions Fri Nov 10 11:56:19 2000 @@ -83,10 +83,6 @@ # s* statfs64; statvfs; statvfs64; } - GLIBC_2.1.1 { - # l* - lockf64; - } GLIBC_2.1.3 { # For the cancelation wrappers. __libc_open64; __libc_lseek64; Index: gnu/glibc-2.1/misc/Makefile diff -u gnu/glibc-2.1/misc/Makefile:1.1.1.12 gnu/glibc-2.1/misc/Makefile:1.2 --- gnu/glibc-2.1/misc/Makefile:1.1.1.12 Thu Oct 8 08:10:58 1998 +++ gnu/glibc-2.1/misc/Makefile Fri Nov 10 11:56:20 2000 @@ -29,7 +29,8 @@ sys/mman.h sys/param.h fstab.h mntent.h search.h err.h error.h \ sys/queue.h sysexits.h syscall.h sys/syscall.h sys/swap.h \ sys/select.h ustat.h sys/ustat.h bits/ustat.h sys/sysinfo.h \ - regexp.h bits/select.h bits/mman.h + regexp.h bits/select.h bits/mman.h \ + bits/symver.h bits/symverinfo.h routines := brk sbrk sstk ioctl \ readv writev \ Index: gnu/glibc-2.1/misc/bits/symver.h.in diff -u /dev/null gnu/glibc-2.1/misc/bits/symver.h.in:1.1 --- /dev/null Sat Nov 18 14:20:21 2000 +++ gnu/glibc-2.1/misc/bits/symver.h.in Fri Nov 10 11:56:20 2000 @@ -0,0 +1,39 @@ +/* Copyright (C) 2000 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#ifndef _BITS_SYMVER_H +#define _BITS_SYMVER_H 1 + +#ifdef __ASSEMBLER__ +# define _symbol_version(real, name, version) \ + .symver real, name##@##version +# define _default_symbol_version(real, name, version) \ + .symver real, name##@##@##version +# define _full_symbol_version(real, name, version) \ + .symver real, name##@##@##@##version +#else +# define _symbol_version(real, name, version) \ + __asm__ (".symver " #real "," #name "@" #version) +# define _default_symbol_version(real, name, version) \ + __asm__ (".symver " #real "," #name "@@" #version) +# define _full_symbol_version(real, name, version) \ + __asm__ (".symver " #real "," #name "@@@" #version) +#endif + +#include + Index: gnu/glibc-2.1/misc/bits/symverinfo.h.in diff -u /dev/null gnu/glibc-2.1/misc/bits/symverinfo.h.in:1.3 --- /dev/null Sat Nov 18 14:20:21 2000 +++ gnu/glibc-2.1/misc/bits/symverinfo.h.in Sat Nov 18 14:17:20 2000 @@ -0,0 +1,76 @@ +/* Copyright (C) 2000 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#ifndef _BITS_SYMVERINFO_H +#define _BITS_SYMVERINFO_H 1 + +/* These are defined by the user (or the compiler) to specify which + version of glibc the source will be compiled against: + + _GLIBC_2_0_SOURCE glibc 2.0 + _GLIBC_2_1_SOURCE glibc 2.1 + _GLIBC_2_1_1_SOURCE glibc 2.1.1 + _GLIBC_2_1_2_SOURCE glibc 2.1.2 + + _GLIBC_VERSIONED_SOURCE glibc with versioned interface + + These are defined by this file and are used by the + header files to decide what to declare or define: + + __USE_GLIBC_2_0 Define glibc 2.0 things. + __USE_GLIBC_2_1 Define glibc 2.1 things. + __USE_GLIBC_2_1_1 Define glibc 2.1.1 things. + __USE_GLIBC_2_1_2 Define glibc 2.1.2 things. + + __USE_VERSIONED_INTERFACE Define versioned interface. + + */ + +#undef __USE_GLIBC_2_0 +#undef __USE_GLIBC_2_1 +#undef __USE_GLIBC_2_1_1 +#undef __USE_GLIBC_2_1_2 + +#ifdef _GLIBC_2_0_SOURCE +# define __USE_GLIBC_2_0 +#elif defined _GLIBC_2_1_SOURCE +# define __USE_GLIBC_2_1 +#elif defined _GLIBC_2_1_1_SOURCE +# define __USE_GLIBC_2_1_1 +#elif defined _GLIBC_2_1_2_SOURCE +# define __USE_GLIBC_2_1_2 +#endif + +#undef __USE_VERSIONED_INTERFACE + +#ifdef _GLIBC_VERSIONED_SOURCE +# define __USE_VERSIONED_INTERFACE +#endif + +#ifndef __USE_VERSIONED_INTERFACE +# if defined __USE_GLIBC_2_0 || defined __USE_GLIBC_2_1 \ + || defined __USE_GLIBC_2_1_1 || defined __USE_GLIBC_2_1_2 +# define __USE_VERSIONED_INTERFACE +# endif +#endif + +#ifdef __USE_GLIBC_2_0 +# ifndef _IO_USE_OLD_IO_FILE +# define _IO_USE_OLD_IO_FILE +# endif +#endif Index: gnu/glibc-2.1/pwd/Versions diff -u gnu/glibc-2.1/pwd/Versions:1.1.1.2 gnu/glibc-2.1/pwd/Versions:1.2 --- gnu/glibc-2.1/pwd/Versions:1.1.1.2 Sun Jul 11 12:25:25 1999 +++ gnu/glibc-2.1/pwd/Versions Thu Nov 9 10:25:01 2000 @@ -14,6 +14,6 @@ } GLIBC_2.1.2 { # g* - getpwent_r; getpwuid_r; + getpwent_r; getpwuid_r; getpwnam_r; } } Index: gnu/glibc-2.1/scripts/versions.awk diff -u gnu/glibc-2.1/scripts/versions.awk:1.1.1.4 gnu/glibc-2.1/scripts/versions.awk:1.6 --- gnu/glibc-2.1/scripts/versions.awk:1.1.1.4 Sun Feb 14 09:07:34 1999 +++ gnu/glibc-2.1/scripts/versions.awk Sat Nov 18 14:15:18 2000 @@ -1,10 +1,11 @@ # Combine version map fragments into version files for the generated # shared object. -# (C) Copyright 1998, 1999 Free Software Foundation, Inc. +# (C) Copyright 1998, 1999, 2000 Free Software Foundation, Inc. # Written by Ulrich Drepper , 1998. # This script expects the following variables to be defined: # defsfile name of Versions.def file +# srcroot name of source root directory with trailing slash # buildroot name of build directory with trailing slash # move_if_change move-if-change command @@ -80,6 +81,19 @@ # Now print the accumulated information. END { + system("mkdir -p " buildroot "bits"); + real_symver = buildroot "bits/symver.h.new" + symver = real_symver "T" + system("cp " srcroot "misc/bits/symver.h.in " symver); + real_symverinfo = buildroot "bits/symverinfo.h.new" + symverinfo = real_symverinfo "T" + system("cp " srcroot "misc/bits/symverinfo.h.in " symverinfo); + # We exclude some functions like system call wrappers in libpthread. + excludes="accept; close; connect; fcntl; fsync; lseek; msync; \ + nanosleep; open; pause; read; recv; recvfrom; recvmsg; \ + send; sendmsg; sendto; system; tcdrain; wait; waitpid; \ + write;" + split(excludes, excluded); close(sort); oldlib = ""; oldver = ""; @@ -107,11 +121,122 @@ printf(" ") > outfile; for (n = 3; n <= NF; ++n) { printf(" %s", $n) > outfile; + if ($n ~ /^_/ && $n !~ /^_sys_errlist/ && $n !~ /^_sys_siglist/ && $n !~ /^_sys_nerr/) + continue; + # No pthread functions. + if ($n ~ /^pthread_/ && $n !~ /^pthread_attr_init/) + continue; + if ($n ~ /[*\.\[\]\?]/) + continue; + skip=0; + for (i in excluded) { + if ($n ~ "^" excluded[i]) { + skip=1; + break; + } + } + if (skip == 1) + continue; + if ($1 == "libc") { + symbol=$n; + sub (/;/, "", symbol); + symbols[$2, symbol] = symbol; + nsymbols[symbol]++; + } } printf("\n") > outfile; } + close(tmpfile) printf("\n"); closeversion(oldver); close_and_move(outfile, real_outfile); + printf("#ifdef __USE_VERSIONED_INTERFACE\n\n") >> symver; + for (v in versions) { + printf ("%s\n", v) | sort; + } + close(sort); + totalversion=0; + while(getline < tmpfile) { + totalversion++; + sortedversions[totalversion]=$1; + } + close(tmpfile) + for (s in nsymbols) { + printf ("%s\n", s) | sort; + nsymbols[s]=0; + for (v in versions) { + if (symbols[v, s]) { + nsymbols[s]++; + } + } + } + close(sort); + while(getline < tmpfile) { + s=$1; + if (nsymbols[s] > 1) { + nversions=0; + for (v in versions) { + if (symbols[v, s]) { + nversions++; + } + } + for (j = 0; j < totalversion; j++) { + if (symbols[sortedversions[j], s]) { + n=j; + for (i = n + 1; i < totalversion; i++) { + if (symbols[sortedversions[i], s]) { + n=i; + break; + } + } + m="__USE_" sortedversions[j] "_" s; + gsub (/\./, "_", m); + for (i = j; i < n; i++) { + glibcver="__USE_" sortedversions[i]; + gsub (/\./, "_", glibcver); + printf("#ifdef %s\n", glibcver) >> symverinfo + printf("#define %s\n", m) >> symverinfo + printf("#endif\n") >> symverinfo + } + } + } + i=0; + for (j = 0; j < totalversion; j++) { + v=sortedversions[j]; + if (symbols[v, s]) { + i++; + m="__USE_" v "_" s; + gsub (/\./, "_", m); + if (i == 1) { + printf("#ifdef %s\n", m) >> symver; + printf("_symbol_version (%s, %s, %s);\n", s, s, v) >> symver; + } + else if (i != nversions) { + printf("#elif defined %s\n", m) >> symver; + printf("_symbol_version (%s, %s, %s);\n", s, s, v) >> symver; + } + else { + printf("#else\n") >> symver; + printf("_symbol_version (%s, %s, %s);\n", s, s, v) >> symver; + printf("#endif\n") >> symver; + } + } + } + } + else { + for (v in versions) { + if (symbols[v, s]) { + printf("_full_symbol_version (%s, %s, %s);\n", s, s, v) >> symver; + break; + } + } + } + } + close(tmpfile) + printf("\n#endif /* !__USE_VERSIONED_INTERFACE */\n") >> symver; + printf("\n#endif /* bits/symver.h */\n") >> symver; + close_and_move(symver, real_symver); + printf("\n#endif /* bits/symverinfo.h */\n") >> symverinfo; + close_and_move(symverinfo, real_symverinfo); system("rm -f " tmpfile); } Index: gnu/glibc-2.1/sunrpc/Versions diff -u gnu/glibc-2.1/sunrpc/Versions:1.1.1.6 gnu/glibc-2.1/sunrpc/Versions:1.2 --- gnu/glibc-2.1/sunrpc/Versions:1.1.1.6 Thu Apr 8 12:21:14 1999 +++ gnu/glibc-2.1/sunrpc/Versions Fri Nov 10 11:56:20 2000 @@ -98,9 +98,8 @@ # x* xdecrypt; xdr_authdes_cred; xdr_authdes_verf; - xdr_cryptkeyarg; xdr_cryptkeyarg2; xdr_cryptkeyres; xdr_des_block; - xdr_getcredres; xdr_int16_t; xdr_int32_t; xdr_int8_t; xdr_key_netstarg; - xdr_key_netstres; xdr_keybuf; xdr_keystatus; xdr_netnamestr; xdr_sizeof; + xdr_getcredres; xdr_int16_t; xdr_int32_t; xdr_int8_t; + xdr_netnamestr; xdr_sizeof; xdr_uint16_t; xdr_uint32_t; xdr_uint8_t; xdr_unixcred; } GLIBC_2.1.1 { Index: gnu/glibc-2.1/sysdeps/unix/sysv/linux/alpha/Versions diff -u gnu/glibc-2.1/sysdeps/unix/sysv/linux/alpha/Versions:1.1.1.1 gnu/glibc-2.1/sysdeps/unix/sysv/linux/alpha/Versions:1.2 --- gnu/glibc-2.1/sysdeps/unix/sysv/linux/alpha/Versions:1.1.1.1 Tue Jul 14 17:23:42 1998 +++ gnu/glibc-2.1/sysdeps/unix/sysv/linux/alpha/Versions Fri Nov 10 11:56:20 2000 @@ -32,7 +32,7 @@ getrusage; # time type change - gettimeofday; + gettimeofday; getitimer; # i* ieee_get_fp_control; ieee_set_fp_control; Index: gnu/glibc-2.1/time/Versions diff -u gnu/glibc-2.1/time/Versions:1.1.1.2 gnu/glibc-2.1/time/Versions:1.2 --- gnu/glibc-2.1/time/Versions:1.1.1.2 Fri Jan 29 16:03:09 1999 +++ gnu/glibc-2.1/time/Versions Fri Nov 10 11:56:21 2000 @@ -44,6 +44,6 @@ getdate_err; # g* - getdate; getdate_r; getitimer; + getdate; getdate_r; } } .