diff options
author | cvs2svn <> | 2006-03-21 03:57:37 +0300 |
---|---|---|
committer | cvs2svn <> | 2006-03-21 03:57:37 +0300 |
commit | cb45d10b1b96190cbc359b5df782730b1524d505 (patch) | |
tree | 6c36bba73142afd46d4b20314f5eaefc1e790ca2 /libgloss/arm | |
parent | f84325d0899e5052fd59892ece265f7c2bd6c6a7 (diff) |
This commit was manufactured by cvs2svn to create tag 'newlib-1_12_0'.newlib-1_12_0
Sprout from newlib-csl-20060320-branch 2006-03-21 00:57:35 UTC cvs2svn 'This commit was manufactured by cvs2svn to create branch 'newlib-'
Cherrypick from master 2004-02-03 00:05:49 UTC Jeff Johnston <jjohnstn@redhat.com> '':
COPYING.LIBGLOSS
COPYING.NEWLIB
ChangeLog
MAINTAINERS
Makefile.def
Makefile.in
Makefile.tpl
config-ml.in
config.guess
config.if
config.sub
config/ChangeLog
config/accross.m4
config/acx.m4
config/gettext.m4
config/mh-mingw32
config/mt-linux
config/no-executables.m4
configure
configure.in
etc/ChangeLog
etc/Makefile.in
etc/configure.texi
etc/standards.texi
etc/texi2pod.pl
gettext.m4
install-sh
libgloss/ChangeLog
libgloss/Makefile.in
libgloss/arm/Makefile.in
libgloss/arm/configure
libgloss/arm/configure.in
libgloss/arm/elf-redboot.ld
libgloss/arm/redboot-crt0.S
libgloss/configure
libgloss/configure.in
libgloss/d30v/Makefile.in
libgloss/doc/Makefile.in
libgloss/fr30/Makefile.in
libgloss/frv/Makefile.in
libgloss/frv/crt0.S
libgloss/hp74x/Makefile.in
libgloss/i386/Makefile.in
libgloss/i386/cygmon.ld
libgloss/i960/Makefile.in
libgloss/iq2000/Makefile.in
libgloss/iq2000/sim.ld
libgloss/libnosys/Makefile.in
libgloss/libnosys/configure
libgloss/libnosys/configure.in
libgloss/libnosys/sbrk.c
libgloss/libnosys/warning.h
libgloss/m32r/Makefile.in
libgloss/m68hc11/Makefile.in
libgloss/m68hc11/sci-inout.S
libgloss/m68hc11/sim-valid-m68hc11.ld
libgloss/m68hc11/sim-valid-m68hc12.ld
libgloss/m68k/Makefile.in
libgloss/m68k/bcc.ld
libgloss/m68k/crt0.S
libgloss/m68k/idp.ld
libgloss/m68k/idpgdb.ld
libgloss/m68k/mvme135.ld
libgloss/m68k/mvme162.ld
libgloss/m68k/sbc5204.ld
libgloss/m68k/sbc5206.ld
libgloss/m68k/sim.ld
libgloss/mcore/Makefile.in
libgloss/mcore/elf-cmb.ld
libgloss/mips/Makefile.in
libgloss/mips/array.ld
libgloss/mips/cfe.ld
libgloss/mips/configure
libgloss/mips/configure.in
libgloss/mips/ddb-kseg0.ld
libgloss/mips/ddb.ld
libgloss/mips/dve.ld
libgloss/mips/idt.ld
libgloss/mips/idt32.ld
libgloss/mips/idt64.ld
libgloss/mips/idtecoff.ld
libgloss/mips/jmr3904app-java.ld
libgloss/mips/jmr3904app.ld
libgloss/mips/jmr3904dram-java.ld
libgloss/mips/jmr3904dram.ld
libgloss/mips/lsi.ld
libgloss/mips/nullmon.ld
libgloss/mips/pmon.ld
libgloss/mips/regs.S
libgloss/mips/vr4300.S
libgloss/mips/vr5xxx.S
libgloss/mn10200/Makefile.in
libgloss/mn10200/eval.ld
libgloss/mn10200/sim.ld
libgloss/mn10300/Makefile.in
libgloss/mn10300/asb2303.ld
libgloss/mn10300/asb2305.ld
libgloss/mn10300/eval.ld
libgloss/mn10300/sim.ld
libgloss/pa/Makefile.in
libgloss/rs6000/Makefile.in
libgloss/rs6000/ads.ld
libgloss/rs6000/mbx.ld
libgloss/rs6000/simulator.S
libgloss/rs6000/yellowknife.ld
libgloss/sh/sh1lcevb.ld
libgloss/sh/sh2lcevb.ld
libgloss/sh/sh3bb.ld
libgloss/sh/sh3lcevb.ld
libgloss/sparc/Makefile.in
libgloss/sparc/elfsim.ld
libgloss/sparc/ex930.ld
libgloss/sparc/ex931.ld
libgloss/sparc/ex934.ld
libgloss/sparc/libsys/Makefile.in
libgloss/sparc/sparc86x.ld
libgloss/xstormy16/Makefile.in
libgloss/xstormy16/eva_app.ld
libgloss/xstormy16/eva_stub.ld
libgloss/xstormy16/sim_high.ld
libgloss/xstormy16/sim_rom.ld
libtool.m4
ltcf-c.sh
ltcf-cxx.sh
ltcf-gcj.sh
ltconfig
ltmain.sh
missing
mkinstalldirs
newlib/ChangeLog
newlib/MAINTAINERS
newlib/Makefile.am
newlib/Makefile.in
newlib/NEWS
newlib/README
newlib/acinclude.m4
newlib/aclocal.m4
newlib/configure
newlib/configure.host
newlib/configure.in
newlib/doc/aclocal.m4
newlib/doc/configure
newlib/iconvdata/aclocal.m4
newlib/iconvdata/configure
newlib/iconvdata/jis0208.h
newlib/libc/Makefile.am
newlib/libc/Makefile.in
newlib/libc/aclocal.m4
newlib/libc/argz/argz_insert.c
newlib/libc/configure
newlib/libc/configure.in
newlib/libc/ctype/ctype.tex
newlib/libc/ctype/ctype_.c
newlib/libc/ctype/islower.c
newlib/libc/ctype/isupper.c
newlib/libc/ctype/iswalnum.c
newlib/libc/ctype/iswalpha.c
newlib/libc/ctype/iswblank.c
newlib/libc/ctype/iswcntrl.c
newlib/libc/ctype/iswdigit.c
newlib/libc/ctype/iswgraph.c
newlib/libc/ctype/iswlower.c
newlib/libc/ctype/iswprint.c
newlib/libc/ctype/iswpunct.c
newlib/libc/ctype/iswspace.c
newlib/libc/ctype/iswupper.c
newlib/libc/ctype/iswxdigit.c
newlib/libc/ctype/jp2uc.c
newlib/libc/ctype/tolower.c
newlib/libc/ctype/toupper.c
newlib/libc/ctype/towctrans.c
newlib/libc/ctype/towlower.c
newlib/libc/ctype/towupper.c
newlib/libc/iconv/AUTHORS
newlib/libc/iconv/COPYING
newlib/libc/iconv/Makefile.am
newlib/libc/iconv/Makefile.in
newlib/libc/iconv/README.ORIGINAL
newlib/libc/iconv/README.TODO
newlib/libc/iconv/ccs/Makefile.am
newlib/libc/iconv/ccs/Makefile.in
newlib/libc/iconv/ccs/README.CCS.SOURCES
newlib/libc/iconv/ccs/big5.c
newlib/libc/iconv/ccs/binary/Makefile.am
newlib/libc/iconv/ccs/binary/Makefile.in
newlib/libc/iconv/ccs/binary/big5.cct
newlib/libc/iconv/ccs/binary/cns11643_plane1.cct
newlib/libc/iconv/ccs/binary/cns11643_plane14.cct
newlib/libc/iconv/ccs/binary/cns11643_plane2.cct
newlib/libc/iconv/ccs/binary/cp775.cct
newlib/libc/iconv/ccs/binary/cp850.cct
newlib/libc/iconv/ccs/binary/cp852.cct
newlib/libc/iconv/ccs/binary/cp855.cct
newlib/libc/iconv/ccs/binary/cp866.cct
newlib/libc/iconv/ccs/binary/gb_2312_80.cct
newlib/libc/iconv/ccs/binary/iso_8859_1.cct
newlib/libc/iconv/ccs/binary/iso_8859_15.cct
newlib/libc/iconv/ccs/binary/iso_8859_2.cct
newlib/libc/iconv/ccs/binary/iso_8859_4.cct
newlib/libc/iconv/ccs/binary/iso_8859_5.cct
newlib/libc/iconv/ccs/binary/jis_x0201.cct
newlib/libc/iconv/ccs/binary/jis_x0208_1983.cct
newlib/libc/iconv/ccs/binary/jis_x0212_1990.cct
newlib/libc/iconv/ccs/binary/koi8_r.cct
newlib/libc/iconv/ccs/binary/koi8_u.cct
newlib/libc/iconv/ccs/binary/ksx1001.cct
newlib/libc/iconv/ccs/binary/shift_jis.cct
newlib/libc/iconv/ccs/binary/us_ascii.cct
newlib/libc/iconv/ccs/cns11643_plane1.c
newlib/libc/iconv/ccs/cns11643_plane14.c
newlib/libc/iconv/ccs/cns11643_plane2.c
newlib/libc/iconv/ccs/cp775.c
newlib/libc/iconv/ccs/cp850.c
newlib/libc/iconv/ccs/cp852.c
newlib/libc/iconv/ccs/cp855.c
newlib/libc/iconv/ccs/cp866.c
newlib/libc/iconv/ccs/gb_2312_80.c
newlib/libc/iconv/ccs/iconv_mktbl
newlib/libc/iconv/ccs/iso_8859_1.c
newlib/libc/iconv/ccs/iso_8859_15.c
newlib/libc/iconv/ccs/iso_8859_2.c
newlib/libc/iconv/ccs/iso_8859_4.c
newlib/libc/iconv/ccs/iso_8859_5.c
newlib/libc/iconv/ccs/jis_x0201.c
newlib/libc/iconv/ccs/jis_x0208_1983.c
newlib/libc/iconv/ccs/jis_x0212_1990.c
newlib/libc/iconv/ccs/koi8_r.c
newlib/libc/iconv/ccs/koi8_u.c
newlib/libc/iconv/ccs/ksx1001.c
newlib/libc/iconv/ccs/shift_jis.c
newlib/libc/iconv/ccs/us_ascii.c
newlib/libc/iconv/ces/Makefile.am
newlib/libc/iconv/ces/Makefile.in
newlib/libc/iconv/ces/euc-jp.c
newlib/libc/iconv/ces/euc-kr.c
newlib/libc/iconv/ces/euc-tw.c
newlib/libc/iconv/ces/gb2312.c
newlib/libc/iconv/ces/iso-10646-ucs-2.c
newlib/libc/iconv/ces/iso-10646-ucs-4.c
newlib/libc/iconv/ces/ucs-2-internal.c
newlib/libc/iconv/ces/ucs-4-internal.c
newlib/libc/iconv/ces/utf-16.c
newlib/libc/iconv/ces/utf-8.c
newlib/libc/iconv/charset.aliases
newlib/libc/iconv/iconv.tex
newlib/libc/iconv/lib/Makefile.am
newlib/libc/iconv/lib/Makefile.in
newlib/libc/iconv/lib/aliases.c
newlib/libc/iconv/lib/bialiasesi.c
newlib/libc/iconv/lib/biccs.c
newlib/libc/iconv/lib/bices.c
newlib/libc/iconv/lib/ccs.c
newlib/libc/iconv/lib/ces.c
newlib/libc/iconv/lib/ces_euc.c
newlib/libc/iconv/lib/ces_iso2022.c
newlib/libc/iconv/lib/ces_table.c
newlib/libc/iconv/lib/converter.c
newlib/libc/iconv/lib/deps.h
newlib/libc/iconv/lib/endian.h
newlib/libc/iconv/lib/iconv.c
newlib/libc/iconv/lib/loaddata.c
newlib/libc/iconv/lib/local.h
newlib/libc/include/_syslist.h
newlib/libc/include/ctype.h
newlib/libc/include/grp.h
newlib/libc/include/iconv.h
newlib/libc/include/ieeefp.h
newlib/libc/include/machine/ieeefp.h
newlib/libc/include/machine/setjmp.h
newlib/libc/include/machine/types.h
newlib/libc/include/math.h
newlib/libc/include/pwd.h
newlib/libc/include/stdio.h
newlib/libc/include/stdlib.h
newlib/libc/include/string.h
newlib/libc/include/sys/_types.h
newlib/libc/include/sys/config.h
newlib/libc/include/sys/dirent.h
newlib/libc/include/sys/fcntl.h
newlib/libc/include/sys/features.h
newlib/libc/include/sys/lock.h
newlib/libc/include/sys/param.h
newlib/libc/include/sys/reent.h
newlib/libc/include/sys/signal.h
newlib/libc/include/sys/stdio.h
newlib/libc/include/sys/time.h
newlib/libc/include/sys/types.h
newlib/libc/include/sys/unistd.h
newlib/libc/include/time.h
newlib/libc/libc.texinfo
newlib/libc/locale/locale.c
newlib/libc/machine/a29k/aclocal.m4
newlib/libc/machine/a29k/configure
newlib/libc/machine/aclocal.m4
newlib/libc/machine/arm/Makefile.am
newlib/libc/machine/arm/Makefile.in
newlib/libc/machine/arm/aclocal.m4
newlib/libc/machine/arm/configure
newlib/libc/machine/configure
newlib/libc/machine/d10v/aclocal.m4
newlib/libc/machine/d10v/configure
newlib/libc/machine/d30v/aclocal.m4
newlib/libc/machine/d30v/configure
newlib/libc/machine/fr30/aclocal.m4
newlib/libc/machine/fr30/configure
newlib/libc/machine/frv/aclocal.m4
newlib/libc/machine/frv/configure
newlib/libc/machine/h8300/Makefile.am
newlib/libc/machine/h8300/Makefile.in
newlib/libc/machine/h8300/aclocal.m4
newlib/libc/machine/h8300/configure
newlib/libc/machine/h8300/defines.h
newlib/libc/machine/h8300/memcpy.S
newlib/libc/machine/h8300/memset.S
newlib/libc/machine/h8300/setarch.h
newlib/libc/machine/h8300/setjmp.S
newlib/libc/machine/h8300/strcmp.S
newlib/libc/machine/h8500/aclocal.m4
newlib/libc/machine/h8500/configure
newlib/libc/machine/hppa/aclocal.m4
newlib/libc/machine/hppa/configure
newlib/libc/machine/i386/aclocal.m4
newlib/libc/machine/i386/configure
newlib/libc/machine/i960/aclocal.m4
newlib/libc/machine/i960/configure
newlib/libc/machine/iq2000/aclocal.m4
newlib/libc/machine/iq2000/configure
newlib/libc/machine/m32r/aclocal.m4
newlib/libc/machine/m32r/configure
newlib/libc/machine/m68hc11/aclocal.m4
newlib/libc/machine/m68hc11/configure
newlib/libc/machine/m68k/aclocal.m4
newlib/libc/machine/m68k/configure
newlib/libc/machine/m88k/aclocal.m4
newlib/libc/machine/m88k/configure
newlib/libc/machine/mips/aclocal.m4
newlib/libc/machine/mips/configure
newlib/libc/machine/mn10200/aclocal.m4
newlib/libc/machine/mn10200/configure
newlib/libc/machine/mn10300/aclocal.m4
newlib/libc/machine/mn10300/configure
newlib/libc/machine/necv70/aclocal.m4
newlib/libc/machine/necv70/configure
newlib/libc/machine/powerpc/aclocal.m4
newlib/libc/machine/powerpc/configure
newlib/libc/machine/powerpc/vfprintf.c
newlib/libc/machine/powerpc/vfscanf.c
newlib/libc/machine/sh/Makefile.in
newlib/libc/machine/sh/aclocal.m4
newlib/libc/machine/sh/asm.h
newlib/libc/machine/sh/configure
newlib/libc/machine/sparc/aclocal.m4
newlib/libc/machine/sparc/configure
newlib/libc/machine/tic4x/aclocal.m4
newlib/libc/machine/tic4x/configure
newlib/libc/machine/tic80/aclocal.m4
newlib/libc/machine/tic80/configure
newlib/libc/machine/v850/aclocal.m4
newlib/libc/machine/v850/configure
newlib/libc/machine/w65/aclocal.m4
newlib/libc/machine/w65/configure
newlib/libc/machine/xscale/Makefile.am
newlib/libc/machine/xscale/Makefile.in
newlib/libc/machine/xscale/aclocal.m4
newlib/libc/machine/xscale/configure
newlib/libc/machine/xstormy16/aclocal.m4
newlib/libc/machine/xstormy16/configure
newlib/libc/machine/z8k/Makefile.am
newlib/libc/machine/z8k/Makefile.in
newlib/libc/machine/z8k/aclocal.m4
newlib/libc/machine/z8k/configure
newlib/libc/machine/z8k/setjmp.S
newlib/libc/misc/Makefile.am
newlib/libc/misc/Makefile.in
newlib/libc/misc/unctrl.c
newlib/libc/posix/scandir.c
newlib/libc/reent/impure.c
newlib/libc/reent/reent.c
newlib/libc/reent/reent.tex
newlib/libc/search/hash.c
newlib/libc/search/hash_buf.c
newlib/libc/signal/signal.c
newlib/libc/stdio/Makefile.am
newlib/libc/stdio/Makefile.in
newlib/libc/stdio/asprintf.c
newlib/libc/stdio/clearerr.c
newlib/libc/stdio/fclose.c
newlib/libc/stdio/fcloseall.c
newlib/libc/stdio/fdopen.c
newlib/libc/stdio/feof.c
newlib/libc/stdio/ferror.c
newlib/libc/stdio/fflush.c
newlib/libc/stdio/fgetc.c
newlib/libc/stdio/fgetpos.c
newlib/libc/stdio/fgets.c
newlib/libc/stdio/fileno.c
newlib/libc/stdio/findfp.c
newlib/libc/stdio/fiprintf.c
newlib/libc/stdio/flags.c
newlib/libc/stdio/fopen.c
newlib/libc/stdio/fprintf.c
newlib/libc/stdio/fputc.c
newlib/libc/stdio/fputs.c
newlib/libc/stdio/fread.c
newlib/libc/stdio/freopen.c
newlib/libc/stdio/fscanf.c
newlib/libc/stdio/fseek.c
newlib/libc/stdio/fseeko.c
newlib/libc/stdio/fsetpos.c
newlib/libc/stdio/ftell.c
newlib/libc/stdio/ftello.c
newlib/libc/stdio/fvwrite.c
newlib/libc/stdio/fwalk.c
newlib/libc/stdio/fwrite.c
newlib/libc/stdio/getc.c
newlib/libc/stdio/getc_u.c
newlib/libc/stdio/getchar.c
newlib/libc/stdio/getchar_u.c
newlib/libc/stdio/getdelim.c
newlib/libc/stdio/getline.c
newlib/libc/stdio/gets.c
newlib/libc/stdio/getw.c
newlib/libc/stdio/iprintf.c
newlib/libc/stdio/local.h
newlib/libc/stdio/makebuf.c
newlib/libc/stdio/mktemp.c
newlib/libc/stdio/perror.c
newlib/libc/stdio/printf.c
newlib/libc/stdio/putc.c
newlib/libc/stdio/putc_u.c
newlib/libc/stdio/putchar.c
newlib/libc/stdio/putchar_u.c
newlib/libc/stdio/puts.c
newlib/libc/stdio/putw.c
newlib/libc/stdio/refill.c
newlib/libc/stdio/remove.c
newlib/libc/stdio/rename.c
newlib/libc/stdio/rewind.c
newlib/libc/stdio/rget.c
newlib/libc/stdio/scanf.c
newlib/libc/stdio/setbuf.c
newlib/libc/stdio/setbuffer.c
newlib/libc/stdio/setlinebuf.c
newlib/libc/stdio/setvbuf.c
newlib/libc/stdio/siprintf.c
newlib/libc/stdio/snprintf.c
newlib/libc/stdio/sprintf.c
newlib/libc/stdio/sscanf.c
newlib/libc/stdio/stdio.c
newlib/libc/stdio/stdio.tex
newlib/libc/stdio/tmpfile.c
newlib/libc/stdio/tmpnam.c
newlib/libc/stdio/ungetc.c
newlib/libc/stdio/vasprintf.c
newlib/libc/stdio/vfieeefp.h
newlib/libc/stdio/vfprintf.c
newlib/libc/stdio/vfscanf.c
newlib/libc/stdio/vprintf.c
newlib/libc/stdio/vscanf.c
newlib/libc/stdio/vsnprintf.c
newlib/libc/stdio/vsprintf.c
newlib/libc/stdio/vsscanf.c
newlib/libc/stdio/wbuf.c
newlib/libc/stdio/wsetup.c
newlib/libc/stdio64/fdopen64.c
newlib/libc/stdio64/fgetpos64.c
newlib/libc/stdio64/fopen64.c
newlib/libc/stdio64/freopen64.c
newlib/libc/stdio64/fseeko64.c
newlib/libc/stdio64/ftello64.c
newlib/libc/stdlib/Makefile.am
newlib/libc/stdlib/Makefile.in
newlib/libc/stdlib/a64l.c
newlib/libc/stdlib/assert.c
newlib/libc/stdlib/atexit.c
newlib/libc/stdlib/atexit.h
newlib/libc/stdlib/efgcvt.c
newlib/libc/stdlib/envlock.c
newlib/libc/stdlib/exit.c
newlib/libc/stdlib/getopt.c
newlib/libc/stdlib/ldtoa.c
newlib/libc/stdlib/mallocr.c
newlib/libc/stdlib/mblen.c
newlib/libc/stdlib/mblen_r.c
newlib/libc/stdlib/mbrlen.c
newlib/libc/stdlib/mbrtowc.c
newlib/libc/stdlib/mbsrtowcs.c
newlib/libc/stdlib/mbstowcs.c
newlib/libc/stdlib/mbtowc.c
newlib/libc/stdlib/mbtowc_r.c
newlib/libc/stdlib/mlock.c
newlib/libc/stdlib/mstats.c
newlib/libc/stdlib/on_exit.c
newlib/libc/stdlib/putenv.c
newlib/libc/stdlib/putenv_r.c
newlib/libc/stdlib/rand.c
newlib/libc/stdlib/rand48.c
newlib/libc/stdlib/setenv_r.c
newlib/libc/stdlib/stdlib.tex
newlib/libc/stdlib/strtod.c
newlib/libc/stdlib/wcrtomb.c
newlib/libc/stdlib/wcsrtombs.c
newlib/libc/stdlib/wcstombs.c
newlib/libc/stdlib/wctomb.c
newlib/libc/string/bcmp.c
newlib/libc/string/memchr.c
newlib/libc/string/memcmp.c
newlib/libc/string/strcasecmp.c
newlib/libc/string/strcoll.c
newlib/libc/string/strcspn.c
newlib/libc/string/strerror_r.c
newlib/libc/string/strings.tex
newlib/libc/string/strlwr.c
newlib/libc/string/strncasecmp.c
newlib/libc/string/strncat.c
newlib/libc/string/strndup_r.c
newlib/libc/string/strnlen.c
newlib/libc/string/strpbrk.c
newlib/libc/string/strtok.c
newlib/libc/string/strupr.c
newlib/libc/string/wcscat.c
newlib/libc/string/wcschr.c
newlib/libc/string/wcscmp.c
newlib/libc/string/wcscoll.c
newlib/libc/string/wcscpy.c
newlib/libc/string/wcscspn.c
newlib/libc/string/wcslcat.c
newlib/libc/string/wcslcpy.c
newlib/libc/string/wcslen.c
newlib/libc/string/wcsncat.c
newlib/libc/string/wcsncmp.c
newlib/libc/string/wcsncpy.c
newlib/libc/string/wcsnlen.c
newlib/libc/string/wcspbrk.c
newlib/libc/string/wcsrchr.c
newlib/libc/string/wcsspn.c
newlib/libc/string/wcsstr.c
newlib/libc/string/wcstrings.tex
newlib/libc/string/wcswidth.c
newlib/libc/string/wcwidth.c
newlib/libc/string/wmemchr.c
newlib/libc/string/wmemcmp.c
newlib/libc/string/wmemcpy.c
newlib/libc/string/wmemmove.c
newlib/libc/string/wmemset.c
newlib/libc/sys.tex
newlib/libc/sys/a29khif/aclocal.m4
newlib/libc/sys/a29khif/configure
newlib/libc/sys/aclocal.m4
newlib/libc/sys/arc/aclocal.m4
newlib/libc/sys/arc/configure
newlib/libc/sys/arc/syscalls.c
newlib/libc/sys/arm/Makefile.am
newlib/libc/sys/arm/Makefile.in
newlib/libc/sys/arm/access.c
newlib/libc/sys/arm/aclocal.m4
newlib/libc/sys/arm/configure
newlib/libc/sys/arm/crt0.S
newlib/libc/sys/arm/libcfunc.c
newlib/libc/sys/arm/setjmp.S
newlib/libc/sys/arm/swi.h
newlib/libc/sys/arm/sys/param.h
newlib/libc/sys/arm/syscalls.c
newlib/libc/sys/arm/trap.S
newlib/libc/sys/configure
newlib/libc/sys/configure.in
newlib/libc/sys/d10v/aclocal.m4
newlib/libc/sys/d10v/configure
newlib/libc/sys/decstation/aclocal.m4
newlib/libc/sys/decstation/configure
newlib/libc/sys/h8300hms/Makefile.am
newlib/libc/sys/h8300hms/Makefile.in
newlib/libc/sys/h8300hms/_exit.c
newlib/libc/sys/h8300hms/aclocal.m4
newlib/libc/sys/h8300hms/close.S
newlib/libc/sys/h8300hms/configure
newlib/libc/sys/h8300hms/crt0.S
newlib/libc/sys/h8300hms/fstat.S
newlib/libc/sys/h8300hms/lseek.S
newlib/libc/sys/h8300hms/read.S
newlib/libc/sys/h8300hms/setarch.h
newlib/libc/sys/h8300hms/write.S
newlib/libc/sys/h8500hms/aclocal.m4
newlib/libc/sys/h8500hms/configure
newlib/libc/sys/linux/Makefile.am
newlib/libc/sys/linux/Makefile.in
newlib/libc/sys/linux/aclocal.m4
newlib/libc/sys/linux/aio.c
newlib/libc/sys/linux/argp/argp-fs-xinl.c
newlib/libc/sys/linux/argp/argp-xinl.c
newlib/libc/sys/linux/configure
newlib/libc/sys/linux/dl/dl-cache.c
newlib/libc/sys/linux/dl/dl-load.c
newlib/libc/sys/linux/dl/dl-open.c
newlib/libc/sys/linux/dl/dl-reloc.c
newlib/libc/sys/linux/dl/dl-runtime.c
newlib/libc/sys/linux/dl/dl-support.c
newlib/libc/sys/linux/dl/dlfcn.h
newlib/libc/sys/linux/dl/do-rel.h
newlib/libc/sys/linux/dl/dynamic-link.h
newlib/libc/sys/linux/dl/ldsodefs.h
newlib/libc/sys/linux/getpwnam.c
newlib/libc/sys/linux/getpwuid.c
newlib/libc/sys/linux/iconv/gconv_open.c
newlib/libc/sys/linux/iconv/gconv_simple.c
newlib/libc/sys/linux/include/dlfcn.h
newlib/libc/sys/linux/include/getopt.h
newlib/libc/sys/linux/include/stdint.h
newlib/libc/sys/linux/include/time.h
newlib/libc/sys/linux/include/unistd.h
newlib/libc/sys/linux/inode.c
newlib/libc/sys/linux/intl/dcigettext.c
newlib/libc/sys/linux/intl/explodename.c
newlib/libc/sys/linux/intl/finddomain.c
newlib/libc/sys/linux/intl/l10nflist.c
newlib/libc/sys/linux/intl/loadmsgcat.c
newlib/libc/sys/linux/intl/localealias.c
newlib/libc/sys/linux/linuxthreads/Makefile.am
newlib/libc/sys/linux/linuxthreads/Makefile.in
newlib/libc/sys/linux/linuxthreads/aclocal.m4
newlib/libc/sys/linux/linuxthreads/bits/libc-lock.h
newlib/libc/sys/linux/linuxthreads/config.h
newlib/libc/sys/linux/linuxthreads/configure
newlib/libc/sys/linux/linuxthreads/machine/aclocal.m4
newlib/libc/sys/linux/linuxthreads/machine/configure
newlib/libc/sys/linux/linuxthreads/machine/i386/aclocal.m4
newlib/libc/sys/linux/linuxthreads/machine/i386/configure
newlib/libc/sys/linux/machine/aclocal.m4
newlib/libc/sys/linux/machine/configure
newlib/libc/sys/linux/machine/i386/aclocal.m4
newlib/libc/sys/linux/machine/i386/configure
newlib/libc/sys/linux/machine/i386/dl-machine.h
newlib/libc/sys/linux/machine/i386/socketcall.h
newlib/libc/sys/linux/machine/i386/syscall.h
newlib/libc/sys/linux/machine/i386/weakalias.h
newlib/libc/sys/linux/net/gethostbydns.c
newlib/libc/sys/linux/net/ns_ntoa.c
newlib/libc/sys/linux/shared.ld
newlib/libc/sys/linux/stdlib/glob.c
newlib/libc/sys/linux/sys/_types.h
newlib/libc/sys/linux/sys/cdefs.h
newlib/libc/sys/linux/sys/dirent.h
newlib/libc/sys/linux/sys/lock.h
newlib/libc/sys/linux/sys/stat.h
newlib/libc/sys/linux/sys/types.h
newlib/libc/sys/linux/sys/unistd.h
newlib/libc/sys/m88kbug/aclocal.m4
newlib/libc/sys/m88kbug/configure
newlib/libc/sys/mmixware/aclocal.m4
newlib/libc/sys/mmixware/configure
newlib/libc/sys/netware/aclocal.m4
newlib/libc/sys/netware/configure
newlib/libc/sys/rtems/aclocal.m4
newlib/libc/sys/rtems/configure
newlib/libc/sys/rtems/crt0.c
newlib/libc/sys/rtems/sys/param.h
newlib/libc/sys/sh/aclocal.m4
newlib/libc/sys/sh/configure
newlib/libc/sys/sh/crt0.S
newlib/libc/sys/sparc64/aclocal.m4
newlib/libc/sys/sparc64/configure
newlib/libc/sys/sun4/aclocal.m4
newlib/libc/sys/sun4/configure
newlib/libc/sys/sysmec/aclocal.m4
newlib/libc/sys/sysmec/configure
newlib/libc/sys/sysnec810/aclocal.m4
newlib/libc/sys/sysnec810/configure
newlib/libc/sys/sysnecv850/aclocal.m4
newlib/libc/sys/sysnecv850/configure
newlib/libc/sys/sysvi386/aclocal.m4
newlib/libc/sys/sysvi386/configure
newlib/libc/sys/sysvi386/sys/param.h
newlib/libc/sys/sysvnecv70/aclocal.m4
newlib/libc/sys/sysvnecv70/configure
newlib/libc/sys/tic80/aclocal.m4
newlib/libc/sys/tic80/configure
newlib/libc/sys/w65/aclocal.m4
newlib/libc/sys/w65/configure
newlib/libc/sys/z8ksim/aclocal.m4
newlib/libc/sys/z8ksim/configure
newlib/libc/time/Makefile.am
newlib/libc/time/Makefile.in
newlib/libc/time/local.h
newlib/libc/time/mktime.c
newlib/libc/time/mktm_r.c
newlib/libc/time/strftime.c
newlib/libc/time/strptime.c
newlib/libc/time/time.tex
newlib/libc/time/tzlock.c
newlib/libc/time/tzset_r.c
newlib/libc/unix/Makefile.am
newlib/libc/unix/Makefile.in
newlib/libc/unix/getcwd.c
newlib/libc/unix/getlogin.c
newlib/libc/unix/getpass.c
newlib/libc/unix/getut.c
newlib/libc/unix/ttyname.c
newlib/libm/Makefile.am
newlib/libm/Makefile.in
newlib/libm/aclocal.m4
newlib/libm/common/Makefile.am
newlib/libm/common/Makefile.in
newlib/libm/common/common.tex
newlib/libm/common/fdlibm.h
newlib/libm/common/s_fmax.c
newlib/libm/common/s_fmin.c
newlib/libm/common/s_fpclassify.c
newlib/libm/common/s_lrint.c
newlib/libm/common/s_modf.c
newlib/libm/common/sf_fmax.c
newlib/libm/common/sf_fmin.c
newlib/libm/common/sf_lrint.c
newlib/libm/common/sf_round.c
newlib/libm/configure
newlib/libm/libm.texinfo
newlib/libm/machine/aclocal.m4
newlib/libm/machine/configure
newlib/libm/machine/i386/aclocal.m4
newlib/libm/machine/i386/configure
newlib/libm/math/Makefile.am
newlib/libm/math/Makefile.in
newlib/libm/math/ef_atan2.c
newlib/libm/math/ef_hypot.c
newlib/libm/math/math.tex
newlib/libm/math/s_infconst.c
newlib/libm/math/s_isinf.c
newlib/libm/math/s_isnan.c
newlib/libm/math/s_ldexp.c
newlib/libm/math/sf_isinf.c
newlib/libm/math/sf_isnan.c
newlib/libm/math/w_j0.c
newlib/libm/math/w_log.c
newlib/libm/mathfp/Makefile.am
newlib/libm/mathfp/Makefile.in
newlib/libm/mathfp/er_gamma.c
newlib/libm/mathfp/er_lgamma.c
newlib/libm/mathfp/erf_gamma.c
newlib/libm/mathfp/erf_lgamma.c
newlib/libm/mathfp/mathfp.tex
newlib/libm/mathfp/s_atangent.c
newlib/libm/mathfp/s_frexp.c
newlib/libm/mathfp/s_infconst.c
newlib/libm/mathfp/s_isinf.c
newlib/libm/mathfp/s_isnan.c
newlib/libm/mathfp/s_ldexp.c
newlib/libm/mathfp/s_logarithm.c
newlib/libm/mathfp/s_mathcnst.c
newlib/libm/mathfp/s_pow.c
newlib/libm/mathfp/sf_atangent.c
newlib/libm/mathfp/sf_frexp.c
newlib/libm/mathfp/sf_isinf.c
newlib/libm/mathfp/sf_isnan.c
newlib/libm/mathfp/sf_pow.c
newlib/libm/mathfp/w_jn.c
newlib/newlib.hin
newlib/stamp-h.in
newlib/testsuite/include/check.h
newlib/testsuite/lib/checkoutput.exp
newlib/testsuite/lib/flags.exp
newlib/testsuite/lib/newlib.exp
newlib/testsuite/lib/passfail.exp
src-release
symlink-tree
texinfo/texinfo.tex
Cherrypick from cygnus 1999-05-03 07:29:06 UTC Richard Henderson <rth@redhat.com> '19990502 sourceware import':
COPYING
COPYING.LIB
move-if-change
mpw-README
mpw-build.in
mpw-config.in
mpw-configure
mpw-install
setup.com
ylwrap
Delete:
config/codeset.m4
config/depstand.m4
config/enable.m4
config/gettext-sister.m4
config/glibc21.m4
config/gxx-include-dir.m4
config/iconv.m4
config/intdiv0.m4
config/inttypes-pri.m4
config/inttypes.m4
config/inttypes_h.m4
config/lcmessage.m4
config/lead-dot.m4
config/lib-ld.m4
config/lib-link.m4
config/lib-prefix.m4
config/mh-ppc-aix
config/mh-ppc-darwin
config/mh-x86omitfp
config/mt-gnu
config/nls.m4
config/po.m4
config/stdint.m4
config/stdint_h.m4
config/tls.m4
config/uintmax_t.m4
config/ulonglong.m4
config/warnings.m4
depcomp
libgloss/arm/coff-rdimon.specs
libgloss/arm/coff-rdpmon.specs
libgloss/arm/crt0.S
libgloss/arm/elf-rdimon.specs
libgloss/arm/elf-rdpmon.specs
libgloss/arm/libcfunc.c
libgloss/arm/swi.h
libgloss/arm/syscalls.c
libgloss/arm/trap.S
libgloss/cris/Makefile.in
libgloss/cris/configure
libgloss/cris/configure.in
libgloss/cris/crt0.S
libgloss/cris/crti.c
libgloss/cris/crtn.c
libgloss/cris/gensyscalls
libgloss/cris/lcrt0.c
libgloss/cris/linunistd.h
libgloss/cris/outbyte.c
libgloss/cris/setup.S
libgloss/crx/Makefile.in
libgloss/crx/_exit.c
libgloss/crx/_getenv.c
libgloss/crx/_rename.c
libgloss/crx/close.c
libgloss/crx/configure
libgloss/crx/configure.in
libgloss/crx/crt0.S
libgloss/crx/crti.S
libgloss/crx/crtn.S
libgloss/crx/dvz_hndl.c
libgloss/crx/flg_hndl.c
libgloss/crx/fstat.c
libgloss/crx/getpid.c
libgloss/crx/iad_hndl.c
libgloss/crx/intable.c
libgloss/crx/isatty.c
libgloss/crx/kill.c
libgloss/crx/lseek.c
libgloss/crx/open.c
libgloss/crx/putnum.c
libgloss/crx/read.c
libgloss/crx/sbrk.c
libgloss/crx/sim.ld
libgloss/crx/stat.c
libgloss/crx/svc_hndl.c
libgloss/crx/time.c
libgloss/crx/und_hndl.c
libgloss/crx/unlink.c
libgloss/crx/write.c
libgloss/libnosys/_exit.c
libgloss/libnosys/chown.c
libgloss/libnosys/readlink.c
libgloss/libnosys/symlink.c
libgloss/m32c/Makefile.in
libgloss/m32c/abort.S
libgloss/m32c/argv.S
libgloss/m32c/argvlen.S
libgloss/m32c/chdir.S
libgloss/m32c/chmod.S
libgloss/m32c/close.S
libgloss/m32c/configure
libgloss/m32c/configure.in
libgloss/m32c/crt0.S
libgloss/m32c/crtn.S
libgloss/m32c/exit.S
libgloss/m32c/fstat.S
libgloss/m32c/genscript
libgloss/m32c/getpid.S
libgloss/m32c/gettimeofday.S
libgloss/m32c/heaptop.S
libgloss/m32c/isatty.S
libgloss/m32c/kill.S
libgloss/m32c/link.S
libgloss/m32c/lseek.S
libgloss/m32c/m32c.tmpl
libgloss/m32c/m32csys.h
libgloss/m32c/open.S
libgloss/m32c/read.S
libgloss/m32c/sbrk.c
libgloss/m32c/stat.S
libgloss/m32c/time.S
libgloss/m32c/times.S
libgloss/m32c/unlink.S
libgloss/m32c/utime.S
libgloss/m32c/write.S
libgloss/m68k/dbug-cf.sc
libgloss/mt/16-002.ld
libgloss/mt/16-003.ld
libgloss/mt/64-001.ld
libgloss/mt/Makefile.in
libgloss/mt/access.c
libgloss/mt/chmod.c
libgloss/mt/close.c
libgloss/mt/configure
libgloss/mt/configure.in
libgloss/mt/crt0-16-002.S
libgloss/mt/crt0-16-003.S
libgloss/mt/crt0-64-001.S
libgloss/mt/crt0-ms2.S
libgloss/mt/crt0.S
libgloss/mt/exit-16-002.c
libgloss/mt/exit-16-003.c
libgloss/mt/exit-64-001.c
libgloss/mt/exit-ms2.c
libgloss/mt/exit.c
libgloss/mt/fstat.c
libgloss/mt/getpid.c
libgloss/mt/gettime.c
libgloss/mt/isatty.c
libgloss/mt/kill.c
libgloss/mt/lseek.c
libgloss/mt/ms2.ld
libgloss/mt/open.c
libgloss/mt/read.c
libgloss/mt/sbrk.c
libgloss/mt/startup-16-002.S
libgloss/mt/startup-16-003.S
libgloss/mt/startup-64-001.S
libgloss/mt/startup-ms2.S
libgloss/mt/stat.c
libgloss/mt/time.c
libgloss/mt/times.c
libgloss/mt/trap.S
libgloss/mt/trap.h
libgloss/mt/unlink.c
libgloss/mt/utime.c
libgloss/mt/write.c
libgloss/rs6000/sim-getrusage.S
newlib/acconfig.h
newlib/libc/iconv/ccs/binary/iso_8859_10.cct
newlib/libc/iconv/ccs/binary/iso_8859_11.cct
newlib/libc/iconv/ccs/binary/iso_8859_13.cct
newlib/libc/iconv/ccs/binary/iso_8859_14.cct
newlib/libc/iconv/ccs/binary/iso_8859_3.cct
newlib/libc/iconv/ccs/binary/iso_8859_6.cct
newlib/libc/iconv/ccs/binary/iso_8859_7.cct
newlib/libc/iconv/ccs/binary/iso_8859_8.cct
newlib/libc/iconv/ccs/binary/iso_8859_9.cct
newlib/libc/iconv/ccs/binary/iso_ir_111.cct
newlib/libc/iconv/ccs/binary/jis_x0201_1976.cct
newlib/libc/iconv/ccs/binary/jis_x0208_1990.cct
newlib/libc/iconv/ccs/binary/koi8_ru.cct
newlib/libc/iconv/ccs/binary/koi8_uni.cct
newlib/libc/iconv/ccs/binary/win_1250.cct
newlib/libc/iconv/ccs/binary/win_1251.cct
newlib/libc/iconv/ccs/binary/win_1252.cct
newlib/libc/iconv/ccs/binary/win_1253.cct
newlib/libc/iconv/ccs/binary/win_1254.cct
newlib/libc/iconv/ccs/binary/win_1255.cct
newlib/libc/iconv/ccs/binary/win_1256.cct
newlib/libc/iconv/ccs/binary/win_1257.cct
newlib/libc/iconv/ccs/binary/win_1258.cct
newlib/libc/iconv/ccs/ccs.h
newlib/libc/iconv/ccs/ccsbi.c
newlib/libc/iconv/ccs/ccsbi.h
newlib/libc/iconv/ccs/ccsnames.h
newlib/libc/iconv/ccs/iso_8859_10.c
newlib/libc/iconv/ccs/iso_8859_11.c
newlib/libc/iconv/ccs/iso_8859_13.c
newlib/libc/iconv/ccs/iso_8859_14.c
newlib/libc/iconv/ccs/iso_8859_3.c
newlib/libc/iconv/ccs/iso_8859_6.c
newlib/libc/iconv/ccs/iso_8859_7.c
newlib/libc/iconv/ccs/iso_8859_8.c
newlib/libc/iconv/ccs/iso_8859_9.c
newlib/libc/iconv/ccs/iso_ir_111.c
newlib/libc/iconv/ccs/jis_x0201_1976.c
newlib/libc/iconv/ccs/jis_x0208_1990.c
newlib/libc/iconv/ccs/koi8_ru.c
newlib/libc/iconv/ccs/koi8_uni.c
newlib/libc/iconv/ccs/mktbl.pl
newlib/libc/iconv/ccs/win_1250.c
newlib/libc/iconv/ccs/win_1251.c
newlib/libc/iconv/ccs/win_1252.c
newlib/libc/iconv/ccs/win_1253.c
newlib/libc/iconv/ccs/win_1254.c
newlib/libc/iconv/ccs/win_1255.c
newlib/libc/iconv/ccs/win_1256.c
newlib/libc/iconv/ccs/win_1257.c
newlib/libc/iconv/ccs/win_1258.c
newlib/libc/iconv/ces/cesbi.c
newlib/libc/iconv/ces/cesbi.h
newlib/libc/iconv/ces/cesdeps.h
newlib/libc/iconv/ces/euc.c
newlib/libc/iconv/ces/mkdeps.pl
newlib/libc/iconv/ces/table-pcs.c
newlib/libc/iconv/ces/table.c
newlib/libc/iconv/ces/ucs-2.c
newlib/libc/iconv/ces/ucs-4.c
newlib/libc/iconv/ces/us-ascii.c
newlib/libc/iconv/encoding.aliases
newlib/libc/iconv/lib/aliasesbi.c
newlib/libc/iconv/lib/aliasesi.c
newlib/libc/iconv/lib/conv.h
newlib/libc/iconv/lib/encnames.h
newlib/libc/iconv/lib/encoding.deps
newlib/libc/iconv/lib/iconvnls.c
newlib/libc/iconv/lib/iconvnls.h
newlib/libc/iconv/lib/nullconv.c
newlib/libc/iconv/lib/ucsconv.c
newlib/libc/iconv/lib/ucsconv.h
newlib/libc/include/getopt.h
newlib/libc/include/inttypes.h
newlib/libc/include/libgen.h
newlib/libc/include/machine/_types.h
newlib/libc/include/machine/endian.h
newlib/libc/include/machine/param.h
newlib/libc/include/stdint.h
newlib/libc/include/sys/iconvnls.h
newlib/libc/include/sys/string.h
newlib/libc/machine/arm/access.c
newlib/libc/machine/arm/machine/endian.h
newlib/libc/machine/arm/machine/param.h
newlib/libc/machine/arm/setjmp.S
newlib/libc/machine/cris/Makefile.am
newlib/libc/machine/cris/Makefile.in
newlib/libc/machine/cris/aclocal.m4
newlib/libc/machine/cris/configure
newlib/libc/machine/cris/configure.in
newlib/libc/machine/cris/include/pthread.h
newlib/libc/machine/cris/libcdtor.c
newlib/libc/machine/cris/memcpy.c
newlib/libc/machine/cris/memmove.c
newlib/libc/machine/cris/memset.c
newlib/libc/machine/cris/setjmp.c
newlib/libc/machine/cris/sys/errno.h
newlib/libc/machine/cris/sys/fcntl.h
newlib/libc/machine/cris/sys/signal.h
newlib/libc/machine/crx/Makefile.am
newlib/libc/machine/crx/Makefile.in
newlib/libc/machine/crx/aclocal.m4
newlib/libc/machine/crx/configure
newlib/libc/machine/crx/configure.in
newlib/libc/machine/crx/getenv.c
newlib/libc/machine/crx/setjmp.S
newlib/libc/machine/crx/sys/asm.h
newlib/libc/machine/crx/sys/libh.h
newlib/libc/machine/crx/sys/syscall.h
newlib/libc/machine/h8300/h8sx_strcpy.S
newlib/libc/machine/m32c/Makefile.am
newlib/libc/machine/m32c/Makefile.in
newlib/libc/machine/m32c/aclocal.m4
newlib/libc/machine/m32c/configure
newlib/libc/machine/m32c/configure.in
newlib/libc/machine/m32c/setjmp.S
newlib/libc/machine/mt/Makefile.am
newlib/libc/machine/mt/Makefile.in
newlib/libc/machine/mt/aclocal.m4
newlib/libc/machine/mt/configure
newlib/libc/machine/mt/configure.in
newlib/libc/machine/mt/setjmp.S
newlib/libc/machine/xscale/setjmp.S
newlib/libc/machine/z8k/memcmp.S
newlib/libc/machine/z8k/memcpy.S
newlib/libc/machine/z8k/memmove.S
newlib/libc/machine/z8k/memset.S
newlib/libc/misc/init.c
newlib/libc/stdio/asiprintf.c
newlib/libc/stdio/dprintf.c
newlib/libc/stdio/fiscanf.c
newlib/libc/stdio/iscanf.c
newlib/libc/stdio/sccl.c
newlib/libc/stdio/siscanf.c
newlib/libc/stdio/sniprintf.c
newlib/libc/stdio/vasiprintf.c
newlib/libc/stdio/vdprintf.c
newlib/libc/stdio/viprintf.c
newlib/libc/stdio/viscanf.c
newlib/libc/stdio/vsiprintf.c
newlib/libc/stdio/vsiscanf.c
newlib/libc/stdio/vsniprintf.c
newlib/libc/stdlib/__atexit.c
newlib/libc/stdlib/__call_atexit.c
newlib/libc/stdlib/cxa_atexit.c
newlib/libc/stdlib/cxa_finalize.c
newlib/libc/sys/arm/aeabi_atexit.c
newlib/libc/sys/h8300hms/_exit.S
newlib/libc/sys/linux/bits/initspin.h
newlib/libc/sys/linux/bits/libc-lock.h
newlib/libc/sys/linux/bits/pthreadtypes.h
newlib/libc/sys/linux/bits/typesizes.h
newlib/libc/sys/linux/dl/dl-local.h
newlib/libc/sys/linux/getpwent.c
newlib/libc/sys/linux/include/ltdl.h
newlib/libc/sys/linux/sys/string.h
newlib/libc/sys/rdos/Makefile.am
newlib/libc/sys/rdos/Makefile.in
newlib/libc/sys/rdos/aclocal.m4
newlib/libc/sys/rdos/chown.c
newlib/libc/sys/rdos/close.c
newlib/libc/sys/rdos/config.h
newlib/libc/sys/rdos/configure
newlib/libc/sys/rdos/configure.in
newlib/libc/sys/rdos/crt0.S
newlib/libc/sys/rdos/execve.c
newlib/libc/sys/rdos/fork.c
newlib/libc/sys/rdos/fstat.c
newlib/libc/sys/rdos/getenv.c
newlib/libc/sys/rdos/getpid.c
newlib/libc/sys/rdos/gettod.c
newlib/libc/sys/rdos/isatty.c
newlib/libc/sys/rdos/kill.c
newlib/libc/sys/rdos/link.c
newlib/libc/sys/rdos/lseek.c
newlib/libc/sys/rdos/open.c
newlib/libc/sys/rdos/rdos.S
newlib/libc/sys/rdos/rdos.h
newlib/libc/sys/rdos/rdoshelp.c
newlib/libc/sys/rdos/read.c
newlib/libc/sys/rdos/readlink.c
newlib/libc/sys/rdos/sbrk.c
newlib/libc/sys/rdos/stat.c
newlib/libc/sys/rdos/symlink.c
newlib/libc/sys/rdos/times.c
newlib/libc/sys/rdos/unlink.c
newlib/libc/sys/rdos/user.def
newlib/libc/sys/rdos/wait.c
newlib/libc/sys/rdos/write.c
newlib/libc/time/gettzinfo.c
newlib/libc/time/tzvars.c
newlib/libc/unix/basename.c
newlib/libc/unix/dirname.c
newlib/libm/common/s_infconst.c
newlib/libm/common/s_isinf.c
newlib/libm/common/s_isinfd.c
newlib/libm/common/s_isnan.c
newlib/libm/common/s_isnand.c
newlib/libm/common/sf_isinf.c
newlib/libm/common/sf_isinff.c
newlib/libm/common/sf_isnan.c
newlib/libm/common/sf_isnanf.c
newlib/testsuite/newlib.string/memmove1.c
Diffstat (limited to 'libgloss/arm')
-rw-r--r-- | libgloss/arm/Makefile.in | 69 | ||||
-rw-r--r-- | libgloss/arm/coff-rdimon.specs | 8 | ||||
-rw-r--r-- | libgloss/arm/coff-rdpmon.specs | 8 | ||||
-rw-r--r-- | libgloss/arm/configure | 49 | ||||
-rw-r--r-- | libgloss/arm/configure.in | 22 | ||||
-rw-r--r-- | libgloss/arm/crt0.S | 397 | ||||
-rw-r--r-- | libgloss/arm/elf-rdimon.specs | 8 | ||||
-rw-r--r-- | libgloss/arm/elf-rdpmon.specs | 8 | ||||
-rw-r--r-- | libgloss/arm/elf-redboot.ld | 1 | ||||
-rw-r--r-- | libgloss/arm/libcfunc.c | 88 | ||||
-rw-r--r-- | libgloss/arm/redboot-crt0.S | 28 | ||||
-rw-r--r-- | libgloss/arm/swi.h | 68 | ||||
-rw-r--r-- | libgloss/arm/syscalls.c | 663 | ||||
-rw-r--r-- | libgloss/arm/trap.S | 95 |
14 files changed, 25 insertions, 1487 deletions
diff --git a/libgloss/arm/Makefile.in b/libgloss/arm/Makefile.in index 436db13ed..97e3ad451 100644 --- a/libgloss/arm/Makefile.in +++ b/libgloss/arm/Makefile.in @@ -1,6 +1,5 @@ # # -DESTDIR = VPATH = @srcdir@ @srcdir@/.. srcdir = @srcdir@ objdir = . @@ -48,28 +47,9 @@ OBJCOPY = `if [ -f ${objroot}/../binutils/objcopy ] ; \ then echo ${objroot}/../binutils/objcopy ; \ else t='$(program_transform_name)'; echo objcopy | sed -e $$t ; fi` -@BUILD_CRT0_TRUE@CRT0 = crt0.o -@BUILD_CRT0_TRUE@CRT0_INSTALL = install-crt0 -@BUILD_CRT0_FALSE@CRT0 = -@BUILD_CRT0_FALSE@CRT0_INSTALL = - -REDBOOT_CRT0 = redboot-crt0.o -REDBOOT_OBJS = redboot-syscalls.o +REDBOOT_OBJS = redboot-crt0.o redboot-syscalls.o REDBOOT_SCRIPTS = redboot.ld redboot.specs REDBOOT_INSTALL = install-redboot - -RDPMON_CRT0 = rdpmon-crt0.o -RDPMON_BSP = librdpmon.a -RDPMON_OBJS = syscalls.o libcfunc.o trap.o -RDPMON_SCRIPTS = rdpmon.specs -RDPMON_INSTALL = install-rdpmon - -RDIMON_CRT0 = rdimon-crt0.o -RDIMON_BSP = librdimon.a -RDIMON_OBJS = rdimon-syscalls.o rdimon-libcfunc.o rdimon-trap.o -RDIMON_SCRIPTS = rdimon.specs -RDIMON_INSTALL = install-rdimon - CFLAGS = -g # Here is all of the eval board stuff @@ -87,7 +67,7 @@ IQ80310_INSTALL = install-iq80310 # build a test program for each target board. Just trying to get # it to link is a good test, so we ignore all the errors for now. # -all: ${CRT0} ${REDBOOT_CRT0} ${REDBOOT_OBJS} ${RDPMON_CRT0} ${RDPMON_BSP} ${RDIMON_CRT0} ${RDIMON_BSP} +all: ${REDBOOT_OBJS} # # here's where we build the test programs for each target @@ -96,33 +76,9 @@ all: ${CRT0} ${REDBOOT_CRT0} ${REDBOOT_OBJS} ${RDPMON_CRT0} ${RDPMON_BSP} ${RDIM test: # -crt0.o: crt0.S redboot-crt0.o: redboot-crt0.S redboot-syscalls.o: redboot-syscalls.c $(srcdir)/../syscall.h -rdpmon-crt0.o: crt0.S - $(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) -DARM_RDP_MONITOR -o $@ -c $< - -rdimon-crt0.o: crt0.S - $(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $< - -rdimon-trap.o: trap.S - $(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $< - -rdimon-syscalls.o: syscalls.c - $(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $< - -rdimon-libcfunc.o: libcfunc.c - $(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $< - -$(RDPMON_BSP): $(RDPMON_OBJS) - ${AR} ${ARFLAGS} $@ $^ - ${RANLIB} $@ - -$(RDIMON_BSP): $(RDIMON_OBJS) - ${AR} ${ARFLAGS} $@ $^ - ${RANLIB} $@ - clean mostlyclean: rm -f a.out core *.i *.o *-test *.srec *.dis *.x $(SIM_BSP) $(IQ80310_BSP) @@ -130,29 +86,18 @@ distclean maintainer-clean realclean: clean rm -f Makefile config.status *~ .PHONY: install info install-info clean-info -install: ${CRT0_INSTALL} ${REDBOOT_INSTALL} ${RDPMON_INSTALL} ${RDIMON_INSTALL} ${IQ80310_INSTALL} ${PID_INSTALL} +install: ${REDBOOT_INSTALL} ${IQ80310_INSTALL} ${PID_INSTALL} -install-crt0: - ${INSTALL_DATA} ${CRT0} $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x install-redboot: - set -e; for x in ${REDBOOT_CRT0} ${REDBOOT_OBJS}; do ${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done - set -e; for x in ${REDBOOT_SCRIPTS}; do ${INSTALL_DATA} ${srcdir}/${objtype}$$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done - -install-rdpmon: - set -e; for x in ${RDPMON_CRT0} ${RDPMON_BSP}; do ${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done - set -e; for x in ${RDPMON_SCRIPTS}; do ${INSTALL_DATA} ${srcdir}/${objtype}$$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done - -install-rdimon: - set -e; for x in ${RDIMON_CRT0} ${RDIMON_BSP}; do ${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done - set -e; for x in ${RDIMON_SCRIPTS}; do ${INSTALL_DATA} ${srcdir}/${objtype}$$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done - + set -e; for x in ${REDBOOT_OBJS}; do ${INSTALL_DATA} $$x ${tooldir}/lib${MULTISUBDIR}/$$x; done + set -e; for x in ${REDBOOT_SCRIPTS}; do ${INSTALL_DATA} ${srcdir}/${objtype}$$x ${tooldir}/lib${MULTISUBDIR}/$$x; done install-pid: - set -e; for x in ${PID_SCRIPTS}; do ${INSTALL_DATA} ${srcdir}/${objtype}$$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done + set -e; for x in ${PID_SCRIPTS}; do ${INSTALL_DATA} ${srcdir}/${objtype}$$x ${tooldir}/lib${MULTISUBDIR}/$$x; done install-iq80310: - set -e; for x in ${IQ80310_SCRIPTS}; do ${INSTALL_DATA} ${srcdir}/${objtype}$$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done + set -e; for x in ${IQ80310_SCRIPTS}; do ${INSTALL_DATA} ${srcdir}/${objtype}$$x ${tooldir}/lib${MULTISUBDIR}/$$x; done doc: diff --git a/libgloss/arm/coff-rdimon.specs b/libgloss/arm/coff-rdimon.specs deleted file mode 100644 index ace550614..000000000 --- a/libgloss/arm/coff-rdimon.specs +++ /dev/null @@ -1,8 +0,0 @@ -%rename link old_link - -*link: -%(old_link) -lrdimon - -*startfile: -rdimon-crt0%O%s - diff --git a/libgloss/arm/coff-rdpmon.specs b/libgloss/arm/coff-rdpmon.specs deleted file mode 100644 index 661461229..000000000 --- a/libgloss/arm/coff-rdpmon.specs +++ /dev/null @@ -1,8 +0,0 @@ -%rename link old_link - -*link: -%(old_link) -lrdpmon - -*startfile: -rdpmon-crt0%O%s - diff --git a/libgloss/arm/configure b/libgloss/arm/configure index 47d91ec30..cc9a6e86a 100644 --- a/libgloss/arm/configure +++ b/libgloss/arm/configure @@ -11,8 +11,6 @@ ac_help= ac_default_prefix=/usr/local # Any additions from configure.in: -ac_help="$ac_help - --disable-newlib-supplied-syscalls disable newlib from supplying syscalls" # Initialize some variables set by options. # The variables have the same names as the options, with @@ -524,29 +522,6 @@ fi -# Check whether --enable-newlib-supplied-syscalls or --disable-newlib-supplied-syscalls was given. -if test "${enable_newlib_supplied_syscalls+set}" = set; then - enableval="$enable_newlib_supplied_syscalls" - case "${enableval}" in - yes) newlib_may_supply_syscalls=yes ;; - no) newlib_may_supply_syscalls=no ;; - *) { echo "configure: error: bad value ${enableval} for newlib-supplied-syscalls option" 1>&2; exit 1; } ;; - esac -else - newlib_may_supply_syscalls=yes -fi - -if test "x$newlib_may_supply_syscalls" = "xyes"; then - BUILD_CRT0_TRUE='#' - BUILD_CRT0_FALSE= -else - BUILD_CRT0_TRUE= - BUILD_CRT0_FALSE='#' -fi - - - - if test "$srcdir" = "." ; then if test "${with_target_subdir}" != "." ; then libgloss_topdir="${srcdir}/${with_multisrctop}../../.." @@ -604,7 +579,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } fi echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:608: checking host system type" >&5 +echo "configure:583: checking host system type" >&5 host_alias=$host case "$host_alias" in @@ -625,7 +600,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$ac_t""$host" 1>&6 echo $ac_n "checking target system type""... $ac_c" 1>&6 -echo "configure:629: checking target system type" >&5 +echo "configure:604: checking target system type" >&5 target_alias=$target case "$target_alias" in @@ -643,7 +618,7 @@ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$ac_t""$target" 1>&6 echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:647: checking build system type" >&5 +echo "configure:622: checking build system type" >&5 build_alias=$build case "$build_alias" in @@ -697,7 +672,7 @@ test "$program_transform_name" = "" && program_transform_name="s,x,x," # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:701: checking for a BSD compatible install" >&5 +echo "configure:676: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -761,7 +736,7 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:765: checking for $ac_word" >&5 +echo "configure:740: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -791,7 +766,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:795: checking for $ac_word" >&5 +echo "configure:770: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -840,7 +815,7 @@ fi fi echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:844: checking whether we are using GNU C" >&5 +echo "configure:819: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -849,7 +824,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:853: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:828: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -864,7 +839,7 @@ if test $ac_cv_prog_gcc = yes; then ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:868: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:843: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -900,7 +875,7 @@ LD=${LD-ld} # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:904: checking for $ac_word" >&5 +echo "configure:879: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -929,7 +904,7 @@ fi case "${target}" in - *-*-elf | *-*-eabi) + *-*-elf) objtype=elf- ;; *-*-coff) @@ -1090,8 +1065,6 @@ s%@includedir@%$includedir%g s%@oldincludedir@%$oldincludedir%g s%@infodir@%$infodir%g s%@mandir@%$mandir%g -s%@BUILD_CRT0_TRUE@%$BUILD_CRT0_TRUE%g -s%@BUILD_CRT0_FALSE@%$BUILD_CRT0_FALSE%g s%@host@%$host%g s%@host_alias@%$host_alias%g s%@host_cpu@%$host_cpu%g diff --git a/libgloss/arm/configure.in b/libgloss/arm/configure.in index 71595998a..291d972c3 100644 --- a/libgloss/arm/configure.in +++ b/libgloss/arm/configure.in @@ -2,26 +2,6 @@ dnl Process this file with autoconf to produce a configure script. AC_PREREQ(2.5)dnl AC_INIT(redboot-crt0.S) -dnl Support --disable-newlib-supplied-syscalls -AC_ARG_ENABLE(newlib-supplied-syscalls, -[ --disable-newlib-supplied-syscalls disable newlib from supplying syscalls], -[case "${enableval}" in - yes) newlib_may_supply_syscalls=yes ;; - no) newlib_may_supply_syscalls=no ;; - *) AC_MSG_ERROR(bad value ${enableval} for newlib-supplied-syscalls option) ;; - esac], [newlib_may_supply_syscalls=yes])dnl - -if test "x$newlib_may_supply_syscalls" = "xyes"; then - BUILD_CRT0_TRUE='#' - BUILD_CRT0_FALSE= -else - BUILD_CRT0_TRUE= - BUILD_CRT0_FALSE='#' -fi - -AC_SUBST(BUILD_CRT0_TRUE) -AC_SUBST(BUILD_CRT0_FALSE) - if test "$srcdir" = "." ; then if test "${with_target_subdir}" != "." ; then libgloss_topdir="${srcdir}/${with_multisrctop}../../.." @@ -86,7 +66,7 @@ AC_SUBST(LD) AC_PROG_RANLIB case "${target}" in - *-*-elf | *-*-eabi) + *-*-elf) objtype=elf- ;; *-*-coff) diff --git a/libgloss/arm/crt0.S b/libgloss/arm/crt0.S deleted file mode 100644 index 823f409a4..000000000 --- a/libgloss/arm/crt0.S +++ /dev/null @@ -1,397 +0,0 @@ -#include "newlib.h" -#include "swi.h" - -/* ANSI concatenation macros. */ -#define CONCAT(a, b) CONCAT2(a, b) -#define CONCAT2(a, b) a ## b - -#ifdef __USER_LABEL_PREFIX__ -#define FUNCTION( name ) CONCAT (__USER_LABEL_PREFIX__, name) -#else -#error __USER_LABEL_PREFIX is not defined -#endif - -#ifdef HAVE_INITFINI_ARRAY -#define _init __libc_init_array -#define _fini __libc_fini_array -#endif - -/* .text is used instead of .section .text so it works with arm-aout too. */ - .text -#if defined(__thumb2__) - .syntax unified - .thumb -.macro FUNC_START name - .global \name - .thumb_func -\name: -.endm -#else - .code 32 -.macro FUNC_START name - .global \name -\name: -.endm -#endif - .align 0 - - FUNC_START _mainCRTStartup - FUNC_START _start - FUNC_START start -#if defined(__ELF__) && !defined(__USING_SJLJ_EXCEPTIONS__) - /* Annotation for EABI unwinding tables. */ - .fnstart -#endif - -/* Start by setting up a stack */ -#ifdef ARM_RDP_MONITOR - /* Issue Demon SWI to read stack info */ - swi SWI_GetEnv /* Returns command line in r0 */ - mov sp,r1 /* and the highest memory address in r1 */ - ldr sl, .LC2 /* stack limit is at end of data */ - add sl, sl, #256 /* allow slop for stack overflow handling */ - /* and small frames */ -#else -#ifdef ARM_RDI_MONITOR - /* Issue Angel SWI to read stack info */ - mov r0, #AngelSWI_Reason_HeapInfo - adr r1, .LC0 /* point at ptr to 4 words to receive data */ -#if defined(__thumb2__) - bkpt AngelSWI -#else - /* We are always in ARM mode for startup */ - AngelSWIAsm AngelSWI_ARM -#endif - ldr r0, .LC0 /* point at values read */ - ldr sp, [r0, #8] - ldr sl, [r0, #12] - add sl, sl, #256 /* allow slop for stack overflow handling */ - /* and small frames */ -#else - /* Set up the stack pointer to a fixed value */ - /* Changes by toralf: - - Allow linker script to provide stack via __stack symbol - see - defintion of .Lstack - - Provide "hooks" that may be used by the application to add - custom init code - see .Lhwinit and .Lswinit - - Go through all execution modes and set up stack for each of them. - Loosely based on init.s from ARM/Motorola example code. - Note: Mode switch via CPSR is not allowed once in non-privileged - mode, so we take care not to enter "User" to set up its sp, - and also skip most operations if already in that mode. */ - - ldr r3, .Lstack - cmp r3, #0 - ldreq r3, .LC0 - /* Note: This 'mov' is essential when starting in User, and ensures we - always get *some* sp value for the initial mode, even if we - have somehow missed it below (in which case it gets the same - value as FIQ - not ideal, but better than nothing.) */ - mov sp, r3 - mrs r2, CPSR - tst r2, #0x0F /* Test mode bits - in User of all are 0 */ - beq .LC23 /* "eq" means r2 AND #0x0F is 0 */ - msr CPSR_c, #0xD1 /* FIRQ mode, interrupts disabled */ - mov sp, r3 - sub sl, sp, #0x1000 /* This mode also has its own sl (see below) */ - - mov r3, sl - msr CPSR_c, #0xD7 /* Abort mode, interrupts disabled */ - mov sp, r3 - sub r3, r3, #0x1000 - - msr CPSR_c, #0xDB /* Undefined mode, interrupts disabled */ - mov sp, r3 - sub r3, r3, #0x1000 - - msr CPSR_c, #0xD2 /* IRQ mode, interrupts disabled */ - mov sp, r3 - sub r3, r3, #0x2000 - - msr CPSR_c, #0xD3 /* Supervisory mode, interrupts disabled */ - mov sp, r3 - sub r3, r3, #0x8000 /* Min size 32k */ - bic r3, r3, #0x00FF /* Align with current 64k block */ - bic r3, r3, #0xFF00 - - str r3, [r3, #-4] /* Move value into user mode sp without */ - ldmdb r3, {sp}^ /* changing modes, via '^' form of ldm */ - - orr r2, r2, #0xC0 /* Back to original mode, presumably SVC, */ - msr CPSR_c, r2 /* with FIQ/IRQ disable bits forced to 1 */ -.LC23: - /* Setup a default stack-limit in-case the code has been - compiled with "-mapcs-stack-check". Hard-wiring this value - is not ideal, since there is currently no support for - checking that the heap and stack have not collided, or that - this default 64k is enough for the program being executed. - However, it ensures that this simple crt0 world will not - immediately cause an overflow event: */ - sub sl, r3, #64 << 10 /* Still assumes 256bytes below sl */ -#endif -#endif - /* Zero the memory in the .bss section. */ - mov a2, #0 /* Second arg: fill value */ - mov fp, a2 /* Null frame pointer */ - mov r7, a2 /* Null frame pointer for Thumb */ - - ldr a1, .LC1 /* First arg: start of memory block */ - ldr a3, .LC2 - sub a3, a3, a1 /* Third arg: length of block */ - - -#if defined(__thumb__) && !defined(__thumb2__) - /* Enter Thumb mode.... */ - add a4, pc, #1 /* Get the address of the Thumb block */ - bx a4 /* Go there and start Thumb decoding */ - - .code 16 - .global __change_mode - .thumb_func -__change_mode: -#endif - - bl FUNCTION (memset) -#if !defined (ARM_RDP_MONITOR) && !defined (ARM_RDI_MONITOR) -/* Changes by toralf: Taken from libgloss/m68k/crt0.S - * initialize target specific stuff. Only execute these - * functions it they exist. - */ - ldr r3, .Lhwinit - cmp r3, #0 - beq .LC24 - mov lr, pc - mov pc, r3 -.LC24: - ldr r3, .Lswinit - cmp r3, #0 - beq .LC25 - mov lr, pc - mov pc, r3 -.LC25: - mov r0, #0 /* no arguments */ - mov r1, #0 /* no argv either */ -#else - /* Need to set up standard file handles */ - bl FUNCTION (initialise_monitor_handles) - -#ifdef ARM_RDP_MONITOR - swi SWI_GetEnv /* sets r0 to point to the command line */ - mov r1, r0 -#else - mov r0, #AngelSWI_Reason_GetCmdLine - adr r1, .LC30 /* Space for command line */ - AngelSWIAsm AngelSWI - ldr r1, .LC30 -#endif - /* Parse string at r1 */ - mov r0, #0 /* count of arguments so far */ - /* Push a NULL argument onto the end of the list. */ -#ifdef __thumb__ - push {r0} -#else - stmfd sp!, {r0} -#endif -.LC10: -/* Skip leading blanks */ -#ifdef __thumb__ - ldrb r3, [r1] - add r1, #1 -#else - ldrb r3, [r1], #1 -#endif - cmp r3, #0 - beq .LC12 - cmp r3, #' ' - beq .LC10 - -/* See whether we are scanning a string */ - cmp r3, #'"' -#ifdef __thumb__ - beq .LC20 - cmp r3, #'\'' - bne .LC21 -.LC20: - mov r2, r3 - b .LC22 - -.LC21: - mov r2, #' ' /* terminator type */ - sub r1, r1, #1 /* adjust back to point at start char */ -.LC22: -#else - cmpne r3, #'\'' - moveq r2, r3 - movne r2, #' ' /* terminator type */ - subne r1, r1, #1 /* adjust back to point at start char */ -#endif - -/* Stack a pointer to the current argument */ -#ifdef __thumb__ - push {r1} -#else - stmfd sp!, {r1} -#endif - add r0, r0, #1 -.LC11: -#ifdef __thumb__ - ldrb r3, [r1] - add r1, #1 -#else - ldrb r3, [r1], #1 -#endif - cmp r3, #0 - beq .LC12 - cmp r2, r3 /* reached terminator? */ - bne .LC11 - mov r2, #0 - sub r3, r1, #1 - strb r2, [r3] /* terminate the arg string */ - b .LC10 - -.LC12: - mov r1, sp /* point at stacked arg pointers */ - /* We've now got the stacked args in order reverse the */ -#ifdef __thumb__ - mov r2, r0 - lsl r2, #2 - add r2, sp - mov r3, sp -.LC15: cmp r2, r3 - bls .LC14 - sub r2, #4 - ldr r4, [r2] - ldr r5, [r3] - str r5, [r2] - str r4, [r3] - add r3, #4 - b .LC15 -.LC14: - /* Ensure doubleword stack alignment. */ - mov r4, sp - mov r5, #7 - bic r4, r5 - mov sp, r4 -#else - add r2, sp, r0, LSL #2 /* End of args */ - mov r3, sp /* Start of args */ -.LC13: cmp r2, r3 - ldrhi r4,[r2, #-4] /* Reverse ends of list */ - ldrhi r5, [r3] - strhi r5, [r2, #-4]! - strhi r4, [r3], #4 - bhi .LC13 - /* Ensure doubleword stack alignment. */ - bic sp, sp, #7 -#endif -#endif - -#ifdef __USES_INITFINI__ - /* Some arm/elf targets use the .init and .fini sections - to create constructors and destructors, and for these - targets we need to call the _init function and arrange - for _fini to be called at program exit. */ - mov r4, r0 - mov r5, r1 - ldr r0, .Lfini - bl FUNCTION (atexit) - bl FUNCTION (_init) - mov r0, r4 - mov r1, r5 -#endif - bl FUNCTION (main) - - bl FUNCTION (exit) /* Should not return. */ - -#if defined(__thumb__) && !defined(__thumb2__) - /* Come out of Thumb mode. This code should be redundant. */ - - mov a4, pc - bx a4 - - .code 32 - .global change_back -change_back: - /* Halt the execution. This code should never be executed. */ - /* With no debug monitor, this probably aborts (eventually). - With a Demon debug monitor, this halts cleanly. - With an Angel debug monitor, this will report 'Unknown SWI'. */ - swi SWI_Exit -#endif - - /* For Thumb, constants must be after the code since only - positive offsets are supported for PC relative addresses. */ - - .align 0 -.LC0: -#ifdef ARM_RDI_MONITOR - .word HeapBase -#else -#ifndef ARM_RDP_MONITOR - /* Changes by toralf: Provide alternative "stack" variable whose value - may be defined externally; .Lstack will be used instead of .LC0 if - it points to a non-0 value. Also set up references to "hooks" that - may be used by the application to provide additional init code. */ - -#ifdef __pe__ - .word 0x800000 -#else - .word 0x80000 /* Top of RAM on the PIE board. */ -#endif -.Lstack: - .word __stack -.Lhwinit: - .word FUNCTION (hardware_init_hook) -.Lswinit: - .word FUNCTION (software_init_hook) - - /* Set up defaults for the above variables in the form of weak symbols - - so that application will link correctly, and get value 0 in - runtime (meaning "ignore setting") for the variables, when the user - does not provide the symbols. (The linker uses a weak symbol if, - and only if, a normal version of the same symbol isn't provided - e.g. by a linker script or another object file.) */ - - .set __stack, 0 - .set FUNCTION (hardware_init_hook), 0 - .set FUNCTION (software_init_hook), 0 - - .weak __stack - .weak FUNCTION (hardware_init_hook) - .weak FUNCTION (software_init_hook) -#endif - -#endif -#if defined(__ELF__) && !defined(__USING_SJLJ_EXCEPTIONS__) - /* Protect against unhandled exceptions. */ - .cantunwind - .fnend -#endif -.LC1: - .word __bss_start__ -.LC2: - .word __bss_end__ -#ifdef __USES_INITFINI__ -.Lfini: - .word FUNCTION(_fini) -#endif -#ifdef ARM_RDI_MONITOR -.LC30: - .word CommandLine - .word 255 - -/* Workspace for Angel calls. */ - .data -/* Data returned by monitor SWI. */ -.global __stack_base__ -HeapBase: .word 0 -HeapLimit: .word 0 -__stack_base__: .word 0 -StackLimit: .word 0 -CommandLine: .space 256,0 /* Maximum length of 255 chars handled. */ -#endif - -#ifdef __pe__ - .section .idata$3 - .long 0,0,0,0,0,0,0,0 -#endif diff --git a/libgloss/arm/elf-rdimon.specs b/libgloss/arm/elf-rdimon.specs deleted file mode 100644 index 153cf0c1c..000000000 --- a/libgloss/arm/elf-rdimon.specs +++ /dev/null @@ -1,8 +0,0 @@ -%rename link old_link - -*link: -%(old_link) -lrdimon - -*startfile: -crti%O%s crtbegin%O%s %{!pg:rdimon-crt0%O%s} %{pg:rdimon-crt0%O%s} - diff --git a/libgloss/arm/elf-rdpmon.specs b/libgloss/arm/elf-rdpmon.specs deleted file mode 100644 index 903db1fb1..000000000 --- a/libgloss/arm/elf-rdpmon.specs +++ /dev/null @@ -1,8 +0,0 @@ -%rename link old_link - -*link: -%(old_link) -lrdpmon - -*startfile: -crti%O%s crtbegin%O%s %{!pg:rdpmon-crt0%O%s} %{pg:rdpmon-crt0%O%s} - diff --git a/libgloss/arm/elf-redboot.ld b/libgloss/arm/elf-redboot.ld index 3d1f8d806..be3865430 100644 --- a/libgloss/arm/elf-redboot.ld +++ b/libgloss/arm/elf-redboot.ld @@ -209,7 +209,6 @@ SECTIONS .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } - .debug_ranges 0 : { *(.debug_ranges) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } diff --git a/libgloss/arm/libcfunc.c b/libgloss/arm/libcfunc.c deleted file mode 100644 index 4f131939a..000000000 --- a/libgloss/arm/libcfunc.c +++ /dev/null @@ -1,88 +0,0 @@ -/* Support files for GNU libc. Files in the C namespace go here. - Files in the system namespace (ie those that start with an underscore) - go in syscalls.c. - - Note: These functions are in a seperate file so that OS providers can - overrride the system call stubs (defined in syscalls.c) without having - to provide libc funcitons as well. */ - -#include "swi.h" -#include <errno.h> -#include <unistd.h> - -#ifdef ARM_RDI_MONITOR -static inline int -do_AngelSWI (int reason, void * arg) -{ - int value; - asm volatile ("mov r0, %1; mov r1, %2; " AngelSWIInsn " %a3; mov %0, r0" - : "=r" (value) /* Outputs */ - : "r" (reason), "r" (arg), "i" (AngelSWI) /* Inputs */ - : "r0", "r1", "lr" - /* Clobbers r0 and r1, and lr if in supervisor mode */); - return value; -} -#endif /* ARM_RDI_MONITOR */ - -void -abort (void) -{ - extern void _exit (int n); -#ifdef ARM_RDI_MONITOR - do_AngelSWI (AngelSWI_Reason_ReportException, - (void *) ADP_Stopped_RunTimeError); -#else - _exit(17); -#endif -} - -unsigned __attribute__((weak)) -alarm (unsigned seconds) -{ - (void)seconds; - return 0; -} - -clock_t _clock(void); -clock_t __attribute__((weak)) -clock(void) -{ - return _clock(); -} - -int _isatty(int fildes); -int __attribute__((weak)) -isatty(int fildes) -{ - return _isatty(fildes); -} - -int __attribute__((weak)) -pause(void) -{ - errno = ENOSYS; - return -1; -} - -#include <sys/types.h> -#include <time.h> - -unsigned __attribute__((weak)) -sleep(unsigned seconds) -{ - clock_t t0 = _clock(); - clock_t dt = seconds * CLOCKS_PER_SEC; - - while (_clock() - t0 < dt); - return 0; -} - -int __attribute__((weak)) -usleep(useconds_t useconds) -{ - clock_t t0 = _clock(); - clock_t dt = useconds / (1000000/CLOCKS_PER_SEC); - - while (_clock() - t0 < dt); - return 0; -} diff --git a/libgloss/arm/redboot-crt0.S b/libgloss/arm/redboot-crt0.S index 2499ac091..f2963eeb4 100644 --- a/libgloss/arm/redboot-crt0.S +++ b/libgloss/arm/redboot-crt0.S @@ -12,34 +12,18 @@ .text /* Setup the assembly entry point. */ -#ifdef __thumb2__ -.macro FUNC_START name - .global \name - .thumb_func -\name: -.endm - .syntax unified - .thumb -#else -.macro FUNC_START name - .global \name -\name: -.endm - .code 32 -#endif - FUNC_START SYM_NAME(start) - FUNC_START SYM_NAME(_start) + .code 32 + .globl SYM_NAME(start) + .globl SYM_NAME(_start) +SYM_NAME(start): +SYM_NAME(_start): mov fp, #0 /* Null frame pointer. */ mov r7, #0 /* Null frame pointer for Thumb. */ /* Enable interrupts for gdb debugging. */ -#ifdef __thumb2__ - cpsie if -#else mrs r0, cpsr bic r0, r0, #0xC0 msr cpsr, r0 -#endif mov a2, #0 /* Second arg: fill value. */ ldr a1, .LC1 /* First arg: start of memory block. */ @@ -62,7 +46,7 @@ /* Nothing to left to clear. */ #endif -#if defined(__thumb__) && !defined(__thumb2__) /* Enter Thumb mode. */ +#ifdef __thumb__ /* Enter Thumb mode. */ add a4, pc, #1 /* Get the address of the Thumb block. */ bx a4 /* Go there and start Thumb decoding. */ diff --git a/libgloss/arm/swi.h b/libgloss/arm/swi.h deleted file mode 100644 index f5c910313..000000000 --- a/libgloss/arm/swi.h +++ /dev/null @@ -1,68 +0,0 @@ -/* SWI numbers for RDP (Demon) monitor. */ -#define SWI_WriteC 0x0 -#define SWI_Write0 0x2 -#define SWI_ReadC 0x4 -#define SWI_CLI 0x5 -#define SWI_GetEnv 0x10 -#define SWI_Exit 0x11 -#define SWI_EnterOS 0x16 - -#define SWI_GetErrno 0x60 -#define SWI_Clock 0x61 -#define SWI_Time 0x63 -#define SWI_Remove 0x64 -#define SWI_Rename 0x65 -#define SWI_Open 0x66 - -#define SWI_Close 0x68 -#define SWI_Write 0x69 -#define SWI_Read 0x6a -#define SWI_Seek 0x6b -#define SWI_Flen 0x6c - -#define SWI_IsTTY 0x6e -#define SWI_TmpNam 0x6f -#define SWI_InstallHandler 0x70 -#define SWI_GenerateError 0x71 - - -/* Now the SWI numbers and reason codes for RDI (Angel) monitors. */ -#define AngelSWI_ARM 0x123456 -#ifdef __thumb__ -#define AngelSWI 0xAB -#else -#define AngelSWI AngelSWI_ARM -#endif -/* For Thumb-2 code use the BKPT instruction instead of SWI. */ -#ifdef __thumb2__ -#define AngelSWIInsn "bkpt" -#define AngelSWIAsm bkpt -#else -#define AngelSWIInsn "swi" -#define AngelSWIAsm swi -#endif - -/* The reason codes: */ -#define AngelSWI_Reason_Open 0x01 -#define AngelSWI_Reason_Close 0x02 -#define AngelSWI_Reason_WriteC 0x03 -#define AngelSWI_Reason_Write0 0x04 -#define AngelSWI_Reason_Write 0x05 -#define AngelSWI_Reason_Read 0x06 -#define AngelSWI_Reason_ReadC 0x07 -#define AngelSWI_Reason_IsTTY 0x09 -#define AngelSWI_Reason_Seek 0x0A -#define AngelSWI_Reason_FLen 0x0C -#define AngelSWI_Reason_TmpNam 0x0D -#define AngelSWI_Reason_Remove 0x0E -#define AngelSWI_Reason_Rename 0x0F -#define AngelSWI_Reason_Clock 0x10 -#define AngelSWI_Reason_Time 0x11 -#define AngelSWI_Reason_System 0x12 -#define AngelSWI_Reason_Errno 0x13 -#define AngelSWI_Reason_GetCmdLine 0x15 -#define AngelSWI_Reason_HeapInfo 0x16 -#define AngelSWI_Reason_EnterSVC 0x17 -#define AngelSWI_Reason_ReportException 0x18 -#define ADP_Stopped_ApplicationExit ((2 << 16) + 38) -#define ADP_Stopped_RunTimeError ((2 << 16) + 35) diff --git a/libgloss/arm/syscalls.c b/libgloss/arm/syscalls.c deleted file mode 100644 index a6d2f747e..000000000 --- a/libgloss/arm/syscalls.c +++ /dev/null @@ -1,663 +0,0 @@ -/* Support files for GNU libc. Files in the system namespace go here. - Files in the C namespace (ie those that do not start with an - underscore) go in .c. */ - -#include <_ansi.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <sys/fcntl.h> -#include <stdio.h> -#include <string.h> -#include <time.h> -#include <sys/time.h> -#include <sys/times.h> -#include <errno.h> -#include <reent.h> -#include <unistd.h> -#include "swi.h" - -/* Forward prototypes. */ -int _system _PARAMS ((const char *)); -int _rename _PARAMS ((const char *, const char *)); -int _isatty _PARAMS ((int)); -clock_t _times _PARAMS ((struct tms *)); -int _gettimeofday _PARAMS ((struct timeval *, struct timezone *)); -int _unlink _PARAMS ((const char *)); -int _link _PARAMS ((void)); -int _stat _PARAMS ((const char *, struct stat *)); -int _fstat _PARAMS ((int, struct stat *)); -caddr_t _sbrk _PARAMS ((int)); -int _getpid _PARAMS ((int)); -int _kill _PARAMS ((int, int)); -void _exit _PARAMS ((int)); -int _close _PARAMS ((int)); -clock_t _clock _PARAMS ((void)); -int _swiclose _PARAMS ((int)); -int _open _PARAMS ((const char *, int, ...)); -int _swiopen _PARAMS ((const char *, int)); -int _write _PARAMS ((int, char *, int)); -int _swiwrite _PARAMS ((int, char *, int)); -int _lseek _PARAMS ((int, int, int)); -int _swilseek _PARAMS ((int, int, int)); -int _read _PARAMS ((int, char *, int)); -int _swiread _PARAMS ((int, char *, int)); -void initialise_monitor_handles _PARAMS ((void)); - -static int wrap _PARAMS ((int)); -static int error _PARAMS ((int)); -static int get_errno _PARAMS ((void)); -static int remap_handle _PARAMS ((int)); -static int do_AngelSWI _PARAMS ((int, void *)); -static int findslot _PARAMS ((int)); - -/* Register name faking - works in collusion with the linker. */ -register char * stack_ptr asm ("sp"); - - -/* following is copied from libc/stdio/local.h to check std streams */ -extern void _EXFUN(__sinit,(struct _reent *)); -#define CHECK_INIT(ptr) \ - do \ - { \ - if ((ptr) && !(ptr)->__sdidinit) \ - __sinit (ptr); \ - } \ - while (0) - -/* Adjust our internal handles to stay away from std* handles. */ -#define FILE_HANDLE_OFFSET (0x20) - -static int monitor_stdin; -static int monitor_stdout; -static int monitor_stderr; - -/* Struct used to keep track of the file position, just so we - can implement fseek(fh,x,SEEK_CUR). */ -typedef struct -{ - int handle; - int pos; -} -poslog; - -#define MAX_OPEN_FILES 20 -static poslog openfiles [MAX_OPEN_FILES]; - -static int -findslot (int fh) -{ - int i; - for (i = 0; i < MAX_OPEN_FILES; i ++) - if (openfiles[i].handle == fh) - break; - return i; -} - -#ifdef ARM_RDI_MONITOR - -static inline int -do_AngelSWI (int reason, void * arg) -{ - int value; - asm volatile ("mov r0, %1; mov r1, %2; " AngelSWIInsn " %a3; mov %0, r0" - : "=r" (value) /* Outputs */ - : "r" (reason), "r" (arg), "i" (AngelSWI) /* Inputs */ - : "r0", "r1", "r2", "r3", "ip", "lr", "memory", "cc" - /* Clobbers r0 and r1, and lr if in supervisor mode */); - /* Accordingly to page 13-77 of ARM DUI 0040D other registers - can also be clobbered. Some memory positions may also be - changed by a system call, so they should not be kept in - registers. Note: we are assuming the manual is right and - Angel is respecting the APCS. */ - return value; -} -#endif /* ARM_RDI_MONITOR */ - -/* Function to convert std(in|out|err) handles to internal versions. */ -static int -remap_handle (int fh) -{ - CHECK_INIT(_REENT); - - if (fh == STDIN_FILENO) - return monitor_stdin; - if (fh == STDOUT_FILENO) - return monitor_stdout; - if (fh == STDERR_FILENO) - return monitor_stderr; - - return fh - FILE_HANDLE_OFFSET; -} - -void -initialise_monitor_handles (void) -{ - int i; - - /* Open the standard file descriptors by opening the special - * teletype device, ":tt", read-only to obtain a descritpor for - * standard input and write-only to obtain a descriptor for standard - * output. Finally, open ":tt" in append mode to obtain a descriptor - * for standard error. Since this is a write mode, most kernels will - * probably return the same value as for standard output, but the - * kernel can differentiate the two using the mode flag and return a - * different descriptor for standard error. - */ - -#ifdef ARM_RDI_MONITOR - int volatile block[3]; - - block[0] = (int) ":tt"; - block[2] = 3; /* length of filename */ - block[1] = 0; /* mode "r" */ - monitor_stdin = do_AngelSWI (AngelSWI_Reason_Open, (void *) block); - - block[0] = (int) ":tt"; - block[2] = 3; /* length of filename */ - block[1] = 4; /* mode "w" */ - monitor_stdout = do_AngelSWI (AngelSWI_Reason_Open, (void *) block); - - block[0] = (int) ":tt"; - block[2] = 3; /* length of filename */ - block[1] = 8; /* mode "a" */ - monitor_stderr = do_AngelSWI (AngelSWI_Reason_Open, (void *) block); -#else - int fh; - const char * name; - - name = ":tt"; - asm ("mov r0,%2; mov r1, #0; swi %a1; mov %0, r0" - : "=r"(fh) - : "i" (SWI_Open),"r"(name) - : "r0","r1"); - monitor_stdin = fh; - - name = ":tt"; - asm ("mov r0,%2; mov r1, #4; swi %a1; mov %0, r0" - : "=r"(fh) - : "i" (SWI_Open),"r"(name) - : "r0","r1"); - monitor_stdout = fh; - - name = ":tt"; - asm ("mov r0,%2; mov r1, #8; swi %a1; mov %0, r0" - : "=r"(fh) - : "i" (SWI_Open),"r"(name) - : "r0","r1"); - monitor_stderr = fh; -#endif - - for (i = 0; i < MAX_OPEN_FILES; i ++) - openfiles[i].handle = -1; - - openfiles[0].handle = monitor_stdin; - openfiles[0].pos = 0; - openfiles[1].handle = monitor_stdout; - openfiles[1].pos = 0; - openfiles[2].handle = monitor_stderr; - openfiles[2].pos = 0; -} - -static int -get_errno (void) -{ -#ifdef ARM_RDI_MONITOR - return do_AngelSWI (AngelSWI_Reason_Errno, NULL); -#else - register r0 asm("r0"); - asm ("swi %a1" : "=r"(r0) : "i" (SWI_GetErrno)); - return r0; -#endif -} - -static int -error (int result) -{ - errno = get_errno (); - return result; -} - -static int -wrap (int result) -{ - if (result == -1) - return error (-1); - return result; -} - -/* Returns # chars not! written. */ -int -_swiread (int file, - char * ptr, - int len) -{ - int fh = remap_handle (file); -#ifdef ARM_RDI_MONITOR - int block[3]; - - block[0] = fh; - block[1] = (int) ptr; - block[2] = len; - - return do_AngelSWI (AngelSWI_Reason_Read, block); -#else - asm ("mov r0, %1; mov r1, %2;mov r2, %3; swi %a0" - : /* No outputs */ - : "i"(SWI_Read), "r"(fh), "r"(ptr), "r"(len) - : "r0","r1","r2"); -#endif -} - -int -_read (int file, - char * ptr, - int len) -{ - int slot = findslot (remap_handle (file)); - int x = _swiread (file, ptr, len); - - if (x < 0) - return error (-1); - - if (slot != MAX_OPEN_FILES) - openfiles [slot].pos += len - x; - - /* x == len is not an error, at least if we want feof() to work. */ - return len - x; -} - -int -_swilseek (int file, - int ptr, - int dir) -{ - int res; - int fh = remap_handle (file); - int slot = findslot (fh); -#ifdef ARM_RDI_MONITOR - int block[2]; -#endif - - if (dir == SEEK_CUR) - { - if (slot == MAX_OPEN_FILES) - return -1; - ptr = openfiles[slot].pos + ptr; - dir = SEEK_SET; - } - -#ifdef ARM_RDI_MONITOR - if (dir == SEEK_END) - { - block[0] = fh; - ptr += do_AngelSWI (AngelSWI_Reason_FLen, block); - } - - /* This code only does absolute seeks. */ - block[0] = remap_handle (file); - block[1] = ptr; - res = do_AngelSWI (AngelSWI_Reason_Seek, block); -#else - if (dir == SEEK_END) - { - asm ("mov r0, %2; swi %a1; mov %0, r0" - : "=r" (res) - : "i" (SWI_Flen), "r" (fh) - : "r0"); - ptr += res; - } - - /* This code only does absolute seeks. */ - asm ("mov r0, %2; mov r1, %3; swi %a1; mov %0, r0" - : "=r" (res) - : "i" (SWI_Seek), "r" (fh), "r" (ptr) - : "r0", "r1"); -#endif - - if (slot != MAX_OPEN_FILES && res == 0) - openfiles[slot].pos = ptr; - - /* This is expected to return the position in the file. */ - return res == 0 ? ptr : -1; -} - -int -_lseek (int file, - int ptr, - int dir) -{ - return wrap (_swilseek (file, ptr, dir)); -} - -/* Returns #chars not! written. */ -int -_swiwrite ( - int file, - char * ptr, - int len) -{ - int fh = remap_handle (file); -#ifdef ARM_RDI_MONITOR - int block[3]; - - block[0] = fh; - block[1] = (int) ptr; - block[2] = len; - - return do_AngelSWI (AngelSWI_Reason_Write, block); -#else - asm ("mov r0, %1; mov r1, %2;mov r2, %3; swi %a0" - : /* No outputs */ - : "i"(SWI_Write), "r"(fh), "r"(ptr), "r"(len) - : "r0","r1","r2"); -#endif -} - -int -_write (int file, - char * ptr, - int len) -{ - int slot = findslot (remap_handle (file)); - int x = _swiwrite (file, ptr,len); - - if (x == -1 || x == len) - return error (-1); - - if (slot != MAX_OPEN_FILES) - openfiles[slot].pos += len - x; - - return len - x; -} - -int -_swiopen (const char * path, - int flags) -{ - int aflags = 0, fh; -#ifdef ARM_RDI_MONITOR - int block[3]; -#endif - - int i = findslot (-1); - - if (i == MAX_OPEN_FILES) - return -1; - - /* The flags are Unix-style, so we need to convert them. */ -#ifdef O_BINARY - if (flags & O_BINARY) - aflags |= 1; -#endif - - if (flags & O_RDWR) - aflags |= 2; - - if (flags & O_CREAT) - aflags |= 4; - - if (flags & O_TRUNC) - aflags |= 4; - - if (flags & O_APPEND) - { - aflags &= ~4; /* Can't ask for w AND a; means just 'a'. */ - aflags |= 8; - } - -#ifdef ARM_RDI_MONITOR - block[0] = (int) path; - block[2] = strlen (path); - block[1] = aflags; - - fh = do_AngelSWI (AngelSWI_Reason_Open, block); - -#else - asm ("mov r0,%2; mov r1, %3; swi %a1; mov %0, r0" - : "=r"(fh) - : "i" (SWI_Open),"r"(path),"r"(aflags) - : "r0","r1"); -#endif - - if (fh >= 0) - { - openfiles[i].handle = fh; - openfiles[i].pos = 0; - } - - return fh >= 0 ? fh + FILE_HANDLE_OFFSET : error (fh); -} - -int -_open (const char * path, - int flags, - ...) -{ - return wrap (_swiopen (path, flags)); -} - -int -_swiclose (int file) -{ - int myhan = remap_handle (file); - int slot = findslot (myhan); - - if (slot != MAX_OPEN_FILES) - openfiles[slot].handle = -1; - -#ifdef ARM_RDI_MONITOR - return do_AngelSWI (AngelSWI_Reason_Close, & myhan); -#else - asm ("mov r0, %1; swi %a0" :: "i" (SWI_Close),"r"(myhan):"r0"); -#endif -} - -int -_close (int file) -{ - return wrap (_swiclose (file)); -} - -int -_kill (int pid, int sig) -{ - (void)pid; (void)sig; -#ifdef ARM_RDI_MONITOR - /* Note: Both arguments are thrown away. */ - return do_AngelSWI (AngelSWI_Reason_ReportException, - (void *) ADP_Stopped_ApplicationExit); -#else - asm ("swi %a0" :: "i" (SWI_Exit)); -#endif -} - -void -_exit (int status) -{ - /* There is only one SWI for both _exit and _kill. For _exit, call - the SWI with the second argument set to -1, an invalid value for - signum, so that the SWI handler can distinguish the two calls. - Note: The RDI implementation of _kill throws away both its - arguments. */ - _kill(status, -1); -} - -int __attribute__((weak)) -_getpid (int n) -{ - return 1; - n = n; -} - -caddr_t -_sbrk (int incr) -{ - extern char end asm ("end"); /* Defined by the linker. */ - static char * heap_end; - char * prev_heap_end; - - if (heap_end == NULL) - heap_end = & end; - - prev_heap_end = heap_end; - - if (heap_end + incr > stack_ptr) - { - /* Some of the libstdc++-v3 tests rely upon detecting - out of memory errors, so do not abort here. */ -#if 0 - extern void abort (void); - - _write (1, "_sbrk: Heap and stack collision\n", 32); - - abort (); -#else - errno = ENOMEM; - return (caddr_t) -1; -#endif - } - - heap_end += incr; - - return (caddr_t) prev_heap_end; -} - -int __attribute__((weak)) -_fstat (int file, struct stat * st) -{ - memset (st, 0, sizeof (* st)); - st->st_mode = S_IFCHR; - st->st_blksize = 1024; - return 0; - file = file; -} - -int __attribute__((weak)) -_stat (const char *fname, struct stat *st) -{ - int file; - - /* The best we can do is try to open the file readonly. If it exists, - then we can guess a few things about it. */ - if ((file = _open (fname, O_RDONLY)) < 0) - return -1; - - memset (st, 0, sizeof (* st)); - st->st_mode = S_IFREG | S_IREAD; - st->st_blksize = 1024; - _swiclose (file); /* Not interested in the error. */ - return 0; -} - -int __attribute__((weak)) -_link (void) -{ - errno = ENOSYS; - return -1; -} - -int -_unlink (const char *path) -{ -#ifdef ARM_RDI_MONITOR - return do_AngelSWI (AngelSWI_Reason_Remove, &path); -#else - (void)path; - asm ("swi %a0" :: "i" (SWI_Remove)); -#endif -} - -int -_gettimeofday (struct timeval * tp, struct timezone * tzp) -{ - - if (tp) - { - /* Ask the host for the seconds since the Unix epoch. */ -#ifdef ARM_RDI_MONITOR - tp->tv_sec = do_AngelSWI (AngelSWI_Reason_Time,NULL); -#else - { - int value; - asm ("swi %a1; mov %0, r0" : "=r" (value): "i" (SWI_Time) : "r0"); - tp->tv_sec = value; - } -#endif - tp->tv_usec = 0; - } - - /* Return fixed data for the timezone. */ - if (tzp) - { - tzp->tz_minuteswest = 0; - tzp->tz_dsttime = 0; - } - - return 0; -} - -/* Return a clock that ticks at 100Hz. */ -clock_t -_clock (void) -{ - clock_t timeval; - -#ifdef ARM_RDI_MONITOR - timeval = do_AngelSWI (AngelSWI_Reason_Clock,NULL); -#else - asm ("swi %a1; mov %0, r0" : "=r" (timeval): "i" (SWI_Clock) : "r0"); -#endif - return timeval; -} - -/* Return a clock that ticks at 100Hz. */ -clock_t -_times (struct tms * tp) -{ - clock_t timeval = _clock(); - - if (tp) - { - tp->tms_utime = timeval; /* user time */ - tp->tms_stime = 0; /* system time */ - tp->tms_cutime = 0; /* user time, children */ - tp->tms_cstime = 0; /* system time, children */ - } - - return timeval; -}; - - -int -_isatty (int fd) -{ -#ifdef ARM_RDI_MONITOR - return do_AngelSWI (AngelSWI_Reason_IsTTY, &fd); -#else - (void)fd; - asm ("swi %a0" :: "i" (SWI_IsTTY)); -#endif -} - -int -_system (const char *s) -{ -#ifdef ARM_RDI_MONITOR - return do_AngelSWI (AngelSWI_Reason_System, &s); -#else - (void)s; - asm ("swi %a0" :: "i" (SWI_CLI)); -#endif -} - -int -_rename (const char * oldpath, const char * newpath) -{ -#ifdef ARM_RDI_MONITOR - const char *block[2] = {oldpath, newpath}; - return do_AngelSWI (AngelSWI_Reason_Rename, block); -#else - (void)oldpath; (void)newpath; - asm ("swi %a0" :: "i" (SWI_Rename)); -#endif -} diff --git a/libgloss/arm/trap.S b/libgloss/arm/trap.S deleted file mode 100644 index 21b6937f9..000000000 --- a/libgloss/arm/trap.S +++ /dev/null @@ -1,95 +0,0 @@ - /* Run-time exception support */ -#if !defined(__thumb2__) -#include "swi.h" - -/* .text is used instead of .section .text so it works with arm-aout too. */ - .text - .align 0 - .global __rt_stkovf_split_big - .global __rt_stkovf_split_small - -/* The following functions are provided for software stack checking. - If hardware stack-checking is being used then the code can be - compiled without the PCS entry checks, and simply rely on VM - management to extend the stack for a thread. - - The stack extension event occurs when the PCS function entry code - would result in a stack-pointer beneath the stack-limit register - value. The system relies on the following map: - - +-----------------------------------+ <-- end of stack block - | ... | - | ... | - | active stack | - | ... | <-- sp (stack-pointer) somewhere in here - | ... | - +-----------------------------------+ <-- sl (stack-limit) - | stack-extension handler workspace | - +-----------------------------------+ <-- base of stack block - - The "stack-extension handler workspace" is an amount of memory in - which the stack overflow support code must execute. It must be - large enough to deal with the worst case path through the extension - code. At the moment the compiler expects this to be AT LEAST - 256bytes. It uses this fact to code functions with small local - data usage within the overflow space. - - In a true target environment We may need to increase the space - between sl and the true limit to allow for the stack extension - code, SWI handlers and for undefined instruction handlers of the - target environment. */ - -__rt_stkovf_split_small: - mov ip,sp @ Ensure we can calculate the stack required - @ and fall through to... -__rt_stkovf_split_big: - @ in: sp = current stack-pointer (beneath stack-limit) - @ sl = current stack-limit - @ ip = low stack point we require for the current function - @ lr = return address into the current function - @ fp = frame-pointer - @ original sp --> +----------------------------------+ - @ | pc (12 ahead of PCS entry store) | - @ current fp ---> +----------------------------------+ - @ | lr (on entry) pc (on exit) | - @ +----------------------------------+ - @ | sp ("original sp" on entry) | - @ +----------------------------------+ - @ | fp (on entry to function) | - @ +----------------------------------+ - @ | | - @ | ..argument and work registers.. | - @ | | - @ current sp ---> +----------------------------------+ - @ - @ The "current sl" is somewhere between "original sp" and "current sp" - @ but above "true sl". The "current sl" should be at least 256bytes - @ above the "true sl". The 256byte stack guard should be large enough - @ to deal with the worst case function entry stacking (160bytes) plus - @ the stack overflow handler stacking requirements, plus the stack - @ required for the memory allocation routines. - @ - @ Normal PCS entry (before stack overflow check) can stack 16 - @ standard registers (64bytes) and 8 floating point registers - @ (96bytes). This gives a minimum stack guard of 160bytes (excluding - @ the stack required for the code). (Actually only a maximum of - @ 14standard registers are ever stacked on entry to a function). - @ - @ NOTE: Structure returns are performed by the caller allocating a - @ dummy space on the stack and passing in a "phantom" arg1 into - @ the function. This means that we do not need to worry about - @ preserving the stack under "sp" even on function return. - @ - @ Code should never poke values beneath sp. The sp register - @ should always be "dropped" first to cover the data. This - @ protects the data against any events that may try and use - @ the stack. - - SUB ip, sp, ip @ extra stack required for function - @ Add stack extension code here. If desired a new stack chunk - @ can be allocated, and the register state updated suitably. - - @ We now know how much extra stack the function requires. - @ Terminate the program for the moment: - swi SWI_Exit -#endif |