mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-28 00:21:52 +03:00
Update.
1998-12-31 Ulrich Drepper <drepper@cygnus.com> * iconvdata/Makefile: Use rpath $ORIGIN for modules which use any of the conversion libraries. * include/features.h: Mention latest extensions in _POSIX_C_SOURCE description. * libio/genops.c (list_all_lock): New variable. (_IO_un_link, _IO_link_in): Acquire lock before modifying _IO_list_all. [PR libc/911]. * sysdeps/i386/i686/strtok.s: Add missing cld. * sysdeps/i386/i686/mempcpy.S: New file. 1998-12-30 Geoff Keating <geoffk@ozemail.com.au> Suppress parentheses warnings: * sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c (DL_FIND_ARG_COMPONENTS): here, * sysdeps/powerpc/dl-machine.c: here, * sysdeps/powerpc/fclrexcpt.c (feclearexcept): here, * sysdeps/powerpc/fesetround.c (fesetround): here, * sysdeps/powerpc/feupdateenv.c (feupdateenv): here, * sysdeps/powerpc/fraiseexcpt.c (feraiseexcept): here, * sysdeps/powerpc/fsetexcptflg.c (fesetexceptflag): here, * sysdeps/powerpc/s_rint.c (__rint): here, * sysdeps/powerpc/s_rintf.c (__rintf): here, * sysdeps/powerpc/w_sqrt.c (__sqrt): here, * sysdeps/powerpc/w_sqrtf.c (__sqrtf): and here. 1998-12-30 Geoff Keating <geoffk@ozemail.com.au> * wcsmbs/wcstold.c [__NO_LONG_DOUBLE_MATH]: Include wchar.h. * wcsmbs/wcstold_l.c [__NO_LONG_DOUBLE_MATH]: Likewise. Also define appropropriate prototypes, correct procedure names. 1998-12-30 Geoff Keating <geoffk@ozemail.com.au> * sysdeps/generic/crypt-entry.c: Prototype __crypt_r, suppress warning. (__crypt_r): Add __restrict. * sysdeps/generic/crypt.h: Remove internal routine. Add __restrict. 1998-12-31 Ulrich Drepper <drepper@cygnus.com> * stdlib/longlong.h: Add missing #else in SPARC definitions. 1998-12-30 Andreas Jaeger <aj@arthur.rhein-neckar.de> Patches by Ralf Baechle <ralf@gnu.org>: * sysdeps/unix/sysv/linux/mips/sgidefs.h: Removed. * sysdeps/unix/sysv/linux/mips/sys/asm.h: Removed. * sysdeps/unix/sysv/linux/mips/sys/regdef.h: Removed. * sysdeps/unix/sysv/linux/mips/sys/fpregdef.h: Removed. * sysdeps/unix/sysv/linux/mips/regdef.h: Removed. * sysdeps/unix/sysv/linux/mips/fpregdef.h: Removed. * sysdeps/unix/sysv/linux/mips/Makefile: Remove delete files. * sysdeps/unix/sysv/linux/mips/Dist: Remove deleted files. * sysdeps/mips/sys/fpregdef.h: New files, enhanced versions of deleted linux specific files. * sysdeps/mips/sys/asm.h: Likewise. * sysdeps/mips/sgidefs.h: Likewise. * sysdeps/mips/fpregdef.h: Likewise. * sysdeps/mips/regdef.h: Likewise. * sysdeps/mips/Makefile: Add new headers. * sysdeps/mips/Dist: Add new files. * sysdeps/mips/fpu_control.h (_FPU_DEFAULT): Change value. 1998-12-28 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> * iconvdata/Makefile: Remove variable assignments and rules that are now auto-generated. Include $(objpfx)iconv-rules instead. Btw, that removes a few typos. (charmaps): New variable. ($(objpfx)iconv-rules): New target. (gen-8bit-modules): Renamed from sed-generated-headers, remove .h suffixes. (gen-8bit-gap-modules): Renamed from awk-generated-headers, remove .h suffixes. (gen-special-modules): New variable. (generated-modules): New variable. (headers): Use it. (before-compile): Likewise. (generated): Likewise, and add iconv-rules. * iconvdata/euc-cn.c: Renamed from euccn.c. * iconvdata/euc-jp.c: Renamed from eucjp.c. * iconvdata/euc-kr.c: Renamed from euckr.c. * iconvdata/euc-tw.c: Renamed from euctw.c. * iconvdata/iso_6937.c: Renamed from iso6937.c. * iconvdata/iso_6937-2.c: Renamed from iso6937-2.c. * iconvdata/t.61.c: Renamed from t61.c. * iconvdata/Makefile (distribute): Adjusted for those renames. Remove $(objpfx) from names. 1998-12-28 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> * sysdeps/generic/hp-timing.h: Fix comment. * sysdeps/generic/dl-hash.h: Likewise. * sysdeps/i386/i686/hp-timing.h: Likewise. 1998-12-28 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> * posix/fnmatch.c (fnmatch): Always pass unsigned char values to FOLD macro. 1998-12-28 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> * nss/db-Makefile ($(VAR_DB)/shadow.db): Fix last change. 1998-12-29 Andreas Jaeger <aj@arthur.rhein-neckar.de> * sysdeps/unix/sysv/linux/mips/bits/sigaction.h: Sync with current Linux 2.1.132 kernel sources. 1998-12-28 Andreas Jaeger <aj@arthur.rhein-neckar.de> Patches by Ralf Baechle <ralf@gnu.org> for Linux/MIPS: * sysdeps/unix/sysv/linux/mips/syscalls.list: Add ipc, change pread/pwrite and llseek calls. * sysdeps/unix/sysv/linux/mips/sysdep.S: New file. 1998-12-29 Wolfram Gloger <wmglo@dent.med.uni-muenchen.de> * malloc/thread-m.h [_LIBC] : Fix for NO_THREADS case.
This commit is contained in:
132
ChangeLog
132
ChangeLog
@ -1,3 +1,135 @@
|
|||||||
|
1998-12-31 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
|
* iconvdata/Makefile: Use rpath $ORIGIN for modules which use any of
|
||||||
|
the conversion libraries.
|
||||||
|
|
||||||
|
* include/features.h: Mention latest extensions in _POSIX_C_SOURCE
|
||||||
|
description.
|
||||||
|
|
||||||
|
* libio/genops.c (list_all_lock): New variable.
|
||||||
|
(_IO_un_link, _IO_link_in): Acquire lock before modifying _IO_list_all.
|
||||||
|
[PR libc/911].
|
||||||
|
|
||||||
|
* sysdeps/i386/i686/strtok.s: Add missing cld.
|
||||||
|
|
||||||
|
* sysdeps/i386/i686/mempcpy.S: New file.
|
||||||
|
|
||||||
|
1998-12-30 Geoff Keating <geoffk@ozemail.com.au>
|
||||||
|
|
||||||
|
Suppress parentheses warnings:
|
||||||
|
* sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
|
||||||
|
(DL_FIND_ARG_COMPONENTS): here,
|
||||||
|
* sysdeps/powerpc/dl-machine.c: here,
|
||||||
|
* sysdeps/powerpc/fclrexcpt.c (feclearexcept): here,
|
||||||
|
* sysdeps/powerpc/fesetround.c (fesetround): here,
|
||||||
|
* sysdeps/powerpc/feupdateenv.c (feupdateenv): here,
|
||||||
|
* sysdeps/powerpc/fraiseexcpt.c (feraiseexcept): here,
|
||||||
|
* sysdeps/powerpc/fsetexcptflg.c (fesetexceptflag): here,
|
||||||
|
* sysdeps/powerpc/s_rint.c (__rint): here,
|
||||||
|
* sysdeps/powerpc/s_rintf.c (__rintf): here,
|
||||||
|
* sysdeps/powerpc/w_sqrt.c (__sqrt): here,
|
||||||
|
* sysdeps/powerpc/w_sqrtf.c (__sqrtf): and here.
|
||||||
|
|
||||||
|
1998-12-30 Geoff Keating <geoffk@ozemail.com.au>
|
||||||
|
|
||||||
|
* wcsmbs/wcstold.c [__NO_LONG_DOUBLE_MATH]: Include wchar.h.
|
||||||
|
* wcsmbs/wcstold_l.c [__NO_LONG_DOUBLE_MATH]: Likewise. Also define
|
||||||
|
appropropriate prototypes, correct procedure names.
|
||||||
|
|
||||||
|
1998-12-30 Geoff Keating <geoffk@ozemail.com.au>
|
||||||
|
|
||||||
|
* sysdeps/generic/crypt-entry.c: Prototype __crypt_r, suppress
|
||||||
|
warning.
|
||||||
|
(__crypt_r): Add __restrict.
|
||||||
|
* sysdeps/generic/crypt.h: Remove internal routine. Add __restrict.
|
||||||
|
|
||||||
|
1998-12-31 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
|
* stdlib/longlong.h: Add missing #else in SPARC definitions.
|
||||||
|
|
||||||
|
1998-12-30 Andreas Jaeger <aj@arthur.rhein-neckar.de>
|
||||||
|
|
||||||
|
Patches by Ralf Baechle <ralf@gnu.org>:
|
||||||
|
* sysdeps/unix/sysv/linux/mips/sgidefs.h: Removed.
|
||||||
|
* sysdeps/unix/sysv/linux/mips/sys/asm.h: Removed.
|
||||||
|
* sysdeps/unix/sysv/linux/mips/sys/regdef.h: Removed.
|
||||||
|
* sysdeps/unix/sysv/linux/mips/sys/fpregdef.h: Removed.
|
||||||
|
* sysdeps/unix/sysv/linux/mips/regdef.h: Removed.
|
||||||
|
* sysdeps/unix/sysv/linux/mips/fpregdef.h: Removed.
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/mips/Makefile: Remove delete files.
|
||||||
|
* sysdeps/unix/sysv/linux/mips/Dist: Remove deleted files.
|
||||||
|
|
||||||
|
* sysdeps/mips/sys/fpregdef.h: New files, enhanced versions of deleted
|
||||||
|
linux specific files.
|
||||||
|
* sysdeps/mips/sys/asm.h: Likewise.
|
||||||
|
* sysdeps/mips/sgidefs.h: Likewise.
|
||||||
|
* sysdeps/mips/fpregdef.h: Likewise.
|
||||||
|
* sysdeps/mips/regdef.h: Likewise.
|
||||||
|
|
||||||
|
* sysdeps/mips/Makefile: Add new headers.
|
||||||
|
* sysdeps/mips/Dist: Add new files.
|
||||||
|
|
||||||
|
* sysdeps/mips/fpu_control.h (_FPU_DEFAULT): Change value.
|
||||||
|
|
||||||
|
1998-12-28 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
|
||||||
|
|
||||||
|
* iconvdata/Makefile: Remove variable assignments and rules that
|
||||||
|
are now auto-generated. Include $(objpfx)iconv-rules instead.
|
||||||
|
Btw, that removes a few typos.
|
||||||
|
(charmaps): New variable.
|
||||||
|
($(objpfx)iconv-rules): New target.
|
||||||
|
(gen-8bit-modules): Renamed from sed-generated-headers, remove .h
|
||||||
|
suffixes.
|
||||||
|
(gen-8bit-gap-modules): Renamed from awk-generated-headers, remove
|
||||||
|
.h suffixes.
|
||||||
|
(gen-special-modules): New variable.
|
||||||
|
(generated-modules): New variable.
|
||||||
|
(headers): Use it.
|
||||||
|
(before-compile): Likewise.
|
||||||
|
(generated): Likewise, and add iconv-rules.
|
||||||
|
* iconvdata/euc-cn.c: Renamed from euccn.c.
|
||||||
|
* iconvdata/euc-jp.c: Renamed from eucjp.c.
|
||||||
|
* iconvdata/euc-kr.c: Renamed from euckr.c.
|
||||||
|
* iconvdata/euc-tw.c: Renamed from euctw.c.
|
||||||
|
* iconvdata/iso_6937.c: Renamed from iso6937.c.
|
||||||
|
* iconvdata/iso_6937-2.c: Renamed from iso6937-2.c.
|
||||||
|
* iconvdata/t.61.c: Renamed from t61.c.
|
||||||
|
* iconvdata/Makefile (distribute): Adjusted for those renames.
|
||||||
|
Remove $(objpfx) from names.
|
||||||
|
|
||||||
|
1998-12-28 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
|
||||||
|
|
||||||
|
* sysdeps/generic/hp-timing.h: Fix comment.
|
||||||
|
* sysdeps/generic/dl-hash.h: Likewise.
|
||||||
|
* sysdeps/i386/i686/hp-timing.h: Likewise.
|
||||||
|
|
||||||
|
1998-12-28 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
|
||||||
|
|
||||||
|
* posix/fnmatch.c (fnmatch): Always pass unsigned char values to
|
||||||
|
FOLD macro.
|
||||||
|
|
||||||
|
1998-12-28 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
|
||||||
|
|
||||||
|
* nss/db-Makefile ($(VAR_DB)/shadow.db): Fix last change.
|
||||||
|
|
||||||
|
1998-12-29 Andreas Jaeger <aj@arthur.rhein-neckar.de>
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/mips/bits/sigaction.h: Sync with
|
||||||
|
current Linux 2.1.132 kernel sources.
|
||||||
|
|
||||||
|
1998-12-28 Andreas Jaeger <aj@arthur.rhein-neckar.de>
|
||||||
|
|
||||||
|
Patches by Ralf Baechle <ralf@gnu.org> for Linux/MIPS:
|
||||||
|
* sysdeps/unix/sysv/linux/mips/syscalls.list: Add ipc, change
|
||||||
|
pread/pwrite and llseek calls.
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/mips/sysdep.S: New file.
|
||||||
|
|
||||||
|
1998-12-29 Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
|
||||||
|
|
||||||
|
* malloc/thread-m.h [_LIBC] : Fix for NO_THREADS case.
|
||||||
|
|
||||||
1998-12-28 Ulrich Drepper <drepper@cygnus.com>
|
1998-12-28 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
* version.h (VERSION): Bump to 2.0.109.
|
* version.h (VERSION): Bump to 2.0.109.
|
||||||
|
@ -49,159 +49,28 @@ modules.so := $(addsuffix .so, $(modules))
|
|||||||
|
|
||||||
include ../Makeconfig
|
include ../Makeconfig
|
||||||
|
|
||||||
ISO8859-1-routines := iso8859-1
|
|
||||||
ISO8859-2-routines := iso8859-2
|
|
||||||
ISO8859-3-routines := iso8859-3
|
|
||||||
ISO8859-4-routines := iso8859-4
|
|
||||||
ISO8859-5-routines := iso8859-5
|
|
||||||
ISO8859-6-routines := iso8859-6
|
|
||||||
ISO8859-7-routines := iso8859-7
|
|
||||||
ISO8859-8-routines := iso8859-8
|
|
||||||
ISO8859-9-routines := iso8859-9
|
|
||||||
ISO8859-10-routines := iso8859-10
|
|
||||||
ISO8859-11-routines := iso8859-11
|
|
||||||
ISO8859-13-routines := iso8859-13
|
|
||||||
ISO8859-14-routines := iso8859-14
|
|
||||||
ISO8859-15-routines := iso8859-15
|
|
||||||
ISO646-routines := iso646
|
|
||||||
T.61-routines := t61
|
|
||||||
ISO_6937-routines := iso6937
|
|
||||||
SJIS-routines := sjis
|
|
||||||
KOI-8-routines := koi-8
|
|
||||||
KOI8-R-routines := koi8-r
|
|
||||||
LATIN-GREEK-routines := latin-greek
|
|
||||||
LATIN-GREEK-1-routines := latin-greek-1
|
|
||||||
HP-ROMAN8-routines := hp-roman8
|
|
||||||
EBCDIC-AT-DE-routines := ebcdic-at-de
|
|
||||||
EBCDIC-AT-DE-A-routines := ebcdic-at-de-a
|
|
||||||
EBCDIC-CA-FR-routines := ebcdic-ca-fr
|
|
||||||
EBCDIC-DK-NO-routines := ebcdic-dk-no
|
|
||||||
EBCDIC-DK-NO-A-routines := ebcdic-dk-no-a
|
|
||||||
EBCDIC-ES-routines := ebcdic-es
|
|
||||||
EBCDIC-ES-A-routines := ebcdic-es-a
|
|
||||||
EBCDIC-ES-S-routines := ebcdic-es-s
|
|
||||||
EBCDIC-FI-SE-routines := ebcdic-fi-se
|
|
||||||
EBCDIC-FI-SE-A-routines := ebcdic-fi-se-a
|
|
||||||
EBCDIC-FR-routines := ebcdic-fr
|
|
||||||
EBCDIC-IS-FRISS-routines := ebcdic-is-friss
|
|
||||||
EBCDIC-IT-routines := ebcdic-it
|
|
||||||
EBCDIC-PT-routines := ebcdic-pt
|
|
||||||
EBCDIC-UK-routines := ebcdic-uk
|
|
||||||
EBCDIC-US-routines := ebcdic-us
|
|
||||||
IBM037-routines := ibm037
|
|
||||||
IBM038-routines := ibm038
|
|
||||||
IBM256-routines := ibm256
|
|
||||||
IBM273-routines := ibm273
|
|
||||||
IBM274-routines := ibm274
|
|
||||||
IBM275-routines := ibm275
|
|
||||||
IBM277-routines := ibm277
|
|
||||||
IBM278-routines := ibm278
|
|
||||||
IBM280-routines := ibm280
|
|
||||||
IBM281-routines := ibm281
|
|
||||||
IBM284-routines := ibm284
|
|
||||||
IBM285-routines := ibm285
|
|
||||||
IBM290-routines := ibm290
|
|
||||||
IBM297-routines := ibm297
|
|
||||||
IBM420-routines := ibm420
|
|
||||||
IBM423-routines := ibm423
|
|
||||||
IBM424-routines := ibm424
|
|
||||||
IBM437-routines := ibm437
|
|
||||||
IBM500-routines := ibm500
|
|
||||||
IBM850-routines := ibm850
|
|
||||||
IBM851-routines := ibm851
|
|
||||||
IBM852-routines := ibm852
|
|
||||||
IBM855-routines := ibm855
|
|
||||||
IBM857-routines := ibm857
|
|
||||||
IBM860-routines := ibm860
|
|
||||||
IBM861-routines := ibm861
|
|
||||||
IBM862-routines := ibm862
|
|
||||||
IBM863-routines := ibm863
|
|
||||||
IBM864-routines := ibm864
|
|
||||||
IBM865-routines := ibm865
|
|
||||||
IBM866-routines := ibm866
|
|
||||||
IBM868-routines := ibm868
|
|
||||||
IBM869-routines := ibm869
|
|
||||||
IBM870-routines := ibm870
|
|
||||||
IBM871-routines := ibm871
|
|
||||||
IBM875-routines := ibm875
|
|
||||||
IBM880-routines := ibm880
|
|
||||||
IBM891-routines := ibm891
|
|
||||||
IBM903-routines := ibm903
|
|
||||||
IBM904-routines := ibm904
|
|
||||||
IBM905-routines := ibm905
|
|
||||||
IBM918-routines := ibm918
|
|
||||||
IBM1004-routines := ibm1004
|
|
||||||
IBM1026-routines := ibm1026
|
|
||||||
IBM1047-routines := ibm1047
|
|
||||||
CP737-routines := cp737
|
|
||||||
CP775-routines := cp775
|
|
||||||
CP874-routines := cp874
|
|
||||||
CP1250-routines := cp1250
|
|
||||||
CP1251-routines := cp1251
|
|
||||||
CP1252-routines := cp1252
|
|
||||||
CP1253-routines := cp1253
|
|
||||||
CP1254-routines := cp1254
|
|
||||||
CP1255-routines := cp1255
|
|
||||||
CP1256-routines := cp1256
|
|
||||||
CP1257-routines := cp1257
|
|
||||||
CP1258-routines := cp1258
|
|
||||||
EUC-KR-routines := euckr
|
|
||||||
JOHAB-routines := johab
|
|
||||||
UHC-routines := uhc
|
|
||||||
BIG5-routines := big5
|
|
||||||
EUC-JP-routines := eucjp
|
|
||||||
EUC-CN-routines := euccn
|
|
||||||
EUC-TW-routines := euctw
|
|
||||||
ISO-2022-JP-routines := iso-2022-jp
|
|
||||||
ISO-2022-KR-routines := iso-2022-kr
|
|
||||||
MACINTOSH-routines := macintosh
|
|
||||||
IEC_P27-1-routines := iec_p27-1
|
|
||||||
BALTIC-routines := baltic
|
|
||||||
ASMO_449-routines := asmo_449
|
|
||||||
ANSI_X3.110-routines := ansi_x3.110
|
|
||||||
CSN_369103-routines := csn_369103
|
|
||||||
CWI-routines := cwi
|
|
||||||
DEC-MCS-routines := dec-mcs
|
|
||||||
ECMA-CYRILLIC-routines := ecma-cyrillic
|
|
||||||
GOST_19768-74-routines := gost_19768-74
|
|
||||||
GREEK-CCITT-routines := greek-ccitt
|
|
||||||
GREEK7-routines := greek7
|
|
||||||
GREEK7-OLD-routines := greek7-old
|
|
||||||
INIS-routines := inis
|
|
||||||
INIS-8-routines := inis
|
|
||||||
INIS-CYRILLIC-routines := inis
|
|
||||||
ISO_6937-2-routines := iso6937-2
|
|
||||||
ISO_2033-routines := iso_2033
|
|
||||||
ISO_5427-routines := iso_5427
|
|
||||||
ISO_5427-EXT-routines := iso_5427-ext
|
|
||||||
ISO_5428-routines := iso_5428
|
|
||||||
ISO_10367-BOX-routines := iso_10367-box
|
|
||||||
MAC-IS-routines := mac-is
|
|
||||||
MAC-UK-routines := mac-uk
|
|
||||||
NATS-DANO-routines := nats-dano
|
|
||||||
NATS-SEFI-routines := nats-dano
|
|
||||||
libJIS-routines := jis0201 jis0208 jis0212
|
libJIS-routines := jis0201 jis0208 jis0212
|
||||||
libKSC-routines := ksc5601
|
libKSC-routines := ksc5601
|
||||||
libGB-routines := gb2312
|
libGB-routines := gb2312
|
||||||
libCNS-routines := cns11643l1 cns11643
|
libCNS-routines := cns11643l1 cns11643
|
||||||
|
|
||||||
LDFLAGS-EUC-KR.so = -Wl,-rpath,$(gconvdir)
|
LDFLAGS-EUC-KR.so = -Wl,-rpath,'$$ORIGIN'
|
||||||
$(objpfx)EUC-KR.so: $(objpfx)libKSC.so
|
$(objpfx)EUC-KR.so: $(objpfx)libKSC.so
|
||||||
LDFLAGS-JOHAB.so = -Wl,-rpath,$(gconvdir)
|
LDFLAGS-JOHAB.so = -Wl,-rpath,'$$ORIGIN'
|
||||||
$(objpfx)JOHAB.so: $(objpfx)libKSC.so
|
$(objpfx)JOHAB.so: $(objpfx)libKSC.so
|
||||||
LDFLAGS-UHC.so = -Wl,-rpath,$(gconvdir)
|
LDFLAGS-UHC.so = -Wl,-rpath,'$$ORIGIN'
|
||||||
$(objpfx)UHC.so: $(objpfx)libKSC.so
|
$(objpfx)UHC.so: $(objpfx)libKSC.so
|
||||||
LDFLAGS-EUC-JP.so = -Wl,-rpath,$(gconvdir)
|
LDFLAGS-EUC-JP.so = -Wl,-rpath,'$$ORIGIN'
|
||||||
$(objpfx)EUC-JP.so: $(objpfx)libJIS.so
|
$(objpfx)EUC-JP.so: $(objpfx)libJIS.so
|
||||||
LDFLAGS-EUC-CN.so = -Wl,-rpath,$(gconvdir)
|
LDFLAGS-EUC-CN.so = -Wl,-rpath,'$$ORIGIN'
|
||||||
$(objpfx)EUC-CN.so: $(objpfx)libGB.so
|
$(objpfx)EUC-CN.so: $(objpfx)libGB.so
|
||||||
LDFLAGS-EUC-TW.so = -Wl,-rpath,$(gconvdir)
|
LDFLAGS-EUC-TW.so = -Wl,-rpath,'$$ORIGIN'
|
||||||
$(objpfx)EUC-TW.so: $(objpfx)libCNS.so
|
$(objpfx)EUC-TW.so: $(objpfx)libCNS.so
|
||||||
|
|
||||||
LDFLAGS-ISO-2022-JP.so = -Wl,-rpath,$(gconvdir)
|
LDFLAGS-ISO-2022-JP.so = -Wl,-rpath,'$$ORIGIN'
|
||||||
$(objpfx)ISO-2022-JP.so: $(objpfx)libJIS.so $(objpfx)libGB.so \
|
$(objpfx)ISO-2022-JP.so: $(objpfx)libJIS.so $(objpfx)libGB.so \
|
||||||
$(objpfx)libCNS.so $(objpfx)libKSC.so
|
$(objpfx)libCNS.so $(objpfx)libKSC.so
|
||||||
LDFLAGS-ISO-2022-KR.so = -Wl,-rpath,$(gconvdir)
|
LDFLAGS-ISO-2022-KR.so = -Wl,-rpath,'$$ORIGIN'
|
||||||
$(objpfx)ISO-2022-KR.so: $(objpfx)libKSC.so
|
$(objpfx)ISO-2022-KR.so: $(objpfx)libKSC.so
|
||||||
|
|
||||||
LDFLAGS-libJIS.so = -Wl,-soname,$(@F)
|
LDFLAGS-libJIS.so = -Wl,-soname,$(@F)
|
||||||
@ -209,38 +78,39 @@ LDFLAGS-libKSC.so = -Wl,-soname,$(@F)
|
|||||||
LDFLAGS-libGB.so = -Wl,-soname,$(@F)
|
LDFLAGS-libGB.so = -Wl,-soname,$(@F)
|
||||||
LDFLAGS-libCNS.so = -Wl,-soname,$(@F)
|
LDFLAGS-libCNS.so = -Wl,-soname,$(@F)
|
||||||
|
|
||||||
distribute := 8bit-generic.c 8bit-gap.c gap.awk gaptab.awk gconv-modules \
|
distribute := gconv-modules extra-module.mk gap.awk gaptab.awk \
|
||||||
|
gen-8bit.sh gen-8bit-gap.sh gen-8bit-gap-1.sh \
|
||||||
|
TESTS $(wildcard testdata/*) run-iconv-test.sh \
|
||||||
|
8bit-generic.c 8bit-gap.c \
|
||||||
|
ansi_x3.110.c asmo_449.c baltic.c big5.c cp737.c cp737.h \
|
||||||
|
cp775.c cp775.h cp874.c cp874.h cns11643.c cns11643.h \
|
||||||
|
cns11643l1.c cns11643l1.h cp1250.c cp1251.c cp1252.c cp1253.c \
|
||||||
|
cp1254.c cp1255.c cp1256.c cp1257.c cp1258.c cp1258.h \
|
||||||
|
csn_369103.c cwi.c dec-mcs.c ebcdic-at-de.c ebcdic-at-de-a.c \
|
||||||
|
ebcdic-ca-fr.c ebcdic-dk-no.c ebcdic-dk-no-a.c ebcdic-es.c \
|
||||||
|
ebcdic-es-a.c ebcdic-es-s.c ebcdic-fr.c ebcdic-fi-se.c \
|
||||||
|
ebcdic-fi-se-a.c ebcdic-is-friss.c ebcdic-it.c ebcdic-pt.c \
|
||||||
|
ebcdic-uk.c ebcdic-us.c ecma-cyrillic.c euc-cn.c euc-jp.c \
|
||||||
|
euc-kr.c euc-tw.c gb2312.c gb2312.h gost_19768-74.c \
|
||||||
|
greek-ccitt.c greek7.c greek7-old.c hp-roman8.c ibm037.c \
|
||||||
|
ibm038.c ibm256.c ibm273.c ibm274.c ibm275.c ibm277.c \
|
||||||
|
ibm278.c ibm280.c ibm281.c ibm284.c ibm285.c ibm290.c \
|
||||||
|
ibm297.c ibm420.c ibm423.c ibm424.c ibm437.c ibm500.c \
|
||||||
|
ibm850.c ibm851.c ibm852.c ibm855.c ibm857.c ibm860.c \
|
||||||
|
ibm861.c ibm862.c ibm863.c ibm864.c ibm865.c ibm866.c \
|
||||||
|
ibm868.c ibm869.c ibm870.c ibm871.c ibm875.c ibm880.c \
|
||||||
|
ibm891.c ibm903.c ibm904.c ibm905.c ibm918.c ibm1004.c \
|
||||||
|
ibm1026.c ibm1047.c iec_p27-1.c inis.c inis-8.c \
|
||||||
|
inis-cyrillic.c iso-2022-jp.c iso-2022-kr.c iso646.c \
|
||||||
iso8859-1.c iso8859-2.c iso8859-3.c iso8859-4.c iso8859-5.c \
|
iso8859-1.c iso8859-2.c iso8859-3.c iso8859-4.c iso8859-5.c \
|
||||||
iso8859-6.c iso8859-7.c iso8859-8.c iso8859-9.c iso8859-10.c \
|
iso8859-6.c iso8859-7.c iso8859-8.c iso8859-9.c iso8859-10.c \
|
||||||
iso8859-11.c iso8859-11.h iso8859-13.c iso8859-14.c \
|
iso8859-11.c iso8859-11.h iso8859-13.c iso8859-14.c \
|
||||||
iso8859-15.c \
|
iso8859-15.c iso_2033.c iso_5427-ext.c iso_5427.c iso_5428.c \
|
||||||
t61.c iso6937.c sjis.c jis0201.h jis0208.h jis0212.h \
|
iso_6937.c iso_6937-2.c iso_10367-box.c jis0201.c jis0201.h \
|
||||||
koi-8.c koi8-r.c hp-roman8.c latin-greek.c latin-greek-1.c \
|
jis0208.c jis0208.h jis0212.c jis0212.h johab.c koi-8.c \
|
||||||
ebcdic-at-de.c ebcdic-at-de-a.c ebcdic-ca-fr.c jis0201.c \
|
koi8-r.c ksc5601.c ksc5601.h latin-greek.c latin-greek-1.c \
|
||||||
jis0208.c jis0212.c extra-module.mk euckr.c johab.c uhc.c \
|
macintosh.c mac-is.c mac-uk.c nats-dano.c nats-sefi.c sjis.c \
|
||||||
ksc5601.c ksc5601.h iso646.c big5.c eucjp.c gb2312.c gb2312.h \
|
t.61.c uhc.c
|
||||||
euccn.c euctw.c cns11643l1.c cns11643l1.h cns11643.h \
|
|
||||||
cns11643.c run-iconv-test.sh TESTS $(wildcard testdata/*) \
|
|
||||||
ebcdic-dk-no.c ebcdic-dk-no-a.c ebcdic-es.c ebcdic-es-a.c \
|
|
||||||
ebcdic-es-s.c ebcdic-fi-se.c ebcdic-fi-se-a.c ebcdic-fr.c \
|
|
||||||
ebcdic-is-friss.c ebcdic-it.c ebcdic-pt.c ebcdic-uk.c \
|
|
||||||
ebcdic-us.c ibm037.c ibm038.c ibm256.c ibm273.c ibm274.c \
|
|
||||||
ibm275.c ibm277.c ibm278.c ibm280.c ibm281.c ibm284.c \
|
|
||||||
ibm285.c ibm290.c ibm297.c ibm420.c ibm423.c ibm424.c \
|
|
||||||
ibm437.c ibm500.c ibm850.c ibm851.c ibm852.c ibm855.c \
|
|
||||||
ibm857.c ibm860.c ibm861.c ibm862.c ibm863.c ibm864.c \
|
|
||||||
ibm865.c ibm868.c ibm869.c ibm870.c ibm871.c ibm875.c \
|
|
||||||
ibm880.c ibm891.c ibm903.c ibm904.c ibm905.c ibm918.c \
|
|
||||||
ibm1004.c ibm1026.c ibm1047.c cp1250.c cp1251.c cp1252.c \
|
|
||||||
ibm866.c cp1258.c cp1258.h \
|
|
||||||
cp1253.c cp1254.c cp1255.c cp1256.c cp1257.c cp874.c cp874.h \
|
|
||||||
cp737.c cp737.h cp775.c cp775.h iso-2022-jp.c iso-2022-kr.c \
|
|
||||||
gen-8bit.sh gen-8bit-gap.sh gen-8bit-gap-1.sh macintosh.c \
|
|
||||||
iec_p27-1.c baltic.c asmo_449.c ansi_x3.110.c csn_369103.c \
|
|
||||||
cwi.c dec-mcs.c ecma-cyrillic.c gost_19768-74.c greek-ccitt.c \
|
|
||||||
greek7.c greek7-old.c inis.c inis-8.c inis-cyrillic.c \
|
|
||||||
iso6937-2.c iso_2033.c iso_5427.c iso_5427-ext.c mac-uk.c \
|
|
||||||
iso_5428.c iso_10367-box.c mac-is.c nats-dano.c nats-sefi.c
|
|
||||||
|
|
||||||
# We build the transformation modules only when we build shared libs.
|
# We build the transformation modules only when we build shared libs.
|
||||||
ifeq (yes,$(build-shared))
|
ifeq (yes,$(build-shared))
|
||||||
@ -258,6 +128,10 @@ $(LINK.o) -shared -o $@ $(sysdep-LDFLAGS) $(config-LDFLAGS) \
|
|||||||
endef
|
endef
|
||||||
|
|
||||||
# Rule to generate the shared objects.
|
# Rule to generate the shared objects.
|
||||||
|
charmaps = ../localedata/charmaps
|
||||||
|
ifndef no_deps
|
||||||
|
-include $(objpfx)iconv-rules
|
||||||
|
endif
|
||||||
extra-modules-left := $(modules)
|
extra-modules-left := $(modules)
|
||||||
include extra-module.mk
|
include extra-module.mk
|
||||||
|
|
||||||
@ -269,6 +143,42 @@ install-others = $(addprefix $(inst_gconvdir)/, $(modules.so)) \
|
|||||||
# If we have the localedata add-on available we can build the conversion
|
# If we have the localedata add-on available we can build the conversion
|
||||||
# tables for numerous charsets.
|
# tables for numerous charsets.
|
||||||
|
|
||||||
|
gen-8bit-modules := iso8859-2 iso8859-3 iso8859-4 iso8859-6 iso8859-9 koi-8 \
|
||||||
|
hp-roman8 ebcdic-at-de ebcdic-at-de-a ebcdic-ca-fr \
|
||||||
|
ebcdic-dk-no ebcdic-dk-no-a ebcdic-es ebcdic-es-a \
|
||||||
|
ebcdic-es-s ebcdic-fi-se ebcdic-fi-se-a ebcdic-fr \
|
||||||
|
ebcdic-is-friss ebcdic-it ebcdic-pt ebcdic-uk ebcdic-us \
|
||||||
|
ibm037 ibm038 ibm274 ibm275 ibm423 ibm500 ibm870 ibm871 \
|
||||||
|
ibm891 ibm903 ibm904 ibm905 ibm1047
|
||||||
|
|
||||||
|
gen-8bit-gap-modules := koi8-r latin-greek latin-greek-1 ibm256 ibm273 \
|
||||||
|
ibm277 ibm278 ibm280 ibm281 ibm284 ibm285 ibm290 \
|
||||||
|
ibm297 ibm420 ibm424 ibm437 ibm850 ibm851 ibm852 \
|
||||||
|
ibm855 ibm857 ibm860 ibm861 ibm862 ibm863 ibm864 \
|
||||||
|
ibm865 ibm868 ibm869 ibm875 ibm880 ibm918 ibm1004 \
|
||||||
|
ibm1026 cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 \
|
||||||
|
cp1256 cp1257 ibm866 iso8859-5 iso8859-7 iso8859-8 \
|
||||||
|
iso8859-10 macintosh iec_p27-1 baltic asmo_449 \
|
||||||
|
csn_369103 cwi dec-mcs ecma-cyrillic gost_19768-74 \
|
||||||
|
greek-ccitt greek7 greek7-old inis inis-8 \
|
||||||
|
inis-cyrillic iso_2033 iso_5427 iso_5427-ext \
|
||||||
|
iso_5428 iso_10367-box mac-is nats-dano nats-sefi \
|
||||||
|
iso8859-13 iso8859-14 iso8859-15 mac-uk
|
||||||
|
|
||||||
|
gen-special-modules := iso8859-7jp
|
||||||
|
|
||||||
|
generated-modules := $(gen-8bit-modules) $(gen-8bit-gap-modules) \
|
||||||
|
$(gen-special-modules)
|
||||||
|
|
||||||
|
generated = $(generated-modules:=.h) $(generated-modules:=.stmp) \
|
||||||
|
iconv-test.out iconv-rules
|
||||||
|
ifdef objpfx
|
||||||
|
generated += gconv-modules
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Rules to generate the headers.
|
||||||
|
export AWK
|
||||||
|
|
||||||
define generate-8bit-table
|
define generate-8bit-table
|
||||||
$(make-target-directory)
|
$(make-target-directory)
|
||||||
$(SHELL) ./gen-8bit.sh $< > $(@:stmp=T)
|
$(SHELL) ./gen-8bit.sh $< > $(@:stmp=T)
|
||||||
@ -276,17 +186,6 @@ $(move-if-change) $(@:stmp=T) $(@:stmp=h)
|
|||||||
touch $@
|
touch $@
|
||||||
endef
|
endef
|
||||||
|
|
||||||
sed-generated-headers := iso8859-2.h iso8859-3.h iso8859-4.h iso8859-6.h \
|
|
||||||
iso8859-9.h koi-8.h hp-roman8.h ebcdic-at-de.h \
|
|
||||||
ebcdic-at-de-a.h ebcdic-ca-fr.h ebcdic-dk-no.h \
|
|
||||||
ebcdic-dk-no-a.h ebcdic-es.h ebcdic-es-a.h \
|
|
||||||
ebcdic-es-s.h ebcdic-fi-se.h ebcdic-fi-se-a.h \
|
|
||||||
ebcdic-fr.h ebcdic-is-friss.h ebcdic-it.h \
|
|
||||||
ebcdic-pt.h ebcdic-uk.h ebcdic-us.h ibm037.h \
|
|
||||||
ibm038.h ibm274.h ibm275.h ibm423.h ibm500.h \
|
|
||||||
ibm870.h ibm871.h ibm891.h ibm903.h ibm904.h \
|
|
||||||
ibm905.h ibm1047.h
|
|
||||||
|
|
||||||
define generate-8bit-gap-table
|
define generate-8bit-gap-table
|
||||||
$(make-target-directory)
|
$(make-target-directory)
|
||||||
$(SHELL) ./gen-8bit-gap.sh $< > $(@:stmp=T)
|
$(SHELL) ./gen-8bit-gap.sh $< > $(@:stmp=T)
|
||||||
@ -294,293 +193,52 @@ $(move-if-change) $(@:stmp=T) $(@:stmp=h)
|
|||||||
touch $@
|
touch $@
|
||||||
endef
|
endef
|
||||||
|
|
||||||
export AWK
|
|
||||||
|
|
||||||
awk-generated-headers := koi8-r.h latin-greek.h latin-greek-1.h \
|
|
||||||
ibm256.h ibm273.h ibm277.h ibm278.h ibm280.h \
|
|
||||||
ibm281.h ibm284.h ibm285.h ibm290.h ibm297.h \
|
|
||||||
ibm420.h ibm424.h ibm437.h ibm850.h ibm851.h \
|
|
||||||
ibm852.h ibm855.h ibm857.h ibm860.h ibm861.h \
|
|
||||||
ibm862.h ibm863.h ibm864.h ibm865.h ibm868.h \
|
|
||||||
ibm869.h ibm875.h ibm880.h ibm918.h ibm1004.h \
|
|
||||||
ibm1026.h cp1250.h cp1251.h cp1252.h cp1253.h \
|
|
||||||
cp1254.h cp1255.h cp1256.h cp1257.h ibm866.h \
|
|
||||||
iso8859-5.h iso8859-7.h iso8859-8.h \
|
|
||||||
iso8859-10.h iso8859-7jp.h macintosh.h \
|
|
||||||
iec_p27-1.h baltic.h asmo_449.h csn_369103.h \
|
|
||||||
cwi.h dec-mcs.h ecma-cyrillic.h gost_19768-74.h\
|
|
||||||
greek-ccitt.h greek7.h greek7-old.h inis.h \
|
|
||||||
inis-8.h inis-cyrillic.h iso_2033.h iso_5427.h \
|
|
||||||
iso_5427-ext.h iso_5428.h iso_10367-box.h \
|
|
||||||
mac-is.h nats-dano.h nats-sefi.h iso8859-13.h \
|
|
||||||
iso8859-14.h iso8859-15.h mac-uk.h
|
|
||||||
|
|
||||||
generated = $(sed-generated-headers) $(sed-generated-headers:%.h=%.stmp) \
|
|
||||||
$(awk-generated-headers) $(awk-generated-headers:%.h=%.stmp) \
|
|
||||||
iconv-test.out
|
|
||||||
ifdef objpfx
|
|
||||||
generated += $(objpfx)gconv-modules
|
|
||||||
endif
|
|
||||||
|
|
||||||
# The headers must be generated before the compilation.
|
# The headers must be generated before the compilation.
|
||||||
before-compile = $(addprefix $(objpfx),\
|
before-compile = $(addprefix $(objpfx),$(generated-modules:=.h))
|
||||||
$(sed-generated-headers) $(awk-generated-headers))
|
|
||||||
|
|
||||||
# Rules to generate the headers.
|
$(objpfx)iconv-rules: Makefile
|
||||||
$(sed-generated-headers:%=$(objpfx)%): $(objpfx)%.h: $(objpfx)%.stmp
|
|
||||||
@:
|
|
||||||
|
|
||||||
$(objpfx)iso8859-2.stmp: ../localedata/charmaps/ISO-8859-2 gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
$(objpfx)iso8859-3.stmp: ../localedata/charmaps/ISO-8859-3 gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
$(objpfx)iso8859-4.stmp: ../localedata/charmaps/ISO-8859-4 gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
$(objpfx)iso8859-6.stmp: ../localedata/charmaps/ISO-8859-6 gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
$(objpfx)iso8859-9.stmp: ../localedata/charmaps/ISO-8859-9 gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
|
|
||||||
$(objpfx)koi-8.stmp: ../localedata/charmaps/KOI-8 gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
$(objpfx)hp-roman8.stmp: ../localedata/charmaps/HP-ROMAN8 gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
|
|
||||||
$(objpfx)ebcdic-at-de.stmp: ../localedata/charmaps/EBCDIC-AT-DE gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
$(objpfx)ebcdic-at-de-a.stmp: ../localedata/charmaps/EBCDIC-AT-DE-A gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
$(objpfx)ebcdic-ca-fr.stmp: ../localedata/charmaps/EBCDIC-CA-FR gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
$(objpfx)ebcdic-dk-no.stmp: ../localedata/charmaps/EBCDIC-DK-NO gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
$(objpfx)ebcdic-dk-no-a.stmp: ../localedata/charmaps/EBCDIC-DK-NO-A gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
$(objpfx)ebcdic-es.stmp: ../localedata/charmaps/EBCDIC-ES gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
$(objpfx)ebcdic-es-a.stmp: ../localedata/charmaps/EBCDIC-ES-A gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
$(objpfx)ebcdic-es-s.stmp: ../localedata/charmaps/EBCDIC-ES-S gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
$(objpfx)ebcdic-fi-se.stmp: ../localedata/charmaps/EBCDIC-FI-SE gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
$(objpfx)ebcdic-fi-se-a.stmp: ../localedata/charmaps/EBCDIC-FI-SE-A gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
$(objpfx)ebcdic-fr.stmp: ../localedata/charmaps/EBCDIC-FR gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
$(objpfx)ebcdic-is-friss.stmp: ../localedata/charmaps/EBCDIC-IS-FRISS gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
$(objpfx)ebcdic-it.stmp: ../localedata/charmaps/EBCDIC-IT gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
$(objpfx)ebcdic-pt.stmp: ../localedata/charmaps/EBCDIC-PT gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
$(objpfx)ebcdic-uk.stmp: ../localedata/charmaps/EBCDIC-UK gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
$(objpfx)ebcdic-us.stmp: ../localedata/charmaps/EBCDIC-US gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
|
|
||||||
$(objpfx)ibm037.stmp: ../localedata/charmaps/IBM037 gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
$(objpfx)ibm038.stmp: ../localedata/charmaps/IBM038 gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
$(objpfx)ibm274.stmp: ../localedata/charmaps/IBM274 gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
$(objpfx)ibm275.stmp: ../localedata/charmaps/IBM275 gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
$(objpfx)ibm423.stmp: ../localedata/charmaps/IBM423 gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
$(objpfx)ibm500.stmp: ../localedata/charmaps/IBM500 gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
$(objpfx)ibm870.stmp: ../localedata/charmaps/IBM870 gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
$(objpfx)ibm871.stmp: ../localedata/charmaps/IBM871 gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
$(objpfx)ibm891.stmp: ../localedata/charmaps/IBM891 gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
$(objpfx)ibm903.stmp: ../localedata/charmaps/IBM903 gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
$(objpfx)ibm904.stmp: ../localedata/charmaps/IBM904 gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
$(objpfx)ibm905.stmp: ../localedata/charmaps/IBM905 gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
$(objpfx)ibm1047.stmp: ../localedata/charmaps/IBM1047 gen-8bit.sh
|
|
||||||
$(generate-8bit-table)
|
|
||||||
|
|
||||||
$(awk-generated-headers:%=$(objpfx)%): $(objpfx)%.h: $(objpfx)%.stmp
|
|
||||||
@:
|
|
||||||
|
|
||||||
$(objpfx)iso8859-5.stmp: ../localedata/charmaps/ISO-8859-5 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)iso8859-7.stmp: ../localedata/charmaps/ISO-8859-7 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)iso8859-7jp.stmp: ../localedata/charmaps/ISO-8859-7 gen-8bit-gap-1.sh
|
|
||||||
$(make-target-directory)
|
$(make-target-directory)
|
||||||
$(SHELL) ./gen-8bit-gap-1.sh $< >$(@:stmp=T)
|
{ echo $(filter-out lib%, $(modules)); \
|
||||||
|
echo 8bit $(gen-8bit-modules); \
|
||||||
|
echo 8bit-gap $(gen-8bit-gap-modules); } | \
|
||||||
|
$(AWK) 'NR == 1 { \
|
||||||
|
for (i = 1; i <= NF; i++) \
|
||||||
|
printf "%s-routines := %s\n", $$i, tolower($$i); \
|
||||||
|
}; \
|
||||||
|
NR > 1 { \
|
||||||
|
for (i = 2; i <= NF; i++) { \
|
||||||
|
printf "$$(objpfx)%s.stmp: ", $$i; \
|
||||||
|
map = toupper($$i); \
|
||||||
|
sub(/^ISO8859/, "ISO-8859", map); \
|
||||||
|
if (map == "ISO_2033") map = map "-1983"; \
|
||||||
|
printf "$$(charmaps)/%s ", map; \
|
||||||
|
printf "gen-%s.sh\n", $$1; \
|
||||||
|
printf "\t$$(generate-%s-table)\n", $$1; \
|
||||||
|
} \
|
||||||
|
}' > $@.new
|
||||||
|
mv -f $@.new $@
|
||||||
|
|
||||||
|
$(generated-modules:%=$(objpfx)%.h): $(objpfx)%.h: $(objpfx)%.stmp
|
||||||
|
@:
|
||||||
|
|
||||||
|
$(gen-8bit-modules:%=$(objpfx)%.stmp): $(objpfx)%.stmp: $(objpfx)iconv-rules
|
||||||
|
$(gen-8bit-gap-modules:%=$(objpfx)%.stmp): $(objpfx)%.stmp: $(objpfx)iconv-rules
|
||||||
|
|
||||||
|
$(objpfx)iso8859-7jp.stmp: $(charmaps)/ISO-8859-7 gen-8bit-gap-1.sh
|
||||||
|
$(make-target-directory)
|
||||||
|
$(SHELL) ./gen-8bit-gap-1.sh $< > $(@:stmp=T)
|
||||||
$(move-if-change) $(@:stmp=T) $(@:stmp=h)
|
$(move-if-change) $(@:stmp=T) $(@:stmp=h)
|
||||||
touch $@
|
touch $@
|
||||||
|
|
||||||
$(objpfx)iso8859-8.stmp: ../localedata/charmaps/ISO-8859-8 gen-8bit-gap.sh
|
headers: $(addprefix $(objpfx), $(generated-modules:=.h))
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)iso8859-10.stmp: ../localedata/charmaps/ISO-8859-10 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)iso8859-13.stmp: ../localedata/charmaps/ISO-8859-13 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)iso8859-14.stmp: ../localedata/charmaps/ISO-8859-14 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)iso8859-15.stmp: ../localedata/charmaps/ISO-8859-15 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
|
|
||||||
$(objpfx)koi8-r.stmp: ../localedata/charmaps/KOI8-R gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)latin-greek.stmp: ../localedata/charmaps/LATIN-GREEK gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)latin-greek-1.stmp: ../localedata/charmaps/LATIN-GREEK-1 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
|
|
||||||
$(objpfx)ibm256.stmp: ../localedata/charmaps/IBM256 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)ibm273.stmp: ../localedata/charmaps/IBM273 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)ibm277.stmp: ../localedata/charmaps/IBM277 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)ibm278.stmp: ../localedata/charmaps/IBM278 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)ibm280.stmp: ../localedata/charmaps/IBM280 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)ibm281.stmp: ../localedata/charmaps/IBM281 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)ibm284.stmp: ../localedata/charmaps/IBM284 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)ibm285.stmp: ../localedata/charmaps/IBM285 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)ibm290.stmp: ../localedata/charmaps/IBM290 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)ibm297.stmp: ../localedata/charmaps/IBM297 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)ibm420.stmp: ../localedata/charmaps/IBM420 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)ibm424.stmp: ../localedata/charmaps/IBM424 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)ibm437.stmp: ../localedata/charmaps/IBM437 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)ibm850.stmp: ../localedata/charmaps/IBM850 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)ibm851.stmp: ../localedata/charmaps/IBM851 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)ibm852.stmp: ../localedata/charmaps/IBM852 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)ibm855.stmp: ../localedata/charmaps/IBM855 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)ibm857.stmp: ../localedata/charmaps/IBM857 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)ibm860.stmp: ../localedata/charmaps/IBM860 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)ibm861.stmp: ../localedata/charmaps/IBM861 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)ibm862.stmp: ../localedata/charmaps/IBM862 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)ibm863.stmp: ../localedata/charmaps/IBM863 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)ibm864.stmp: ../localedata/charmaps/IBM864 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)ibm865.stmp: ../localedata/charmaps/IBM865 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)ibm866.stmp: ../localedata/charmaps/IBM866 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)ibm868.stmp: ../localedata/charmaps/IBM868 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)ibm869.stmp: ../localedata/charmaps/IBM869 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)ibm875.stmp: ../localedata/charmaps/IBM875 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)ibm880.stmp: ../localedata/charmaps/IBM880 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)ibm918.stmp: ../localedata/charmaps/IBM918 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)ibm1004.stmp: ../localedata/charmaps/IBM1004 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)ibm1026.stmp: ../localedata/charmaps/IBM1026 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
|
|
||||||
$(objpfx)cp1250.stmp: ../localedata/charmaps/CP1250 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)cp1251.stmp: ../localedata/charmaps/CP1251 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)cp1252.stmp: ../localedata/charmaps/CP1252 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)cp1253.stmp: ../localedata/charmaps/CP1253 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)cp1254.stmp: ../localedata/charmaps/CP1254 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)cp1255.stmp: ../localedata/charmaps/CP1255 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)cp1256.stmp: ../localedata/charmaps/CP1256 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)cp1257.stmp: ../localedata/charmaps/CP1257 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
|
|
||||||
$(objpfx)macintosh.stmp: ../localedata/charmaps/MACINTOSH gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)iec_p27-1.stmp: ../localedata/charmaps/IEC_P27-1 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)baltic.stmp: ../localedata/charmaps/BALTIC gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)asmo_449.stmp: ../localedata/charmaps/ASMO_449 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)csn_369103.stmp: ../localedata/charmaps/CSN_369103 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)cwi.stmp: ../localedata/charmaps/CWI gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)dec-mcs.stmp: ../localedata/charmaps/DEC-MCS gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)ecma-cyrillic.stmp: ../localedata/charmaps/ECMA-CYRILLIC \
|
|
||||||
gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)gost_19768-74.stmp: ../localedata/charmaps/GOST_19768-74 \
|
|
||||||
gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)greek-ccitt.stmp: ../localedata/charmaps/GREEK-CCITT gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)greek7.stmp: ../localedata/charmaps/GREEK7 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)greek7-old.stmp: ../localedata/charmaps/GREEK7-OLD gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)inis.stmp: ../localedata/charmaps/INIS gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)inis-8.stmp: ../localedata/charmaps/INIS-8 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)inis-cyrillic.stmp: ../localedata/charmaps/INIS-CYRILLIC \
|
|
||||||
gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)iso_2033.stmp: ../localedata/charmaps/ISO_2033-1983 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)iso_5427.stmp: ../localedata/charmaps/ISO_5427 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)iso_5427-ext.stmp: ../localedata/charmaps/ISO_5427-EXT gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)iso_5428.stmp: ../localedata/charmaps/ISO_5428 gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)iso_10367-box.stmp: ../localedata/charmaps/ISO_10367-BOX \
|
|
||||||
gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)mac-is.stmp: ../localedata/charmaps/MAC-IS gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)mac-uk.stmp: ../localedata/charmaps/MAC-UK gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)nats-dano.stmp: ../localedata/charmaps/NATS-DANO gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
$(objpfx)nats-sefi.stmp: ../localedata/charmaps/NATS-SEFI gen-8bit-gap.sh
|
|
||||||
$(generate-8bit-gap-table)
|
|
||||||
|
|
||||||
headers: $(addprefix $(objpfx),\
|
|
||||||
$(sed-generated-headers) $(awk-generated-headers))
|
|
||||||
|
|
||||||
$(addprefix $(inst_gconvdir)/, $(modules.so)): \
|
$(addprefix $(inst_gconvdir)/, $(modules.so)): \
|
||||||
$(inst_gconvdir)/%: $(objpfx)% $(+force)
|
$(inst_gconvdir)/%: $(objpfx)% $(+force)
|
||||||
$(do-install-program)
|
$(do-install-program)
|
||||||
$(inst_gconvdir)/gconv-modules: gconv-modules $(+force)
|
$(inst_gconvdir)/gconv-modules: gconv-modules $(+force)
|
||||||
$(do-install)
|
$(do-install)
|
||||||
endif
|
|
||||||
|
endif # build-shared = yes
|
||||||
|
|
||||||
include ../Rules
|
include ../Rules
|
||||||
|
|
||||||
|
@ -26,7 +26,8 @@
|
|||||||
_ISOC9X_SOURCE Extensions to ISO C 89 from ISO C 9x.
|
_ISOC9X_SOURCE Extensions to ISO C 89 from ISO C 9x.
|
||||||
_POSIX_SOURCE IEEE Std 1003.1.
|
_POSIX_SOURCE IEEE Std 1003.1.
|
||||||
_POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
|
_POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
|
||||||
if >=199309L, add IEEE Std 1003.1b-1993
|
if >=199309L, add IEEE Std 1003.1b-1993;
|
||||||
|
if >=199506L, add IEEE Std 1003.1c-1995
|
||||||
_XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
|
_XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
|
||||||
Single Unix conformance is wanted.
|
Single Unix conformance is wanted.
|
||||||
_XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
|
_XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
|
||||||
|
@ -31,6 +31,8 @@
|
|||||||
#endif
|
#endif
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
static _IO_lock_t list_all_lock = _IO_lock_initializer;
|
||||||
|
|
||||||
void
|
void
|
||||||
_IO_un_link (fp)
|
_IO_un_link (fp)
|
||||||
_IO_FILE *fp;
|
_IO_FILE *fp;
|
||||||
@ -38,6 +40,7 @@ _IO_un_link (fp)
|
|||||||
if (fp->_flags & _IO_LINKED)
|
if (fp->_flags & _IO_LINKED)
|
||||||
{
|
{
|
||||||
_IO_FILE **f;
|
_IO_FILE **f;
|
||||||
|
_IO_lock_lock (list_all_lock);
|
||||||
for (f = &_IO_list_all; *f != NULL; f = &(*f)->_chain)
|
for (f = &_IO_list_all; *f != NULL; f = &(*f)->_chain)
|
||||||
{
|
{
|
||||||
if (*f == fp)
|
if (*f == fp)
|
||||||
@ -46,6 +49,7 @@ _IO_un_link (fp)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
_IO_lock_unlock (list_all_lock);
|
||||||
fp->_flags &= ~_IO_LINKED;
|
fp->_flags &= ~_IO_LINKED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -57,8 +61,10 @@ _IO_link_in (fp)
|
|||||||
if ((fp->_flags & _IO_LINKED) == 0)
|
if ((fp->_flags & _IO_LINKED) == 0)
|
||||||
{
|
{
|
||||||
fp->_flags |= _IO_LINKED;
|
fp->_flags |= _IO_LINKED;
|
||||||
|
_IO_lock_lock (list_all_lock);
|
||||||
fp->_chain = _IO_list_all;
|
fp->_chain = _IO_list_all;
|
||||||
_IO_list_all = fp;
|
_IO_list_all = fp;
|
||||||
|
_IO_lock_unlock (list_all_lock);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
1998-12-31 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
|
* sysdeps/pthread/bits/stdio-lock.h: Define _IO_lock_lock and
|
||||||
|
_IO_lock_unlock.
|
||||||
|
|
||||||
1998-12-29 Ulrich Drepper <drepper@cygnus.com>
|
1998-12-29 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
* semaphore.c (sem_trywait): Don't forget to unlock the semaphore
|
* semaphore.c (sem_trywait): Don't forget to unlock the semaphore
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Thread package specific definitions of stream lock type.
|
/* Thread package specific definitions of stream lock type.
|
||||||
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -33,3 +33,7 @@ typedef pthread_mutex_t _IO_lock_t;
|
|||||||
__libc_lock_init_recursive (_name)
|
__libc_lock_init_recursive (_name)
|
||||||
#define _IO_lock_fini(_name) \
|
#define _IO_lock_fini(_name) \
|
||||||
__libc_lock_fini_recursive (_name)
|
__libc_lock_fini_recursive (_name)
|
||||||
|
#define _IO_lock_lock(_name) \
|
||||||
|
__libc_lock_lock (_name)
|
||||||
|
#define _IO_lock_unlock(_name) \
|
||||||
|
__libc_lock_unlock (_name)
|
||||||
|
@ -88,8 +88,9 @@ typedef pthread_mutex_t mutex_t;
|
|||||||
|
|
||||||
#endif /* MUTEX_INITIALIZER && PTHREAD_MUTEX_INITIALIZER */
|
#endif /* MUTEX_INITIALIZER && PTHREAD_MUTEX_INITIALIZER */
|
||||||
|
|
||||||
|
#ifndef NO_THREADS
|
||||||
|
|
||||||
/* thread specific data */
|
/* thread specific data for glibc */
|
||||||
|
|
||||||
#include <bits/libc-tsd.h>
|
#include <bits/libc-tsd.h>
|
||||||
|
|
||||||
@ -99,6 +100,7 @@ __libc_tsd_define (, MALLOC) /* declaration/common definition */
|
|||||||
#define tsd_setspecific(key, data) __libc_tsd_set (MALLOC, (data))
|
#define tsd_setspecific(key, data) __libc_tsd_set (MALLOC, (data))
|
||||||
#define tsd_getspecific(key, vptr) ((vptr) = __libc_tsd_get (MALLOC))
|
#define tsd_getspecific(key, vptr) ((vptr) = __libc_tsd_get (MALLOC))
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
#elif defined(USE_PTHREADS) /* Posix threads */
|
#elif defined(USE_PTHREADS) /* Posix threads */
|
||||||
|
|
||||||
|
@ -1,32 +1,33 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
#include <printf.h>
|
#include <printf.h>
|
||||||
#include <stdarg.h>
|
|
||||||
|
|
||||||
/*@group*/
|
/*@group*/
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
char *name;
|
char *name;
|
||||||
} Widget;
|
}
|
||||||
|
Widget;
|
||||||
/*@end group*/
|
/*@end group*/
|
||||||
|
|
||||||
int
|
int
|
||||||
print_widget (FILE *stream,
|
print_widget (FILE *stream,
|
||||||
const struct printf_info *info,
|
const struct printf_info *info,
|
||||||
va_list *app)
|
const void *const *args)
|
||||||
{
|
{
|
||||||
Widget *w;
|
const Widget *w;
|
||||||
char *buffer;
|
char *buffer;
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
/* Format the output into a string. */
|
/* Format the output into a string. */
|
||||||
w = va_arg (*app, Widget *);
|
w = *((const Widget **) (args[0]));
|
||||||
len = asprintf (&buffer, "<Widget %p: %s>", w, w->name);
|
len = asprintf (&buffer, "<Widget %p: %s>", w, w->name);
|
||||||
if (len == -1)
|
if (len == -1)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
/* Pad to the minimum field width and print to the stream. */
|
/* Pad to the minimum field width and print to the stream. */
|
||||||
len = fprintf (stream, "%*s",
|
len = fprintf (stream, "%*s",
|
||||||
(info->left ? - info->width : info->width),
|
(info->left ? -info->width : info->width),
|
||||||
buffer);
|
buffer);
|
||||||
|
|
||||||
/* Clean up and return. */
|
/* Clean up and return. */
|
||||||
|
@ -116,7 +116,7 @@ $(VAR_DB)/shadow.db: /etc/shadow
|
|||||||
@if chgrp shadow $@ 2>/dev/null; then \
|
@if chgrp shadow $@ 2>/dev/null; then \
|
||||||
chmod g+r $@; \
|
chmod g+r $@; \
|
||||||
else \
|
else \
|
||||||
chown 0; chgrp 0; chmod 600; \
|
chown 0 $@; chgrp 0 $@; chmod 600 $@; \
|
||||||
echo; \
|
echo; \
|
||||||
echo "Warning: The shadow password database $@"; \
|
echo "Warning: The shadow password database $@"; \
|
||||||
echo "has been set to be readable only by root. You may want"; \
|
echo "has been set to be readable only by root. You may want"; \
|
||||||
|
@ -136,7 +136,7 @@ fnmatch (pattern, string, flags)
|
|||||||
int flags;
|
int flags;
|
||||||
{
|
{
|
||||||
register const char *p = pattern, *n = string;
|
register const char *p = pattern, *n = string;
|
||||||
register char c;
|
register unsigned char c;
|
||||||
|
|
||||||
/* Note that this evaluates C many times. */
|
/* Note that this evaluates C many times. */
|
||||||
# ifdef _LIBC
|
# ifdef _LIBC
|
||||||
@ -170,7 +170,7 @@ fnmatch (pattern, string, flags)
|
|||||||
return FNM_NOMATCH;
|
return FNM_NOMATCH;
|
||||||
c = FOLD (c);
|
c = FOLD (c);
|
||||||
}
|
}
|
||||||
if (FOLD (*n) != c)
|
if (FOLD ((unsigned char) *n) != c)
|
||||||
return FNM_NOMATCH;
|
return FNM_NOMATCH;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -202,10 +202,10 @@ fnmatch (pattern, string, flags)
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
{
|
{
|
||||||
char c1 = (!(flags & FNM_NOESCAPE) && c == '\\') ? *p : c;
|
unsigned char c1 = (!(flags & FNM_NOESCAPE) && c == '\\') ? *p : c;
|
||||||
c1 = FOLD (c1);
|
c1 = FOLD (c1);
|
||||||
for (--p; *n != '\0'; ++n)
|
for (--p; *n != '\0'; ++n)
|
||||||
if ((c == '[' || FOLD (*n) == c1) &&
|
if ((c == '[' || FOLD ((unsigned char) *n) == c1) &&
|
||||||
fnmatch (p, n, flags & ~FNM_PERIOD) == 0)
|
fnmatch (p, n, flags & ~FNM_PERIOD) == 0)
|
||||||
return 0;
|
return 0;
|
||||||
return FNM_NOMATCH;
|
return FNM_NOMATCH;
|
||||||
@ -239,13 +239,13 @@ fnmatch (pattern, string, flags)
|
|||||||
c = *p++;
|
c = *p++;
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
int fn = FOLD (*n);
|
unsigned int fn = FOLD (*n);
|
||||||
|
|
||||||
if (!(flags & FNM_NOESCAPE) && c == '\\')
|
if (!(flags & FNM_NOESCAPE) && c == '\\')
|
||||||
{
|
{
|
||||||
if (*p == '\0')
|
if (*p == '\0')
|
||||||
return FNM_NOMATCH;
|
return FNM_NOMATCH;
|
||||||
c = FOLD (*p);
|
c = FOLD ((unsigned char) *p);
|
||||||
++p;
|
++p;
|
||||||
|
|
||||||
if (c == fn)
|
if (c == fn)
|
||||||
@ -313,7 +313,7 @@ fnmatch (pattern, string, flags)
|
|||||||
if (c == '-' && *p != ']')
|
if (c == '-' && *p != ']')
|
||||||
{
|
{
|
||||||
/* It is a range. */
|
/* It is a range. */
|
||||||
char cend = *p++;
|
unsigned char cend = *p++;
|
||||||
if (!(flags & FNM_NOESCAPE) && cend == '\\')
|
if (!(flags & FNM_NOESCAPE) && cend == '\\')
|
||||||
cend = *p++;
|
cend = *p++;
|
||||||
if (cend == '\0')
|
if (cend == '\0')
|
||||||
@ -364,7 +364,7 @@ fnmatch (pattern, string, flags)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
if (c != FOLD (*n))
|
if (c != FOLD ((unsigned char) *n))
|
||||||
return FNM_NOMATCH;
|
return FNM_NOMATCH;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1168,6 +1168,7 @@ extern USItype __udiv_qrnnd ();
|
|||||||
"1" ((USItype)(n1)), \
|
"1" ((USItype)(n1)), \
|
||||||
"0" ((USItype)(n0)) : "%g1" __AND_CLOBBER_CC)
|
"0" ((USItype)(n0)) : "%g1" __AND_CLOBBER_CC)
|
||||||
#define UDIV_TIME (3+7*32) /* 7 instructions/iteration. 32 iterations. */
|
#define UDIV_TIME (3+7*32) /* 7 instructions/iteration. 32 iterations. */
|
||||||
|
#else
|
||||||
extern USItype __udiv_qrnnd __P ((USItype *, USItype, USItype, USItype));
|
extern USItype __udiv_qrnnd __P ((USItype *, USItype, USItype, USItype));
|
||||||
#define UDIV_TIME 140
|
#define UDIV_TIME 140
|
||||||
#endif /* udiv_qrnnd */
|
#endif /* udiv_qrnnd */
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Wrapper around MD5 sum replacement for crypt function.
|
/* Wrapper around MD5 sum replacement for crypt function.
|
||||||
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
||||||
|
|
||||||
@ -34,6 +34,8 @@ extern char *__md5_crypt_r (const char *key, const char *salt, char *buffer,
|
|||||||
int buflen);
|
int buflen);
|
||||||
extern char *__md5_crypt (const char *key, const char *salt);
|
extern char *__md5_crypt (const char *key, const char *salt);
|
||||||
|
|
||||||
|
extern char *__crypt_r (const char *key, const char *salt,
|
||||||
|
struct crypt_data *__restrict data);
|
||||||
|
|
||||||
/* We recognize an intended call of the MD5 crypt replacement function
|
/* We recognize an intended call of the MD5 crypt replacement function
|
||||||
by the first 3 characters of the salt string. If they match the
|
by the first 3 characters of the salt string. If they match the
|
||||||
@ -42,7 +44,7 @@ char *
|
|||||||
__crypt_r (key, salt, data)
|
__crypt_r (key, salt, data)
|
||||||
const char *key;
|
const char *key;
|
||||||
const char *salt;
|
const char *salt;
|
||||||
struct crypt_data *data;
|
struct crypt_data *__restrict data;
|
||||||
{
|
{
|
||||||
if (strncmp (md5_salt_prefix, salt, sizeof (md5_salt_prefix) - 1) == 0)
|
if (strncmp (md5_salt_prefix, salt, sizeof (md5_salt_prefix) - 1) == 0)
|
||||||
return __md5_crypt_r (key, salt, (char *) data,
|
return __md5_crypt_r (key, salt, (char *) data,
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* UFC-crypt: ultra fast crypt(3) implementation
|
* UFC-crypt: ultra fast crypt(3) implementation
|
||||||
*
|
*
|
||||||
* Copyright (C) 1991, 1992, 1993, 1996, 1997 Free Software Foundation, Inc.
|
* Copyright (C) 1991, 92, 93, 96, 97, 98 Free Software Foundation, Inc.
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Library General Public
|
* modify it under the terms of the GNU Library General Public
|
||||||
@ -50,10 +50,8 @@ struct crypt_data
|
|||||||
int direction, initialized;
|
int direction, initialized;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern char *__crypt_r __P ((__const char *__key, __const char *__salt,
|
|
||||||
struct crypt_data *__data));
|
|
||||||
extern char *crypt_r __P ((__const char *__key, __const char *__salt,
|
extern char *crypt_r __P ((__const char *__key, __const char *__salt,
|
||||||
struct crypt_data *__data));
|
struct crypt_data *__restrict __data));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
__END_DECLS
|
__END_DECLS
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Compute hash alue for given string according to ELF standard.
|
/* Compute hash value for given string according to ELF standard.
|
||||||
Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
|
Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* High precision, low overhead timing functions. i686 version.
|
/* High precision, low overhead timing functions. Generic version.
|
||||||
Copyright (C) 1998 Free Software Foundation, Inc.
|
Copyright (C) 1998 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
||||||
|
@ -84,7 +84,7 @@
|
|||||||
/* We use 64bit values for the times. */
|
/* We use 64bit values for the times. */
|
||||||
typedef unsigned long long int hp_timing_t;
|
typedef unsigned long long int hp_timing_t;
|
||||||
|
|
||||||
/* Internal variabled used to store the overhead of the measurement
|
/* Internal variable used to store the overhead of the measurement
|
||||||
opcodes. */
|
opcodes. */
|
||||||
extern hp_timing_t __libc_hp_timing_overhead;
|
extern hp_timing_t __libc_hp_timing_overhead;
|
||||||
|
|
||||||
|
51
sysdeps/i386/i686/mempcpy.S
Normal file
51
sysdeps/i386/i686/mempcpy.S
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
/* Copy memory block and return pointer to following byte.
|
||||||
|
For Intel 80x86, x>=6.
|
||||||
|
This file is part of the GNU C Library.
|
||||||
|
Copyright (C) 1998 Free Software Foundation, Inc.
|
||||||
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
||||||
|
|
||||||
|
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. */
|
||||||
|
|
||||||
|
#include <sysdep.h>
|
||||||
|
#include "asm-syntax.h"
|
||||||
|
|
||||||
|
/* strtok:
|
||||||
|
INPUT PARAMETER:
|
||||||
|
dest (sp + 4)
|
||||||
|
src (sp + 8)
|
||||||
|
len (sp + 12)
|
||||||
|
*/
|
||||||
|
|
||||||
|
ENTRY(__mempcpy)
|
||||||
|
movl %edi, %eax
|
||||||
|
movl 4(%esp), %edi
|
||||||
|
movl %esi, %edx
|
||||||
|
movl 8(%esp), %esi
|
||||||
|
movl 12(%esp), %ecx
|
||||||
|
cld
|
||||||
|
shrl $1, %ecx
|
||||||
|
jnc 1f
|
||||||
|
movsb
|
||||||
|
1: shrl $1, %ecx
|
||||||
|
jnc 2f
|
||||||
|
movsw
|
||||||
|
2: rep
|
||||||
|
movsl
|
||||||
|
xchgl %edi, %eax
|
||||||
|
movl %edx, %esi
|
||||||
|
ret
|
||||||
|
END(mempcpy)
|
||||||
|
weak_alias (__mempcpy, mempcpy)
|
@ -73,6 +73,7 @@ ENTRY (FUNCTION)
|
|||||||
movl $64, %ecx
|
movl $64, %ecx
|
||||||
movl %esp, %edi
|
movl %esp, %edi
|
||||||
xorl %eax, %eax
|
xorl %eax, %eax
|
||||||
|
cld
|
||||||
rep
|
rep
|
||||||
stosl
|
stosl
|
||||||
|
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
setjmp_aux.c
|
setjmp_aux.c
|
||||||
rtld-ldscript.in
|
rtld-ldscript.in
|
||||||
rtld-parms
|
rtld-parms
|
||||||
|
regdef.h
|
||||||
|
sgidefs.h
|
||||||
|
fpregdef.h
|
||||||
|
sys/regdef.h
|
||||||
|
sys/fpregdef.h
|
||||||
|
sys/asm.h
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
ifeq ($(subdir),misc)
|
||||||
|
headers += regdef.h fpregdef.h sys/regdef.h sys/fpregdef.h sys/asm.h sgidefs.h
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(subdir),setjmp)
|
ifeq ($(subdir),setjmp)
|
||||||
sysdep_routines += setjmp_aux
|
sysdep_routines += setjmp_aux
|
||||||
endif
|
endif
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1991, 92, 94, 95, 96, 97 Free Software Foundation, Inc.
|
/* Copyright (C) 1991, 92, 94, 95, 96 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -16,12 +16,9 @@
|
|||||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
Boston, MA 02111-1307, USA. */
|
Boston, MA 02111-1307, USA. */
|
||||||
|
|
||||||
#ifndef _SYS_FPREGDEF_H
|
#ifndef _FPREGDEF_H
|
||||||
#define _SYS_FPREGDEF_H
|
#define _FPREGDEF_H
|
||||||
|
|
||||||
/*
|
#include <sys/fpregdef.h>
|
||||||
* The real definitions come from the Linux kernel sources
|
|
||||||
*/
|
|
||||||
#include <asm/fpregdef.h>
|
|
||||||
|
|
||||||
#endif /* sys/fpregdef.h */
|
#endif /* _FPREGDEF_H */
|
@ -1,5 +1,5 @@
|
|||||||
/* FPU control word bits. Mips version.
|
/* FPU control word bits. Mips version.
|
||||||
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Olaf Flebbe and Ralf Baechle.
|
Contributed by Olaf Flebbe and Ralf Baechle.
|
||||||
|
|
||||||
@ -80,7 +80,7 @@
|
|||||||
/* The fdlibm code requires strict IEEE double precision arithmetic,
|
/* The fdlibm code requires strict IEEE double precision arithmetic,
|
||||||
and no interrupts for exceptions, rounding to nearest. */
|
and no interrupts for exceptions, rounding to nearest. */
|
||||||
|
|
||||||
#define _FPU_DEFAULT 0x00000600
|
#define _FPU_DEFAULT 0x00000000
|
||||||
|
|
||||||
/* IEEE: same as above, but exceptions */
|
/* IEEE: same as above, but exceptions */
|
||||||
#define _FPU_IEEE 0x00000F80
|
#define _FPU_IEEE 0x00000F80
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* Copyright (C) 1997 Free Software Foundation, Inc.
|
/* Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ralf Baechle <ralf@gnu.ai.mit.edu>.
|
Contributed by Ralf Baechle <ralf@gnu.org>.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
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
|
modify it under the terms of the GNU Library General Public License as
|
||||||
@ -17,12 +17,11 @@
|
|||||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
Boston, MA 02111-1307, USA. */
|
Boston, MA 02111-1307, USA. */
|
||||||
|
|
||||||
#ifndef _SYS_ASM_H
|
#ifndef _REGDEF_H
|
||||||
#define _SYS_ASM_H
|
#define _REGDEF_H
|
||||||
|
|
||||||
/*
|
#include <sys/regdef.h>
|
||||||
* The real definitions come from the Linux kernel sources
|
#include <sys/fpregdef.h>
|
||||||
*/
|
|
||||||
#include <asm/asm.h>
|
#endif /* _REGDEF_H */
|
||||||
|
|
||||||
#endif /* sys/asm.h */
|
|
@ -1,6 +1,6 @@
|
|||||||
/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ralf Baechle <ralf@gnu.ai.mit.edu>.
|
Contributed by Ralf Baechle <ralf@gnu.org>.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
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
|
modify it under the terms of the GNU Library General Public License as
|
||||||
@ -21,8 +21,24 @@
|
|||||||
#define _SGIDEFS_H 1
|
#define _SGIDEFS_H 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The real definitions come from the Linux kernel sources
|
* Definitions for the ISA level
|
||||||
*/
|
*/
|
||||||
#include <asm/sgidefs.h>
|
#define _MIPS_ISA_MIPS1 1
|
||||||
|
#define _MIPS_ISA_MIPS2 2
|
||||||
|
#define _MIPS_ISA_MIPS3 3
|
||||||
|
#define _MIPS_ISA_MIPS4 4
|
||||||
|
#define _MIPS_ISA_MIPS5 5
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Subprogram calling convention
|
||||||
|
*
|
||||||
|
* At the moment only _MIPS_SIM_ABI32 is in use. This will change rsn.
|
||||||
|
* Until GCC 2.8.0 is released don't rely on this definitions because the
|
||||||
|
* 64bit code is essentially using the 32bit interface model just with
|
||||||
|
* 64bit registers.
|
||||||
|
*/
|
||||||
|
#define _MIPS_SIM_ABI32 1
|
||||||
|
#define _MIPS_SIM_NABI32 2
|
||||||
|
#define _MIPS_SIM_ABI64 3
|
||||||
|
|
||||||
#endif /* sgidefs.h */
|
#endif /* sgidefs.h */
|
377
sysdeps/mips/sys/asm.h
Normal file
377
sysdeps/mips/sys/asm.h
Normal file
@ -0,0 +1,377 @@
|
|||||||
|
/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
|
||||||
|
This file is part of the GNU C Library.
|
||||||
|
Contributed by Ralf Baechle <ralf@gnu.org>.
|
||||||
|
|
||||||
|
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 _SYS_ASM_H
|
||||||
|
#define _SYS_ASM_H
|
||||||
|
|
||||||
|
#include <sgidefs.h>
|
||||||
|
|
||||||
|
#ifndef CAT
|
||||||
|
#ifdef __STDC__
|
||||||
|
#define __CAT(str1,str2) str1##str2
|
||||||
|
#else
|
||||||
|
#define __CAT(str1,str2) str1/**/str2
|
||||||
|
#endif
|
||||||
|
#define CAT(str1,str2) __CAT(str1,str2)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Macros to handle different pointer/register sizes for 32/64-bit code
|
||||||
|
*
|
||||||
|
* 64 bit address space isn't used yet, so we may use the R3000 32 bit
|
||||||
|
* defines for now.
|
||||||
|
*/
|
||||||
|
#define PTR .word
|
||||||
|
#define PTRSIZE 4
|
||||||
|
#define PTRLOG 2
|
||||||
|
|
||||||
|
/*
|
||||||
|
* PIC specific declarations
|
||||||
|
*/
|
||||||
|
#ifdef __PIC__
|
||||||
|
#define CPRESTORE(register) \
|
||||||
|
.cprestore register
|
||||||
|
#define CPADD(register) \
|
||||||
|
.cpadd register
|
||||||
|
#define CPLOAD(register) \
|
||||||
|
.cpload register
|
||||||
|
#else
|
||||||
|
#define CPRESTORE(register)
|
||||||
|
#define CPADD(register)
|
||||||
|
#define CPLOAD(register)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* LEAF - declare leaf routine
|
||||||
|
*/
|
||||||
|
#define LEAF(symbol) \
|
||||||
|
.globl symbol; \
|
||||||
|
.align 2; \
|
||||||
|
.type symbol,@function; \
|
||||||
|
.ent symbol,0; \
|
||||||
|
symbol: .frame sp,0,ra
|
||||||
|
|
||||||
|
/*
|
||||||
|
* NESTED - declare nested routine entry point
|
||||||
|
*/
|
||||||
|
#define NESTED(symbol, framesize, rpc) \
|
||||||
|
.globl symbol; \
|
||||||
|
.align 2; \
|
||||||
|
.type symbol,@function; \
|
||||||
|
.ent symbol,0; \
|
||||||
|
symbol: .frame sp, framesize, rpc
|
||||||
|
|
||||||
|
/*
|
||||||
|
* END - mark end of function
|
||||||
|
*/
|
||||||
|
#define END(function) \
|
||||||
|
.end function; \
|
||||||
|
.size function,.-function
|
||||||
|
|
||||||
|
/*
|
||||||
|
* EXPORT - export definition of symbol
|
||||||
|
*/
|
||||||
|
#define EXPORT(symbol) \
|
||||||
|
.globl symbol; \
|
||||||
|
symbol:
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ABS - export absolute symbol
|
||||||
|
*/
|
||||||
|
#define ABS(symbol,value) \
|
||||||
|
.globl symbol; \
|
||||||
|
symbol = value
|
||||||
|
|
||||||
|
#define PANIC(msg) \
|
||||||
|
.set push; \
|
||||||
|
.set reorder; \
|
||||||
|
la a0,8f; \
|
||||||
|
jal panic; \
|
||||||
|
9: b 9b; \
|
||||||
|
.set pop; \
|
||||||
|
TEXT(msg)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Print formated string
|
||||||
|
*/
|
||||||
|
#define PRINT(string) \
|
||||||
|
.set push; \
|
||||||
|
.set reorder; \
|
||||||
|
la a0,8f; \
|
||||||
|
jal printk; \
|
||||||
|
.set pop; \
|
||||||
|
TEXT(string)
|
||||||
|
|
||||||
|
#define TEXT(msg) \
|
||||||
|
.data; \
|
||||||
|
8: .asciiz msg; \
|
||||||
|
.previous;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Build text tables
|
||||||
|
*/
|
||||||
|
#define TTABLE(string) \
|
||||||
|
.text; \
|
||||||
|
.word 1f; \
|
||||||
|
.previous; \
|
||||||
|
.data; \
|
||||||
|
1: .asciz string; \
|
||||||
|
.previous
|
||||||
|
|
||||||
|
/*
|
||||||
|
* MIPS IV pref instruction.
|
||||||
|
* Use with .set noreorder only!
|
||||||
|
*
|
||||||
|
* MIPS IV implementations are free to treat this as a nop. The R5000
|
||||||
|
* is one of them. So we should have an option not to use this instruction.
|
||||||
|
*/
|
||||||
|
#if (_MIPS_ISA == _MIPS_ISA_MIPS4) || (_MIPS_ISA == _MIPS_ISA_MIPS5)
|
||||||
|
#define PREF(hint,addr) \
|
||||||
|
pref hint,addr
|
||||||
|
#define PREFX(hint,addr) \
|
||||||
|
prefx hint,addr
|
||||||
|
#else
|
||||||
|
#define PREF
|
||||||
|
#define PREFX
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* MIPS ISA IV/V movn/movz instructions and equivalents for older CPUs.
|
||||||
|
*/
|
||||||
|
#if _MIPS_ISA == _MIPS_ISA_MIPS1
|
||||||
|
#define MOVN(rd,rs,rt) \
|
||||||
|
.set push; \
|
||||||
|
.set reorder; \
|
||||||
|
beqz rt,9f; \
|
||||||
|
move rd,rs; \
|
||||||
|
.set pop; \
|
||||||
|
9:
|
||||||
|
#define MOVZ(rd,rs,rt) \
|
||||||
|
.set push; \
|
||||||
|
.set reorder; \
|
||||||
|
bnez rt,9f; \
|
||||||
|
move rd,rt; \
|
||||||
|
.set pop; \
|
||||||
|
9:
|
||||||
|
#endif /* _MIPS_ISA == _MIPS_ISA_MIPS1 */
|
||||||
|
#if (_MIPS_ISA == _MIPS_ISA_MIPS2) || (_MIPS_ISA == _MIPS_ISA_MIPS3)
|
||||||
|
#define MOVN(rd,rs,rt) \
|
||||||
|
.set push; \
|
||||||
|
.set noreorder; \
|
||||||
|
bnezl rt,9f; \
|
||||||
|
move rd,rs; \
|
||||||
|
.set pop; \
|
||||||
|
9:
|
||||||
|
#define MOVZ(rd,rs,rt) \
|
||||||
|
.set push; \
|
||||||
|
.set noreorder; \
|
||||||
|
beqzl rt,9f; \
|
||||||
|
movz rd,rs; \
|
||||||
|
.set pop; \
|
||||||
|
9:
|
||||||
|
#endif /* (_MIPS_ISA == _MIPS_ISA_MIPS2) || (_MIPS_ISA == _MIPS_ISA_MIPS3) */
|
||||||
|
#if (_MIPS_ISA == _MIPS_ISA_MIPS4) || (_MIPS_ISA == _MIPS_ISA_MIPS5)
|
||||||
|
#define MOVN(rd,rs,rt) \
|
||||||
|
movn rd,rs,rt
|
||||||
|
#define MOVZ(rd,rs,rt) \
|
||||||
|
movz rd,rs,rt
|
||||||
|
#endif /* (_MIPS_ISA == _MIPS_ISA_MIPS4) || (_MIPS_ISA == _MIPS_ISA_MIPS5) */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Stack alignment
|
||||||
|
*/
|
||||||
|
#if (_MIPS_ISA == _MIPS_ISA_MIPS1) || (_MIPS_ISA == _MIPS_ISA_MIPS2)
|
||||||
|
#define ALSZ 7
|
||||||
|
#define ALMASK ~7
|
||||||
|
#endif
|
||||||
|
#if (_MIPS_ISA == _MIPS_ISA_MIPS3) || (_MIPS_ISA == _MIPS_ISA_MIPS4) || \
|
||||||
|
(_MIPS_ISA == _MIPS_ISA_MIPS5)
|
||||||
|
#define ALSZ 15
|
||||||
|
#define ALMASK ~15
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Size of a register
|
||||||
|
*/
|
||||||
|
#ifdef __mips64
|
||||||
|
#define SZREG 8
|
||||||
|
#else
|
||||||
|
#define SZREG 4
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Use the following macros in assemblercode to load/store registers,
|
||||||
|
* pointers etc.
|
||||||
|
*/
|
||||||
|
#if (_MIPS_ISA == _MIPS_ISA_MIPS1) || (_MIPS_ISA == _MIPS_ISA_MIPS2)
|
||||||
|
#define REG_S sw
|
||||||
|
#define REG_L lw
|
||||||
|
#define PTR_SUBU subu
|
||||||
|
#define PTR_ADDU addu
|
||||||
|
#endif
|
||||||
|
#if (_MIPS_ISA == _MIPS_ISA_MIPS3) || (_MIPS_ISA == _MIPS_ISA_MIPS4) || \
|
||||||
|
(_MIPS_ISA == _MIPS_ISA_MIPS5)
|
||||||
|
#define REG_S sd
|
||||||
|
#define REG_L ld
|
||||||
|
/* We still live in a 32 bit address space ... */
|
||||||
|
#define PTR_SUBU subu
|
||||||
|
#define PTR_ADDU addu
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* How to add/sub/load/store/shift C int variables.
|
||||||
|
*/
|
||||||
|
#if (_MIPS_SZINT == 32)
|
||||||
|
#define INT_ADD add
|
||||||
|
#define INT_ADDI addi
|
||||||
|
#define INT_ADDU addu
|
||||||
|
#define INT_ADDIU addiu
|
||||||
|
#define INT_SUB add
|
||||||
|
#define INT_SUBI subi
|
||||||
|
#define INT_SUBU subu
|
||||||
|
#define INT_SUBIU subu
|
||||||
|
#define INT_L lw
|
||||||
|
#define INT_S sw
|
||||||
|
#define LONG_SLL sll
|
||||||
|
#define LONG_SLLV sllv
|
||||||
|
#define LONG_SRL srl
|
||||||
|
#define LONG_SRLV srlv
|
||||||
|
#define LONG_SRA sra
|
||||||
|
#define LONG_SRAV srav
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (_MIPS_SZINT == 64)
|
||||||
|
#define INT_ADD dadd
|
||||||
|
#define INT_ADDI daddi
|
||||||
|
#define INT_ADDU daddu
|
||||||
|
#define INT_ADDIU daddiu
|
||||||
|
#define INT_SUB dadd
|
||||||
|
#define INT_SUBI dsubi
|
||||||
|
#define INT_SUBU dsubu
|
||||||
|
#define INT_SUBIU dsubu
|
||||||
|
#define INT_L ld
|
||||||
|
#define INT_S sd
|
||||||
|
#define LONG_SLL dsll
|
||||||
|
#define LONG_SLLV dsllv
|
||||||
|
#define LONG_SRL dsrl
|
||||||
|
#define LONG_SRLV dsrlv
|
||||||
|
#define LONG_SRA dsra
|
||||||
|
#define LONG_SRAV dsrav
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* How to add/sub/load/store/shift C long variables.
|
||||||
|
*/
|
||||||
|
#if (_MIPS_SZLONG == 32)
|
||||||
|
#define LONG_ADD add
|
||||||
|
#define LONG_ADDI addi
|
||||||
|
#define LONG_ADDU addu
|
||||||
|
#define LONG_ADDIU addiu
|
||||||
|
#define LONG_SUB add
|
||||||
|
#define LONG_SUBI subi
|
||||||
|
#define LONG_SUBU subu
|
||||||
|
#define LONG_SUBIU subu
|
||||||
|
#define LONG_L lw
|
||||||
|
#define LONG_S sw
|
||||||
|
#define LONG_SLL sll
|
||||||
|
#define LONG_SLLV sllv
|
||||||
|
#define LONG_SRL srl
|
||||||
|
#define LONG_SRLV srlv
|
||||||
|
#define LONG_SRA sra
|
||||||
|
#define LONG_SRAV srav
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (_MIPS_SZLONG == 64)
|
||||||
|
#define LONG_ADD dadd
|
||||||
|
#define LONG_ADDI daddi
|
||||||
|
#define LONG_ADDU daddu
|
||||||
|
#define LONG_ADDIU daddiu
|
||||||
|
#define LONG_SUB dadd
|
||||||
|
#define LONG_SUBI dsubi
|
||||||
|
#define LONG_SUBU dsubu
|
||||||
|
#define LONG_SUBIU dsubu
|
||||||
|
#define LONG_L ld
|
||||||
|
#define LONG_S sd
|
||||||
|
#define LONG_SLL dsll
|
||||||
|
#define LONG_SLLV dsllv
|
||||||
|
#define LONG_SRL dsrl
|
||||||
|
#define LONG_SRLV dsrlv
|
||||||
|
#define LONG_SRA dsra
|
||||||
|
#define LONG_SRAV dsrav
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* How to add/sub/load/store/shift pointers.
|
||||||
|
*/
|
||||||
|
#if (_MIPS_SZLONG == 32)
|
||||||
|
#define PTR_ADD add
|
||||||
|
#define PTR_ADDI addi
|
||||||
|
#define PTR_ADDU addu
|
||||||
|
#define PTR_ADDIU addiu
|
||||||
|
#define PTR_SUB add
|
||||||
|
#define PTR_SUBI subi
|
||||||
|
#define PTR_SUBU subu
|
||||||
|
#define PTR_SUBIU subu
|
||||||
|
#define PTR_L lw
|
||||||
|
#define PTR_S sw
|
||||||
|
#define PTR_SLL sll
|
||||||
|
#define PTR_SLLV sllv
|
||||||
|
#define PTR_SRL srl
|
||||||
|
#define PTR_SRLV srlv
|
||||||
|
#define PTR_SRA sra
|
||||||
|
#define PTR_SRAV srav
|
||||||
|
|
||||||
|
#define PTR_SCALESHIFT 2
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (_MIPS_SZLONG == 64)
|
||||||
|
#define PTR_ADD dadd
|
||||||
|
#define PTR_ADDI daddi
|
||||||
|
#define PTR_ADDU daddu
|
||||||
|
#define PTR_ADDIU daddiu
|
||||||
|
#define PTR_SUB dadd
|
||||||
|
#define PTR_SUBI dsubi
|
||||||
|
#define PTR_SUBU dsubu
|
||||||
|
#define PTR_SUBIU dsubu
|
||||||
|
#define PTR_L ld
|
||||||
|
#define PTR_S sd
|
||||||
|
#define PTR_SLL dsll
|
||||||
|
#define PTR_SLLV dsllv
|
||||||
|
#define PTR_SRL dsrl
|
||||||
|
#define PTR_SRLV dsrlv
|
||||||
|
#define PTR_SRA dsra
|
||||||
|
#define PTR_SRAV dsrav
|
||||||
|
|
||||||
|
#define PTR_SCALESHIFT 3
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Some cp0 registers were extended to 64bit for MIPS III.
|
||||||
|
*/
|
||||||
|
#if (_MIPS_ISA == _MIPS_ISA_MIPS1) || (_MIPS_ISA == _MIPS_ISA_MIPS2)
|
||||||
|
#define MFC0 mfc0
|
||||||
|
#define MTC0 mtc0
|
||||||
|
#endif
|
||||||
|
#if (_MIPS_ISA == _MIPS_ISA_MIPS3) || (_MIPS_ISA == _MIPS_ISA_MIPS4) || \
|
||||||
|
(_MIPS_ISA == _MIPS_ISA_MIPS5)
|
||||||
|
#define MFC0 dmfc0
|
||||||
|
#define MTC0 dmtc0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* sys/asm.h */
|
61
sysdeps/mips/sys/fpregdef.h
Normal file
61
sysdeps/mips/sys/fpregdef.h
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
/* Copyright (C) 1991, 92, 94, 95, 96, 97, 98 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 _SYS_FPREGDEF_H
|
||||||
|
#define _SYS_FPREGDEF_H
|
||||||
|
|
||||||
|
/*
|
||||||
|
* These definitions only cover the R3000-ish 16/32 register model.
|
||||||
|
* But we're trying to be R3000 friendly anyway ...
|
||||||
|
*/
|
||||||
|
#define fv0 $f0 /* return value */
|
||||||
|
#define fv0f $f1
|
||||||
|
#define fv1 $f2
|
||||||
|
#define fv1f $f3
|
||||||
|
#define fa0 $f12 /* argument registers */
|
||||||
|
#define fa0f $f13
|
||||||
|
#define fa1 $f14
|
||||||
|
#define fa1f $f15
|
||||||
|
#define ft0 $f4 /* caller saved */
|
||||||
|
#define ft0f $f5
|
||||||
|
#define ft1 $f6
|
||||||
|
#define ft1f $f7
|
||||||
|
#define ft2 $f8
|
||||||
|
#define ft2f $f9
|
||||||
|
#define ft3 $f10
|
||||||
|
#define ft3f $f11
|
||||||
|
#define ft4 $f16
|
||||||
|
#define ft4f $f17
|
||||||
|
#define ft5 $f18
|
||||||
|
#define ft5f $f19
|
||||||
|
#define fs0 $f20 /* callee saved */
|
||||||
|
#define fs0f $f21
|
||||||
|
#define fs1 $f22
|
||||||
|
#define fs1f $f23
|
||||||
|
#define fs2 $f24
|
||||||
|
#define fs2f $f25
|
||||||
|
#define fs3 $f26
|
||||||
|
#define fs3f $f27
|
||||||
|
#define fs4 $f28
|
||||||
|
#define fs4f $f29
|
||||||
|
#define fs5 $f30
|
||||||
|
#define fs5f $f31
|
||||||
|
|
||||||
|
#define fcr31 $31 /* FPU status register */
|
||||||
|
|
||||||
|
#endif /* sys/fpregdef.h */
|
@ -45,16 +45,16 @@
|
|||||||
#define PLT_DATA_START_WORDS(num_entries) PLT_ENTRY_START_WORDS(num_entries)
|
#define PLT_DATA_START_WORDS(num_entries) PLT_ENTRY_START_WORDS(num_entries)
|
||||||
|
|
||||||
#define OPCODE_ADDI(rd,ra,simm) \
|
#define OPCODE_ADDI(rd,ra,simm) \
|
||||||
(0x38000000 | (rd) << 21 | (ra) << 16 | (simm) & 0xffff)
|
(0x38000000 | (rd) << 21 | (ra) << 16 | ((simm) & 0xffff))
|
||||||
#define OPCODE_ADDIS(rd,ra,simm) \
|
#define OPCODE_ADDIS(rd,ra,simm) \
|
||||||
(0x3c000000 | (rd) << 21 | (ra) << 16 | (simm) & 0xffff)
|
(0x3c000000 | (rd) << 21 | (ra) << 16 | ((simm) & 0xffff))
|
||||||
#define OPCODE_ADD(rd,ra,rb) \
|
#define OPCODE_ADD(rd,ra,rb) \
|
||||||
(0x7c000214 | (rd) << 21 | (ra) << 16 | (rb) << 11)
|
(0x7c000214 | (rd) << 21 | (ra) << 16 | (rb) << 11)
|
||||||
#define OPCODE_B(target) (0x48000000 | (target) & 0x03fffffc)
|
#define OPCODE_B(target) (0x48000000 | ((target) & 0x03fffffc))
|
||||||
#define OPCODE_BA(target) (0x48000002 | (target) & 0x03fffffc)
|
#define OPCODE_BA(target) (0x48000002 | ((target) & 0x03fffffc))
|
||||||
#define OPCODE_BCTR() 0x4e800420
|
#define OPCODE_BCTR() 0x4e800420
|
||||||
#define OPCODE_LWZ(rd,d,ra) \
|
#define OPCODE_LWZ(rd,d,ra) \
|
||||||
(0x80000000 | (rd) << 21 | (ra) << 16 | (d) & 0xffff)
|
(0x80000000 | (rd) << 21 | (ra) << 16 | ((d) & 0xffff))
|
||||||
#define OPCODE_MTCTR(rd) (0x7C0903A6 | (rd) << 21)
|
#define OPCODE_MTCTR(rd) (0x7C0903A6 | (rd) << 21)
|
||||||
#define OPCODE_RLWINM(ra,rs,sh,mb,me) \
|
#define OPCODE_RLWINM(ra,rs,sh,mb,me) \
|
||||||
(0x54000000 | (rs) << 21 | (ra) << 16 | (sh) << 11 | (mb) << 6 | (me) << 1)
|
(0x54000000 | (rs) << 21 | (ra) << 16 | (sh) << 11 | (mb) << 6 | (me) << 1)
|
||||||
@ -305,7 +305,7 @@ __elf_machine_fixup_plt(struct link_map *map, const Elf32_Rela *reloc,
|
|||||||
updating a lazy PLT entry). */
|
updating a lazy PLT entry). */
|
||||||
|
|
||||||
reloc_addr[0] = OPCODE_LI (11, finaladdr);
|
reloc_addr[0] = OPCODE_LI (11, finaladdr);
|
||||||
reloc_addr[1] = OPCODE_ADDIS (11, 11, finaladdr + 0x8000 >> 16);
|
reloc_addr[1] = OPCODE_ADDIS (11, 11, (finaladdr + 0x8000) >> 16);
|
||||||
reloc_addr[2] = OPCODE_MTCTR (11);
|
reloc_addr[2] = OPCODE_MTCTR (11);
|
||||||
reloc_addr[3] = OPCODE_BCTR ();
|
reloc_addr[3] = OPCODE_BCTR ();
|
||||||
}
|
}
|
||||||
@ -355,7 +355,7 @@ __process_machine_rela (struct link_map *map,
|
|||||||
_dl_signal_error(0, map->l_name,
|
_dl_signal_error(0, map->l_name,
|
||||||
"R_PPC_ADDR24 relocation out of range");
|
"R_PPC_ADDR24 relocation out of range");
|
||||||
}
|
}
|
||||||
*reloc_addr = *reloc_addr & 0xfc000003 | finaladdr & 0x3fffffc;
|
*reloc_addr = (*reloc_addr & 0xfc000003) | (finaladdr & 0x3fffffc);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case R_PPC_ADDR16:
|
case R_PPC_ADDR16:
|
||||||
@ -388,11 +388,11 @@ __process_machine_rela (struct link_map *map,
|
|||||||
_dl_signal_error(0, map->l_name,
|
_dl_signal_error(0, map->l_name,
|
||||||
"R_PPC_ADDR14 relocation out of range");
|
"R_PPC_ADDR14 relocation out of range");
|
||||||
}
|
}
|
||||||
*reloc_addr = *reloc_addr & 0xffff0003 | finaladdr & 0xfffc;
|
*reloc_addr = (*reloc_addr & 0xffff0003) | (finaladdr & 0xfffc);
|
||||||
if (rinfo != R_PPC_ADDR14)
|
if (rinfo != R_PPC_ADDR14)
|
||||||
*reloc_addr = (*reloc_addr & 0xffdfffff
|
*reloc_addr = ((*reloc_addr & 0xffdfffff)
|
||||||
| (rinfo == R_PPC_ADDR14_BRTAKEN
|
| ((rinfo == R_PPC_ADDR14_BRTAKEN)
|
||||||
^ finaladdr >> 31) << 21);
|
^ (finaladdr >> 31)) << 21);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case R_PPC_REL24:
|
case R_PPC_REL24:
|
||||||
@ -403,7 +403,7 @@ __process_machine_rela (struct link_map *map,
|
|||||||
_dl_signal_error(0, map->l_name,
|
_dl_signal_error(0, map->l_name,
|
||||||
"R_PPC_REL24 relocation out of range");
|
"R_PPC_REL24 relocation out of range");
|
||||||
}
|
}
|
||||||
*reloc_addr = *reloc_addr & 0xfc000003 | delta & 0x3fffffc;
|
*reloc_addr = (*reloc_addr & 0xfc000003) | (delta & 0x3fffffc);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -29,8 +29,8 @@ feclearexcept (int excepts)
|
|||||||
u.fenv = fegetenv_register ();
|
u.fenv = fegetenv_register ();
|
||||||
|
|
||||||
/* Clear the relevant bits. */
|
/* Clear the relevant bits. */
|
||||||
u.l[1] = u.l[1] & ~(-((excepts) >> 31-FPSCR_VX & 1) & FE_ALL_INVALID
|
u.l[1] = u.l[1] & ~((-((excepts) >> (31-FPSCR_VX) & 1) & FE_ALL_INVALID)
|
||||||
| (excepts) & FPSCR_STICKY_BITS);
|
| ((excepts) & FPSCR_STICKY_BITS));
|
||||||
|
|
||||||
/* Put the new state in effect. */
|
/* Put the new state in effect. */
|
||||||
fesetenv_register (u.fenv);
|
fesetenv_register (u.fenv);
|
||||||
|
@ -32,7 +32,7 @@ fesetround (int round)
|
|||||||
u.fenv = fegetenv_register ();
|
u.fenv = fegetenv_register ();
|
||||||
|
|
||||||
/* Set the relevant bits. */
|
/* Set the relevant bits. */
|
||||||
u.l[1] = u.l[1] & ~3 | round & 3;
|
u.l[1] = (u.l[1] & ~3) | (round & 3);
|
||||||
|
|
||||||
/* Put the new state in effect. */
|
/* Put the new state in effect. */
|
||||||
fesetenv_register (u.fenv);
|
fesetenv_register (u.fenv);
|
||||||
|
@ -30,7 +30,7 @@ feupdateenv (const fenv_t *envp)
|
|||||||
old.fenv = fegetenv_register ();
|
old.fenv = fegetenv_register ();
|
||||||
|
|
||||||
/* Copy the set exceptions from `old' to `new'. */
|
/* Copy the set exceptions from `old' to `new'. */
|
||||||
new.l[1] = new.l[1] & 0xE00000FF | old.l[1] & 0x1FFFFF00;
|
new.l[1] = (new.l[1] & 0xE00000FF) | (old.l[1] & 0x1FFFFF00);
|
||||||
|
|
||||||
/* Atomically enable and raise (if appropriate) exceptions set in `new'. */
|
/* Atomically enable and raise (if appropriate) exceptions set in `new'. */
|
||||||
fesetenv_register (new.fenv);
|
fesetenv_register (new.fenv);
|
||||||
|
@ -35,9 +35,9 @@ feraiseexcept (int excepts)
|
|||||||
|
|
||||||
/* Add the exceptions */
|
/* Add the exceptions */
|
||||||
u.l[1] = (u.l[1]
|
u.l[1] = (u.l[1]
|
||||||
| excepts & FPSCR_STICKY_BITS
|
| (excepts & FPSCR_STICKY_BITS)
|
||||||
/* Turn FE_INVALID into FE_INVALID_SOFTWARE. */
|
/* Turn FE_INVALID into FE_INVALID_SOFTWARE. */
|
||||||
| (excepts >> (31 - FPSCR_VX) - (31 - FPSCR_VXSOFT)
|
| (excepts >> ((31 - FPSCR_VX) - (31 - FPSCR_VXSOFT))
|
||||||
& FE_INVALID_SOFTWARE));
|
& FE_INVALID_SOFTWARE));
|
||||||
|
|
||||||
/* Store the new status word (along with the rest of the environment),
|
/* Store the new status word (along with the rest of the environment),
|
||||||
|
@ -32,9 +32,9 @@ fesetexceptflag (const fexcept_t *flagp, int excepts)
|
|||||||
flag = *flagp & excepts;
|
flag = *flagp & excepts;
|
||||||
|
|
||||||
/* Replace the exception status */
|
/* Replace the exception status */
|
||||||
u.l[1] = (u.l[1] & ~(FPSCR_STICKY_BITS & excepts)
|
u.l[1] = ((u.l[1] & ~(FPSCR_STICKY_BITS & excepts))
|
||||||
| flag & FPSCR_STICKY_BITS
|
| (flag & FPSCR_STICKY_BITS)
|
||||||
| (flag >> (31 - FPSCR_VX) - (31 - FPSCR_VXSOFT)
|
| (flag >> ((31 - FPSCR_VX) - (31 - FPSCR_VXSOFT))
|
||||||
& FE_INVALID_SOFTWARE));
|
& FE_INVALID_SOFTWARE));
|
||||||
|
|
||||||
/* Store the new status word (along with the rest of the environment).
|
/* Store the new status word (along with the rest of the environment).
|
||||||
|
@ -25,16 +25,18 @@ __rint (double x)
|
|||||||
static const float TWO52 = 4503599627370496.0;
|
static const float TWO52 = 4503599627370496.0;
|
||||||
|
|
||||||
if (fabs (x) < TWO52)
|
if (fabs (x) < TWO52)
|
||||||
if (x > 0.0)
|
{
|
||||||
{
|
if (x > 0.0)
|
||||||
x += TWO52;
|
{
|
||||||
x -= TWO52;
|
x += TWO52;
|
||||||
}
|
x -= TWO52;
|
||||||
else if (x < 0.0)
|
}
|
||||||
{
|
else if (x < 0.0)
|
||||||
x -= TWO52;
|
{
|
||||||
x += TWO52;
|
x -= TWO52;
|
||||||
}
|
x += TWO52;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return x;
|
return x;
|
||||||
}
|
}
|
||||||
|
@ -25,17 +25,19 @@ __rintf (float x)
|
|||||||
static const float TWO23 = 8388608.0;
|
static const float TWO23 = 8388608.0;
|
||||||
|
|
||||||
if (fabsf (x) < TWO23)
|
if (fabsf (x) < TWO23)
|
||||||
if (x > 0.0)
|
{
|
||||||
{
|
if (x > 0.0)
|
||||||
x += TWO23;
|
{
|
||||||
x -= TWO23;
|
x += TWO23;
|
||||||
}
|
x -= TWO23;
|
||||||
else if (x < 0.0)
|
}
|
||||||
{
|
else if (x < 0.0)
|
||||||
x -= TWO23;
|
{
|
||||||
x += TWO23;
|
x -= TWO23;
|
||||||
}
|
x += TWO23;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return x;
|
return x;
|
||||||
}
|
}
|
||||||
weak_alias (__rintf, rintf)
|
weak_alias (__rintf, rintf)
|
||||||
|
@ -74,9 +74,9 @@ __sqrt(double x)
|
|||||||
fe = fegetenv_register();
|
fe = fegetenv_register();
|
||||||
EXTRACT_WORDS (xi0,xi1,x);
|
EXTRACT_WORDS (xi0,xi1,x);
|
||||||
relax_fenv_state();
|
relax_fenv_state();
|
||||||
sxi = xi0 & 0x3fffffff | 0x3fe00000;
|
sxi = (xi0 & 0x3fffffff) | 0x3fe00000;
|
||||||
INSERT_WORDS (sx, sxi, xi1);
|
INSERT_WORDS (sx, sxi, xi1);
|
||||||
t_sqrt = __t_sqrt + (xi0 >> 52-32-8-1 & 0x3fe);
|
t_sqrt = __t_sqrt + (xi0 >> (52-32-8-1) & 0x3fe);
|
||||||
sg = t_sqrt[0];
|
sg = t_sqrt[0];
|
||||||
sy = t_sqrt[1];
|
sy = t_sqrt[1];
|
||||||
|
|
||||||
@ -84,7 +84,7 @@ __sqrt(double x)
|
|||||||
division and a square root and the remainder of the
|
division and a square root and the remainder of the
|
||||||
argument reduction, all interleaved. */
|
argument reduction, all interleaved. */
|
||||||
sd = -(sg*sg - sx);
|
sd = -(sg*sg - sx);
|
||||||
fsgi = xi0 + 0x40000000 >> 1 & 0x7ff00000;
|
fsgi = (xi0 + 0x40000000) >> 1 & 0x7ff00000;
|
||||||
sy2 = sy + sy;
|
sy2 = sy + sy;
|
||||||
sg = sy*sd + sg; /* 16-bit approximation to sqrt(sx). */
|
sg = sy*sd + sg; /* 16-bit approximation to sqrt(sx). */
|
||||||
INSERT_WORDS (fsg, fsgi, 0);
|
INSERT_WORDS (fsg, fsgi, 0);
|
||||||
|
@ -74,9 +74,9 @@ __sqrtf(float x)
|
|||||||
GET_FLOAT_WORD (xi, x);
|
GET_FLOAT_WORD (xi, x);
|
||||||
fe = fegetenv_register ();
|
fe = fegetenv_register ();
|
||||||
relax_fenv_state ();
|
relax_fenv_state ();
|
||||||
sxi = xi & 0x3fffffff | 0x3f000000;
|
sxi = (xi & 0x3fffffff) | 0x3f000000;
|
||||||
SET_FLOAT_WORD (sx, sxi);
|
SET_FLOAT_WORD (sx, sxi);
|
||||||
t_sqrt = __t_sqrt + (xi >> 23-8-1 & 0x3fe);
|
t_sqrt = __t_sqrt + (xi >> (23-8-1) & 0x3fe);
|
||||||
sg = t_sqrt[0];
|
sg = t_sqrt[0];
|
||||||
sy = t_sqrt[1];
|
sy = t_sqrt[1];
|
||||||
|
|
||||||
@ -84,7 +84,7 @@ __sqrtf(float x)
|
|||||||
division and a square root and the remainder of the
|
division and a square root and the remainder of the
|
||||||
argument reduction, all interleaved. */
|
argument reduction, all interleaved. */
|
||||||
sd = -(sg*sg - sx);
|
sd = -(sg*sg - sx);
|
||||||
fsgi = xi + 0x40000000 >> 1 & 0x7f800000;
|
fsgi = (xi + 0x40000000) >> 1 & 0x7f800000;
|
||||||
sy2 = sy + sy;
|
sy2 = sy + sy;
|
||||||
sg = sy*sd + sg; /* 16-bit approximation to sqrt(sx). */
|
sg = sy*sd + sg; /* 16-bit approximation to sqrt(sx). */
|
||||||
e = -(sy*sg - almost_half);
|
e = -(sy*sg - almost_half);
|
||||||
|
@ -3,14 +3,8 @@ kernel_sigaction.h
|
|||||||
kernel_stat.h
|
kernel_stat.h
|
||||||
kernel_termios.h
|
kernel_termios.h
|
||||||
entry.h
|
entry.h
|
||||||
regdef.h
|
|
||||||
fpregdef.h
|
|
||||||
sgidefs.h
|
|
||||||
xstatconv.c
|
xstatconv.c
|
||||||
sys/acct.h
|
sys/acct.h
|
||||||
sys/asm.h
|
|
||||||
sys/cachectl.h
|
sys/cachectl.h
|
||||||
sys/fpregdef.h
|
|
||||||
sys/procfs.h
|
sys/procfs.h
|
||||||
sys/regdef.h
|
|
||||||
sys/sysmips.h
|
sys/sysmips.h
|
||||||
|
@ -7,6 +7,5 @@ endif
|
|||||||
ifeq ($(subdir),misc)
|
ifeq ($(subdir),misc)
|
||||||
sysdep_routines += cachectl cacheflush sysmips
|
sysdep_routines += cachectl cacheflush sysmips
|
||||||
|
|
||||||
headers += regdef.h fpregdef.h sys/asm.h sys/cachectl.h sys/fpregdef.h \
|
headers += sys/cachectl.h sys/sysmips.h
|
||||||
sys/regdef.h sys/sysmips.h
|
|
||||||
endif
|
endif
|
||||||
|
@ -28,8 +28,20 @@ struct sigaction
|
|||||||
unsigned int sa_flags;
|
unsigned int sa_flags;
|
||||||
|
|
||||||
/* Signal handler. */
|
/* Signal handler. */
|
||||||
|
#ifdef __USE_POSIX199309
|
||||||
|
union
|
||||||
|
{
|
||||||
|
/* Used if SA_SIGINFO is not set. */
|
||||||
|
__sighandler_t sa_handler;
|
||||||
|
/* Used if SA_SIGINFO is set. */
|
||||||
|
void (*sa_sigaction) __PMT ((int, siginfo_t *, void *));
|
||||||
|
}
|
||||||
|
__sigaction_handler;
|
||||||
|
# define sa_handler __sigaction_handler.sa_handler
|
||||||
|
# define sa_sigaction __sigaction_handler.sa_sigaction
|
||||||
|
#else
|
||||||
__sighandler_t sa_handler;
|
__sighandler_t sa_handler;
|
||||||
|
#endif
|
||||||
/* Additional set of signals to be blocked. */
|
/* Additional set of signals to be blocked. */
|
||||||
__sigset_t sa_mask;
|
__sigset_t sa_mask;
|
||||||
|
|
||||||
@ -43,14 +55,17 @@ struct sigaction
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* Bits in `sa_flags'. */
|
/* Bits in `sa_flags'. */
|
||||||
#define SA_NOCLDSTOP 1 /* Don't send SIGCHLD when children stop. */
|
#define SA_NOCLDSTOP 0x00020000 /* Don't send SIGCHLD when children stop. */
|
||||||
#ifdef __USE_MISC
|
#define SA_SIGINFO 0x00000008 /* Invoke signal-catching function with
|
||||||
|
three arguments instead of one. */
|
||||||
|
#if defined __USE_UNIX98 || defined __USE_MISC
|
||||||
# define SA_ONSTACK 0x00000001 /* Use signal stack by using `sa_restorer'. */
|
# define SA_ONSTACK 0x00000001 /* Use signal stack by using `sa_restorer'. */
|
||||||
# define SA_RESTART 0x00000004 /* Restart syscall on signal return. */
|
# define SA_RESTART 0x00000004 /* Restart syscall on signal return. */
|
||||||
# define SA_INTERRUPT 0x00000000 /* Historical no-op. */
|
|
||||||
# define SA_NODEFER 0x00000010 /* Don't automatically block the signal when
|
# define SA_NODEFER 0x00000010 /* Don't automatically block the signal when
|
||||||
its handler is being executed. */
|
its handler is being executed. */
|
||||||
# define SA_RESETHAND 0x00000002 /* Reset to SIG_DFL on entry to handler. */
|
#endif
|
||||||
|
#ifdef __USE_MISC
|
||||||
|
# define SA_INTERRUPT 0x01000000 /* Historical no-op. */
|
||||||
|
|
||||||
/* Some aliases for the SA_ constants. */
|
/* Some aliases for the SA_ constants. */
|
||||||
# define SA_NOMASK SA_NODEFER
|
# define SA_NOMASK SA_NODEFER
|
||||||
@ -63,5 +78,7 @@ struct sigaction
|
|||||||
#define SIG_BLOCK 1 /* Block signals. */
|
#define SIG_BLOCK 1 /* Block signals. */
|
||||||
#define SIG_UNBLOCK 2 /* Unblock signals. */
|
#define SIG_UNBLOCK 2 /* Unblock signals. */
|
||||||
#define SIG_SETMASK 3 /* Set the set of blocked signals. */
|
#define SIG_SETMASK 3 /* Set the set of blocked signals. */
|
||||||
#define SIG_SETMASK32 256 /* Goodie from SGI for BSD compatibility:
|
#ifdef __USE_MISC
|
||||||
|
# define SIG_SETMASK32 256 /* Goodie from SGI for BSD compatibility:
|
||||||
set only the low 32 bit of the sigset. */
|
set only the low 32 bit of the sigset. */
|
||||||
|
#endif
|
||||||
|
@ -1 +0,0 @@
|
|||||||
#include <sys/fpregdef.h>
|
|
@ -1 +0,0 @@
|
|||||||
#include <sys/regdef.h>
|
|
@ -37,7 +37,7 @@ socketpair - socketpair 4 __socketpair socketpair
|
|||||||
#
|
#
|
||||||
# There are defined locally because the caller is also defined in this dir.
|
# There are defined locally because the caller is also defined in this dir.
|
||||||
#
|
#
|
||||||
s_llseek llseek _llseek 5 __sys_llseek
|
s_llseek llseek _llseek 5 __syscall_llseek
|
||||||
s_sigaction sigaction sigaction 3 __syscall_sigaction
|
s_sigaction sigaction sigaction 3 __syscall_sigaction
|
||||||
s_ustat ustat ustat 2 __syscall_ustat
|
s_ustat ustat ustat 2 __syscall_ustat
|
||||||
sys_mknod xmknod mknod 3 __syscall_mknod
|
sys_mknod xmknod mknod 3 __syscall_mknod
|
||||||
@ -57,10 +57,11 @@ s_getdents getdents getdents 3 __syscall_getdents
|
|||||||
s_getpriority getpriority getpriority 2 __syscall_getpriority
|
s_getpriority getpriority getpriority 2 __syscall_getpriority
|
||||||
s_getresgid getresgid getresgid 3 __syscall_getresgid
|
s_getresgid getresgid getresgid 3 __syscall_getresgid
|
||||||
s_getresuid getresuid getresuid 3 __syscall_getresuid
|
s_getresuid getresuid getresuid 3 __syscall_getresuid
|
||||||
|
s_ipc msgget ipc 5 __syscall_ipc
|
||||||
s_poll poll poll 3 __syscall_poll
|
s_poll poll poll 3 __syscall_poll
|
||||||
s_pread pread pread 6 __syscall_pread
|
s_pread64 pread64 pread 6 __syscall_pread
|
||||||
s_ptrace ptrace ptrace 4 __syscall_ptrace
|
s_ptrace ptrace ptrace 4 __syscall_ptrace
|
||||||
s_pwrite pwrite pwrite 6 __syscall_pwrite
|
s_pwrite64 pwrite64 pwrite 6 __syscall_pwrite
|
||||||
s_reboot reboot reboot 3 __syscall_reboot
|
s_reboot reboot reboot 3 __syscall_reboot
|
||||||
s_sigpending sigpending sigpending 1 __syscall_sigpending
|
s_sigpending sigpending sigpending 1 __syscall_sigpending
|
||||||
s_sigprocmask sigprocmask sigprocmask 3 __syscall_sigprocmask
|
s_sigprocmask sigprocmask sigprocmask 3 __syscall_sigprocmask
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
/* Copyright (C) 1997 Free Software Foundation, Inc.
|
/* Copyright (C) 1998 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ralf Baechle <ralf@gnu.ai.mit.edu>.
|
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
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
|
modify it under the terms of the GNU Library General Public License as
|
||||||
@ -17,13 +16,21 @@
|
|||||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
Boston, MA 02111-1307, USA. */
|
Boston, MA 02111-1307, USA. */
|
||||||
|
|
||||||
#ifndef _REGDEF_H
|
#include <sysdep.h>
|
||||||
#define _REGDEF_H 1
|
|
||||||
|
|
||||||
/*
|
/* Because the Linux version is in fact MIPS/ELF and the start.? file
|
||||||
* The real definitions come from the Linux kernel sources
|
for this system (sysdeps/mips/elf/start.S) is also used by The Hurd
|
||||||
*/
|
and therefore this files must not contain the definition of the
|
||||||
#include <asm/regdef.h>
|
`errno' variable (I don't know why, ask Roland), we have to define
|
||||||
#include <asm/fpregdef.h>
|
it somewhere else.
|
||||||
|
|
||||||
#endif /* regdef.h */
|
...and this place is here. */
|
||||||
|
.bss
|
||||||
|
.globl errno
|
||||||
|
.type errno,@object
|
||||||
|
.size errno,4
|
||||||
|
errno: .word 4
|
||||||
|
.text
|
||||||
|
weak_alias(errno, _errno)
|
||||||
|
|
||||||
|
#include <sysdeps/unix/mips/sysdep.S>
|
@ -34,7 +34,7 @@
|
|||||||
++_tmp; \
|
++_tmp; \
|
||||||
\
|
\
|
||||||
_test = (size_t)_tmp; \
|
_test = (size_t)_tmp; \
|
||||||
_test = _test + 0xf & ~0xf; \
|
_test = (_test + 0xf) & ~0xf; \
|
||||||
/* Under some circumstances, MkLinux (up to at least DR3a5) \
|
/* Under some circumstances, MkLinux (up to at least DR3a5) \
|
||||||
omits the padding. To work around this, we make a \
|
omits the padding. To work around this, we make a \
|
||||||
basic sanity check of the argument vector. Of \
|
basic sanity check of the argument vector. Of \
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
Boston, MA 02111-1307, USA. */
|
Boston, MA 02111-1307, USA. */
|
||||||
|
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
#include <wchar.h>
|
||||||
|
|
||||||
#ifndef __NO_LONG_DOUBLE_MATH
|
#ifndef __NO_LONG_DOUBLE_MATH
|
||||||
/* The actual implementation for all floating point sizes is in strtod.c.
|
/* The actual implementation for all floating point sizes is in strtod.c.
|
||||||
|
@ -22,11 +22,12 @@
|
|||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
|
#include "wchar.h"
|
||||||
|
|
||||||
|
#define USE_IN_EXTENDED_LOCALE_MODEL 1
|
||||||
|
|
||||||
#ifndef __NO_LONG_DOUBLE_MATH
|
#ifndef __NO_LONG_DOUBLE_MATH
|
||||||
|
|
||||||
# define USE_IN_EXTENDED_LOCALE_MODEL 1
|
|
||||||
|
|
||||||
extern long double ____wcstold_l_internal (const wchar_t *, wchar_t **, int,
|
extern long double ____wcstold_l_internal (const wchar_t *, wchar_t **, int,
|
||||||
__locale_t);
|
__locale_t);
|
||||||
extern unsigned long long int ____wcstoull_l_internal (const wchar_t *,
|
extern unsigned long long int ____wcstoull_l_internal (const wchar_t *,
|
||||||
@ -46,6 +47,6 @@ ____wcstold_l_internal (const wchar_t *nptr, wchar_t **endptr, int group,
|
|||||||
long double
|
long double
|
||||||
__wcstold_l (const wchar_t *nptr, wchar_t **endptr, __locale_t loc)
|
__wcstold_l (const wchar_t *nptr, wchar_t **endptr, __locale_t loc)
|
||||||
{
|
{
|
||||||
return __wcstod_internal (nptr, endptr, 0, loc);
|
return ____wcstod_l_internal (nptr, endptr, 0, loc);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user