Mon Sep 23 15:31:04 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* hurd/Makefile ($(includedir)/rpc/netdb.h): There is no make
variable `top_srcdir' in libc; use $(..) instead.
* sysdeps/mach/hurd/Makefile (rtld-installed-name): Delete special
definition. It was a *Mistake*. (With a capital M.)
* sysdeps/mach/getsysstats.c (__get_nprocs): Renamed from
__get_nproc.
(__get_nprocs_conf): Renamed from __get_nproc_conf.
Sat Sep 21 23:42:39 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* sysdeps/mach/getsysstats.c: Include <sys/sysinfo.h>.
(__get_nproc_conf): New function.
Sat Sep 21 14:59:22 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* sysdeps/mach/getsysstats.c: New file.
* shlib-versions (*-*-gnu*): Increment libc to 0.2 for upcoming
binary distribution.
* sysdeps/mach/hurd/Makefile (rtld-installed-name): Provide
definition to override dangerous one in Makeconfig.
* hurd/Makefile (install-headers-nosubdir): Install <rpc/netdb.h>.
($(includedir)/rpc/netdb.h): New rule.
[ This is XXX until sunrpc can be built; <rpc/netdb.h> is
essential. ]
Fri Sep 20 16:06:06 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* sysdeps/mach/hurd/i386/init-first.c (_dl_start): Add definition,
to guarantee link errors if this is included in ld.so.
Thu Sep 19 23:36:19 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* hurd/hurdinit.c (__libc_argv): Provide common decl.
(_hurd_setproc): Don't declare __libc_argv here.
Tue Sep 17 10:51:58 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* malloc/memalign.c (memalign): Only acquire __libc_malloc_lock
for actual modifications to global state.
Fri Sep 13 01:21:36 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* sysdeps/mach/Makefile (includes): Add -I$(common-objpfx)mach/.
* sysdeps/mach/hurd/Makefile (includes): Add
-I$(common-objpfx)hurd/. Reported by Marcus Daniels.
* sysdeps/generic/schedbits.h (struct sched_param): Renamed from
struct sched_params.
* sysdeps/stub/sched_setp.c (__sched_setparam): struct
sched_params -> struct sched_param.
* sysdeps/stub/sched_getp.c (__sched_getparam): Likewise.
* sysdeps/stub/sched_sets.c (__sched_setscheduler): Likewise.
Thu Sep 12 23:58:25 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* sysdeps/mach/libc-lock.h (__libc_cleanup_region_start): Fix
syntax error.
* stdio-common/Makefile: Put lockfile in routines
unconditionally.
* stdio-common/vfprintf.c (__flockfile, __funlockfile): Declare
this always, not just if _LIBC_REENTRANT.
(__funlockfile): Don't use weak_extern for this one;
__libc_cleanup_region_end might be defined and the use of
__funlockfile can't be protected the way the use of __flockfile
can be.
Sat Sep 21 14:59:22 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* shlib-versions (*-*-gnu*): Increment libc to 0.2 for upcoming
binary distribution.
* sysdeps/mach/hurd/Makefile (rtld-installed-name): Provide
definition to override dangerous one in Makeconfig.
* hurd/Makefile (install-headers-nosubdir): Install <rpc/netdb.h>.
($(includedir)/rpc/netdb.h): New rule.
[ This is XXX until sunrpc can be built; <rpc/netdb.h> is
essential. ]
Fri Sep 20 16:06:06 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* sysdeps/mach/hurd/i386/init-first.c (_dl_start): Add definition,
to guarantee link errors if this is included in ld.so.
(vfprintf): Only call __libc_cleanup_region_end if USE_IN_LIBIO,
thus matching the sense of the tests around
__libc_cleanup_region_start at the front of the function.
* stdio-common/vfscanf.c: Include <libc-lock.h>.
(UNLOCK_STREAM) [! USE_IN_LIBIO]: Call
__libc_cleanup_region_end, not __libc_cleanup_region_start.
Thu Sep 12 03:35:27 1996 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/i386/Dist: Remove init-first.h.
* sysdeps/unix/sysv/linux/m68k/Dist: Likewise.
* sysdeps/unix/sysv/linux/Dist: Add init-first.h.
1996-09-11 Paul Eggert <eggert@twinsun.com>
* strftime.c (strftime):
Handle E and O modifiers, required for POSIX.2 and XPG4.
Don't use sprintf to format numbers; this way, we can handle time_t
correctly regardless of whether it's signed.
Don't dump core if format ends in %.
In default %c format, use %e instead of %d, for POSIX.2 compatibility.
For %z:
Use tm_gmtoff if available.
Output nothing if tm_isdst is negative.
Output correct value even if arg is 1969-12-31 23:59:59 UTC.
Don't assume that UTC offset is less than 24 hours;
Posix requires support for 24 hours, and there's no point
limiting it at all.
(HAVE_TM_GMTOFF, TYPE_SIGNED, INT_STRLEN_BOUND): New macros.
(CHAR_BIT): Define if <limits.h> doesn't.
(tm_diff): New function.
(fmt, <stdio.h>): Remove; no longer used.
Thu Sep 12 02:21:44 1996 Ulrich Drepper <drepper@cygnus.com>
* db/Makefile: Add extra-libs-others variable so that shared
library is built in `others' pass.
* elf/Makefile: Likewise.
* math/Makefile: Likewise.
* resolv/Makefile: Likewise.
* Makefile (generated): Add version.info.h.
* time/checktab.awk: New file. From ADO 96k.
* time/iso3166.tab: Likewise.
* time/tzselect.ksh: Likewise.
* time/zone.tab: Likewise.
* stdio-common/vfprintf.c: Correct cleanup registration. We
cannot use a macro
1996-09-11 Paul Eggert <eggert@twinsun.com>
* time/time.h (tm_gmtoff, tm_zone): Prefix with `__' unless
__USE_BSD; this is required for ANSI C compatibility.
* manual/time.texi: Replace GMT by UTC, daylight savings by
daylight saving, timezone by time zone.
Rewrite description of %V to match ISO 8601.
Fix TZ Posix string example for US Eastern time.
Explain tzname[1] when DST isn't used.
Explain tzname when multiple abbreviations used (e.g. EST/EWT/EDT).
Explain that timezone's sign is opposite from tm_gmtoff, and that
timezone lacks DST adjustment whereas tm_gmtoff has it.
Deprecate tzname and timezone.
Tue Sep 10 14:46:16 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
Implement Roland McGrath's idea of how to put an .interp into
shared libraries.
* interp.c: New file.
* Makerules (interp-obj): New object, linked into every shared
library.
(common-generated): Add interp.so.
(CFLAGS-interp.c): Pass name of interpreter.
Tue Sep 10 21:09:35 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* db/Makefile: Fix typo.
Tue Sep 10 19:29:53 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* nss/db-Makefile ($(VAR_DB)/passwd.db): Look for multiple
occurences of the same uid, and only generate a mapping for the
first one.
Tue Sep 10 03:14:59 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/system.c: New file, to override
sysdeps/unix/system.c.
Tue Sep 10 15:05:40 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile (before-compile): Add version-info.h, needed to build
version.d.
Tue Sep 10 14:14:33 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/m68k/sysdep.S: Remove check for
EWOULDBLOCK, never true on Linux.
(__errno_location): New function.
[_LIBC_REENTRANT]: Set errno using __errno_location function.
* sysdeps/unix/sysv/linux/m68k/sysdep.h [PIC]: Add second
syscall_error handler for reentrant libc.
Tue Sep 10 13:27:49 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/Makefile (extra-objs): Add eval.so to get dependencies.
Wed Sep 11 04:40:57 1996 Ulrich Drepper <drepper@cygnus.com>
* time/tzset.c (__tzname_cur_max): Use type `size_t' to avoid
warning.
* time/tzfile.c (compute_tzname_max): Likewise.
Thu Sep 5 03:20:42 1996 Ulrich Drepper <drepper@cygnus.com>
Change configuration and Makefiles to allow add-ons to have a
sysdeps/ directory hierachy.
* configure.in: Test for sysdeps/ directory in add-ons. Before
all test and searches in these hierachies, too.
* Makeconfig (full-config-subdirs): Define based on $(config-sysdirs).
Extend with $(..) if not absolute path.
Use $(full-config-subdirs) where $(config-sysdirs) was used.
* Makefile ($(objpfx)sysd-dirs): Use config-sysdirs.
* MakeTAGS: Use $(full-config-subdirs).
* Makerules: Change comment to libc.so link script.
(sysdirs): Define based on $(full-config-subdirs).
(sysd-Makefile): Define using config-sysdirs.
(sysd-rules): Likewise.
* sysdeps/unix/Makefile (sysd-syscalls): Define based on +sysdep-dirs.
* sysdeps/unix/make-syscalls.sh: Remove basedir argument.
Wed Sep 4 01:32:21 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/k_cos.c: Rewritten for better accuracy.
* sysdeps/m68k/fpu/k_sin.c: Likewise.
* sysdeps/m68k/fpu/k_tan.c: Likewise.
Thu Sep 5 01:06:09 1996 Richard Henderson <rth@tamu.edu>
* malloc/free.c (free): Protect by using __libc_malloc_lock.
* malloc/malloc-find.c (malloc_find_object_address): Likewise.
* malloc/malloc-size.c (malloc_usable_size): Likewise.
* malloc/malloc-walk.c (malloc_walk): Likewise.
* malloc/memalign.c (memalign): Likewise.
* malloc/realloc.c (realloc): Likewise.
* malloc/malloc.c: Define __libc_malloc_lock.
(_malloc_internal): Don't use `malloc'. Instead look for
`__malloc_hook' or call `_malloc_internal'.
(malloc): Protect by using `__libc_malloc_lock'.
* malloc/malloc.h: Declare `__libc_malloc_lock'.
Mon Sep 2 22:42:59 1996 Richard Henderson <rth@tamu.edu>
* sysdeps/alpha/elf/start.S: Use weak_alias for __start
instead of the hard definition.
* sysdeps/alpha/dl-machine.h (RTLD_START): Add type info for
_start and _dl_start_user.
* sysdeps/unix/sysv/linux/alpha/init-first.h (SYSDEP_CALL_INIT):
Make _dl_starting_up weak. Add type info for NAME.
Mon Sep 2 22:15:14 1996 Richard Henderson <rth@tamu.edu>
* Makefile (all): Add extra_solibs pass.
(+subdir_targets): Same.
* Rules (extra_solibs): New phony empty target for subdirs without
extra libs.
* extra-lib.mk: Build lib*.so* in extra_solibs not lib-noranlib.
* manual/Makefile: Add dummy extra_solibs target.
Sun Sep 1 15:41:22 1996 Richard Henderson <rth@tamu.edu>
* Makeconfig (+link): Add $(link-extra-libs).
(link-extra-libs): New variable which expands to the full paths of
the other libraries needed by a program, as controled by LDLIBS-$(@F).
* db/Makefile: Use LDLIBS-makedb to link libdb not a dependency, as
the later attempts to install the library before linking it.
* sysdeps/unix/alpha/sysdep.S: Align errno.
* sysdeps/unix/sysv/linux/alpha/ioperm.c (struct platform): Add
hae_shift entry.
(io): Move bus_memory_base and sparse_bus_memory_base into struct.
(_hae_shift): New function.
* sysdeps/unix/sysv/linux/alpha/sys/io.h: New file. Prototypes
for the bus query functions.
Sat Aug 31 18:14:54 1996 Richard Henderson <rth@tamu.edu>
* elf/dl-close.c (_dl_close): In static executables, map->l_prev
can be NULL when unloading a library.
* elf/dl-open.c (_dl_open): Pass __environ instead of __libc_envp
to the library .init function.
* sysdeps/alpha/dl-machine.h (elf_machine_rela): Since we omitted
part of the COPY reloc processing earlier, omit the rest now --
we'll get into less trouble later when some fool does use a COPY.
* sysdeps/unix/sysv/linux/init-first.c (init): Accept argc et al as
parameters. Move all argc and __libc_multiple_libcs calculation out
to init-first.h. Use __environ not __libc_envp.
* sysdeps/unix/sysv/linux/alpha/init-first.h: Rewrite.
* sysdeps/unix/sysv/linux/i386/init-first.h: Rewrite.
Thu Aug 29 20:26:40 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/posix/profil.c (profil): Don't clobber saved timer and
signal settings when profiling was already turned on.
* csu/gmon-start.c (__gmon_start__) [HAVE_INITFINI]: Protect from
being called twice.
Wed Sep 4 01:31:50 1996 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/i386/mmap.S: Test for
0 < return value < -4096 and not < 0 to decide about failure.
Reported by Andreas Jaeger.
Tue Sep 3 19:04:05 1996 Ulrich Drepper <drepper@cygnus.com>
* stdio-common/vfscanf.c (__vfscanf): Don't count EOF char
in %c format.
Sat Aug 31 18:10:51 1996 Ulrich Drepper <drepper@cygnus.com>
* wcsmbs/wchar.h: Define prototypes for wcstoq and wcstouq only
#ifdef __USE_GNU.
Sat Aug 31 12:34:29 1996 Ulrich Drepper <drepper@cygnus.com>
* version.c: Add missing newline character in banner.
* sysdeps/unix/sysv/linux/alpha/Dist: Correct typo.
* sysdeps/unix/sysv/linux/i386/Dist: Likewise.
Sat Aug 31 03:07:39 1996 Ulrich Drepper <drepper@cygnus.com>
* intl/l10nflist.c (_nl_normalize_codeset): We convert to lower
case, so don't prepend uppercase `ISO' for only numeric arg.
Fri Aug 30 13:39:21 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* Makerules (BUILD_CFLAGS): Use @(common-objpfx) for config.h, not
$(..). Some rules (like sysdeps/posix/Makefile for mk-stdiolim)
do `cd' commands.
(sed-remove-objpfx): Don't substitute for $(objpfx) anymore;
$(common-objpfx) is good enough.
* Rules (common-generated): Provide default (empty) value.
(dummy.o, dummy.c, empty.o, empty.c): Put these in
$(common-generated), not $(generated), and without $(..).
(subdir_echo-distinfo): Treat $(common-generated) just like
$(generated).
(generated): Depend on the (suitably mutated) $(common-generated)
files too.
* Makerules (common-clean): Remove common-generated files too.
* sysdeps/mach/hurd/Makefile (generated): Don't put errnos.d and
stamp-errnos here.
(common-generated): Do put errnos.d and stamp-errnos here.
(rpath-link): Don't use +=; $(rpath-link) is a colon separated list.
* sysdeps/mach/hurd/Makefile (before-compile): Add auth; also add
auth to following rule to get it built.
$(common-objpfx). All uses in dependency lists changed.
Fri Aug 30 01:26:44 1996 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/i386/Dist: Add close.S.
* sysdeps/unix/sysv/linux/m68k/Dist: Likewise.
* sysdeps/unix/sysv/linux/alpha/Dist: Likewise.
* version.c: Add comment about where to report bugs to.
* catgets/gencat.c (usage): Likewise.
* db/makedb.c (usage): Likewise.
* locale/programs/locale.c (usage): Likewise.
* locale/programs/localedef.c (usage): Likewise.
* manual/socket.texi: A little bit better wording.
Thu Aug 29 18:03:06 1996 Ulrich Drepper <drepper@cygnus.com>
* Makerules: Make sure directory exists before generating stamp file.
(BUILD_CFLAGS): Always refer to using $(..).
* manual/Makefile: Make sure directory exists before generating
stamp file.
(make-target-directory): Add macro definition.
* sysdeps/generic/Makefile: Make sure directory exists before
generating stamp file.
* Makefile (distribute): Add autolock.sh. Reported by Fila Kolodny.
Tue Aug 27 10:06:22 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
When compiling in separate directory put objects into
subdirectories matching the source layout.
* Makeconfig (objpfx) [ifdef objdir]: Append $(subdir).
When looking for configparms try in $(common-objpfx).
Use $(common-objpfx)SUBDIR to find objects from other subdirectory
builds.
* Makerules: Add $(objpfx) to vpath list.
(make-dummy-dep): Use $(common-objpfx) to avoid creating dummy.d
more than once. All uses in dependency lists changed.
(+make-deps): Make target directory.
(sed-remove-objpfx): Substitute $(common-objpfx).
(do-ar, build-extra-lib, $(common-objpfx)stub-$(subdir)): Use
$(objpfx) instead of $(objdir) for cd command.
(O%-lib): Always find libc relative to $(..).
(subdir-stamps): Collect stamp files from subdirs.
(common-mostlyclean): Remove stub file in $(common-objpfx).
* MakeTAGS ($P/siglist.pot): Find siglist.c in stdio-common.
* Rules (dep-dummy-lib): Use $(common-objpfx) to avoid creating to
more than once.
($(objpfx)dummy.c, $(objpfx)empty.c): Change target name to use
$(common-objfpx). All uses in dependency lists changed.
(generated): Prepend $(..) to names.
* bare/Makefile ($(objpfx)lib$(config-vendor).a): Remove $(objpfx)
from $@.
* nss/Makefile ($(objpfx)libnss_dns.so, $(objpfx)libnss_db.so):
Use $(common-objpfx) instead of $(..) in dependencies.
* sysdeps/mach/Makefile (mach-objpfx): Unconditionally use
$(common-objpfx) instead of $(..) and (objpfx).
* sysdeps/mach/hurd/Makefile (hurd-objpfx): Likewise.
(rpath-link): Likewise.
(rpcuserlibs): Likewise.
* sysdeps/unix/Makefile [$(subdir) = stdio-common]: Check for
errlist.c in $(objpfx), not $(common-objpfx).
($(common-objpfx)s-proto.d): Special rule not covered by pattern
rule.
* sysdeps/unix/make-syscalls.sh: Make syscall rules depending on
s-proto.d in $(common-objpfx), not $(objpfx).
Thu Aug 29 17:45:49 1996 Ulrich Drepper <drepper@cygnus.com>
* nss/nsswitch.c (nss_dlerror_run): Free returned error
string.
Thu Aug 29 15:53:33 1996 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/libm-ieee754/e_acoshl.c: New file. `long double'
implementation.
* sysdeps/libm-ieee754/e_atanhl.c: Likewise.
* sysdeps/libm-ieee754/e_remainderl.c: Likewise.
* sysdeps/libm-ieee754/e_scalbl.c: Likewise.
* sysdeps/libm-ieee754/s_asinhl.c: Likewise.
* sysdeps/libm-ieee754/s_cosl.c: Likewise.
* sysdeps/libm-ieee754/s_sinl.c: Likewise.
* sysdeps/libm-ieee754/s_tanhl.c: Likewise.
* sysdeps/libm-ieee754/s_tanl.c: Likewise.
* stdio-common/printf_fp.c (__printf_fp): Use default value '.' if
Tue Aug 27 17:45:21 1996 Ulrich Drepper <drepper@cygnus.com>
* Makerules: Add some test for correct version of GNU Make.
* io/fcntl.h: Undo change from Mon Aug 26 22:22:17 1996.
* sysdeps/unix/sysv/linux/fcntlbits.h: Place macros here instead.
* sysdeps/generic/dl-sysdep.c: Initialize break address to
avoid overwriting last page (OK, Roland).
Tue Aug 27 16:20:37 1996 Ulrich Drepper <drepper@cygnus.com>
* resolv/resolv.h: Update from BIND-4.9.5-T3A.
* resolv/arpa/nameser.h: Likewise.
* resolv/res_init.c: Likewise.
* resolv/res_debug.c: Likewise.
* resolv/res_mkquery.c: Likewise.
Tue Aug 27 15:47:04 1996 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-error.c (catch): Define errstring element not as const.
(_dl_catch_error): ERRSTRING argument is not const pointer.
Initialize *ERRSTRING and *OBJNAME separately.
* elf/link.h: Change prototype for `_dl_catch_error'.
* elf/dl-load.c (_dl_map_object): Use separate variable for
copied NAME to avoid `const' warning.
* elf/dlerror.c: Make `last_errstring' variable not const pointer.
* elf/rtld.c: Implement reading of /etc/ld.so.preload. This
provides preloading even for SUID binaries.
Add some more casts to avoid signed<->unsigned warnings.
Tue Aug 27 15:40:28 1996 NIIBE Yutaka <gniibe@mri.co.jp>
* posix/sys/types.h: Define loff_t.
* sysdeps/unix/sysv/linux/gnu/types.h: Define __loff_t.
Mon Aug 26 16:31:33 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* sysdeps/mach/hurd/setitimer.c (setitimer_locked): Tolerate NEW
being null; in that case don't touch the timer at all (but do
return something in OLD if necessary).
Mon Aug 26 13:35:16 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* sysdeps/mach/hurd/i386/init-first.c (__libc_multiple_libcs): New
variable.
* sysdeps/i386/init-first.c: Likewise.
* sysdeps/stub/init-first.c: Likewise.
Thu Aug 8 01:41:43 1996 Ulrich Drepper <drepper@cygnus.com>
* elf/Makefile: Undo change of Tue Aug 6 14:27:11 1996.
* elf/dl-support: Add definition of `_dl_sysdep_read_whole_file'.
Thu Aug 8 01:15:59 1996 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/i386/fpu_control.h (_FPU_DEFAULT, _FPU_IEEE): Set
to 0x137f to allow long double operations.
Sun Aug 4 13:12:05 1996 Richard Henderson <rth@tamu.edu>
Bug Fixes:
* nss/nsswitch.c (_res): Remove redundant variable definition.
The real one is in resolve/res_init.c, and having both prevents
using -fno-common when building the shared library.
* sunrpc/rpc_prot.c (_null_auth): Same. Original is in rpc_common.c.
* sysdeps/unix/sysv/linux/alpha/brk.S: When PIC, define __curbrk as
a .bss object not a COMMON symbol.
* sysdeps/alpha/bsd-_setjmp.S, sysdeps/alpha/bsd-setjmp.S: Must load
$gp before referencing __sigsetjmp symbol. Retain LITUSE for same.
Optimizations:
* sysdeps/alpha/strlen.S: Rearrange first-word setup and thense the
main loop for better dual-issue on EV5. Rearrange binary search to
pipeline better and trim one instruction.
Cosmetic Changes:
* time/localtime.c (localtime_r): Move lock declaration back next to
the comment where it was before the 960724 change.
* INSTALL, manual/maint.texi: alpha-gnu-linux -> alpha-ANYTHING-linux.
The second word is supposed to be the hardware manufacturer.
* sysdeps/alpha/_mcount.S: Retain LITUSE for __mcount.
* sysdeps/alpha/setjmp.S: Retain LITUSE for __sigsetjmp_aux.
* sysdeps/alpha/divrem.h: More local labels, retain LITUSE for _mcount.
* sysdeps/alpha/alphaev5/add_n.S, sysdeps/alpha/alphaev5/lshift.S,
sysdeps/alpha/alphaev5/rshift.S, sysdeps/alpha/alphaev5/sub_n.S:
Same cleanups as with EV4 GMP stuff.
Tue Jul 25 03:30:56 1996 Richard Henderson <rth@tamu.edu>
* sysdeps/unix/sysv/linux/Makefile [misc] (sysdep_routines): Add clone.
* sysdeps/unix/sysv/linux/alpha/clone.S: New file.
* sysdeps/unix/sysv/linux/i386/clone.S: New file.
Sun Aug 4 00:12:41 1996 David Mosberger-Tang <davidm@azstarnet.com>
* sysdeps/unix/sysv/linux/gnu/types.h: Declare __fd_mask as
`unsigned long'.
* misc/sys/select.h: Declare fd_mask as alias of __fd_mask.
Sat Aug 3 16:20:02 1996 David Mosberger-Tang <davidm@azstarnet.com>
* sysdeps/unix/sysv/linux/alpha/ioperm.c (platform): Add entry for
Mikasa.
* socket/sys/socket.h (send, __send, sendto): Declare buffer
pointer as __const.
* string/tester.c (main): Test stpncpy.
* sysdeps/generic/stpncpy.c (__stpncpy): Fix so it works without
segfault when called with an N that is not a multiple of four and
src[N-1]=='\0'.
* misc/syslog.c (LogType): New variable.
(openlog): If connect() with SOCK_DGRAM fails with EPROTOTYPE,
try again with SOCK_STREAM (the Linux syslogd uses a socket of the
latter type).
(vsyslog): When LogType==SOCK_STREAM, also send ASCII NUL
terminator as a record-delimiter. If __send(LogFile) fails,
call closelog() so logfile gets re-opened next time.
Wed Aug 7 15:15:14 1996 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-open (_dl_open): Add cast to avoid warning.
* manual/memory.texi: Improve some examples to give readers better
advice: Use `stpcpy' instead of `strcat' if possible.
* manual/string.texi: Document `strtok_r' and `strtok'.
* sunrpc/Makefile: Move `+gccwarn' definition before inclusion
of Makeconfig.
[$(cross-compiling)=no]: Change test before making librpcsvc
to this from $(cross-compile).
Reported by Andreas Schwab.
Tue Aug 6 14:27:11 1996 Ulrich Drepper <drepper@cygnus.com>
* elf/Makefile (routines): Move dl-sysdep to here...
(rtld-routines): ...from here. This should make static linking
work again.
* locale/setlocale.c: Add local variable `lock' and add code to
`setlocale' to avoid simultaneous changing of global data.
* catgets/catgets.c (catopen): Use `__strdup' instead of `strdup'.
* catgets/open_catalog (__open_catalog): Use `__stpcpy', `__open',
`__fstat', `__read', `__mmap', `__munmap' and `__close' instead
of unprotected names.
* time/strftime.c (strftime: do_number): Initialize PRINTED to
MAXDIGITS in case P is null and so sprintf is never actually called.
Mon Jul 29 02:46:23 1996 Ulrich Drepper <drepper@cygnus.com>
Add support for the to-be-written internationalized regexp.
This code must be able to use collation symbols and collation
equivalent classes.
* locale/C-collate.c (_nl_C_LC_COLLATE_symbol_hash,
_nl_C_LC_COLLATE_symbol_strings, _nl_C_LC_COLLATE_symbol_classes):
New global variables for collation classes.
* locale/categories.def: Add new descriptions for collation symbols
and collation classes.
* locale/langinfo.h: Add constants for collation symbols and
collation classes.
* locale/lc-collate.c: Add new global variables for collation symbols
and collation classes.
(_nl_postload_collate): Initialize new variables.
* locale/programs/ld-collate.c: Add code to emit tables for
collation symbols and collation classes.
* locale/programs/locales.h: Change prototype for `collate_output'.
* locale/programs/locfile.c (write_all_categories): Call
`collate_output' with new argument.
* locale/localeinfo.h: Add declaration for new global vars.
(union locale_data_value): New member wstr for `wchar_t' strings.
* locale/programs/locale-spec.c: Handle `collate-classes'
keyword and print information about available collation classes.
* locale/strlen-hash.h: New file. Simple hashing function which
takes a string with known length.
* locale/Makefile (distribute): Add strlen-hash.h.
(locale-modules): New var. Additional files for `locale' program.
* locale/C-ctype.c: Rewrite to avoid using string for giving values
which are of type `u_int32_t'.
Correct entry for EOF in toupper and tolower tables.
* locale/loadlocale.c (_nl_load_locale): Add cast to prevent
warning.
* locale/programs/ld-ctype.c (ctype_output): Add code to make
sure that all tables in binary file are words aligned.
* locale/programs/locfile.c (write_locale_data): Correct handling
of LC_MESSAGES locale. Create directory if necessary.
* locale/setlocale.c (setlocale): Add cast to avoid warning.
* string/string.h: Add prototype for `__strndup'.
Wed Jul 24 19:10:00 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* wcsmbs/mbrtowc.c: Remove unused variable.
Sun Jul 28 22:40:25 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* sysdeps/unix/sysv/linux/configure.in (LIBC_LINUX_VERSION): Update to
2.0.10; some problems were reported with an earlier version, and this
one is known to work.
* sysdeps/generic/dl-sysdep.c (__libc_enable_secure): New variable.
* sysdeps/mach/hurd/dl-sysdep.c: Likewise.
Sat Jul 20 21:55:31 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
Win32 hacks from <Rob_Tulloh@tivoli.com>.
* posix/glob.c [WIN32]: Don't include <pwd.h>; don't use d_ino;
use void * for my_realloc; include <malloc.h> for alloca.
(glob) [WIN32]: Use "c:/users/default" for ~ if no HOME variable.
* posix/fnmatch.h [WIN32]: Use prototypes even if [!__STDC__].
* posix/glob.h: Likewise.
Fri Jul 19 16:56:41 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* posix/glob.h [!_AMIGA && !VMS]: Check this instead of just [!_AMIGA]
for `struct stat;' forward decl.
* sysdeps/mach/hurd/Makefile (rpcuserlibs): New variable.
($(common-objpfx)libc.so): Move deps into that, use it.
[$(subdir) = elf] ($(objpfx)librtld.so): Depend on
$(rpcuserlibs:.so=_pic.a).
* elf/Makefile ($(objpfx)librtld.so): Just depend on libc_pic.a; don't
use $(LDLIBS-c.so).
Thu Jul 18 21:41:25 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/generic/stpncpy.c: Fix semantics to make `stpncpy (d, s,
n)' equivalent to `strncpy (d, s, n), d += strnlen (d, n)'.
* locale/programs/locfile.c (write_locale_data): Deal with missing
UIO_MAXIOV.
* sysdeps/mach/hurd/socket.c (socket): Make TYPE an int.
* sysdeps/mach/hurd/socketpair.c (socketpair): Likewise.
* sysdeps/mach/hurd/errnos.awk: Move EWOULDBLOCK check before errno==0
check. mib's clueless hacking broke it.
Thu Jul 18 04:27:21 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* Makerules ($(libdir)/libc.so): Add missing / after $(cryptobjdir).
Wed Jul 17 10:54:20 1996 David Mosberger-Tang <davidm@azstarnet.com>
* sysdeps/unix/sysv/linux/alpha/start.S: Move to ...
* sysdeps/alpha/elf/start.S: here.
* misc/sys/ustat.h: New file.
* misc/ustat.h: Ditto.
* sysdeps/generic/ustatbits.h: Ditto.
* libc-orig/sysdeps/stub/ustat.c: Ditto.
* sysdeps/unix/sysv/linux/ustatbits.h: Ditto.
* misc/Makefile (headers): Mention ustat.h, sys/ustat.h, and
ustatbits.h.
(routines): Mention ustat.
* sysdeps/unix/sysv/linux/syscalls.list: Mention klogctl in
alphabetically correct place. Mention ustat.
* sysdeps/unix/alpha/sysdep.S: Make errno a bss symbol, not a
common symbol (makes errno accessible from gdb).
* login/pututline_r.c (pututline_r): Test ut_id in repositioning
test, not ut_type.
* login/logwtmp.c (logwtmp): Reimplemented. Must ensure that a
record always gets appended at end of file (wtmp is a log file,
after all). Set ut_type to DEAD_PROCESS if name is empty.
* login/getutid_r.c (getutid_r): Handle search for UT_TYPE in
separate loop from search for UT_ID. Fix code so it is in
sync with Unix man page.
* login/getutline_r.c (getutline_r): Stop searching only if
ut_line matches and type is either USER_PROCESS or LOGIN_PROCESS.
Tue Jul 16 15:06:18 1996 David Mosberger-Tang <davidm@azstarnet.com>
* sysdeps/unix/sysv/linux/netinet/in.h: Base on <linux/in.h> to
avoid duplicate declarations.
Sun Jul 14 19:08:55 1996 David Mosberger-Tang <davidm@azstarnet.com>
* manual/maint.texi (Supported Configurations): Add alpha-gnu-linux
and alpha-gnu-linuxecoff targets.
Fri Jul 12 16:58:44 1996 David Mosberger-Tang <davidm@azstarnet.com>
* sysdeps/unix/sysv/linux/netinet/in.h: Declare bindresvport().
Sat Jun 22 23:30:07 1996 David Mosberger-Tang <davidm@azstarnet.com>
* resolv/res_send.c (res_send): Declare FROMLEN as size_t instead
of int.
* resolv/res_comp.c (res_hnok): Use empty statement in place
of NULL (which generates a "useless expression" warning in
gcc).
* sysdeps/mach/hurd/mmap.c: Use same inheritance arg in second vm_map
call as in first.
* Makerules (make-link): Install the new link with atomic mv -f in
case ln itself requires the library being installed.
* sysdeps/alpha/dl-machine.h: Mirror Roland's changes to
i386/dl-machine.h of 960713.
* sysdeps/generic/dl-sysdep.c: Include <sys/mman.h>.
(_dl_sysdep_read_whole_file): Fix result variable declaration.
Tue Jul 16 00:53:57 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* sysdeps/mach/hurd/uname.c: Call __gethostname to fill in the
`nodename' member.
Mon Jul 15 17:23:53 1996 Ulrich Drepper <drepper@cygnus.com>
* stdio-common/vfprintf.c (vfprintf): Call parse_one_spec
with pointer to local variable instead of NULL.
1996-07-15 Paul Eggert <eggert@twinsun.com>
* time/strftime.c (strftime): Don't pass empty macro argument to `add'.
Sat Jul 13 09:53:39 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove names
that are already added by other means.
* sysdeps/unix/sysv/linux/syscalls.list: Add more EXTRA's in the
caller column to get those syscalls added automagically.
* elf/rtld.c (dl_main) [ELF_MACHINE_DEBUG_SETUP]: Use this macro
instead of setting the DT_DEBUG pointer.
* csu/initfini.c (_init, _fini): Generate .end directives after
standalone prologues and filter them out from epilogues.
* manual/Makefile (glibc-targets): Variable and targets removed.
Sat Jul 13 23:50:17 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* manual/Makefile (lib): New phony target. Depend on stamp files.
($(objpfx)stamp%-$(subdir)): New rule to create them when necessary.
1996-07-13 Paul Eggert <eggert@twinsun.com>
* time/strftime.c (strftime): Use space padding for %e, %k, %l,
to match Emacs format-time-string specification.
(DO_NUMBER_SPACEPAD): Renamed from DO_NUMBER_NOPAD.
Sat Jul 13 20:17:38 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* elf/dl-deps.c (_dl_map_object_deps): Take new args PRELOADS and
NPRELOADS, vector of `struct link_map *'s; add them to the searchlist
between MAP and its deps.
* elf/link.h: Fix decl.
* elf/rtld.c (dl_main): If not secure, parse LD_PRELOAD for
colon-separated list of names, map those and pass vector of ptrs as
PRELOADS list to _dl_map_object_deps.
* elf/dl-runtime.c (_dl_object_relocation_scope): Pass new args to
_dl_map_object_deps with empty preload list.
* elf/dl-open.c (_dl_open): Likewise.
* sysdeps/mach/hurd/dl-sysdep.c (_dl_sysdep_open_zero_fill): Function
removed.
(__mmap): Pass MACH_PORT_NULL for memobj port when (flags & MAP_ANON).
* sysdeps/generic/dl-sysdep.c (_dl_sysdep_open_zero_fill):
Conditionalize defn on [! MAP_ANON].
* elf/dl-minimal.c (malloc): Conditionalize use of _dl_zerofd
on [! MAP_ANON].
* elf/rtld.c (dl_main): Likewise.
* elf/dl-load.c (_dl_zerofd): Conditionalize defn on [! MAP_ANON].
(_dl_map_object_from_fd): Conditionalize initialization of _dl_zerofd.
* elf/dl-fini.c (_dl_fini): Skip finalizer for executable itself.
Sat Jul 13 02:47:53 1996 David Mosberger-Tang <davidm@azstarnet.com>
* stdlib/random.c (__random): Declare as int32_t to be in sync
with declaration.
* socket/Makefile (headers): Add socketbits.h.
* misc/mntent.c (endmntent): Allow for NULL stream. SunOS does
it that way.
* grp/initgroups.c (initgroups): Add groups that user is a member
of, not the ones he is _not_ a member of.
* nss/nsswitch.c (known_compare): Make known_compare() a static
instead of a local function. The latter are difficult to debug
and slow to execute on certain platforms.
* sysdeps/posix/ttyname_r.c (ttyname_r): Use sizeof (dev) - 1 in
place of sizeof (dev). The size of a literal string includes the
NUL byte.
* sysdeps/unix/getlogin.c (getlogin): Initialize ut_fd with -1.
Thu Jul 11 16:59:10 1996 David Mosberger-Tang <davidm@azstarnet.com>
* misc/mntent.c (addmntent): Seek to end of file before writing
entry. Return 1 on error, not -1.
Tue Jul 9 19:08:05 1996 David Mosberger-Tang <davidm@azstarnet.com>
* sysdeps/unix/sysv/linux/syscalls.list: Mark bdflush as EXTRA
syscall.
Fri Jul 5 18:44:55 1996 David Mosberger-Tang <davidm@azstarnet.com>
* sysdeps/unix/sysv/linux/alpha/ioperm.c (port_to_cpu_addr): Size
shift amount for Jensen must be 5 not 4.
Sat Jul 13 20:04:28 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* socket/sys/socket.h (struct osockaddr): New type.
Sat Jul 13 03:50:53 1996 Ulrich Drepper <drepper@cygnus.com>
* misc/Makefile (routines): Add qefgcvt and qefgcvt_r.
* misc/efgcvt.c, misc/efgcvt_r.c: Change code so that the `double'
and `long double' versions can be generated.
* misc/qefgcvt.c, misc/qefgcvt_r.c: New files. Define macros
so that included efgcvt{,_r}.c file generate `long double'
versions.
* stdlib/stdlib.h: Add prototypes for q[efg]cvt() and q[ef]cvt_r()
functions.
* manual/startup.texi: Document new getsubopt function.
* manual/examples/subopt.c: New example program for documenting
getsubopt function.
Fri Jul 12 23:58:37 1996 Ulrich Drepper <drepper@cygnus.com>
* stdlib/Makefile (routines): Add getsubopt.
* stdlib/stdlib.h: Add prototype for getsubopt.
* stdlib/getsubopt.c: New file. Implement getsubopt function
to handle suboption parsing.
__glob_closedir_hook): Remove decls.
* sysdeps/generic/machine-gmon.h: Declare mcount_internal.
* sysdeps/unix/inet/syscalls.list: Define __ names with weak aliases
for send and connect syscalls.
* socket/sys/socket.h: New file, taken from non-sysdep parts of
linux/sys/socket.h; break sysdeps parts out into socketbits.h.
Declare __ names for send and connect.
* sysdeps/generic/socketbits.h: New file.
* sysdeps/unix/sysv/linux/socketbits.h: New file.
* sysdeps/unix/sysv/linux/sys/socket.h: File removed.
* sysdeps/generic/sys/socket.h: File removed.
* sysdeps/mach/hurd/connect.c: Define __ name and weak alias.
* sysdeps/mach/hurd/send.c: Likewise.
* sysdeps/mach/libc-lock.h: New file.
* sysdeps/unix/readdir.c: Do locking.
* sysdeps/unix/seekdir.c: Likewise.
* sysdeps/unix/rewinddir.c: Likewise.
* sysdeps/unix/closedir.c: Likewise.
* sysdeps/unix/bsd/telldir.c: Likewise.
* sysdeps/mach/hurd/seekdir.c: Likewise.
* sysdeps/mach/hurd/readdir.c: Likewise.
* sysdeps/mach/hurd/closedir.c: Likewise.
* sysdeps/mach/hurd/opendir.c: Initialize the lock.
* sysdeps/unix/opendir.c: Likewise.
* sysdeps/mach/hurd/dirstream.h: Include <libc-lock.h>.
(struct __dirstream): Add lock member using __libc_lock_define.
* sysdeps/unix/dirstream.h: Likewise.
* sysdeps/stub/libc-lock.h (__libc_lock_fini): New macro.
* stdlib/mbstowcs.c: Pass address of pointer to mbsrtowcs.
* stdlib/wcstombs.c: Use wcsrtombs instead of mbsrtowcs.
Thu Jul 4 01:34:04 1996 Ulrich Drepper <drepper@cygnus.com>
* locale/programs/stringtrans.c: Fix typo in copyright.
* stdio-common/printf-prs.c: Add casts to prevent
signed<->unsigned warnings.
* stdio-common/printf-parse.h: Initialize state variable before
calling mbrlen.
* stdio-common/printf-prs.c: Don't initialize state variable here.
* stdio-common/vfprintf.c: Don't initialize state variable.
(vfprintf): While determining length of multibyte string don't
try to be clever in determining characters to use for first
call.
Add real implementation of multibyte<->wide char conversion
functions. The functions always convert between the fixed wide
char format (ISO 10646 in UCS4) and the UTF8 representation of
this character set. Conversion between the currently used
8bit character set and ISO 10646 will not take place. This is
what iconv() is for.
* wcsmbs/wchar.h (mbstate_t): Define as structure to replace
dummy definition.
Add optimized version of `mbrlen' function.
* wcsmbs/btowc.c (btowc): Restrict range of legal characters
to 0...0x7f.
* wcsmbs/wctob.c (wctob): Restrict range of legal characters
to 0..0x7f.
* wcsmbs/mbrlen.c: Make mbrlen a weak alias of __mbrlen.
This is needed in the wchar.h header.
* wcsmbs/mbrtowc.c: Replace dummy implementation. Convert UTF8
encoded character to UCS4.
* wcsmbs/mbsinit.c: Replace dummy implementation. Test COUNT
element of `mbstate_t' for initial state.
* wcsmbs/mbsrtowcs.c: Replace dummy implementation. Convert UTF8
encoded string to UCS4 string.
* wcsmbs/wcrtomb.c: Replace dummy implementation. Convert UCS4
character to UTF8 encoded form.
* wcsmbs/wcsrtombs.c: Replace dummy implementation. Convert UCS4
encoded string to UTF8 encoded form.
Tue Jul 9 00:14:52 1996 Michael I. Bushnell p/BSG <mib@gnu.ai.mit.edu>
* sysdeps/mach/hurd/ioctls.h (MDMBUF, ECHO, TOSTOP, FLUSHO,
PENDIN, NOFLSH): Undefine these at start if they are already
defined to avoid collision with termbits.h.
* sysdeps/generic/termbits.h (ECHO, TOSTOP, NOFLSH): Likewise.
(MDMBUF, FLUSHO, PENDIN) [__USE_BSD]: Likewise.
Mon Jul 8 13:10:50 1996 Michael I. Bushnell p/BSG <mib@gnu.ai.mit.edu>
* sysdeps/mach/hurd/errnos.awk: Skip entries where the
error is 0. The "placeholder" entries recently added to
errno.texi convert to zero since `???/' is at the front of them.
* sysdeps/gnu/errlist.awk (errnoh): Likewise.
* sysdeps/stub/setdomain.c (setdomainname): Declare NAME parm
__const to conform with unistd.h.
* posix/regex.c (re_comp, re_exec): Use weak_function as
keyword in function defns instead of weak_symbol (NAME) after
the defn.
* stdlib/stdlib.h (random): Declare return type to be int32_t.
* libc-symbols.h [GCC >= 2.7] (strong_alias, weak_alias): Use extern
storage class. GCC gives an error for non-extern data defns with the
alias attribute.
Mon Jul 8 00:11:15 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* libc-symbols.h (weak_function): New macro.
For GCC 2.7+ define as __attribute__ ((weak)).
* elf/dl-minimal.c: Use weak_function as keyword in function defns
instead of weak_symbol (NAME) after the defn.
* stdlib/strtol.c: Likewise.
* sysdeps/mach/hurd/dl-sysdep.c: Likewise.
* sysdeps/alpha/dl-machine.h (elf_machine_rela) [RTLD_BOOTSTRAP]:
If this is defined, don't declare _dl_rtld_map as weak, and
don't check for MAP pointing to it. RESOLVE is always null in this
case, so test with #ifdef instead of if.
* libc-symbols.h (symbol_set_declare): Use weak_extern instead of
weak_symbol.
* csu/initfini.c (_init): Likewise.
* locale/setlocale.c (DEFINE_CATEGORY): Likewise.
* misc/efgcvt_r.c: Likewise.
* sysdeps/alpha/dl-machine.h (elf_machine_rela): Likewise.
* sysdeps/i386/dl-machine.h (elf_machine_rel): Likewise.
* libc-symbols.h [ASSEMBLER] (weak_symbol): Macro removed.
It was not used in any assembler code.
(weak_symbol_asm): Renamed to weak_extern_asm.
(weak_extern): New macro replaces weak_symbol for weak extern refs;
define to weak_extern_asm for [!ASSEMBLER].
* libc-symbols.h [! ASSEMBLER] [HAVE_WEAK_SYMBOLS] (weak_symbol_asm,
weak_alias_asm): New macros, renamed from weak_symbol/weak_alias;
define those now as aliases.
Change conditional to use __attribute__ syntax for GCC 2.7+, not 2.8+
[GCC >= 2.7] [HAVE_WEAK_SYMBOLS] (weak_symbol): Do weak_symbol_asm
after GCC weak attribute decl.
* sysdeps/mach/hurd/jmp-unwind.c (_longjmp_unwind): Don't unlock the
critical section lock before unlinking dying active resources.
The unlock just before return is right (i.e. old code unlocked twice).
* time/strftime.c (strftime: do_number): Adjust P and I after sprintf
in case it wrote fewer than MAXDIGITS chars.
* stdio/fwrite.c (fwrite: fill_buffer): Separate flushing for last
newline from flushing full buffer in loop, fix test so no fflush is
done when last byte written exactly fills the buffer.
* nss/Makefile ($(services:%=$(objpfx)libnss_%.so)): Depend on libc.so.
* sysdeps/mach/hurd/Makefile (LDLIBS-c.so): Variable removed.
(libc.so): Instead, give this deps on lib{mach,hurd}user.so.
* elf/dl-debug.c (_dl_debug_initialize): Use LDBASE arg instead of
extracting _dl_rtld_map.l_addr.
* sysdeps/i386/dl-machine.h (elf_machine_rel): Declare _dl_rtld_map as
weak.
* sysdeps/alpha/dl-machine.h (elf_machine_rela): Likewise.
* shlib-versions (*-*-*): Set libnss_db=1.
* elf/rtld.c (dl_main): Set _dl_rtld_map's DT_DEBUG location too.