mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-26 23:10:06 +00:00
b5cc329c4f
* elf/dl-minimal.c (__chk_fail): New. Add rtld_hidden_def. * sysdeps/unix/sysv/linux/readonly-area.c: New file. * sysdeps/i386/i686/memmove.S (__memmove_chk): Add checking routine. * sysdeps/i386/i686/memcpy.S (__memcpy_chk): Likewise. * sysdeps/i386/i686/mempcpy.S (__mempcpy_chk): Likewise. * sysdeps/i386/i686/memset.S (__memset_chk): Likewise. * sysdeps/i386/i686/memmove-chk.S: New file. * sysdeps/i386/i686/memcpy-chk.S: Likewise. * sysdeps/i386/i686/mempcpy-chk.S: Likewise. * sysdeps/i386/i686/memset-chk.S: Likewise. * sysdeps/generic/strcat-chk.c (__strcat_chk): Don't __chk_fail if exactly fitting into buffer. * sysdeps/generic/strncat-chk.c (__strncat_chk): Likewise. * sysdeps/generic/readonly-area.c: New file. * sysdeps/generic/strncpy-chk.c (__strncpy_chk): Only test destlen once. * sysdeps/x86_64/memset.S (__memset_chk): Add checking routine. * sysdeps/x86_64/memcpy.S (__memcpy_chk): Likewise. * sysdeps/x86_64/mempcpy.S (__memcpy_chk): Define to __mempcpy_chk. * sysdeps/x86_64/memcpy-chk.S: New file. * sysdeps/x86_64/mempcpy-chk.S: Likewise. * sysdeps/x86_64/memset-chk.S: Likewise. * sysdeps/x86_64/strcpy-chk.S: Likewise. * sysdeps/x86_64/stpcpy-chk.S: Likewise. * argp/argp-xinl.c (__OPTIMIZE__): Define to 1 instead of nothing. * argp/argp-fs-xinl.c (__OPTIMIZE__): Likewise. * debug/tst-chk1.c: New test. * debug/tst-chk2.c: Likewise. * debug/tst-chk3.c: Likewise. * debug/test-strcpy_chk.c: Likewise. * debug/test-stpcpy_chk.c: Likewise. * debug/vsprintf_chk.c (__vsprintf_chk): If flags > 0, request _IO_FLAGS2_CHECK_PERCENT_N. Add libc_hidden_def. * debug/Makefile (routines): Add printf_chk, fprintf_chk, vprintf_chk, vfprintf_chk, gets_chk and readonly-area. (CFLAGS-*_chk.c): Set. (tests): Add tst-chk1, tst-chk2, tst-chk3, test-strcpy_chk and test-stpcpy_chk. * debug/vprintf_chk.c: New file. * debug/printf_chk.c: Likewise. * debug/vfprintf_chk.c: Likewise. * debug/fprintf_chk.c: Likewise. * debug/gets_chk.c: Likewise. * debug/chk_fail.c (__chk_fail): Add libc_hidden_def. * debug/snprintf_chk.c (__snprintf_chk): Fix order of arguments passed to __vsnprintf_chk. * debug/Versions (libc): Export __printf_chk, __fprintf_chk, __vprintf_chk, __vfprintf_chk and __gets_chk @GLIBC_2.3.4. * debug/vsnprintf_chk.c (__vsnprintf_chk): Don't call __vsnprintf, instead create a temporary file with _IO_strn_jumps jumptable. If flags > 0, request _IO_FLAGS2_CHECK_PERCENT_N. Add libc_hidden_def. * libio/Makefile (headers): Add bits/stdio2.h. * libio/stdio.h: Include <bits/stdio2.h> if __USE_FORTIFY_LEVEL. (sprintf, snprintf, vsprintf, vsnprintf): Remove defines. * libio/strfile.h (_IO_strnfile): New type. (_IO_strn_jumps): New extern. * libio/vsnprintf.c (_IO_strnfile): Remove. (_IO_strn_jumps): Remove static. * libio/bits/stdio2.h: New file. * libio/vswprintf.c (_IO_strnfile): Rename type to... (_IO_wstrnfile): ...this. Adjust all uses. * libio/libio.h (_IO_FLAGS2_CHECK_PERCENT_N): Define. * stdio-common/vfprintf.c (STR_LEN): Define. (vfprintf): Add readonly_format variable. Handle _IO_FLAGS2_CHECK_PERCENT_N. (buffered_vfprintf): Copy _flags2. * include/stdio.h (__sprintf_chk, __snprintf_chk, __vsprintf_chk, __vsnprintf_chk, __printf_chk, __fprintf_chk, __vprintf_chk, __vfprintf_chk): New prototypes. (__vsprintf_chk, __vsnprintf_chk): Add libc_hidden_proto. * include/string.h (__memcpy_chk, __memmove_chk, __mempcpy_chk, __memset_chk, __strcpy_chk, __stpcpy_chk, __strncpy_chk, __strcat_chk, __strncat_chk): New prototypes. * include/bits/string3.h: New file. * include/sys/cdefs.h (__chk_fail): Add libc_hidden_proto and rtld_hidden_proto. * string/Makefile (headers): Add bits/string3.h. * string/bits/string3.h (bcopy, bzero): New defines. (memset, memcpy, memmove, strcpy, strncpy, strcat, strncat): Change macros so that inlines are used only if unknown destination size or side-effects in destination argument. (mempcpy, stpcpy): Likewise. Protect with #ifdef __USE_GNU. 2004-09-16 Ulrich Drepper <drepper@redhat.com> * debug/Makefile (routines): Add *_chk. * debug/Versions (libc): Export __chk_fail, __memcpy_chk, __memmove_chk, __mempcpy_chk, __memset_chk, __stpcpy_chk, __strcat_chk, __strcpy_chk, __strncat_chk, __strncpy_chk, __sprintf_chk, __vsprintf_chk, __snprintf_chk, __vsnprintf_chk @GLIBC_2.3.4. * debug/chk_fail.c: New file. * debug/snprintf_chk.c: Likewise. * debug/sprintf_chk.c: Likewise. * debug/vsnprintf_chk.c: Likewise. * debug/vsprintf_chk.c: Likewise. * include/features.h (_FORTIFY_SOURCE): Document, handle. (__USE_FORTIFY_LEVEL): Define. (__GNUC_PREREQ): Move to earlier location. * include/sys/cdefs.h (__chk_fail): New prototype. * libio/bits/stdio.h (sprintf, vsprintf, snprintf, vsnprintf): Define if __USE_FORTIFY_LEVEL. * misc/sys/cdefs.h (__bos, __bos0): Define. * string/string.h: Include <bits/string3.h> if __USE_FORTIFY_LEVEL. * bits/string/string3.h: New header. * sysdeps/generic/memcpy_chk.c: New file. * sysdeps/generic/memmove_chk.c: Likewise. * sysdeps/generic/mempcpy_chk.c: Likewise. * sysdeps/generic/memset_chk.c: Likewise. * sysdeps/generic/stpcpy_chk.c: Likewise. * sysdeps/generic/strcat_chk.c: Likewise. * sysdeps/generic/strcpy_chk.c: Likewise. * sysdeps/generic/strncat_chk.c: Likewise. * sysdeps/generic/strncpy_chk.c: Likewise. 2004-10-15 Jakub Jelinek <jakub@redhat.com> * elf/dl-minimal.c (__chk_fail): New. Add rtld_hidden_def. * sysdeps/unix/sysv/linux/readonly-area.c: New file. * sysdeps/i386/i686/memmove.S (__memmove_chk): Add checking routine. * sysdeps/i386/i686/memcpy.S (__memcpy_chk): Likewise. * sysdeps/i386/i686/mempcpy.S (__mempcpy_chk): Likewise. * sysdeps/i386/i686/memset.S (__memset_chk): Likewise. * sysdeps/i386/i686/memmove-chk.S: New file. * sysdeps/i386/i686/memcpy-chk.S: Likewise. * sysdeps/i386/i686/mempcpy-chk.S: Likewise. * sysdeps/i386/i686/memset-chk.S: Likewise. * sysdeps/generic/strcat-chk.c (__strcat_chk): Don't __chk_fail if exactly fitting into buffer. * sysdeps/generic/strncat-chk.c (__strncat_chk): Likewise. * sysdeps/generic/readonly-area.c: New file. * sysdeps/generic/strncpy-chk.c (__strncpy_chk): Only test destlen once. * sysdeps/x86_64/memset.S (__memset_chk): Add checking routine. * sysdeps/x86_64/memcpy.S (__memcpy_chk): Likewise. * sysdeps/x86_64/mempcpy.S (__memcpy_chk): Define to __mempcpy_chk. * sysdeps/x86_64/memcpy-chk.S: New file. * sysdeps/x86_64/mempcpy-chk.S: Likewise. * sysdeps/x86_64/memset-chk.S: Likewise. * sysdeps/x86_64/strcpy-chk.S: Likewise. * sysdeps/x86_64/stpcpy-chk.S: Likewise. * argp/argp-xinl.c (__OPTIMIZE__): Define to 1 instead of nothing. * argp/argp-fs-xinl.c (__OPTIMIZE__): Likewise. * debug/tst-chk1.c: New test. * debug/tst-chk2.c: Likewise. * debug/tst-chk3.c: Likewise. * debug/test-strcpy_chk.c: Likewise. * debug/test-stpcpy_chk.c: Likewise. * debug/vsprintf_chk.c (__vsprintf_chk): If flags > 0, request _IO_FLAGS2_CHECK_PERCENT_N. Add libc_hidden_def. * debug/Makefile (routines): Add printf_chk, fprintf_chk, vprintf_chk, vfprintf_chk, gets_chk and readonly-area. (CFLAGS-*_chk.c): Set. (tests): Add tst-chk1, tst-chk2, tst-chk3, test-strcpy_chk and test-stpcpy_chk. * debug/vprintf_chk.c: New file. * debug/printf_chk.c: Likewise. * debug/vfprintf_chk.c: Likewise. * debug/fprintf_chk.c: Likewise. * debug/gets_chk.c: Likewise. * debug/chk_fail.c (__chk_fail): Add libc_hidden_def. * debug/snprintf_chk.c (__snprintf_chk): Fix order of arguments passed to __vsnprintf_chk. * debug/Versions (libc): Export __printf_chk, __fprintf_chk, __vprintf_chk, __vfprintf_chk and __gets_chk @GLIBC_2.3.4. * debug/vsnprintf_chk.c (__vsnprintf_chk): Don't call __vsnprintf, instead create a temporary file with _IO_strn_jumps jumptable. If flags > 0, request _IO_FLAGS2_CHECK_PERCENT_N. Add libc_hidden_def. * libio/Makefile (headers): Add bits/stdio2.h. * libio/stdio.h: Include <bits/stdio2.h> if __USE_FORTIFY_LEVEL. (sprintf, snprintf, vsprintf, vsnprintf): Remove defines. * libio/strfile.h (_IO_strnfile): New type. (_IO_strn_jumps): New extern. * libio/vsnprintf.c (_IO_strnfile): Remove. (_IO_strn_jumps): Remove static. * libio/bits/stdio2.h: New file. * libio/vswprintf.c (_IO_strnfile): Rename type to... (_IO_wstrnfile): ...this. Adjust all uses. * libio/libio.h (_IO_FLAGS2_CHECK_PERCENT_N): Define. * stdio-common/vfprintf.c (STR_LEN): Define. (vfprintf): Add readonly_format variable. Handle _IO_FLAGS2_CHECK_PERCENT_N. (buffered_vfprintf): Copy _flags2. * include/stdio.h (__sprintf_chk, __snprintf_chk, __vsprintf_chk, __vsnprintf_chk, __printf_chk, __fprintf_chk, __vprintf_chk, __vfprintf_chk): New prototypes. (__vsprintf_chk, __vsnprintf_chk): Add libc_hidden_proto. * include/string.h (__memcpy_chk, __memmove_chk, __mempcpy_chk, __memset_chk, __strcpy_chk, __stpcpy_chk, __strncpy_chk, __strcat_chk, __strncat_chk): New prototypes. * include/bits/string3.h: New file. * include/sys/cdefs.h (__chk_fail): Add libc_hidden_proto and rtld_hidden_proto. * string/Makefile (headers): Add bits/string3.h. * string/bits/string3.h (bcopy, bzero): New defines. (memset, memcpy, memmove, strcpy, strncpy, strcat, strncat): Change macros so that inlines are used only if unknown destination size or side-effects in destination argument. (mempcpy, stpcpy): Likewise. Protect with #ifdef __USE_GNU. 2004-09-16 Ulrich Drepper <drepper@redhat.com> * debug/Makefile (routines): Add *_chk. * debug/Versions (libc): Export __chk_fail, __memcpy_chk, __memmove_chk, __mempcpy_chk, __memset_chk, __stpcpy_chk, __strcat_chk, __strcpy_chk, __strncat_chk, __strncpy_chk, __sprintf_chk, __vsprintf_chk, __snprintf_chk, __vsnprintf_chk @GLIBC_2.3.4. * debug/chk_fail.c: New file. * debug/snprintf_chk.c: Likewise. * debug/sprintf_chk.c: Likewise. * debug/vsnprintf_chk.c: Likewise. * debug/vsprintf_chk.c: Likewise. * include/features.h (_FORTIFY_SOURCE): Document, handle. (__USE_FORTIFY_LEVEL): Define. (__GNUC_PREREQ): Move to earlier location. * include/sys/cdefs.h (__chk_fail): New prototype. * libio/bits/stdio.h (sprintf, vsprintf, snprintf, vsnprintf): Define if __USE_FORTIFY_LEVEL. * misc/sys/cdefs.h (__bos, __bos0): Define. * string/string.h: Include <bits/string3.h> if __USE_FORTIFY_LEVEL. * bits/string/string3.h: New header. * sysdeps/generic/memcpy_chk.c: New file. * sysdeps/generic/memmove_chk.c: Likewise. * sysdeps/generic/mempcpy_chk.c: Likewise. * sysdeps/generic/memset_chk.c: Likewise. * sysdeps/generic/stpcpy_chk.c: Likewise. * sysdeps/generic/strcat_chk.c: Likewise. * sysdeps/generic/strcpy_chk.c: Likewise. * sysdeps/generic/strncat_chk.c: Likewise. * sysdeps/generic/strncpy_chk.c: Likewise.
183 lines
6.6 KiB
Makefile
183 lines
6.6 KiB
Makefile
# Copyright (C) 1995-2002, 2003, 2004 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 Lesser General Public
|
|
# License as published by the Free Software Foundation; either
|
|
# version 2.1 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
|
|
# Lesser General Public License for more details.
|
|
|
|
# You should have received a copy of the GNU Lesser General Public
|
|
# License along with the GNU C Library; if not, write to the Free
|
|
# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
# 02111-1307 USA.
|
|
|
|
#
|
|
# Specific makefile for libio.
|
|
#
|
|
subdir := libio
|
|
|
|
headers := stdio.h libio.h _G_config.h bits/stdio.h bits/stdio-lock.h \
|
|
bits/sys_errlist.h bits/stdio2.h
|
|
|
|
routines := \
|
|
filedoalloc iofclose iofdopen iofflush iofgetpos iofgets iofopen \
|
|
iofopncook iofputs iofread iofsetpos ioftell wfiledoalloc \
|
|
iofwrite iogetdelim iogetline iogets iopadn iopopen ioputs \
|
|
ioseekoff ioseekpos iosetbuffer iosetvbuf ioungetc \
|
|
iovsprintf iovsscanf \
|
|
iofgetpos64 iofopen64 iofsetpos64 \
|
|
fputwc fputwc_u getwc getwc_u getwchar getwchar_u iofgetws iofgetws_u \
|
|
iofputws iofputws_u iogetwline iowpadn ioungetwc putwc putwc_u \
|
|
putwchar putwchar_u putchar putchar_u fwprintf swprintf vwprintf \
|
|
wprintf wscanf fwscanf vwscanf vswprintf iovswscanf swscanf wgenops \
|
|
wstrops wfileops iofwide fwide \
|
|
\
|
|
clearerr feof ferror fileno fputc freopen fseek getc getchar \
|
|
memstream pclose putc putchar rewind setbuf setlinebuf vasprintf \
|
|
iovdprintf vscanf vsnprintf obprintf fcloseall fseeko ftello \
|
|
freopen64 fseeko64 ftello64 \
|
|
\
|
|
__fbufsize __freading __fwriting __freadable __fwritable __flbf \
|
|
__fpurge __fpending __fsetlocking \
|
|
\
|
|
libc_fatal fmemopen
|
|
|
|
tests = tst_swprintf tst_wprintf tst_swscanf tst_wscanf tst_getwc tst_putwc \
|
|
tst_wprintf2 tst-widetext test-fmemopen tst-ext tst-fopenloc \
|
|
tst-fgetws tst-ungetwc1 tst-ungetwc2 tst-swscanf tst-sscanf \
|
|
tst-mmap-setvbuf bug-ungetwc1 bug-ungetwc2 tst-atime tst-eof \
|
|
tst-freopen bug-rewind bug-rewind2 bug-ungetc bug-fseek \
|
|
tst-mmap-eofsync tst-mmap-fflushsync bug-mmap-fflush \
|
|
tst-mmap2-eofsync tst-mmap-offend bug-fopena+ bug-wfflush \
|
|
bug-ungetc2 bug-ftell
|
|
test-srcs = test-freopen
|
|
|
|
all: # Make this the default target; it will be defined in Rules.
|
|
|
|
include ../Makeconfig
|
|
|
|
ifeq ($(versioning),yes)
|
|
routines += oldiofopen oldiofdopen oldiofclose oldiopopen oldpclose \
|
|
oldtmpfile oldiofgetpos oldiofgetpos64 oldiofsetpos \
|
|
oldiofsetpos64
|
|
endif
|
|
|
|
ifneq (,$(filter %REENTRANT, $(defines)))
|
|
routines += clearerr_u feof_u ferror_u fputc_u getc_u getchar_u \
|
|
iofflush_u putc_u putchar_u peekc iofread_u iofwrite_u iofgets_u \
|
|
iofputs_u
|
|
|
|
CPPFLAGS += -D_IO_MTSAFE_IO
|
|
endif
|
|
|
|
# Support for exception handling.
|
|
CFLAGS-fileops.c = $(exceptions)
|
|
CFLAGS-fputc.c = $(exceptions)
|
|
CFLAGS-fputwc.c = $(exceptions)
|
|
CFLAGS-freopen64.c = $(exceptions)
|
|
CFLAGS-freopen.c = $(exceptions)
|
|
CFLAGS-fseek.c = $(exceptions)
|
|
CFLAGS-fseeko64.c = $(exceptions)
|
|
CFLAGS-fseeko.c = $(exceptions)
|
|
CFLAGS-ftello64.c = $(exceptions)
|
|
CFLAGS-ftello.c = $(exceptions)
|
|
CFLAGS-fwide.c = $(exceptions)
|
|
CFLAGS-genops.c = $(exceptions)
|
|
CFLAGS-getc.c = $(exceptions)
|
|
CFLAGS-getchar.c = $(exceptions)
|
|
CFLAGS-getwc.c = $(exceptions)
|
|
CFLAGS-getwchar.c = $(exceptions)
|
|
CFLAGS-iofclose.c = $(exceptions)
|
|
CFLAGS-iofflush.c = $(exceptions)
|
|
CFLAGS-iofgetpos64.c = $(exceptions)
|
|
CFLAGS-iofgetpos.c = $(exceptions)
|
|
CFLAGS-iofgets.c = $(exceptions)
|
|
CFLAGS-iofgetws.c = $(exceptions)
|
|
CFLAGS-iofputs.c = $(exceptions)
|
|
CFLAGS-iofputws.c = $(exceptions)
|
|
CFLAGS-iofread.c = $(exceptions)
|
|
CFLAGS-iofsetpos64.c = $(exceptions)
|
|
CFLAGS-iofsetpos.c = $(exceptions)
|
|
CFLAGS-ioftell.c = $(exceptions)
|
|
CFLAGS-iofwrite.c = $(exceptions)
|
|
CFLAGS-iogetdelim.c = $(exceptions)
|
|
CFLAGS-iogetline.c = $(exceptions)
|
|
CFLAGS-iogets.c = $(exceptions)
|
|
CFLAGS-iogetwline.c = $(exceptions)
|
|
CFLAGS-ioputs.c = $(exceptions)
|
|
CFLAGS-ioseekoff.c = $(exceptions)
|
|
CFLAGS-ioseekpos.c = $(exceptions)
|
|
CFLAGS-iosetbuffer.c = $(exceptions)
|
|
CFLAGS-iosetvbuf.c = $(exceptions)
|
|
CFLAGS-ioungetc.c = $(exceptions)
|
|
CFLAGS-ioungetwc.c = $(exceptions)
|
|
CFLAGS-oldfileops.c = $(exceptions)
|
|
CFLAGS-oldiofclose.c = $(exceptions)
|
|
CFLAGS-oldiofgetpos64.c = $(exceptions)
|
|
CFLAGS-oldiofgetpos.c = $(exceptions)
|
|
CFLAGS-oldiofsetpos64.c = $(exceptions)
|
|
CFLAGS-oldiofsetpos.c = $(exceptions)
|
|
CFLAGS-peekc.c = $(exceptions)
|
|
CFLAGS-putc.c = $(exceptions)
|
|
CFLAGS-putchar.c = $(exceptions)
|
|
CFLAGS-putwc.c = $(exceptions)
|
|
CFLAGS-putwchar.c = $(exceptions)
|
|
CFLAGS-rewind.c = $(exceptions)
|
|
CFLAGS-wfileops.c = $(exceptions)
|
|
CFLAGS-wgenops.c = $(exceptions)
|
|
CFLAGS-oldiofopen.c = $(exceptions)
|
|
CFLAGS-iofopen.c = $(exceptions)
|
|
CFLAGS-iofopen64.c = $(exceptions)
|
|
CFLAGS-oldtmpfile.c = $(exceptions)
|
|
# XXX Do we need filedoalloc and wfiledoalloc? Others?
|
|
|
|
CFLAGS-tst_putwc.c = -DOBJPFX=\"$(objpfx)\"
|
|
|
|
tst_wprintf2-ARGS = "Some Text"
|
|
|
|
tst-widetext-ENV = LOCPATH=$(common-objpfx)localedata LANGUAGE=C
|
|
tst-fopenloc-ENV = LOCPATH=$(common-objpfx)localedata \
|
|
MALLOC_TRACE=$(objpfx)tst-fopenloc.mtrace
|
|
tst-fgetws-ENV = LOCPATH=$(common-objpfx)localedata
|
|
tst-ungetwc1-ENV = LOCPATH=$(common-objpfx)localedata
|
|
tst-ungetwc2-ENV = LOCPATH=$(common-objpfx)localedata
|
|
bug-ungetwc2-ENV = LOCPATH=$(common-objpfx)localedata
|
|
tst-swscanf-ENV = LOCPATH=$(common-objpfx)localedata
|
|
bug-ftell-ENV = LOCPATH=$(common-objpfx)localedata
|
|
|
|
generated = tst-fopenloc.mtrace tst-fopenloc.check
|
|
|
|
aux := fileops genops stdfiles stdio strops
|
|
|
|
ifeq ($(versioning),yes)
|
|
aux += oldfileops oldstdfiles
|
|
endif
|
|
|
|
shared-only-routines = oldiofopen oldiofdopen oldiofclose oldfileops \
|
|
oldstdfiles oldiopopen oldpclose oldtmpfile \
|
|
oldiofgetpos oldiofgetpos64 oldiofsetpos \
|
|
oldiofsetpos64
|
|
|
|
distribute := iolibio.h libioP.h strfile.h Banner test-freopen.sh \
|
|
fd_to_filename.h
|
|
|
|
include ../Rules
|
|
|
|
ifeq (no,$(cross-compiling))
|
|
tests: $(objpfx)test-freopen.out $(objpfx)tst-fopenloc.check
|
|
endif
|
|
|
|
$(objpfx)test-freopen.out: test-freopen.sh $(objpfx)test-freopen
|
|
$(SHELL) -e $< $(common-objpfx) '$(run-program-prefix)' \
|
|
$(common-objpfx)libio/
|
|
|
|
$(objpfx)tst-fopenloc.check: $(objpfx)tst-fopenloc.out
|
|
cmp ../iconvdata/testdata/ISO-8859-1..UTF8 $(objpfx)tst-fopenloc.out \
|
|
> $@
|
|
$(common-objpfx)malloc/mtrace $(objpfx)tst-fopenloc.mtrace >> $@
|