mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-02-18 15:09:32 +08:00
This commit was manufactured by cvs2svn to create branch 'cygwin-64bit-
premerge-branch'. Sprout from master 2013-04-22 17:11:22 UTC Jan-Benedict Glaw <jbglaw@lug-owl.de> '2013-04-22 Jan-Benedict Glaw <jbglaw@lug-owl.de>' Cherrypick from cygnus 1999-05-03 07:29:06 UTC Richard Henderson <rth@redhat.com> '19990502 sourceware import': README config/mt-d30v config/mt-ospace etc/add-log.el etc/add-log.vi etc/configbuild.ein etc/configbuild.fig etc/configbuild.jin etc/configbuild.tin etc/configdev.ein etc/configdev.fig etc/configdev.jin etc/configdev.tin include/coff/sym.h makefile.vms Delete: djunpack.bat libgloss/ChangeLog libgloss/Makefile.in libgloss/README libgloss/aarch64/Makefile.in libgloss/aarch64/_exit.c libgloss/aarch64/_kill.c libgloss/aarch64/aclocal.m4 libgloss/aarch64/configure libgloss/aarch64/configure.in libgloss/aarch64/cpu-init/Makefile.in libgloss/aarch64/cpu-init/aclocal.m4 libgloss/aarch64/cpu-init/configure libgloss/aarch64/cpu-init/configure.in libgloss/aarch64/cpu-init/rdimon-aem-el3.S libgloss/aarch64/crt0.S libgloss/aarch64/elf-aem-validation.specs libgloss/aarch64/elf-aem-ve.specs libgloss/aarch64/elf-rdimon.specs libgloss/aarch64/libcfunc.c libgloss/aarch64/svc.h libgloss/aarch64/syscalls.c libgloss/acinclude.m4 libgloss/aclocal.m4 libgloss/arm/Makefile.in libgloss/arm/_exit.c libgloss/arm/_kill.c libgloss/arm/aclocal.m4 libgloss/arm/arm.h libgloss/arm/coff-iq80310.specs libgloss/arm/coff-pid.specs libgloss/arm/coff-rdimon.specs libgloss/arm/coff-rdpmon.specs libgloss/arm/coff-redboot.ld libgloss/arm/coff-redboot.specs libgloss/arm/configure libgloss/arm/configure.in libgloss/arm/crt0.S libgloss/arm/elf-iq80310.specs libgloss/arm/elf-linux.specs libgloss/arm/elf-pid.specs libgloss/arm/elf-rdimon.specs libgloss/arm/elf-rdpmon.specs libgloss/arm/elf-redboot.ld libgloss/arm/elf-redboot.specs libgloss/arm/libcfunc.c libgloss/arm/linux-crt0.c libgloss/arm/linux-syscall.h libgloss/arm/linux-syscalls0.S libgloss/arm/linux-syscalls1.c libgloss/arm/redboot-crt0.S libgloss/arm/redboot-syscalls.c libgloss/arm/swi.h libgloss/arm/syscall.h libgloss/arm/syscalls.c libgloss/arm/trap.S libgloss/bfin/Makefile.in libgloss/bfin/_exit.c libgloss/bfin/aclocal.m4 libgloss/bfin/basiccrt.S libgloss/bfin/bf504.ld libgloss/bfin/bf506.ld libgloss/bfin/bf512.ld libgloss/bfin/bf514.ld libgloss/bfin/bf516.ld libgloss/bfin/bf518.ld libgloss/bfin/bf522.ld libgloss/bfin/bf523.ld libgloss/bfin/bf524.ld libgloss/bfin/bf525.ld libgloss/bfin/bf526.ld libgloss/bfin/bf527.ld libgloss/bfin/bf531.ld libgloss/bfin/bf532.ld libgloss/bfin/bf533.ld libgloss/bfin/bf534.ld libgloss/bfin/bf536.ld libgloss/bfin/bf537.ld libgloss/bfin/bf538.ld libgloss/bfin/bf539.ld libgloss/bfin/bf542.ld libgloss/bfin/bf544.ld libgloss/bfin/bf547.ld libgloss/bfin/bf548.ld libgloss/bfin/bf549.ld libgloss/bfin/bf561.ld libgloss/bfin/bf561a.ld libgloss/bfin/bf561b.ld libgloss/bfin/bf561m.ld libgloss/bfin/bf592.ld libgloss/bfin/bf606.ld libgloss/bfin/bf606c0.ld libgloss/bfin/bf606c1.ld libgloss/bfin/bf606m.ld libgloss/bfin/bf607.ld libgloss/bfin/bf607c0.ld libgloss/bfin/bf607c1.ld libgloss/bfin/bf607m.ld libgloss/bfin/bf608.ld libgloss/bfin/bf608c0.ld libgloss/bfin/bf608c1.ld libgloss/bfin/bf608m.ld libgloss/bfin/bf609.ld libgloss/bfin/bf609c0.ld libgloss/bfin/bf609c1.ld libgloss/bfin/bf609m.ld libgloss/bfin/bfin-common-mc.ld libgloss/bfin/bfin-common-mc0.ld libgloss/bfin/bfin-common-sc.ld libgloss/bfin/clear_cache_range.c libgloss/bfin/configure libgloss/bfin/configure.in libgloss/bfin/crt0.S libgloss/bfin/include/blackfin.h libgloss/bfin/include/builtins.h libgloss/bfin/include/ccblkfn.h libgloss/bfin/include/cdefBF504.h libgloss/bfin/include/cdefBF504F.h libgloss/bfin/include/cdefBF506F.h libgloss/bfin/include/cdefBF50x_base.h libgloss/bfin/include/cdefBF512.h libgloss/bfin/include/cdefBF514.h libgloss/bfin/include/cdefBF516.h libgloss/bfin/include/cdefBF518.h libgloss/bfin/include/cdefBF51x_base.h libgloss/bfin/include/cdefBF522.h libgloss/bfin/include/cdefBF523.h libgloss/bfin/include/cdefBF524.h libgloss/bfin/include/cdefBF525.h libgloss/bfin/include/cdefBF526.h libgloss/bfin/include/cdefBF527.h libgloss/bfin/include/cdefBF52x_base.h libgloss/bfin/include/cdefBF531.h libgloss/bfin/include/cdefBF532.h libgloss/bfin/include/cdefBF533.h libgloss/bfin/include/cdefBF534.h libgloss/bfin/include/cdefBF535.h libgloss/bfin/include/cdefBF536.h libgloss/bfin/include/cdefBF537.h libgloss/bfin/include/cdefBF538.h libgloss/bfin/include/cdefBF539.h libgloss/bfin/include/cdefBF53x.h libgloss/bfin/include/cdefBF542.h libgloss/bfin/include/cdefBF542M.h libgloss/bfin/include/cdefBF544.h libgloss/bfin/include/cdefBF544M.h libgloss/bfin/include/cdefBF547.h libgloss/bfin/include/cdefBF547M.h libgloss/bfin/include/cdefBF548.h libgloss/bfin/include/cdefBF548M.h libgloss/bfin/include/cdefBF549.h libgloss/bfin/include/cdefBF549M.h libgloss/bfin/include/cdefBF54x_base.h libgloss/bfin/include/cdefBF561.h libgloss/bfin/include/cdefBF592-A.h libgloss/bfin/include/cdefBF59x_base.h libgloss/bfin/include/cdefBF606.h libgloss/bfin/include/cdefBF607.h libgloss/bfin/include/cdefBF608.h libgloss/bfin/include/cdefBF609.h libgloss/bfin/include/cdef_LPBlackfin.h libgloss/bfin/include/cdefblackfin.h libgloss/bfin/include/cplb.h libgloss/bfin/include/cplbtab.h libgloss/bfin/include/defBF504.h libgloss/bfin/include/defBF504F.h libgloss/bfin/include/defBF506F.h libgloss/bfin/include/defBF50x_base.h libgloss/bfin/include/defBF512.h libgloss/bfin/include/defBF514.h libgloss/bfin/include/defBF516.h libgloss/bfin/include/defBF518.h libgloss/bfin/include/defBF51x_base.h libgloss/bfin/include/defBF522.h libgloss/bfin/include/defBF523.h libgloss/bfin/include/defBF524.h libgloss/bfin/include/defBF525.h libgloss/bfin/include/defBF526.h libgloss/bfin/include/defBF527.h libgloss/bfin/include/defBF52x_base.h libgloss/bfin/include/defBF531.h libgloss/bfin/include/defBF532.h libgloss/bfin/include/defBF533.h libgloss/bfin/include/defBF534.h libgloss/bfin/include/defBF535.h libgloss/bfin/include/defBF536.h libgloss/bfin/include/defBF537.h libgloss/bfin/include/defBF538.h libgloss/bfin/include/defBF539.h libgloss/bfin/include/defBF542.h libgloss/bfin/include/defBF542M.h libgloss/bfin/include/defBF544.h libgloss/bfin/include/defBF544M.h libgloss/bfin/include/defBF547.h libgloss/bfin/include/defBF547M.h libgloss/bfin/include/defBF548.h libgloss/bfin/include/defBF548M.h libgloss/bfin/include/defBF549.h libgloss/bfin/include/defBF549M.h libgloss/bfin/include/defBF54x_base.h libgloss/bfin/include/defBF561.h libgloss/bfin/include/defBF592-A.h libgloss/bfin/include/defBF59x_base.h libgloss/bfin/include/defBF606.h libgloss/bfin/include/defBF607.h libgloss/bfin/include/defBF608.h libgloss/bfin/include/defBF609.h libgloss/bfin/include/def_LPBlackfin.h libgloss/bfin/include/defblackfin.h libgloss/bfin/include/sys/_adi_platform.h libgloss/bfin/include/sys/anomaly_macros_rtl.h libgloss/bfin/include/sys/excause.h libgloss/bfin/include/sys/exception.h libgloss/bfin/include/sys/mc_typedef.h libgloss/bfin/include/sys/platform.h libgloss/bfin/include/sys/pll.h libgloss/bfin/include/sysreg.h libgloss/bfin/syscalls.c libgloss/close.c libgloss/config/default.mh libgloss/config/default.mt libgloss/config/dos.mh libgloss/config/mips.mt libgloss/config/mn10200.mt libgloss/config/mn10300.mt libgloss/config/ppc.mh libgloss/config/xc16x.mt libgloss/configure libgloss/configure.in libgloss/cr16/Makefile.in libgloss/cr16/_exit.c libgloss/cr16/_getenv.c libgloss/cr16/_rename.c libgloss/cr16/aclocal.m4 libgloss/cr16/close.c libgloss/cr16/configure libgloss/cr16/configure.in libgloss/cr16/crt1.S libgloss/cr16/crti.S libgloss/cr16/crtn.S libgloss/cr16/dvz_hndl.c libgloss/cr16/flg_hndl.c libgloss/cr16/fstat.c libgloss/cr16/getpid.c libgloss/cr16/iad_hndl.c libgloss/cr16/intable.c libgloss/cr16/isatty.c libgloss/cr16/kill.c libgloss/cr16/lseek.c libgloss/cr16/open.c libgloss/cr16/putnum.c libgloss/cr16/read.c libgloss/cr16/sbrk.c libgloss/cr16/sim.ld libgloss/cr16/stat.c libgloss/cr16/svc_hndl.c libgloss/cr16/sys/syscall.h libgloss/cr16/time.c libgloss/cr16/und_hndl.c libgloss/cr16/unlink.c libgloss/cr16/write.c libgloss/cris/Makefile.in libgloss/cris/aclocal.m4 libgloss/cris/configure libgloss/cris/configure.in libgloss/cris/crt0.S libgloss/cris/crti.c libgloss/cris/crtn.c libgloss/cris/gensyscalls libgloss/cris/irqtable.S 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/aclocal.m4 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/d30v/Makefile.in libgloss/d30v/aclocal.m4 libgloss/d30v/configure libgloss/d30v/configure.in libgloss/d30v/crt0.S libgloss/d30v/inbyte.c libgloss/d30v/outbyte.c libgloss/d30v/syscalls.c libgloss/debug.c libgloss/debug.h libgloss/doc/Makefile.in libgloss/doc/configure libgloss/doc/configure.in libgloss/doc/porting.texi libgloss/epiphany/Makefile.in libgloss/epiphany/_exit.S libgloss/epiphany/_exit.c libgloss/epiphany/_isatty.c libgloss/epiphany/access.c libgloss/epiphany/aclocal.m4 libgloss/epiphany/close.c libgloss/epiphany/config.h.in libgloss/epiphany/configure libgloss/epiphany/configure.in libgloss/epiphany/crt0.S libgloss/epiphany/environ.c libgloss/epiphany/epiphany-config.h libgloss/epiphany/epiphany-ivthandlers.S libgloss/epiphany/epiphany-syscalls.c libgloss/epiphany/epiphany-syscalls.h libgloss/epiphany/execve.c libgloss/epiphany/fork.c libgloss/epiphany/fstat.c libgloss/epiphany/getpid.c libgloss/epiphany/gettimeofday.c libgloss/epiphany/kill.c libgloss/epiphany/link.c libgloss/epiphany/lseek.c libgloss/epiphany/open.c libgloss/epiphany/read.c libgloss/epiphany/sbrk.c libgloss/epiphany/stat.c libgloss/epiphany/times.c libgloss/epiphany/unlink.c libgloss/epiphany/wait.c libgloss/epiphany/write.c libgloss/fr30/Makefile.in libgloss/fr30/aclocal.m4 libgloss/fr30/configure libgloss/fr30/configure.in libgloss/fr30/crt0.s libgloss/fr30/syscalls.c libgloss/frv/Makefile.in libgloss/frv/aclocal.m4 libgloss/frv/configure libgloss/frv/configure.in libgloss/frv/crt0.S libgloss/frv/fstat.c libgloss/frv/getpid.c libgloss/frv/isatty.c libgloss/frv/kill.c libgloss/frv/print.c libgloss/frv/putnum.c libgloss/frv/sbrk.c libgloss/frv/sim-close.S libgloss/frv/sim-exit.S libgloss/frv/sim-inbyte.c libgloss/frv/sim-lseek.S libgloss/frv/sim-open.S libgloss/frv/sim-read.S libgloss/frv/sim-time.c libgloss/frv/sim-unlink.S libgloss/frv/sim-write.S libgloss/frv/stat.c libgloss/fstat.c libgloss/getpid.c libgloss/glue.h libgloss/hp74x/Makefile.in libgloss/hp74x/README libgloss/hp74x/aclocal.m4 libgloss/hp74x/checksum.c libgloss/hp74x/configure libgloss/hp74x/configure.in libgloss/hp74x/crt0.s libgloss/hp74x/debugger.h libgloss/hp74x/debugger.s libgloss/hp74x/diagnose.h libgloss/hp74x/hppa-defs.h libgloss/hp74x/hppa.ld libgloss/hp74x/io.c libgloss/hp74x/iva_table.h libgloss/hp74x/iva_table.s libgloss/hp74x/pa_stub.c libgloss/hp74x/test.c libgloss/i386/Makefile.in libgloss/i386/aclocal.m4 libgloss/i386/configure libgloss/i386/configure.in libgloss/i386/cygmon-crt0.S libgloss/i386/cygmon-gmon.c libgloss/i386/cygmon-gmon.h libgloss/i386/cygmon-salib.c libgloss/i386/cygmon-syscall.h libgloss/i386/cygmon.ld libgloss/i960/Makefile.in libgloss/i960/aclocal.m4 libgloss/i960/asm.h libgloss/i960/configure libgloss/i960/configure.in libgloss/i960/crt0.c libgloss/i960/mon-read.c libgloss/i960/mon-syscalls.S libgloss/i960/mon-write.c libgloss/i960/mon960.c libgloss/i960/mon960.ld libgloss/i960/syscall.h libgloss/iq2000/Makefile.in libgloss/iq2000/_exit.c libgloss/iq2000/access.c libgloss/iq2000/aclocal.m4 libgloss/iq2000/chmod.c libgloss/iq2000/chown.c libgloss/iq2000/close.c libgloss/iq2000/configure libgloss/iq2000/configure.in libgloss/iq2000/creat.c libgloss/iq2000/crt0.S libgloss/iq2000/crt1.c libgloss/iq2000/execv.c libgloss/iq2000/execve.c libgloss/iq2000/fork.c libgloss/iq2000/fstat.c libgloss/iq2000/getpid.c libgloss/iq2000/gettime.c libgloss/iq2000/isatty.c libgloss/iq2000/kill.c libgloss/iq2000/lseek.c libgloss/iq2000/open.c libgloss/iq2000/pipe.c libgloss/iq2000/read.c libgloss/iq2000/sbrk.c libgloss/iq2000/sim.ld libgloss/iq2000/stat.c libgloss/iq2000/test.c libgloss/iq2000/time.c libgloss/iq2000/times.c libgloss/iq2000/trap.c libgloss/iq2000/trap.h libgloss/iq2000/unlink.c libgloss/iq2000/utime.c libgloss/iq2000/wait.c libgloss/iq2000/write.c libgloss/isatty.c libgloss/kill.c libgloss/libnosys/Makefile.in libgloss/libnosys/_exit.c libgloss/libnosys/acconfig.h libgloss/libnosys/aclocal.m4 libgloss/libnosys/chown.c libgloss/libnosys/close.c libgloss/libnosys/config.h.in libgloss/libnosys/configure libgloss/libnosys/configure.in libgloss/libnosys/environ.c libgloss/libnosys/errno.c libgloss/libnosys/execve.c libgloss/libnosys/fork.c libgloss/libnosys/fstat.c libgloss/libnosys/getpid.c libgloss/libnosys/gettod.c libgloss/libnosys/isatty.c libgloss/libnosys/kill.c libgloss/libnosys/link.c libgloss/libnosys/lseek.c libgloss/libnosys/open.c libgloss/libnosys/read.c libgloss/libnosys/readlink.c libgloss/libnosys/sbrk.c libgloss/libnosys/stat.c libgloss/libnosys/symlink.c libgloss/libnosys/times.c libgloss/libnosys/unlink.c libgloss/libnosys/wait.c libgloss/libnosys/warning.h libgloss/libnosys/write.c libgloss/lm32/Makefile.in libgloss/lm32/aclocal.m4 libgloss/lm32/configure libgloss/lm32/configure.in libgloss/lm32/crt0.S libgloss/lm32/isatty.c libgloss/lm32/scall.S libgloss/lm32/sim.ld libgloss/lseek.c libgloss/m32c/Makefile.in libgloss/m32c/abort.S libgloss/m32c/aclocal.m4 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/sample.c 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/varvects.S libgloss/m32c/varvects.h libgloss/m32c/write.S libgloss/m32r/Makefile.in libgloss/m32r/aclocal.m4 libgloss/m32r/chmod.c libgloss/m32r/close.c libgloss/m32r/configure libgloss/m32r/configure.in libgloss/m32r/crt0.S libgloss/m32r/eit.h libgloss/m32r/eva-stub.ld libgloss/m32r/eva.ld libgloss/m32r/exit.c libgloss/m32r/fstat.c libgloss/m32r/getpid.c libgloss/m32r/isatty.c libgloss/m32r/kill.c libgloss/m32r/lseek.c libgloss/m32r/m32r-lib.c libgloss/m32r/m32r-stub.c libgloss/m32r/mon.specs libgloss/m32r/open.c libgloss/m32r/raise.c libgloss/m32r/read.c libgloss/m32r/sbrk.c libgloss/m32r/stat.c libgloss/m32r/trap0.S libgloss/m32r/trapmon0.c libgloss/m32r/unlink.c libgloss/m32r/utime.c libgloss/m32r/write.c libgloss/m68hc11/Makefile.in libgloss/m68hc11/aclocal.m4 libgloss/m68hc11/configure libgloss/m68hc11/configure.in libgloss/m68hc11/crt0.S libgloss/m68hc11/sci-inout.S libgloss/m68hc11/sim-valid-m68hc11.ld libgloss/m68hc11/sim-valid-m68hc12.ld libgloss/m68hc11/syscalls.c libgloss/m68k/Makefile.in libgloss/m68k/README libgloss/m68k/aclocal.m4 libgloss/m68k/asm.h libgloss/m68k/bcc.ld libgloss/m68k/cf-crt0.S libgloss/m68k/cf-crt1.c libgloss/m68k/cf-exit.c libgloss/m68k/cf-hosted.S libgloss/m68k/cf-isrs.c libgloss/m68k/cf-isv.S libgloss/m68k/cf-sbrk.c libgloss/m68k/cf.sc libgloss/m68k/configure libgloss/m68k/configure.in libgloss/m68k/cpu32bug.S libgloss/m68k/cpu32bug.h libgloss/m68k/crt0.S libgloss/m68k/dtor.C libgloss/m68k/fido-_exit.c libgloss/m68k/fido-crt0.S libgloss/m68k/fido-handler.c libgloss/m68k/fido-hosted.S libgloss/m68k/fido-sbrk.c libgloss/m68k/fido.h libgloss/m68k/fido.sc libgloss/m68k/fido_profiling.h libgloss/m68k/idp-inbyte.c libgloss/m68k/idp-outbyte.c libgloss/m68k/idp.ld libgloss/m68k/idpgdb.ld libgloss/m68k/io-close.c libgloss/m68k/io-exit.c libgloss/m68k/io-fstat.c libgloss/m68k/io-gdb.c libgloss/m68k/io-gettimeofday.c libgloss/m68k/io-isatty.c libgloss/m68k/io-lseek.c libgloss/m68k/io-open.c libgloss/m68k/io-read.c libgloss/m68k/io-rename.c libgloss/m68k/io-stat.c libgloss/m68k/io-system.c libgloss/m68k/io-time.c libgloss/m68k/io-unlink.c libgloss/m68k/io-write.c libgloss/m68k/io.h libgloss/m68k/leds.c libgloss/m68k/leds.h libgloss/m68k/mc68681reg.h libgloss/m68k/mc68ec.c libgloss/m68k/mvme-stub.c libgloss/m68k/mvme.S libgloss/m68k/mvme135-asm.S libgloss/m68k/mvme135.ld libgloss/m68k/mvme162.ld libgloss/m68k/mvme162lx-asm.S libgloss/m68k/sbc5204.ld libgloss/m68k/sbc5206.ld libgloss/m68k/sim-abort.c libgloss/m68k/sim-crt0.S libgloss/m68k/sim-errno.c libgloss/m68k/sim-funcs.c libgloss/m68k/sim-inbyte.c libgloss/m68k/sim-print.c libgloss/m68k/sim-sbrk.c libgloss/m68k/sim.ld libgloss/m68k/simulator.S libgloss/m68k/test.c libgloss/mcore/Makefile.in libgloss/mcore/aclocal.m4 libgloss/mcore/close.c libgloss/mcore/cmb-exit.c libgloss/mcore/cmb-inbyte.c libgloss/mcore/cmb-outbyte.c libgloss/mcore/configure libgloss/mcore/configure.in libgloss/mcore/crt0.S libgloss/mcore/elf-cmb.ld libgloss/mcore/elf-cmb.specs libgloss/mcore/fstat.c libgloss/mcore/getpid.c libgloss/mcore/kill.c libgloss/mcore/lseek.c libgloss/mcore/open.c libgloss/mcore/pe-cmb.ld libgloss/mcore/pe-cmb.specs libgloss/mcore/print.c libgloss/mcore/putnum.c libgloss/mcore/raise.c libgloss/mcore/read.c libgloss/mcore/sbrk.c libgloss/mcore/stat.c libgloss/mcore/syscalls.S libgloss/mcore/unlink.c libgloss/mcore/write.c libgloss/mep/Makefile.in libgloss/mep/aclocal.m4 libgloss/mep/configure libgloss/mep/configure.in libgloss/mep/crt0.S libgloss/mep/crtn.S libgloss/mep/default.ld libgloss/mep/fmax.ld libgloss/mep/gcov-io.h libgloss/mep/gmap_default.ld libgloss/mep/h_reset.c libgloss/mep/handlers.c libgloss/mep/isatty.c libgloss/mep/mep-bb.c libgloss/mep/mep-gmon.c libgloss/mep/min.ld libgloss/mep/read.c libgloss/mep/sbrk.c libgloss/mep/sdram-crt0.S libgloss/mep/sim-crt0.S libgloss/mep/sim-crtn.S libgloss/mep/simnovec-crt0.S libgloss/mep/simple.ld libgloss/mep/simsdram-crt0.S libgloss/mep/syscalls.S libgloss/mep/write.c libgloss/microblaze/Makefile.in libgloss/microblaze/_exception_handler.S libgloss/microblaze/_hw_exception_handler.S libgloss/microblaze/_interrupt_handler.S libgloss/microblaze/_program_clean.S libgloss/microblaze/_program_init.S libgloss/microblaze/configure libgloss/microblaze/configure.in libgloss/microblaze/crt0.S libgloss/microblaze/crt1.S libgloss/microblaze/crt2.S libgloss/microblaze/crt3.S libgloss/microblaze/crt4.S libgloss/microblaze/crtinit.S libgloss/microblaze/pgcrtinit.S libgloss/microblaze/sbrk.c libgloss/microblaze/sim-crtinit.S libgloss/microblaze/sim-pgcrtinit.S libgloss/microblaze/timer.c libgloss/microblaze/xil_malloc.c libgloss/microblaze/xil_sbrk.c libgloss/microblaze/xilinx.ld libgloss/mips/Makefile.in libgloss/mips/aclocal.m4 libgloss/mips/array-io.c libgloss/mips/array.ld libgloss/mips/cfe.c libgloss/mips/cfe.ld libgloss/mips/cfe_api.c libgloss/mips/cfe_api.h libgloss/mips/cfe_api_int.h libgloss/mips/cfe_error.h libgloss/mips/cfe_mem.c libgloss/mips/cma101.c libgloss/mips/configure libgloss/mips/configure.in libgloss/mips/crt0.S libgloss/mips/crt0_cfe.S libgloss/mips/crt0_cygmon.S libgloss/mips/cygmon.c libgloss/mips/ddb-kseg0.ld libgloss/mips/ddb.ld libgloss/mips/dtor.C libgloss/mips/dve.ld libgloss/mips/dvemon.c libgloss/mips/entry.S libgloss/mips/idt.ld libgloss/mips/idt32.ld libgloss/mips/idt64.ld libgloss/mips/idtecoff.ld libgloss/mips/idtmon.S libgloss/mips/jmr3904-io.c libgloss/mips/jmr3904app-java.ld libgloss/mips/jmr3904app.ld libgloss/mips/jmr3904dram-java.ld libgloss/mips/jmr3904dram.ld libgloss/mips/lsi.ld libgloss/mips/lsipmon.S libgloss/mips/mti32.ld libgloss/mips/mti64.ld libgloss/mips/mti64_64.ld libgloss/mips/mti64_n32.ld libgloss/mips/nullmon.c libgloss/mips/nullmon.ld libgloss/mips/pmon.S libgloss/mips/pmon.ld libgloss/mips/regs.S libgloss/mips/sde32.ld libgloss/mips/sde64.ld libgloss/mips/syscalls.c libgloss/mips/test.c libgloss/mips/vr4300.S libgloss/mips/vr5xxx.S libgloss/mn10200/Makefile.in libgloss/mn10200/_exit.c libgloss/mn10200/access.c libgloss/mn10200/aclocal.m4 libgloss/mn10200/chmod.c libgloss/mn10200/chown.c libgloss/mn10200/close.c libgloss/mn10200/configure libgloss/mn10200/configure.in libgloss/mn10200/creat.c libgloss/mn10200/crt0.S libgloss/mn10200/crt1.c libgloss/mn10200/eval.ld libgloss/mn10200/execv.c libgloss/mn10200/execve.c libgloss/mn10200/fork.c libgloss/mn10200/fstat.c libgloss/mn10200/getpid.c libgloss/mn10200/gettime.c libgloss/mn10200/isatty.c libgloss/mn10200/kill.c libgloss/mn10200/lseek.c libgloss/mn10200/open.c libgloss/mn10200/pipe.c libgloss/mn10200/read.c libgloss/mn10200/sbrk.c libgloss/mn10200/sim.ld libgloss/mn10200/stat.c libgloss/mn10200/test.c libgloss/mn10200/time.c libgloss/mn10200/times.c libgloss/mn10200/trap.S libgloss/mn10200/trap.h libgloss/mn10200/unlink.c libgloss/mn10200/utime.c libgloss/mn10200/wait.c libgloss/mn10200/write.c libgloss/mn10300/Makefile.in libgloss/mn10300/_exit.c libgloss/mn10300/access.c libgloss/mn10300/aclocal.m4 libgloss/mn10300/asb2303.ld libgloss/mn10300/asb2305.ld libgloss/mn10300/chmod.c libgloss/mn10300/chown.c libgloss/mn10300/close.c libgloss/mn10300/configure libgloss/mn10300/configure.in libgloss/mn10300/creat.c libgloss/mn10300/crt0-eval.S libgloss/mn10300/crt0.S libgloss/mn10300/crt0_cygmon.S libgloss/mn10300/crt0_redboot.S libgloss/mn10300/crt1.c libgloss/mn10300/cygmon.c libgloss/mn10300/eval.ld libgloss/mn10300/execv.c libgloss/mn10300/execve.c libgloss/mn10300/fork.c libgloss/mn10300/fstat.c libgloss/mn10300/getpid.c libgloss/mn10300/gettime.c libgloss/mn10300/isatty.c libgloss/mn10300/kill.c libgloss/mn10300/lseek.c libgloss/mn10300/open.c libgloss/mn10300/pipe.c libgloss/mn10300/read.c libgloss/mn10300/sbrk.c libgloss/mn10300/sim.ld libgloss/mn10300/stat.c libgloss/mn10300/test.c libgloss/mn10300/time.c libgloss/mn10300/times.c libgloss/mn10300/trap.S libgloss/mn10300/trap.h libgloss/mn10300/unlink.c libgloss/mn10300/utime.c libgloss/mn10300/wait.c libgloss/mn10300/write.c libgloss/moxie/Makefile.in libgloss/moxie/aclocal.m4 libgloss/moxie/configure libgloss/moxie/configure.in libgloss/moxie/crt0.S libgloss/moxie/fstat.c libgloss/moxie/getpid.c libgloss/moxie/isatty.c libgloss/moxie/kill.c libgloss/moxie/moxie-elf-common.ld libgloss/moxie/print.c libgloss/moxie/putnum.c libgloss/moxie/qemu-time.c libgloss/moxie/qemu-write.c libgloss/moxie/qemu.ld libgloss/moxie/sbrk.c libgloss/moxie/sim-close.S libgloss/moxie/sim-exit.S libgloss/moxie/sim-inbyte.c libgloss/moxie/sim-lseek.S libgloss/moxie/sim-lseek.c libgloss/moxie/sim-open.S libgloss/moxie/sim-read.S libgloss/moxie/sim-time.c libgloss/moxie/sim-unlink.S libgloss/moxie/sim-write.S libgloss/moxie/sim.ld libgloss/moxie/stat.c 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/aclocal.m4 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/open.c libgloss/pa/Makefile.in libgloss/pa/README libgloss/pa/aclocal.m4 libgloss/pa/configure libgloss/pa/configure.in libgloss/pa/crt0.S libgloss/pa/hp-milli.s libgloss/pa/op50n-io.S libgloss/pa/op50n.h libgloss/pa/op50n.ld libgloss/pa/op50nled.c libgloss/pa/setjmp.S libgloss/pa/test.c libgloss/pa/w89k-io.c libgloss/pa/w89k.h libgloss/pa/w89k.ld libgloss/print.c libgloss/putnum.c libgloss/read.c libgloss/rl78/Makefile.in libgloss/rl78/abort.S libgloss/rl78/argv.S libgloss/rl78/argvlen.S libgloss/rl78/chdir.S libgloss/rl78/chmod.S libgloss/rl78/close.S libgloss/rl78/configure libgloss/rl78/configure.in libgloss/rl78/crt0.S libgloss/rl78/crtn.S libgloss/rl78/exit.S libgloss/rl78/fstat.S libgloss/rl78/gcrt0.S libgloss/rl78/getpid.S libgloss/rl78/gettimeofday.S libgloss/rl78/isatty.S libgloss/rl78/kill.S libgloss/rl78/link.S libgloss/rl78/lseek.S libgloss/rl78/mcount.c libgloss/rl78/open.S libgloss/rl78/read.S libgloss/rl78/rl78-sim.ld libgloss/rl78/rl78-sys.h libgloss/rl78/rl78.ld libgloss/rl78/sbrk.c libgloss/rl78/stat.S libgloss/rl78/time.S libgloss/rl78/times.S libgloss/rl78/unlink.S libgloss/rl78/utime.S libgloss/rl78/write.c libgloss/rs6000/Makefile.in libgloss/rs6000/aclocal.m4 libgloss/rs6000/ads-exit.S libgloss/rs6000/ads-io.c libgloss/rs6000/ads.ld libgloss/rs6000/configure libgloss/rs6000/configure.in libgloss/rs6000/crt0.S libgloss/rs6000/mbx-exit.c libgloss/rs6000/mbx-inbyte.c libgloss/rs6000/mbx-outbyte.c libgloss/rs6000/mbx-print.c libgloss/rs6000/mbx.ld libgloss/rs6000/mbx.specs libgloss/rs6000/mcount.S libgloss/rs6000/mvme-errno.c libgloss/rs6000/mvme-exit.S libgloss/rs6000/mvme-inbyte.S libgloss/rs6000/mvme-outbyte.S libgloss/rs6000/mvme-print.c libgloss/rs6000/mvme-read.c libgloss/rs6000/sim-abort.c libgloss/rs6000/sim-crt0.S libgloss/rs6000/sim-errno.c libgloss/rs6000/sim-getrusage.S libgloss/rs6000/sim-inbyte.c libgloss/rs6000/sim-print.c libgloss/rs6000/sim-sbrk.c libgloss/rs6000/simulator.S libgloss/rs6000/sol-cfuncs.c libgloss/rs6000/sol-syscall.S libgloss/rs6000/test.c libgloss/rs6000/xil-crt0.S libgloss/rs6000/xilinx.ld libgloss/rs6000/xilinx440.ld libgloss/rs6000/yellowknife.ld libgloss/rx/Makefile.in libgloss/rx/abort.S libgloss/rx/argv.S libgloss/rx/argvlen.S libgloss/rx/chdir.S libgloss/rx/chmod.S libgloss/rx/close.S libgloss/rx/configure libgloss/rx/configure.in libgloss/rx/crt0.S libgloss/rx/crtn.S libgloss/rx/exit.S libgloss/rx/fstat.S libgloss/rx/gcrt0.S libgloss/rx/getpid.S libgloss/rx/gettimeofday.S libgloss/rx/heaptop.S libgloss/rx/isatty.S libgloss/rx/kill.S libgloss/rx/link.S libgloss/rx/lseek.S libgloss/rx/mcount.c libgloss/rx/open.S libgloss/rx/read.S libgloss/rx/rx-sim.ld libgloss/rx/rx.ld libgloss/rx/rxsys.h libgloss/rx/sbrk.c libgloss/rx/sigprocmask.S libgloss/rx/sleep.S libgloss/rx/stat.S libgloss/rx/time.S libgloss/rx/times.S libgloss/rx/unlink.S libgloss/rx/utime.S libgloss/rx/write.S libgloss/sbrk.c libgloss/sh/sh1lcevb.ld libgloss/sh/sh2lcevb.ld libgloss/sh/sh3bb.ld libgloss/sh/sh3lcevb.ld libgloss/sparc/Makefile.in libgloss/sparc/aclocal.m4 libgloss/sparc/asm.h libgloss/sparc/cache.c libgloss/sparc/configure libgloss/sparc/configure.in libgloss/sparc/crt0-701.S libgloss/sparc/crt0.S libgloss/sparc/cygmon-crt0.S libgloss/sparc/cygmon-salib.c libgloss/sparc/cygmon-sparc64-ld.src libgloss/sparc/cygmon.ld.src libgloss/sparc/dtor.C libgloss/sparc/elfsim.ld libgloss/sparc/erc32-crt0.S libgloss/sparc/erc32-io.c libgloss/sparc/erc32-stub.c libgloss/sparc/erc32.ld libgloss/sparc/ex930.ld libgloss/sparc/ex931.ld libgloss/sparc/ex934.ld libgloss/sparc/fixctors.c libgloss/sparc/libsys/Makefile.in libgloss/sparc/libsys/_exit.S libgloss/sparc/libsys/aclocal.m4 libgloss/sparc/libsys/cerror.S libgloss/sparc/libsys/configure libgloss/sparc/libsys/configure.in libgloss/sparc/libsys/isatty.c libgloss/sparc/libsys/libsys-crt0.S libgloss/sparc/libsys/sbrk.S libgloss/sparc/libsys/syscall.h libgloss/sparc/libsys/syscallasm.h libgloss/sparc/libsys/template.S libgloss/sparc/libsys/template_r.S libgloss/sparc/salib-701.c libgloss/sparc/salib.c libgloss/sparc/slite.h libgloss/sparc/sparc-stub.c libgloss/sparc/sparc86x.ld libgloss/sparc/sparcl-stub.c libgloss/sparc/sparclet-stub.c libgloss/sparc/sparclite.h libgloss/sparc/sysc-701.c libgloss/sparc/syscalls.c libgloss/sparc/test.c libgloss/sparc/traps.S libgloss/sparc/tsc701.ld libgloss/sparc_leon/Makefile.in libgloss/sparc_leon/_exit.c libgloss/sparc_leon/aclocal.m4 libgloss/sparc_leon/amba.c libgloss/sparc_leon/amba_dbg.c libgloss/sparc_leon/amba_driver.c libgloss/sparc_leon/amba_scan.c libgloss/sparc_leon/asm-leon/amba.h libgloss/sparc_leon/asm-leon/asmmacro.h libgloss/sparc_leon/asm-leon/clock.h libgloss/sparc_leon/asm-leon/contextswitch.h libgloss/sparc_leon/asm-leon/elfmacro.h libgloss/sparc_leon/asm-leon/head.h libgloss/sparc_leon/asm-leon/irq.h libgloss/sparc_leon/asm-leon/jiffies.h libgloss/sparc_leon/asm-leon/lambapp.h libgloss/sparc_leon/asm-leon/lambapp_devs.h libgloss/sparc_leon/asm-leon/leon.h libgloss/sparc_leon/asm-leon/leon3.h libgloss/sparc_leon/asm-leon/leonbare_debug.h libgloss/sparc_leon/asm-leon/leonbare_kernel.h libgloss/sparc_leon/asm-leon/leonbare_kernel_queue.h libgloss/sparc_leon/asm-leon/leoncompat.h libgloss/sparc_leon/asm-leon/leondbg.h libgloss/sparc_leon/asm-leon/leonstack.h libgloss/sparc_leon/asm-leon/liblocks.h libgloss/sparc_leon/asm-leon/linkage.h libgloss/sparc_leon/asm-leon/param.h libgloss/sparc_leon/asm-leon/queue.h libgloss/sparc_leon/asm-leon/spinlock.h libgloss/sparc_leon/asm-leon/stack.h libgloss/sparc_leon/asm-leon/time.h libgloss/sparc_leon/asm-leon/timer.h libgloss/sparc_leon/asm-leon/types.h libgloss/sparc_leon/asm-leon/winmacros.h libgloss/sparc_leon/bdinit.S libgloss/sparc_leon/busscan.S libgloss/sparc_leon/cacheA.S libgloss/sparc_leon/catch_interrupt.c libgloss/sparc_leon/catch_interrupt_mvt.c libgloss/sparc_leon/catch_interrupt_pending.c libgloss/sparc_leon/catch_interrupt_svt.c libgloss/sparc_leon/configure libgloss/sparc_leon/configure.in libgloss/sparc_leon/console.c libgloss/sparc_leon/console_dbg.c libgloss/sparc_leon/console_init.c libgloss/sparc_leon/contextswitch.c libgloss/sparc_leon/contextswitch_asm.S libgloss/sparc_leon/crt0.S libgloss/sparc_leon/crti.S libgloss/sparc_leon/crtn.S libgloss/sparc_leon/etrap.S libgloss/sparc_leon/etrap_fast.S libgloss/sparc_leon/fpu.S libgloss/sparc_leon/gettimeofday.c libgloss/sparc_leon/initcalls.c libgloss/sparc_leon/io.c libgloss/sparc_leon/irqinstall.S libgloss/sparc_leon/irqtrap.S libgloss/sparc_leon/irqtrap_fast.S libgloss/sparc_leon/jiffies.c libgloss/sparc_leon/kernel.c libgloss/sparc_leon/kernel_context.S libgloss/sparc_leon/kernel_debug.c libgloss/sparc_leon/kernel_debug_var.c libgloss/sparc_leon/kernel_mm.c libgloss/sparc_leon/kernel_mutex.c libgloss/sparc_leon/kernel_queue.c libgloss/sparc_leon/kernel_sched.c libgloss/sparc_leon/kernel_thread.c libgloss/sparc_leon/lcpuinit.S libgloss/sparc_leon/locore.S libgloss/sparc_leon/locore_atexit.c libgloss/sparc_leon/locore_clean.S libgloss/sparc_leon/locore_mvt.S libgloss/sparc_leon/locore_mvt_reset.S libgloss/sparc_leon/locore_svt.S libgloss/sparc_leon/locore_svt_reset.S libgloss/sparc_leon/locore_svtdisp.S libgloss/sparc_leon/locore_var.S libgloss/sparc_leon/locore_var_svt.S libgloss/sparc_leon/mmu_asm.S libgloss/sparc_leon/mutex.c libgloss/sparc_leon/nocache.S libgloss/sparc_leon/pnpinit.c libgloss/sparc_leon/pnpinit_malloc.c libgloss/sparc_leon/pnpinit_simple.c libgloss/sparc_leon/regwin.S libgloss/sparc_leon/regwin_patch.c libgloss/sparc_leon/regwin_slow.S libgloss/sparc_leon/regwinflush.S libgloss/sparc_leon/rtc.c libgloss/sparc_leon/rtrap.S libgloss/sparc_leon/rtrap_fast.S libgloss/sparc_leon/stop.S libgloss/sparc_leon/timer.c libgloss/sparc_leon/times.c libgloss/spu/Makefile.in libgloss/spu/access.c libgloss/spu/aclocal.m4 libgloss/spu/chdir.c libgloss/spu/chmod.c libgloss/spu/chown.c libgloss/spu/close.c libgloss/spu/configure libgloss/spu/configure.in libgloss/spu/conv_stat.c libgloss/spu/crt0.S libgloss/spu/crti.S libgloss/spu/crtn.S libgloss/spu/dirfuncs.c libgloss/spu/dup.c libgloss/spu/dup2.c libgloss/spu/exit.c libgloss/spu/fchdir.c libgloss/spu/fchmod.c libgloss/spu/fchown.c libgloss/spu/fdatasync.c libgloss/spu/fstat.c libgloss/spu/fsync.c libgloss/spu/ftruncate.c libgloss/spu/getcwd.c libgloss/spu/getitimer.c libgloss/spu/getpagesize.c libgloss/spu/getpid.c libgloss/spu/gettimeofday.c libgloss/spu/isatty.c libgloss/spu/jsre.h libgloss/spu/kill.c libgloss/spu/lchown.c libgloss/spu/link.c libgloss/spu/linux_getpid.c libgloss/spu/linux_gettid.c libgloss/spu/linux_syscalls.c libgloss/spu/lockf.c libgloss/spu/lseek.c libgloss/spu/lstat.c libgloss/spu/mkdir.c libgloss/spu/mknod.c libgloss/spu/mkstemp.c libgloss/spu/mktemp.c libgloss/spu/mmap_eaddr.c libgloss/spu/mremap_eaddr.c libgloss/spu/msync_eaddr.c libgloss/spu/munmap_eaddr.c libgloss/spu/nanosleep.c libgloss/spu/open.c libgloss/spu/pread.c libgloss/spu/pwrite.c libgloss/spu/read.c libgloss/spu/readlink.c libgloss/spu/readv.c libgloss/spu/rmdir.c libgloss/spu/sbrk.c libgloss/spu/sched_yield.c libgloss/spu/setitimer.c libgloss/spu/shm_open.c libgloss/spu/shm_unlink.c libgloss/spu/stat.c libgloss/spu/symlink.c libgloss/spu/sync.c libgloss/spu/syscalls.c libgloss/spu/times.c libgloss/spu/truncate.c libgloss/spu/umask.c libgloss/spu/unlink.c libgloss/spu/utime.c libgloss/spu/utimes.c libgloss/spu/write.c libgloss/spu/writev.c libgloss/stat.c libgloss/syscall.h libgloss/testsuite/Makefile.in libgloss/testsuite/config/hppa.mt libgloss/testsuite/config/m68k.mt libgloss/testsuite/config/mips.mt libgloss/testsuite/config/support.c libgloss/testsuite/configure.in libgloss/testsuite/lib/libgloss.exp libgloss/testsuite/libgloss.all/.gdbinit libgloss/testsuite/libgloss.all/Makefile.in libgloss/testsuite/libgloss.all/array.c libgloss/testsuite/libgloss.all/configure.in libgloss/testsuite/libgloss.all/div.c libgloss/testsuite/libgloss.all/double.c libgloss/testsuite/libgloss.all/float.c libgloss/testsuite/libgloss.all/func.c libgloss/testsuite/libgloss.all/io.c libgloss/testsuite/libgloss.all/math.c libgloss/testsuite/libgloss.all/memory.c libgloss/testsuite/libgloss.all/misc.c libgloss/testsuite/libgloss.all/printf.c libgloss/testsuite/libgloss.all/struct.c libgloss/testsuite/libgloss.all/varargs.c libgloss/testsuite/libgloss.all/varargs2.c libgloss/tic6x/Makefile.in libgloss/tic6x/aclocal.m4 libgloss/tic6x/configure libgloss/tic6x/configure.in libgloss/tic6x/crt0.S libgloss/tic6x/getpid.c libgloss/tic6x/kill.c libgloss/tic6x/sbrk.c libgloss/tic6x/syscalls.c libgloss/unlink.c libgloss/v850/Makefile.in libgloss/v850/_exit.c libgloss/v850/access.c libgloss/v850/aclocal.m4 libgloss/v850/chmod.c libgloss/v850/chown.c libgloss/v850/close.c libgloss/v850/configure libgloss/v850/configure.in libgloss/v850/creat.c libgloss/v850/crt0.S libgloss/v850/crt1.c libgloss/v850/execv.c libgloss/v850/execve.c libgloss/v850/fork.c libgloss/v850/fstat.c libgloss/v850/getpid.c libgloss/v850/gettime.c libgloss/v850/isatty.c libgloss/v850/kill.c libgloss/v850/link.c libgloss/v850/lseek.c libgloss/v850/open.c libgloss/v850/pipe.c libgloss/v850/read.c libgloss/v850/sbrk.c libgloss/v850/sim.ld libgloss/v850/stat.c libgloss/v850/sys/syscall.h libgloss/v850/time.c libgloss/v850/times.c libgloss/v850/trap.S libgloss/v850/unlink.c libgloss/v850/utime.c libgloss/v850/wait.c libgloss/v850/write.c libgloss/wince/Makefile.am libgloss/wince/Makefile.in libgloss/wince/aclocal.m4 libgloss/wince/configure libgloss/wince/configure.in libgloss/write.c libgloss/xc16x/Makefile.in libgloss/xc16x/aclocal.m4 libgloss/xc16x/close.S libgloss/xc16x/configure libgloss/xc16x/configure.in libgloss/xc16x/create.c libgloss/xc16x/crt0.S libgloss/xc16x/fstat.S libgloss/xc16x/getchar1.c libgloss/xc16x/isatty.c libgloss/xc16x/lseek.c libgloss/xc16x/mem-layout.c libgloss/xc16x/misc.c libgloss/xc16x/open.c libgloss/xc16x/read.c libgloss/xc16x/sbrk.c libgloss/xc16x/sys/syscall.h libgloss/xc16x/syscalls.c libgloss/xc16x/trap_handle.c libgloss/xc16x/write.c libgloss/xstormy16/Makefile.in libgloss/xstormy16/aclocal.m4 libgloss/xstormy16/close.c libgloss/xstormy16/configure libgloss/xstormy16/configure.in libgloss/xstormy16/crt0.s libgloss/xstormy16/crt0_stub.s libgloss/xstormy16/crti.s libgloss/xstormy16/crtn.s libgloss/xstormy16/eva_app.c libgloss/xstormy16/eva_app.ld libgloss/xstormy16/eva_stub.ld libgloss/xstormy16/fstat.c libgloss/xstormy16/getpid.c libgloss/xstormy16/isatty.c libgloss/xstormy16/kill.c libgloss/xstormy16/lseek.c libgloss/xstormy16/open.c libgloss/xstormy16/sim_high.ld libgloss/xstormy16/sim_malloc_start.s libgloss/xstormy16/sim_rom.ld libgloss/xstormy16/stat.c libgloss/xstormy16/syscalls.S libgloss/xstormy16/syscalls.m4 libgloss/xstormy16/unlink.c libgloss/xstormy16/xstormy16_stub.c newlib/libc/machine/aarch64/machine/_types.h newlib/libm/machine/arm/Makefile.am newlib/libm/machine/arm/Makefile.in newlib/libm/machine/arm/aclocal.m4 newlib/libm/machine/arm/configure newlib/libm/machine/arm/configure.in newlib/libm/machine/arm/s_ceil.c newlib/libm/machine/arm/s_floor.c newlib/libm/machine/arm/s_nearbyint.c newlib/libm/machine/arm/s_rint.c newlib/libm/machine/arm/s_round.c newlib/libm/machine/arm/s_trunc.c newlib/libm/machine/arm/sf_ceil.c newlib/libm/machine/arm/sf_floor.c newlib/libm/machine/arm/sf_nearbyint.c newlib/libm/machine/arm/sf_rint.c newlib/libm/machine/arm/sf_round.c newlib/libm/machine/arm/sf_trunc.c texinfo/texinfo.tex
This commit is contained in:
parent
bca6ce4282
commit
c82eac05c7
52
djunpack.bat
52
djunpack.bat
@ -1,52 +0,0 @@
|
||||
@echo off
|
||||
Rem
|
||||
Rem WARNING WARNING WARNING: This file needs to have DOS CRLF end-of-line
|
||||
Rem format, or else stock DOS/Windows shells will refuse to run it.
|
||||
Rem
|
||||
Rem This batch file unpacks the GDB distribution while simultaneously
|
||||
Rem renaming some of the files whose names are invalid on DOS or conflict
|
||||
Rem with other file names after truncation to DOS 8+3 namespace.
|
||||
Rem
|
||||
Rem Invoke like this:
|
||||
Rem
|
||||
Rem djunpack gdb-XYZ.tar
|
||||
Rem
|
||||
Rem where XYZ is the version number. If the argument includes leading
|
||||
Rem directories, it MUST use backslashes, not forward slashes.
|
||||
Rem
|
||||
Rem The following 2 lines need to be changed with each new GDB release, to
|
||||
Rem be identical to the name of the top-level directory where the GDB
|
||||
Rem distribution unpacks itself.
|
||||
set GDBVER=gdb-5.0
|
||||
if "%GDBVER%"=="gdb-5.0" GoTo EnvOk
|
||||
Rem If their environment space is too small, re-exec with a larger one
|
||||
command.com /e:4096 /c %0 %1
|
||||
GoTo End
|
||||
:EnvOk
|
||||
if not exist %1 GoTo NoArchive
|
||||
djtar -x -p -o %GDBVER%/gdb/config/djgpp/fnchange.lst %1 > fnchange.tmp
|
||||
Rem The following uses a feature of COPY whereby it does not copy
|
||||
Rem empty files. We need that because the previous line will create
|
||||
Rem an empty fnchange.tmp even if the command failed for some reason.
|
||||
copy fnchange.tmp junk.tmp > nul
|
||||
if not exist junk.tmp GoTo NoDjTar
|
||||
del junk.tmp
|
||||
sed -e "s,@V@,%GDBVER%,g" < fnchange.tmp > fnchange.lst
|
||||
Rem See the comment above about the reason for using COPY.
|
||||
copy fnchange.lst junk.tmp > nul
|
||||
if not exist junk.tmp GoTo NoSed
|
||||
del junk.tmp
|
||||
djtar -x -n fnchange.lst %1
|
||||
GoTo End
|
||||
:NoSed
|
||||
echo FAIL: Sed is not available.
|
||||
GoTo End
|
||||
:NoDjTar
|
||||
echo FAIL: DJTAR is not available or no fnchange.lst file in %1.
|
||||
GoTo End
|
||||
:NoArchive
|
||||
echo FAIL: the file %1 does not seem to exist.
|
||||
echo Remember that %1 cannot use forward slashes, only backslashes.
|
||||
GoTo End
|
||||
:End
|
||||
set GDBVER=
|
6320
libgloss/ChangeLog
6320
libgloss/ChangeLog
File diff suppressed because it is too large
Load Diff
@ -1,192 +0,0 @@
|
||||
# Top level makefile for libgloss
|
||||
#
|
||||
# Copyright (c) 1995, 1996 Cygnus Support
|
||||
#
|
||||
# The authors hereby grant permission to use, copy, modify, distribute,
|
||||
# and license this software and its documentation for any purpose, provided
|
||||
# that existing copyright notices are retained in all copies and that this
|
||||
# notice is included verbatim in any distributions. No written agreement,
|
||||
# license, or royalty fee is required for any of the authorized uses.
|
||||
# Modifications to this software may be copyrighted by their authors
|
||||
# and need not follow the licensing terms described here, provided that
|
||||
# the new terms are clearly indicated on the first page of each file where
|
||||
# they apply.
|
||||
#
|
||||
|
||||
DESTDIR =
|
||||
VPATH = @srcdir@
|
||||
srcdir = @srcdir@
|
||||
objdir = .
|
||||
srcroot = $(srcdir)/../..
|
||||
objroot = $(objdir)/../..
|
||||
|
||||
prefix = @prefix@
|
||||
exec_prefix = @exec_prefix@
|
||||
|
||||
host_alias = @host_alias@
|
||||
target_alias = @target_alias@
|
||||
|
||||
bindir = @bindir@
|
||||
libdir = @libdir@
|
||||
tooldir = $(exec_prefix)/$(target_alias)
|
||||
|
||||
TOP = .
|
||||
SRCTOP = .
|
||||
|
||||
# Multilib support variables.
|
||||
# TOP is used instead of MULTI{BUILD,SRC}TOP.
|
||||
MULTISRCTOP =
|
||||
MULTIBUILDTOP =
|
||||
MULTIDIRS =
|
||||
MULTISUBDIR =
|
||||
MULTIDO = true
|
||||
MULTICLEAN = true
|
||||
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
|
||||
SHELL = /bin/sh
|
||||
|
||||
CC = @CC@
|
||||
|
||||
AS = @AS@
|
||||
AR = @AR@
|
||||
LD = @LD@
|
||||
RANLIB = @RANLIB@
|
||||
|
||||
AR_FLAGS = qv
|
||||
BISON = bison
|
||||
MAKEINFO = makeinfo
|
||||
|
||||
SUBDIRS = @subdirs@
|
||||
|
||||
.NOEXPORT:
|
||||
MAKEOVERRIDES=
|
||||
|
||||
# Host specific makefile fragment comes in here.
|
||||
@host_makefile_frag@
|
||||
|
||||
# These are roughly topologically sorted in order to make porting more
|
||||
# streamlined.
|
||||
FLAGS_TO_PASS = \
|
||||
"CC=$(CC)" \
|
||||
"CFLAGS=$(CFLAGS)" \
|
||||
"CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
|
||||
"CCASFLAGS=$(CCASFLAGS)" \
|
||||
"AR=$(AR)" \
|
||||
"RANLIB=$(RANLIB)" \
|
||||
"AR_FLAGS=$(AR_FLAGS)" \
|
||||
"MAKEINFO=$(MAKEINFO)" \
|
||||
"AS=$(AS)" \
|
||||
"LD=$(LD)" \
|
||||
"CROSS_CFLAGS=$(CROSS_CFLAGS)" \
|
||||
"TARGET_CFLAGS=$(TARGET_CFLAGS)" \
|
||||
"exec_prefix=$(exec_prefix)" \
|
||||
"prefix=$(prefix)" \
|
||||
"tooldir=$(tooldir)" \
|
||||
"infodir=$(infodir)" \
|
||||
"libdir=$(libdir)" \
|
||||
"top_toollibdir=$(toollibdir)" \
|
||||
"INSTALL=$(INSTALL)" \
|
||||
"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
|
||||
"INSTALL_DATA=$(INSTALL_DATA)" \
|
||||
"DESTDIR=$(DESTDIR)"
|
||||
|
||||
all: stmp-bsp force
|
||||
+@rootpre=`pwd`/; export rootpre; \
|
||||
srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \
|
||||
$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=all
|
||||
|
||||
stmp-bsp: force
|
||||
@rootpre=`pwd`/; export rootpre; \
|
||||
srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \
|
||||
for dir in .. ${SUBDIRS}; do \
|
||||
if [ x$$dir != x.. ]; then \
|
||||
if [ -d $$dir ]; then \
|
||||
(cd $$dir; $(MAKE) $(FLAGS_TO_PASS)) || exit $$?; \
|
||||
else true; fi; \
|
||||
else true; fi; \
|
||||
done
|
||||
|
||||
install: force
|
||||
@rootpre=`pwd`/; export rootpre; \
|
||||
srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \
|
||||
for dir in .. ${SUBDIRS}; do \
|
||||
if [ x$$dir != x.. ]; then \
|
||||
if [ -d $$dir ]; then \
|
||||
(cd $$dir; $(MAKE) $(FLAGS_TO_PASS) install) || exit $$?; \
|
||||
else true; fi; \
|
||||
else true; fi; \
|
||||
done
|
||||
@rootpre=`pwd`/; export rootpre; \
|
||||
srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \
|
||||
$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install
|
||||
|
||||
test: force
|
||||
@rootpre=`pwd`/; export rootpre; \
|
||||
srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \
|
||||
for dir in .. ${SUBDIRS}; do \
|
||||
if [ x$$dir != x.. ]; then \
|
||||
if [ -d $$dir ]; then \
|
||||
(cd $$dir; $(MAKE) $(FLAGS_TO_PASS) test); \
|
||||
else true; fi; \
|
||||
else true; fi; \
|
||||
done
|
||||
@rootpre=`pwd`/; export rootpre; \
|
||||
srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \
|
||||
$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=test
|
||||
|
||||
clean-here:
|
||||
-rm -f *~ core *.o a.out xgdb *.x
|
||||
|
||||
clean mostlyclean: clean-here
|
||||
rootpre=`pwd`/; export rootpre; \
|
||||
srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \
|
||||
$(MAKE) DO=$@ DODIRS="$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do; \
|
||||
$(MULTICLEAN) multi-clean DO=$@
|
||||
|
||||
distclean maintainer-clean realclean: clean-here
|
||||
-rm -f Makefile config.cache config.log config.status
|
||||
-rm -f *-init.exp site.*
|
||||
-rm -fr *.log summary detail *.sum
|
||||
rootpre=`pwd`/; export rootpre; \
|
||||
srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \
|
||||
$(MAKE) DO=$@ DODIRS="$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do; \
|
||||
$(MULTICLEAN) multi-clean DO=$@
|
||||
|
||||
.PHONY: info install-info clean-info html pdf
|
||||
subdir_do:
|
||||
@rootpre=`pwd`/; export rootpre; \
|
||||
srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \
|
||||
for i in .. $(DODIRS); do \
|
||||
if [ x$$i != x.. ]; then \
|
||||
if [ -f ./$$i/Makefile ]; then \
|
||||
if (cd ./$$i; $(MAKE) $(FLAGS_TO_PASS) $(DO)); then \
|
||||
true; \
|
||||
else \
|
||||
exit 1; \
|
||||
fi; \
|
||||
else true; fi; \
|
||||
else true; fi; \
|
||||
done
|
||||
|
||||
info dvi html pdf docs:
|
||||
rootpre=`pwd`/; export rootpre; \
|
||||
srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \
|
||||
$(MAKE) DO=$@ DODIRS=doc $(FLAGS_TO_PASS) subdir_do
|
||||
|
||||
install-info:
|
||||
rootpre=`pwd`/; export rootpre; \
|
||||
srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \
|
||||
$(MAKE) DO=$@ DODIRS=doc $(FLAGS_TO_PASS) subdir_do
|
||||
|
||||
clean-info:
|
||||
|
||||
force:
|
||||
|
||||
Makefile: Makefile.in config.status @host_makefile_frag_path@
|
||||
$(SHELL) config.status
|
||||
|
||||
config.status: configure
|
||||
$(SHELL) config.status --recheck
|
@ -1,10 +0,0 @@
|
||||
bfin - Analog Devices Blackfin processor.
|
||||
sparc - Fujitsu Sparclite board. Works on the ex930, ex931, ex933
|
||||
hp74x - Hewlett Packard HP742 board. Also some support for the hp743.
|
||||
m68hc11 - Motorola 68HC11 or 68HC12 support.
|
||||
m68k - Motorola MVME135 and IDP board. For CPU32 systems.
|
||||
mep - Toshiba Media Processor.
|
||||
pa - WinBond and Oki boards with a PA.
|
||||
mips - R3000 support. Array Tech LSI33k based RAID disk controller.
|
||||
lm32 - Lattice Mico32 simulator.
|
||||
epiphany - Adapteva Epiphany multicore processor.
|
@ -1,182 +0,0 @@
|
||||
# Copyright (c) 2012 ARM Ltd. All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# 3. The name of the company may not be used to endorse or promote
|
||||
# products derived from this software without specific prior written
|
||||
# permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
# IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
||||
# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
DESTDIR =
|
||||
VPATH = @srcdir@ @srcdir@/..
|
||||
srcdir = @srcdir@
|
||||
objdir = .
|
||||
srcroot = $(srcdir)/../..
|
||||
objroot = $(objdir)/../..
|
||||
|
||||
prefix = @prefix@
|
||||
exec_prefix = @exec_prefix@
|
||||
|
||||
host_alias = @host_alias@
|
||||
target_alias = @target_alias@
|
||||
|
||||
bindir = @bindir@
|
||||
libdir = @libdir@
|
||||
tooldir = $(exec_prefix)/$(target_alias)
|
||||
|
||||
objtype = @objtype@
|
||||
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
|
||||
# Multilib support variables.
|
||||
# TOP is used instead of MULTI{BUILD,SRC}TOP.
|
||||
MULTISRCTOP =
|
||||
MULTIBUILDTOP =
|
||||
MULTIDIRS =
|
||||
MULTISUBDIR =
|
||||
MULTIDO = true
|
||||
MULTICLEAN = true
|
||||
|
||||
SHELL = /bin/sh
|
||||
|
||||
CC = @CC@
|
||||
|
||||
AS = @AS@
|
||||
AR = @AR@
|
||||
LD = @LD@
|
||||
RANLIB = @RANLIB@
|
||||
|
||||
SUBDIRS = @subdirs@
|
||||
|
||||
OBJDUMP = `if [ -f ${objroot}/../binutils/objdump ] ; \
|
||||
then echo ${objroot}/../binutils/objdump ; \
|
||||
else t='$(program_transform_name)'; echo objdump | sed -e $$t ; fi`
|
||||
OBJCOPY = `if [ -f ${objroot}/../binutils/objcopy ] ; \
|
||||
then echo ${objroot}/../binutils/objcopy ; \
|
||||
else t='$(program_transform_name)'; echo objcopy | sed -e $$t ; fi`
|
||||
|
||||
OBJS = syscalls.o libcfunc.o _exit.o _kill.o
|
||||
CRT0 = crt0.o
|
||||
CRT0_INSTALL = install-crt0
|
||||
|
||||
CRT0_INSTALL = install-crt0
|
||||
RDIMON_CRT0 = rdimon-crt0.o
|
||||
RDIMON_BSP = librdimon.a
|
||||
RDIMON_OBJS = $(patsubst %,rdimon-%,$(OBJS))
|
||||
RDIMON_SCRIPTS = rdimon.specs aem-ve.specs aem-validation.specs
|
||||
RDIMON_INSTALL = install-rdimon
|
||||
|
||||
CFLAGS = -g
|
||||
|
||||
# Host specific makefile fragment comes in here.
|
||||
@host_makefile_frag@
|
||||
|
||||
#
|
||||
# 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} ${RDIMON_CRT0} ${RDIMON_BSP}
|
||||
@rootpre=`pwd`/; export rootpre; \
|
||||
srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \
|
||||
for dir in .. ${SUBDIRS}; do \
|
||||
if [ x$$dir != x.. ]; then \
|
||||
if [ -d $$dir ]; then \
|
||||
(cd $$dir; $(MAKE) $(FLAGS_TO_PASS)); \
|
||||
else true; fi; \
|
||||
else true; fi; \
|
||||
done
|
||||
|
||||
#
|
||||
# here's where we build the test programs for each target
|
||||
#
|
||||
.PHONY: test
|
||||
test:
|
||||
|
||||
#
|
||||
crt0.o: crt0.S
|
||||
|
||||
rdimon-crt0.o: crt0.S
|
||||
$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<
|
||||
|
||||
#rdimon-trap.o: trap.S
|
||||
# $(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<
|
||||
|
||||
rdimon-_exit.o: _exit.c
|
||||
$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<
|
||||
|
||||
rdimon-_kill.o: _kill.c
|
||||
$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<
|
||||
|
||||
rdimon-syscalls.o: syscalls.c
|
||||
$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<
|
||||
|
||||
rdimon-libcfunc.o: libcfunc.c
|
||||
$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<
|
||||
|
||||
$(RDIMON_BSP): $(RDIMON_OBJS)
|
||||
${AR} ${ARFLAGS} $@ $^
|
||||
${RANLIB} $@
|
||||
|
||||
clean mostlyclean:
|
||||
rm -f a.out core *.i *.o *-test *.srec *.dis *.x $(SIM_BSP)
|
||||
@rootpre=`pwd`/; export rootpre; \
|
||||
srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \
|
||||
for dir in .. ${SUBDIRS}; do \
|
||||
if [ x$$dir != x.. ]; then \
|
||||
if [ -d $$dir ]; then \
|
||||
(cd $$dir; $(MAKE) $(FLAGS_TO_PASS) clean); \
|
||||
else true; fi; \
|
||||
else true; fi; \
|
||||
done
|
||||
|
||||
distclean maintainer-clean realclean: clean
|
||||
rm -f Makefile config.status *~
|
||||
|
||||
.PHONY: install info install-info clean-info
|
||||
install: ${CRT0_INSTALL} ${RDIMON_INSTALL}
|
||||
@rootpre=`pwd`/; export rootpre; \
|
||||
srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \
|
||||
for dir in .. ${SUBDIRS}; do \
|
||||
if [ x$$dir != x.. ]; then \
|
||||
if [ -d $$dir ]; then \
|
||||
(cd $$dir; $(MAKE) $(FLAGS_TO_PASS) install); \
|
||||
else true; fi; \
|
||||
else true; fi; \
|
||||
done
|
||||
|
||||
install-crt0:
|
||||
${INSTALL_DATA} ${CRT0} $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x
|
||||
|
||||
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
|
||||
|
||||
|
||||
doc:
|
||||
info:
|
||||
install-info:
|
||||
clean-info:
|
||||
|
||||
Makefile: Makefile.in config.status @host_makefile_frag_path@
|
||||
$(SHELL) config.status
|
||||
|
||||
config.status: configure
|
||||
$(SHELL) config.status --recheck
|
@ -1,41 +0,0 @@
|
||||
/* Copyright (c) 2009, 2010, 2011, 2012 ARM Ltd. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. The name of the company may not be used to endorse or promote
|
||||
products derived from this software without specific prior written
|
||||
permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
||||
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
|
||||
|
||||
#include <_ansi.h>
|
||||
#include "svc.h"
|
||||
|
||||
void _exit _PARAMS ((int));
|
||||
|
||||
__attribute__ ((noreturn)) void
|
||||
_exit (int status)
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
param_block_t block[2];
|
||||
block[0] = ADP_Stopped_ApplicationExit;
|
||||
block[1] = status;
|
||||
do_AngelSVC (AngelSVC_Reason_ReportException, block);
|
||||
}
|
||||
}
|
@ -1,49 +0,0 @@
|
||||
/* Copyright (c) 2009, 2010, 2011, 2012 ARM Ltd. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. The name of the company may not be used to endorse or promote
|
||||
products derived from this software without specific prior written
|
||||
permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
||||
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
|
||||
|
||||
#include <_ansi.h>
|
||||
#include <signal.h>
|
||||
#include <errno.h>
|
||||
#include "svc.h"
|
||||
|
||||
int _kill _PARAMS ((int, int));
|
||||
|
||||
int
|
||||
_kill (int pid, int sig)
|
||||
{
|
||||
param_block_t block[2];
|
||||
|
||||
if (pid == 0)
|
||||
return 0;
|
||||
if (pid != 1 && pid != -1)
|
||||
{
|
||||
errno = ESRCH;
|
||||
return -1;
|
||||
}
|
||||
|
||||
block[0] = ADP_Stopped_RunTimeError;
|
||||
block[1] = sig;
|
||||
return do_AngelSVC (AngelSVC_Reason_ReportException, block);
|
||||
}
|
404
libgloss/aarch64/aclocal.m4
vendored
404
libgloss/aarch64/aclocal.m4
vendored
@ -1,404 +0,0 @@
|
||||
# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||
# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
# AM_CONDITIONAL -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 9
|
||||
|
||||
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
|
||||
# -------------------------------------
|
||||
# Define a conditional.
|
||||
AC_DEFUN([AM_CONDITIONAL],
|
||||
[AC_PREREQ(2.52)dnl
|
||||
ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
|
||||
[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
|
||||
AC_SUBST([$1_TRUE])dnl
|
||||
AC_SUBST([$1_FALSE])dnl
|
||||
_AM_SUBST_NOTMAKE([$1_TRUE])dnl
|
||||
_AM_SUBST_NOTMAKE([$1_FALSE])dnl
|
||||
m4_define([_AM_COND_VALUE_$1], [$2])dnl
|
||||
if $2; then
|
||||
$1_TRUE=
|
||||
$1_FALSE='#'
|
||||
else
|
||||
$1_TRUE='#'
|
||||
$1_FALSE=
|
||||
fi
|
||||
AC_CONFIG_COMMANDS_PRE(
|
||||
[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
|
||||
AC_MSG_ERROR([[conditional "$1" was never defined.
|
||||
Usually this means the macro was only invoked conditionally.]])
|
||||
fi])])
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 10
|
||||
|
||||
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
|
||||
# written in clear, in which case automake, when reading aclocal.m4,
|
||||
# will think it sees a *use*, and therefore will trigger all it's
|
||||
# C support machinery. Also note that it means that autoscan, seeing
|
||||
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
|
||||
|
||||
|
||||
# _AM_DEPENDENCIES(NAME)
|
||||
# ----------------------
|
||||
# See how the compiler implements dependency checking.
|
||||
# NAME is "CC", "CXX", "GCJ", or "OBJC".
|
||||
# We try a few techniques and use that to set a single cache variable.
|
||||
#
|
||||
# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
|
||||
# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
|
||||
# dependency, and given that the user is not expected to run this macro,
|
||||
# just rely on AC_PROG_CC.
|
||||
AC_DEFUN([_AM_DEPENDENCIES],
|
||||
[AC_REQUIRE([AM_SET_DEPDIR])dnl
|
||||
AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
|
||||
AC_REQUIRE([AM_MAKE_INCLUDE])dnl
|
||||
AC_REQUIRE([AM_DEP_TRACK])dnl
|
||||
|
||||
ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
|
||||
[$1], CXX, [depcc="$CXX" am_compiler_list=],
|
||||
[$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
|
||||
[$1], UPC, [depcc="$UPC" am_compiler_list=],
|
||||
[$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
|
||||
[depcc="$$1" am_compiler_list=])
|
||||
|
||||
AC_CACHE_CHECK([dependency style of $depcc],
|
||||
[am_cv_$1_dependencies_compiler_type],
|
||||
[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
|
||||
# We make a subdir and do the tests there. Otherwise we can end up
|
||||
# making bogus files that we don't know about and never remove. For
|
||||
# instance it was reported that on HP-UX the gcc test will end up
|
||||
# making a dummy file named `D' -- because `-MD' means `put the output
|
||||
# in D'.
|
||||
mkdir conftest.dir
|
||||
# Copy depcomp to subdir because otherwise we won't find it if we're
|
||||
# using a relative directory.
|
||||
cp "$am_depcomp" conftest.dir
|
||||
cd conftest.dir
|
||||
# We will build objects and dependencies in a subdirectory because
|
||||
# it helps to detect inapplicable dependency modes. For instance
|
||||
# both Tru64's cc and ICC support -MD to output dependencies as a
|
||||
# side effect of compilation, but ICC will put the dependencies in
|
||||
# the current directory while Tru64 will put them in the object
|
||||
# directory.
|
||||
mkdir sub
|
||||
|
||||
am_cv_$1_dependencies_compiler_type=none
|
||||
if test "$am_compiler_list" = ""; then
|
||||
am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
|
||||
fi
|
||||
am__universal=false
|
||||
m4_case([$1], [CC],
|
||||
[case " $depcc " in #(
|
||||
*\ -arch\ *\ -arch\ *) am__universal=true ;;
|
||||
esac],
|
||||
[CXX],
|
||||
[case " $depcc " in #(
|
||||
*\ -arch\ *\ -arch\ *) am__universal=true ;;
|
||||
esac])
|
||||
|
||||
for depmode in $am_compiler_list; do
|
||||
# Setup a source with many dependencies, because some compilers
|
||||
# like to wrap large dependency lists on column 80 (with \), and
|
||||
# we should not choose a depcomp mode which is confused by this.
|
||||
#
|
||||
# We need to recreate these files for each test, as the compiler may
|
||||
# overwrite some of them when testing with obscure command lines.
|
||||
# This happens at least with the AIX C compiler.
|
||||
: > sub/conftest.c
|
||||
for i in 1 2 3 4 5 6; do
|
||||
echo '#include "conftst'$i'.h"' >> sub/conftest.c
|
||||
# Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
|
||||
# Solaris 8's {/usr,}/bin/sh.
|
||||
touch sub/conftst$i.h
|
||||
done
|
||||
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
|
||||
|
||||
# We check with `-c' and `-o' for the sake of the "dashmstdout"
|
||||
# mode. It turns out that the SunPro C++ compiler does not properly
|
||||
# handle `-M -o', and we need to detect this. Also, some Intel
|
||||
# versions had trouble with output in subdirs
|
||||
am__obj=sub/conftest.${OBJEXT-o}
|
||||
am__minus_obj="-o $am__obj"
|
||||
case $depmode in
|
||||
gcc)
|
||||
# This depmode causes a compiler race in universal mode.
|
||||
test "$am__universal" = false || continue
|
||||
;;
|
||||
nosideeffect)
|
||||
# after this tag, mechanisms are not by side-effect, so they'll
|
||||
# only be used when explicitly requested
|
||||
if test "x$enable_dependency_tracking" = xyes; then
|
||||
continue
|
||||
else
|
||||
break
|
||||
fi
|
||||
;;
|
||||
msvisualcpp | msvcmsys)
|
||||
# This compiler won't grok `-c -o', but also, the minuso test has
|
||||
# not run yet. These depmodes are late enough in the game, and
|
||||
# so weak that their functioning should not be impacted.
|
||||
am__obj=conftest.${OBJEXT-o}
|
||||
am__minus_obj=
|
||||
;;
|
||||
none) break ;;
|
||||
esac
|
||||
if depmode=$depmode \
|
||||
source=sub/conftest.c object=$am__obj \
|
||||
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
|
||||
$SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
|
||||
>/dev/null 2>conftest.err &&
|
||||
grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
|
||||
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
|
||||
grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
|
||||
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
|
||||
# icc doesn't choke on unknown options, it will just issue warnings
|
||||
# or remarks (even with -Werror). So we grep stderr for any message
|
||||
# that says an option was ignored or not supported.
|
||||
# When given -MP, icc 7.0 and 7.1 complain thusly:
|
||||
# icc: Command line warning: ignoring option '-M'; no argument required
|
||||
# The diagnosis changed in icc 8.0:
|
||||
# icc: Command line remark: option '-MP' not supported
|
||||
if (grep 'ignoring option' conftest.err ||
|
||||
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
|
||||
am_cv_$1_dependencies_compiler_type=$depmode
|
||||
break
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
cd ..
|
||||
rm -rf conftest.dir
|
||||
else
|
||||
am_cv_$1_dependencies_compiler_type=none
|
||||
fi
|
||||
])
|
||||
AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
|
||||
AM_CONDITIONAL([am__fastdep$1], [
|
||||
test "x$enable_dependency_tracking" != xno \
|
||||
&& test "$am_cv_$1_dependencies_compiler_type" = gcc3])
|
||||
])
|
||||
|
||||
|
||||
# AM_SET_DEPDIR
|
||||
# -------------
|
||||
# Choose a directory name for dependency files.
|
||||
# This macro is AC_REQUIREd in _AM_DEPENDENCIES
|
||||
AC_DEFUN([AM_SET_DEPDIR],
|
||||
[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
||||
AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
|
||||
])
|
||||
|
||||
|
||||
# AM_DEP_TRACK
|
||||
# ------------
|
||||
AC_DEFUN([AM_DEP_TRACK],
|
||||
[AC_ARG_ENABLE(dependency-tracking,
|
||||
[ --disable-dependency-tracking speeds up one-time build
|
||||
--enable-dependency-tracking do not reject slow dependency extractors])
|
||||
if test "x$enable_dependency_tracking" != xno; then
|
||||
am_depcomp="$ac_aux_dir/depcomp"
|
||||
AMDEPBACKSLASH='\'
|
||||
fi
|
||||
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
|
||||
AC_SUBST([AMDEPBACKSLASH])dnl
|
||||
_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
|
||||
])
|
||||
|
||||
# Generate code to set up dependency tracking. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
#serial 5
|
||||
|
||||
# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
# ------------------------------
|
||||
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[{
|
||||
# Autoconf 2.62 quotes --file arguments for eval, but not when files
|
||||
# are listed without --file. Let's play safe and only enable the eval
|
||||
# if we detect the quoting.
|
||||
case $CONFIG_FILES in
|
||||
*\'*) eval set x "$CONFIG_FILES" ;;
|
||||
*) set x $CONFIG_FILES ;;
|
||||
esac
|
||||
shift
|
||||
for mf
|
||||
do
|
||||
# Strip MF so we end up with the name of the file.
|
||||
mf=`echo "$mf" | sed -e 's/:.*$//'`
|
||||
# Check whether this is an Automake generated Makefile or not.
|
||||
# We used to match only the files named `Makefile.in', but
|
||||
# some people rename them; so instead we look at the file content.
|
||||
# Grep'ing the first line is not enough: some people post-process
|
||||
# each Makefile.in and add a new line on top of each file to say so.
|
||||
# Grep'ing the whole file is not good either: AIX grep has a line
|
||||
# limit of 2048, but all sed's we know have understand at least 4000.
|
||||
if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
|
||||
dirpart=`AS_DIRNAME("$mf")`
|
||||
else
|
||||
continue
|
||||
fi
|
||||
# Extract the definition of DEPDIR, am__include, and am__quote
|
||||
# from the Makefile without running `make'.
|
||||
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
|
||||
test -z "$DEPDIR" && continue
|
||||
am__include=`sed -n 's/^am__include = //p' < "$mf"`
|
||||
test -z "am__include" && continue
|
||||
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
|
||||
# When using ansi2knr, U may be empty or an underscore; expand it
|
||||
U=`sed -n 's/^U = //p' < "$mf"`
|
||||
# Find all dependency output files, they are included files with
|
||||
# $(DEPDIR) in their names. We invoke sed twice because it is the
|
||||
# simplest approach to changing $(DEPDIR) to its actual value in the
|
||||
# expansion.
|
||||
for file in `sed -n "
|
||||
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
|
||||
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
|
||||
# Make sure the directory exists.
|
||||
test -f "$dirpart/$file" && continue
|
||||
fdir=`AS_DIRNAME(["$file"])`
|
||||
AS_MKDIR_P([$dirpart/$fdir])
|
||||
# echo "creating $dirpart/$file"
|
||||
echo '# dummy' > "$dirpart/$file"
|
||||
done
|
||||
done
|
||||
}
|
||||
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
|
||||
|
||||
# AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
# -----------------------------
|
||||
# This macro should only be invoked once -- use via AC_REQUIRE.
|
||||
#
|
||||
# This code is only required when automatic dependency tracking
|
||||
# is enabled. FIXME. This creates each `.P' file that we will
|
||||
# need in order to bootstrap the dependency handling code.
|
||||
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[AC_CONFIG_COMMANDS([depfiles],
|
||||
[test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
|
||||
])
|
||||
|
||||
# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 2
|
||||
|
||||
# Check whether the underlying file-system supports filenames
|
||||
# with a leading dot. For instance MS-DOS doesn't.
|
||||
AC_DEFUN([AM_SET_LEADING_DOT],
|
||||
[rm -rf .tst 2>/dev/null
|
||||
mkdir .tst 2>/dev/null
|
||||
if test -d .tst; then
|
||||
am__leading_dot=.
|
||||
else
|
||||
am__leading_dot=_
|
||||
fi
|
||||
rmdir .tst 2>/dev/null
|
||||
AC_SUBST([am__leading_dot])])
|
||||
|
||||
# Check to see how 'make' treats includes. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 4
|
||||
|
||||
# AM_MAKE_INCLUDE()
|
||||
# -----------------
|
||||
# Check to see how make treats includes.
|
||||
AC_DEFUN([AM_MAKE_INCLUDE],
|
||||
[am_make=${MAKE-make}
|
||||
cat > confinc << 'END'
|
||||
am__doit:
|
||||
@echo this is the am__doit target
|
||||
.PHONY: am__doit
|
||||
END
|
||||
# If we don't find an include directive, just comment out the code.
|
||||
AC_MSG_CHECKING([for style of include used by $am_make])
|
||||
am__include="#"
|
||||
am__quote=
|
||||
_am_result=none
|
||||
# First try GNU make style include.
|
||||
echo "include confinc" > confmf
|
||||
# Ignore all kinds of additional output from `make'.
|
||||
case `$am_make -s -f confmf 2> /dev/null` in #(
|
||||
*the\ am__doit\ target*)
|
||||
am__include=include
|
||||
am__quote=
|
||||
_am_result=GNU
|
||||
;;
|
||||
esac
|
||||
# Now try BSD make style include.
|
||||
if test "$am__include" = "#"; then
|
||||
echo '.include "confinc"' > confmf
|
||||
case `$am_make -s -f confmf 2> /dev/null` in #(
|
||||
*the\ am__doit\ target*)
|
||||
am__include=.include
|
||||
am__quote="\""
|
||||
_am_result=BSD
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
AC_SUBST([am__include])
|
||||
AC_SUBST([am__quote])
|
||||
AC_MSG_RESULT([$_am_result])
|
||||
rm -f confinc confmf
|
||||
])
|
||||
|
||||
# Copyright (C) 2006, 2008 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 2
|
||||
|
||||
# _AM_SUBST_NOTMAKE(VARIABLE)
|
||||
# ---------------------------
|
||||
# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
|
||||
# This macro is traced by Automake.
|
||||
AC_DEFUN([_AM_SUBST_NOTMAKE])
|
||||
|
||||
# AM_SUBST_NOTMAKE(VARIABLE)
|
||||
# ---------------------------
|
||||
# Public sister of _AM_SUBST_NOTMAKE.
|
||||
AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
|
||||
|
||||
m4_include([../acinclude.m4])
|
4033
libgloss/aarch64/configure
vendored
4033
libgloss/aarch64/configure
vendored
File diff suppressed because it is too large
Load Diff
@ -1,65 +0,0 @@
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
AC_PREREQ(2.59)
|
||||
AC_INIT(crt0.S)
|
||||
|
||||
if test "$srcdir" = "." ; then
|
||||
if test "${with_target_subdir}" != "." ; then
|
||||
libgloss_topdir="${srcdir}/${with_multisrctop}../../.."
|
||||
else
|
||||
libgloss_topdir="${srcdir}/${with_multisrctop}../.."
|
||||
fi
|
||||
else
|
||||
libgloss_topdir="${srcdir}/../.."
|
||||
fi
|
||||
AC_CONFIG_AUX_DIR($libgloss_topdir)
|
||||
|
||||
AC_CANONICAL_SYSTEM
|
||||
AC_ARG_PROGRAM
|
||||
|
||||
AC_PROG_INSTALL
|
||||
|
||||
LIB_AC_PROG_CC
|
||||
AS=${AS-as}
|
||||
AC_SUBST(AS)
|
||||
AR=${AR-ar}
|
||||
AC_SUBST(AR)
|
||||
LD=${LD-ld}
|
||||
AC_SUBST(LD)
|
||||
AC_PROG_RANLIB
|
||||
LIB_AM_PROG_AS
|
||||
|
||||
case "${target}" in
|
||||
*-*-elf)
|
||||
objtype=elf-
|
||||
;;
|
||||
esac
|
||||
|
||||
AC_SUBST(objtype)
|
||||
|
||||
host_makefile_frag=${srcdir}/../config/default.mh
|
||||
|
||||
dnl We have to assign the same value to other variables because autoconf
|
||||
dnl doesn't provide a mechanism to substitute a replacement keyword with
|
||||
dnl arbitrary data or pathnames.
|
||||
dnl
|
||||
host_makefile_frag_path=$host_makefile_frag
|
||||
AC_SUBST(host_makefile_frag_path)
|
||||
AC_SUBST_FILE(host_makefile_frag)
|
||||
|
||||
# Configure cpu init plug-ins
|
||||
if test -d "${srcdir}/cpu-init"; then
|
||||
subdirs="${subdirs} cpu-init"
|
||||
AC_CONFIG_SUBDIRS(cpu-init)
|
||||
AC_SUBST(subdirs)
|
||||
fi
|
||||
|
||||
AC_CONFIG_FILES(Makefile,
|
||||
. ${libgloss_topdir}/config-ml.in,
|
||||
srcdir=${srcdir}
|
||||
target=${target}
|
||||
with_multisubdir=${with_multisubdir}
|
||||
ac_configure_args="${ac_configure_args} --enable-multilib"
|
||||
CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
|
||||
libgloss_topdir=${libgloss_topdir}
|
||||
)
|
||||
AC_OUTPUT
|
@ -1,108 +0,0 @@
|
||||
# Copyright (c) 2012 ARM Ltd. All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# 3. The name of the company may not be used to endorse or promote
|
||||
# products derived from this software without specific prior written
|
||||
# permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
# IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
||||
# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
DESTDIR =
|
||||
VPATH = @srcdir@ @srcdir@/.. @srcdir@/../..
|
||||
srcdir = @srcdir@
|
||||
objdir = .
|
||||
srcroot = $(srcdir)/../../..
|
||||
objroot = $(objdir)/../../..
|
||||
|
||||
prefix = @prefix@
|
||||
exec_prefix = @exec_prefix@
|
||||
|
||||
host_alias = @host_alias@
|
||||
target_alias = @target_alias@
|
||||
|
||||
bindir = @bindir@
|
||||
libdir = @libdir@
|
||||
tooldir = $(exec_prefix)/$(target_alias)
|
||||
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
|
||||
# Multilib support variables.
|
||||
# TOP is used instead of MULTI{BUILD,SRC}TOP.
|
||||
MULTISRCTOP =
|
||||
MULTIBUILDTOP =
|
||||
MULTIDIRS =
|
||||
MULTISUBDIR =
|
||||
MULTIDO = true
|
||||
MULTICLEAN = true
|
||||
|
||||
SHELL = /bin/sh
|
||||
|
||||
CC = @CC@
|
||||
|
||||
AS = @AS@
|
||||
AR = @AR@
|
||||
LD = @LD@
|
||||
RANLIB = @RANLIB@
|
||||
|
||||
CPU_INIT_OBJS = rdimon-aem-el3.o
|
||||
CPU_INIT_INSTALL = install-cpu-init
|
||||
|
||||
CFLAGS = -g
|
||||
|
||||
# Host specific makefile fragment comes in here.
|
||||
@host_makefile_frag@
|
||||
|
||||
.PHONY: all
|
||||
all: ${CPU_INIT_OBJS}
|
||||
|
||||
#
|
||||
# here's where we build the test programs for each target
|
||||
#
|
||||
.PHONY: test
|
||||
test:
|
||||
|
||||
# Static pattern rule for assembling cpu init files to object files.
|
||||
${CPU_INIT_OBJS}: %.o: %.S
|
||||
$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<
|
||||
|
||||
clean mostlyclean:
|
||||
rm -f a.out core *.i *.o *-test *.srec *.dis *.x
|
||||
|
||||
distclean maintainer-clean realclean: clean
|
||||
rm -f Makefile *~
|
||||
|
||||
.PHONY: install info install-info clean-info
|
||||
install: ${CPU_INIT_INSTALL}
|
||||
|
||||
install-cpu-init:
|
||||
test -d $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/cpu-init || mkdir $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/cpu-init
|
||||
set -e; for x in ${CPU_INIT_OBJS}; do ${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/cpu-init/$$x; done
|
||||
|
||||
doc:
|
||||
info:
|
||||
install-info:
|
||||
clean-info:
|
||||
|
||||
Makefile: Makefile.in config.status @host_makefile_frag_path@
|
||||
$(SHELL) config.status
|
||||
|
||||
config.status: configure
|
||||
$(SHELL) config.status --recheck
|
404
libgloss/aarch64/cpu-init/aclocal.m4
vendored
404
libgloss/aarch64/cpu-init/aclocal.m4
vendored
@ -1,404 +0,0 @@
|
||||
# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||
# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
# AM_CONDITIONAL -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 9
|
||||
|
||||
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
|
||||
# -------------------------------------
|
||||
# Define a conditional.
|
||||
AC_DEFUN([AM_CONDITIONAL],
|
||||
[AC_PREREQ(2.52)dnl
|
||||
ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
|
||||
[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
|
||||
AC_SUBST([$1_TRUE])dnl
|
||||
AC_SUBST([$1_FALSE])dnl
|
||||
_AM_SUBST_NOTMAKE([$1_TRUE])dnl
|
||||
_AM_SUBST_NOTMAKE([$1_FALSE])dnl
|
||||
m4_define([_AM_COND_VALUE_$1], [$2])dnl
|
||||
if $2; then
|
||||
$1_TRUE=
|
||||
$1_FALSE='#'
|
||||
else
|
||||
$1_TRUE='#'
|
||||
$1_FALSE=
|
||||
fi
|
||||
AC_CONFIG_COMMANDS_PRE(
|
||||
[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
|
||||
AC_MSG_ERROR([[conditional "$1" was never defined.
|
||||
Usually this means the macro was only invoked conditionally.]])
|
||||
fi])])
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 10
|
||||
|
||||
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
|
||||
# written in clear, in which case automake, when reading aclocal.m4,
|
||||
# will think it sees a *use*, and therefore will trigger all it's
|
||||
# C support machinery. Also note that it means that autoscan, seeing
|
||||
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
|
||||
|
||||
|
||||
# _AM_DEPENDENCIES(NAME)
|
||||
# ----------------------
|
||||
# See how the compiler implements dependency checking.
|
||||
# NAME is "CC", "CXX", "GCJ", or "OBJC".
|
||||
# We try a few techniques and use that to set a single cache variable.
|
||||
#
|
||||
# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
|
||||
# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
|
||||
# dependency, and given that the user is not expected to run this macro,
|
||||
# just rely on AC_PROG_CC.
|
||||
AC_DEFUN([_AM_DEPENDENCIES],
|
||||
[AC_REQUIRE([AM_SET_DEPDIR])dnl
|
||||
AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
|
||||
AC_REQUIRE([AM_MAKE_INCLUDE])dnl
|
||||
AC_REQUIRE([AM_DEP_TRACK])dnl
|
||||
|
||||
ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
|
||||
[$1], CXX, [depcc="$CXX" am_compiler_list=],
|
||||
[$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
|
||||
[$1], UPC, [depcc="$UPC" am_compiler_list=],
|
||||
[$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
|
||||
[depcc="$$1" am_compiler_list=])
|
||||
|
||||
AC_CACHE_CHECK([dependency style of $depcc],
|
||||
[am_cv_$1_dependencies_compiler_type],
|
||||
[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
|
||||
# We make a subdir and do the tests there. Otherwise we can end up
|
||||
# making bogus files that we don't know about and never remove. For
|
||||
# instance it was reported that on HP-UX the gcc test will end up
|
||||
# making a dummy file named `D' -- because `-MD' means `put the output
|
||||
# in D'.
|
||||
mkdir conftest.dir
|
||||
# Copy depcomp to subdir because otherwise we won't find it if we're
|
||||
# using a relative directory.
|
||||
cp "$am_depcomp" conftest.dir
|
||||
cd conftest.dir
|
||||
# We will build objects and dependencies in a subdirectory because
|
||||
# it helps to detect inapplicable dependency modes. For instance
|
||||
# both Tru64's cc and ICC support -MD to output dependencies as a
|
||||
# side effect of compilation, but ICC will put the dependencies in
|
||||
# the current directory while Tru64 will put them in the object
|
||||
# directory.
|
||||
mkdir sub
|
||||
|
||||
am_cv_$1_dependencies_compiler_type=none
|
||||
if test "$am_compiler_list" = ""; then
|
||||
am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
|
||||
fi
|
||||
am__universal=false
|
||||
m4_case([$1], [CC],
|
||||
[case " $depcc " in #(
|
||||
*\ -arch\ *\ -arch\ *) am__universal=true ;;
|
||||
esac],
|
||||
[CXX],
|
||||
[case " $depcc " in #(
|
||||
*\ -arch\ *\ -arch\ *) am__universal=true ;;
|
||||
esac])
|
||||
|
||||
for depmode in $am_compiler_list; do
|
||||
# Setup a source with many dependencies, because some compilers
|
||||
# like to wrap large dependency lists on column 80 (with \), and
|
||||
# we should not choose a depcomp mode which is confused by this.
|
||||
#
|
||||
# We need to recreate these files for each test, as the compiler may
|
||||
# overwrite some of them when testing with obscure command lines.
|
||||
# This happens at least with the AIX C compiler.
|
||||
: > sub/conftest.c
|
||||
for i in 1 2 3 4 5 6; do
|
||||
echo '#include "conftst'$i'.h"' >> sub/conftest.c
|
||||
# Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
|
||||
# Solaris 8's {/usr,}/bin/sh.
|
||||
touch sub/conftst$i.h
|
||||
done
|
||||
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
|
||||
|
||||
# We check with `-c' and `-o' for the sake of the "dashmstdout"
|
||||
# mode. It turns out that the SunPro C++ compiler does not properly
|
||||
# handle `-M -o', and we need to detect this. Also, some Intel
|
||||
# versions had trouble with output in subdirs
|
||||
am__obj=sub/conftest.${OBJEXT-o}
|
||||
am__minus_obj="-o $am__obj"
|
||||
case $depmode in
|
||||
gcc)
|
||||
# This depmode causes a compiler race in universal mode.
|
||||
test "$am__universal" = false || continue
|
||||
;;
|
||||
nosideeffect)
|
||||
# after this tag, mechanisms are not by side-effect, so they'll
|
||||
# only be used when explicitly requested
|
||||
if test "x$enable_dependency_tracking" = xyes; then
|
||||
continue
|
||||
else
|
||||
break
|
||||
fi
|
||||
;;
|
||||
msvisualcpp | msvcmsys)
|
||||
# This compiler won't grok `-c -o', but also, the minuso test has
|
||||
# not run yet. These depmodes are late enough in the game, and
|
||||
# so weak that their functioning should not be impacted.
|
||||
am__obj=conftest.${OBJEXT-o}
|
||||
am__minus_obj=
|
||||
;;
|
||||
none) break ;;
|
||||
esac
|
||||
if depmode=$depmode \
|
||||
source=sub/conftest.c object=$am__obj \
|
||||
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
|
||||
$SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
|
||||
>/dev/null 2>conftest.err &&
|
||||
grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
|
||||
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
|
||||
grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
|
||||
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
|
||||
# icc doesn't choke on unknown options, it will just issue warnings
|
||||
# or remarks (even with -Werror). So we grep stderr for any message
|
||||
# that says an option was ignored or not supported.
|
||||
# When given -MP, icc 7.0 and 7.1 complain thusly:
|
||||
# icc: Command line warning: ignoring option '-M'; no argument required
|
||||
# The diagnosis changed in icc 8.0:
|
||||
# icc: Command line remark: option '-MP' not supported
|
||||
if (grep 'ignoring option' conftest.err ||
|
||||
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
|
||||
am_cv_$1_dependencies_compiler_type=$depmode
|
||||
break
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
cd ..
|
||||
rm -rf conftest.dir
|
||||
else
|
||||
am_cv_$1_dependencies_compiler_type=none
|
||||
fi
|
||||
])
|
||||
AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
|
||||
AM_CONDITIONAL([am__fastdep$1], [
|
||||
test "x$enable_dependency_tracking" != xno \
|
||||
&& test "$am_cv_$1_dependencies_compiler_type" = gcc3])
|
||||
])
|
||||
|
||||
|
||||
# AM_SET_DEPDIR
|
||||
# -------------
|
||||
# Choose a directory name for dependency files.
|
||||
# This macro is AC_REQUIREd in _AM_DEPENDENCIES
|
||||
AC_DEFUN([AM_SET_DEPDIR],
|
||||
[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
||||
AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
|
||||
])
|
||||
|
||||
|
||||
# AM_DEP_TRACK
|
||||
# ------------
|
||||
AC_DEFUN([AM_DEP_TRACK],
|
||||
[AC_ARG_ENABLE(dependency-tracking,
|
||||
[ --disable-dependency-tracking speeds up one-time build
|
||||
--enable-dependency-tracking do not reject slow dependency extractors])
|
||||
if test "x$enable_dependency_tracking" != xno; then
|
||||
am_depcomp="$ac_aux_dir/depcomp"
|
||||
AMDEPBACKSLASH='\'
|
||||
fi
|
||||
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
|
||||
AC_SUBST([AMDEPBACKSLASH])dnl
|
||||
_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
|
||||
])
|
||||
|
||||
# Generate code to set up dependency tracking. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
#serial 5
|
||||
|
||||
# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
# ------------------------------
|
||||
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[{
|
||||
# Autoconf 2.62 quotes --file arguments for eval, but not when files
|
||||
# are listed without --file. Let's play safe and only enable the eval
|
||||
# if we detect the quoting.
|
||||
case $CONFIG_FILES in
|
||||
*\'*) eval set x "$CONFIG_FILES" ;;
|
||||
*) set x $CONFIG_FILES ;;
|
||||
esac
|
||||
shift
|
||||
for mf
|
||||
do
|
||||
# Strip MF so we end up with the name of the file.
|
||||
mf=`echo "$mf" | sed -e 's/:.*$//'`
|
||||
# Check whether this is an Automake generated Makefile or not.
|
||||
# We used to match only the files named `Makefile.in', but
|
||||
# some people rename them; so instead we look at the file content.
|
||||
# Grep'ing the first line is not enough: some people post-process
|
||||
# each Makefile.in and add a new line on top of each file to say so.
|
||||
# Grep'ing the whole file is not good either: AIX grep has a line
|
||||
# limit of 2048, but all sed's we know have understand at least 4000.
|
||||
if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
|
||||
dirpart=`AS_DIRNAME("$mf")`
|
||||
else
|
||||
continue
|
||||
fi
|
||||
# Extract the definition of DEPDIR, am__include, and am__quote
|
||||
# from the Makefile without running `make'.
|
||||
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
|
||||
test -z "$DEPDIR" && continue
|
||||
am__include=`sed -n 's/^am__include = //p' < "$mf"`
|
||||
test -z "am__include" && continue
|
||||
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
|
||||
# When using ansi2knr, U may be empty or an underscore; expand it
|
||||
U=`sed -n 's/^U = //p' < "$mf"`
|
||||
# Find all dependency output files, they are included files with
|
||||
# $(DEPDIR) in their names. We invoke sed twice because it is the
|
||||
# simplest approach to changing $(DEPDIR) to its actual value in the
|
||||
# expansion.
|
||||
for file in `sed -n "
|
||||
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
|
||||
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
|
||||
# Make sure the directory exists.
|
||||
test -f "$dirpart/$file" && continue
|
||||
fdir=`AS_DIRNAME(["$file"])`
|
||||
AS_MKDIR_P([$dirpart/$fdir])
|
||||
# echo "creating $dirpart/$file"
|
||||
echo '# dummy' > "$dirpart/$file"
|
||||
done
|
||||
done
|
||||
}
|
||||
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
|
||||
|
||||
# AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
# -----------------------------
|
||||
# This macro should only be invoked once -- use via AC_REQUIRE.
|
||||
#
|
||||
# This code is only required when automatic dependency tracking
|
||||
# is enabled. FIXME. This creates each `.P' file that we will
|
||||
# need in order to bootstrap the dependency handling code.
|
||||
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[AC_CONFIG_COMMANDS([depfiles],
|
||||
[test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
|
||||
])
|
||||
|
||||
# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 2
|
||||
|
||||
# Check whether the underlying file-system supports filenames
|
||||
# with a leading dot. For instance MS-DOS doesn't.
|
||||
AC_DEFUN([AM_SET_LEADING_DOT],
|
||||
[rm -rf .tst 2>/dev/null
|
||||
mkdir .tst 2>/dev/null
|
||||
if test -d .tst; then
|
||||
am__leading_dot=.
|
||||
else
|
||||
am__leading_dot=_
|
||||
fi
|
||||
rmdir .tst 2>/dev/null
|
||||
AC_SUBST([am__leading_dot])])
|
||||
|
||||
# Check to see how 'make' treats includes. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 4
|
||||
|
||||
# AM_MAKE_INCLUDE()
|
||||
# -----------------
|
||||
# Check to see how make treats includes.
|
||||
AC_DEFUN([AM_MAKE_INCLUDE],
|
||||
[am_make=${MAKE-make}
|
||||
cat > confinc << 'END'
|
||||
am__doit:
|
||||
@echo this is the am__doit target
|
||||
.PHONY: am__doit
|
||||
END
|
||||
# If we don't find an include directive, just comment out the code.
|
||||
AC_MSG_CHECKING([for style of include used by $am_make])
|
||||
am__include="#"
|
||||
am__quote=
|
||||
_am_result=none
|
||||
# First try GNU make style include.
|
||||
echo "include confinc" > confmf
|
||||
# Ignore all kinds of additional output from `make'.
|
||||
case `$am_make -s -f confmf 2> /dev/null` in #(
|
||||
*the\ am__doit\ target*)
|
||||
am__include=include
|
||||
am__quote=
|
||||
_am_result=GNU
|
||||
;;
|
||||
esac
|
||||
# Now try BSD make style include.
|
||||
if test "$am__include" = "#"; then
|
||||
echo '.include "confinc"' > confmf
|
||||
case `$am_make -s -f confmf 2> /dev/null` in #(
|
||||
*the\ am__doit\ target*)
|
||||
am__include=.include
|
||||
am__quote="\""
|
||||
_am_result=BSD
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
AC_SUBST([am__include])
|
||||
AC_SUBST([am__quote])
|
||||
AC_MSG_RESULT([$_am_result])
|
||||
rm -f confinc confmf
|
||||
])
|
||||
|
||||
# Copyright (C) 2006, 2008 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 2
|
||||
|
||||
# _AM_SUBST_NOTMAKE(VARIABLE)
|
||||
# ---------------------------
|
||||
# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
|
||||
# This macro is traced by Automake.
|
||||
AC_DEFUN([_AM_SUBST_NOTMAKE])
|
||||
|
||||
# AM_SUBST_NOTMAKE(VARIABLE)
|
||||
# ---------------------------
|
||||
# Public sister of _AM_SUBST_NOTMAKE.
|
||||
AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
|
||||
|
||||
m4_include([../../acinclude.m4])
|
3867
libgloss/aarch64/cpu-init/configure
vendored
3867
libgloss/aarch64/cpu-init/configure
vendored
File diff suppressed because it is too large
Load Diff
@ -1,50 +0,0 @@
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
AC_PREREQ(2.59)
|
||||
AC_INIT(Makefile.in)
|
||||
|
||||
if test "$srcdir" = "." ; then
|
||||
if test "${with_target_subdir}" != "." ; then
|
||||
libgloss_topdir="${srcdir}/${with_multisrctop}../../.."
|
||||
else
|
||||
libgloss_topdir="${srcdir}/${with_multisrctop}../.."
|
||||
fi
|
||||
else
|
||||
libgloss_topdir="${srcdir}/../../.."
|
||||
fi
|
||||
AC_CONFIG_AUX_DIR($libgloss_topdir)
|
||||
|
||||
AC_CANONICAL_SYSTEM
|
||||
AC_ARG_PROGRAM
|
||||
|
||||
AC_PROG_INSTALL
|
||||
|
||||
LIB_AC_PROG_CC
|
||||
AS=${AS-as}
|
||||
AC_SUBST(AS)
|
||||
AR=${AR-ar}
|
||||
AC_SUBST(AR)
|
||||
LD=${LD-ld}
|
||||
AC_SUBST(LD)
|
||||
AC_PROG_RANLIB
|
||||
LIB_AM_PROG_AS
|
||||
|
||||
host_makefile_frag=${srcdir}/../../config/default.mh
|
||||
|
||||
dnl We have to assign the same value to other variables because autoconf
|
||||
dnl doesn't provide a mechanism to substitute a replacement keyword with
|
||||
dnl arbitrary data or pathnames.
|
||||
dnl
|
||||
host_makefile_frag_path=$host_makefile_frag
|
||||
AC_SUBST(host_makefile_frag_path)
|
||||
AC_SUBST_FILE(host_makefile_frag)
|
||||
|
||||
AC_CONFIG_FILES(Makefile,
|
||||
. ${libgloss_topdir}/config-ml.in,
|
||||
srcdir=${srcdir}
|
||||
target=${target}
|
||||
with_multisubdir=${with_multisubdir}
|
||||
ac_configure_args="${ac_configure_args} --enable-multilib"
|
||||
CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
|
||||
libgloss_topdir=${libgloss_topdir}
|
||||
)
|
||||
AC_OUTPUT
|
@ -1,167 +0,0 @@
|
||||
/* Copyright (c) 2009, 2010, 2011, 2012 ARM Ltd. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. The name of the company may not be used to endorse or promote
|
||||
products derived from this software without specific prior written
|
||||
permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
||||
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
|
||||
|
||||
#include "newlib.h"
|
||||
#include "svc.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
|
||||
|
||||
|
||||
.text
|
||||
.align 2
|
||||
_init_vectors:
|
||||
/* Installs a table of exception vectors to catch and handle all
|
||||
exceptions by terminating the process with a diagnostic. */
|
||||
adr x0, vectors
|
||||
msr vbar_el3, x0
|
||||
msr vbar_el2, x0
|
||||
msr vbar_el1, x0
|
||||
ret
|
||||
|
||||
curr_sp0_sync:
|
||||
curr_sp0_irq:
|
||||
curr_sp0_fiq:
|
||||
curr_sp0_serror:
|
||||
curr_spx_sync:
|
||||
curr_spx_irq:
|
||||
curr_spx_fiq:
|
||||
curr_spx_serror:
|
||||
lower_a64_sync:
|
||||
lower_a64_irq:
|
||||
lower_a64_fiq:
|
||||
lower_a64_serror:
|
||||
lower_a32_sync:
|
||||
lower_a32_irq:
|
||||
lower_a32_fiq:
|
||||
lower_a32_serror:
|
||||
mov x0, 2
|
||||
adr x1, .LC3
|
||||
mov x2, 26
|
||||
bl FUNCTION (write)
|
||||
mov x0, 126
|
||||
b FUNCTION (exit) /* Cannot return. */
|
||||
.LC3:
|
||||
.string "Terminated by exception.\n"
|
||||
|
||||
.macro ventry label
|
||||
.align 7
|
||||
b \label
|
||||
.endm
|
||||
|
||||
.align 7
|
||||
|
||||
/* AArch64 Exception Model -- 3.5.5 Exception Vectors. */
|
||||
|
||||
vectors:
|
||||
/* Current EL with SP0. */
|
||||
ventry curr_sp0_sync /* Synchronous */
|
||||
ventry curr_sp0_irq /* Irq/vIRQ */
|
||||
ventry curr_sp0_fiq /* Fiq/vFIQ */
|
||||
ventry curr_sp0_serror /* SError/VSError */
|
||||
|
||||
/* Current EL with SPx. */
|
||||
ventry curr_spx_sync /* Synchronous */
|
||||
ventry curr_spx_irq /* IRQ/vIRQ */
|
||||
ventry curr_spx_fiq /* FIQ/vFIQ */
|
||||
ventry curr_spx_serror /* SError/VSError */
|
||||
|
||||
/* Lower EL using AArch64. */
|
||||
ventry lower_a64_sync /* Synchronous */
|
||||
ventry lower_a64_irq /* IRQ/vIRQ */
|
||||
ventry lower_a64_fiq /* FIQ/vFIQ */
|
||||
ventry lower_a64_serror /* SError/VSError */
|
||||
|
||||
/* Lower EL using AArch32. */
|
||||
ventry lower_a32_sync /* Synchronous */
|
||||
ventry lower_a32_irq /* IRQ/vIRQ */
|
||||
ventry lower_a32_fiq /* FIQ/vFIQ */
|
||||
ventry lower_a32_serror /* SError/VSError */
|
||||
|
||||
|
||||
.text
|
||||
.align 2
|
||||
_flat_map:
|
||||
/* Page table setup (identity mapping). */
|
||||
adrp x0, ttb
|
||||
add x0, x0, :lo12:ttb
|
||||
msr ttbr0_el3, x0
|
||||
adr x1, . /* phys address */
|
||||
bic x1, x1, #(1 << 30) - 1 /* 1GB block alignment */
|
||||
add x2, x0, x1, lsr #(30 - 3) /* offset in level 1 page
|
||||
table */
|
||||
mov x3, #0x401 /* page table attributes
|
||||
(AF, block) */
|
||||
orr x1, x1, x3
|
||||
mov x3, #(1 << 30) /* 1GB block */
|
||||
str x1, [x2], #8 /* 1st GB */
|
||||
add x1, x1, x3
|
||||
str x1, [x2] /* 2nd GB */
|
||||
|
||||
/* Setup/enable the MMU. */
|
||||
|
||||
/* RES1, RES1, 40-bit PA, 39-bit VA, inner/outer cacheable WB */
|
||||
ldr x0, =(1 << 31) | (1 << 23) | (2 << 16) | 25 | (3 << 10) | (3 << 8)
|
||||
msr tcr_el3, x0
|
||||
|
||||
mov x0, #0xee /* Inner/outer cacheable WB */
|
||||
msr mair_el3, x0
|
||||
isb
|
||||
|
||||
mrs x0, sctlr_el3
|
||||
ldr x1, =0x100d /* bits I(12) SA(3) C(2) M(0) */
|
||||
bic x0, x0, #2 /* clear bit A(1) */
|
||||
orr x0, x0, x1 /* set bits */
|
||||
|
||||
msr sctlr_el3, x0
|
||||
isb
|
||||
ret
|
||||
|
||||
.data
|
||||
.align 12
|
||||
ttb:
|
||||
.space 4096, 0
|
||||
|
||||
|
||||
.text
|
||||
.align 2
|
||||
.global FUNCTION (_cpu_init_hook)
|
||||
.type FUNCTION (_cpu_init_hook), %function
|
||||
FUNCTION (_cpu_init_hook):
|
||||
sub sp, sp, #16
|
||||
str x30, [sp, xzr]
|
||||
bl _init_vectors
|
||||
bl _flat_map
|
||||
ldr x30, [sp, xzr]
|
||||
add sp, sp, #16
|
||||
ret
|
||||
.size FUNCTION (_cpu_init_hook), .-FUNCTION (_cpu_init_hook)
|
@ -1,203 +0,0 @@
|
||||
/* Copyright (c) 2009, 2010, 2011, 2012 ARM Ltd. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. The name of the company may not be used to endorse or promote
|
||||
products derived from this software without specific prior written
|
||||
permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
||||
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
|
||||
|
||||
#include "newlib.h"
|
||||
#include "svc.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
|
||||
.macro FUNC_START name
|
||||
.global \name
|
||||
\name:
|
||||
.endm
|
||||
|
||||
.align 2
|
||||
|
||||
FUNC_START _mainCRTStartup
|
||||
FUNC_START _start
|
||||
FUNC_START start
|
||||
|
||||
/* Start by setting up a stack */
|
||||
|
||||
/* Issue Angel SVC to read memory info.
|
||||
|
||||
ptr to ptr to 4 words to receive data. */
|
||||
adr x1, .LC0
|
||||
mov w0, #AngelSVC_Reason_HeapInfo
|
||||
AngelSVCAsm AngelSVC
|
||||
|
||||
/* Initialise the stack pointer */
|
||||
|
||||
/* We currently choose to use the heap_limit field rather than
|
||||
stack_base because the AEM validation model
|
||||
returns sane values in the heap fields, but 0 in the stack
|
||||
fields. Note on the VE AEM model it is necessary to pass
|
||||
command line options to the AEM in order to define the values
|
||||
exposed here in the HeapInfo Angel call. */
|
||||
ldr x0, .LC0 /* point at returned values */
|
||||
ldr x0, [x0, #8] /* get heap_limit */
|
||||
|
||||
/* Ensure quad-word stack alignment. */
|
||||
and x0, x0, #~15
|
||||
mov sp, x0
|
||||
|
||||
/* Setup an initial dummy frame with saved fp=0 and saved lr=0 */
|
||||
mov x29, 0
|
||||
stp x29, x29, [sp, #-16]!
|
||||
mov x29, sp
|
||||
|
||||
/* Initialize exception vector table, flatmap, etc. */
|
||||
bl FUNCTION (_cpu_init_hook)
|
||||
|
||||
/* Zero the memory in the .bss section. */
|
||||
ldr x0, .LC1 /* First arg: start of memory block */
|
||||
mov w1, #0 /* Second arg: fill value */
|
||||
ldr x2, .LC2
|
||||
sub x2, x2, x0 /* Third arg: length of block */
|
||||
bl FUNCTION (memset)
|
||||
|
||||
/* Need to set up standard file handles */
|
||||
bl FUNCTION (initialise_monitor_handles)
|
||||
|
||||
/* .init and .fini sections are used to create constructors
|
||||
and destructors. Here we call the _init function and arrange
|
||||
for _fini to be called at program exit. */
|
||||
ldr x0, .Lfini
|
||||
bl FUNCTION (atexit)
|
||||
|
||||
bl FUNCTION (_init)
|
||||
|
||||
/* Fetch and parse the command line. */
|
||||
adr x1, .Lcmdline /* Command line descriptor. */
|
||||
mov w0, #AngelSVC_Reason_GetCmdLine
|
||||
AngelSVCAsm AngelSVC
|
||||
ldr x8, .Lcmdline
|
||||
|
||||
mov x0, #0 /* argc */
|
||||
mov x1, sp /* argv */
|
||||
ldr x2, .Lenvp /* envp */
|
||||
|
||||
/* Put NULL at end of argv array. */
|
||||
str x0, [x1, #-8]!
|
||||
|
||||
/* Skip leading blanks. */
|
||||
.Lnext: ldrb w3, [x8], #1
|
||||
cbz w3, .Lendstr
|
||||
cmp w3, #' '
|
||||
b.eq .Lnext
|
||||
|
||||
mov w4, #' ' /* Terminator is space. */
|
||||
|
||||
/* See whether we are scanning a quoted string by checking for
|
||||
opening quote (" or '). */
|
||||
subs w9, w3, #'\"'
|
||||
sub x8, x8, #1 /* Backup if no match. */
|
||||
ccmp w9, #('\'' - '\"'), 0x4 /* FLG_Z */, ne
|
||||
csel w4, w3, w4, eq /* Terminator = quote if match. */
|
||||
cinc x8, x8, eq
|
||||
|
||||
/* Push arg pointer to argv, and bump argc. */
|
||||
str x8, [x1, #-8]!
|
||||
add x0, x0, #1
|
||||
|
||||
/* Find end of arg string. */
|
||||
1: ldrb w3, [x8], #1
|
||||
cbz w3, .Lendstr
|
||||
cmp w4, w3 /* Reached terminator? */
|
||||
b.ne 1b
|
||||
|
||||
/* Terminate the arg string with NUL char. */
|
||||
mov w4, #0
|
||||
strb w4, [x8, #-1]
|
||||
b .Lnext
|
||||
|
||||
/* Reverse argv array. */
|
||||
.Lendstr:
|
||||
add x3, x1, #0 /* sp = &argv[0] */
|
||||
add x4, x1, w0, uxtw #3 /* ep = &argv[argc] */
|
||||
cmp x4, x3
|
||||
b.lo 2f
|
||||
1: ldr x5, [x4, #-8] /* x5 = ep[-1] */
|
||||
ldr x6, [x3] /* x6 = *sp */
|
||||
str x6, [x4, #-8]! /* *--ep = x6 */
|
||||
str x5, [x3], #8 /* *sp++ = x5 */
|
||||
cmp x4, x3
|
||||
b.hi 1b
|
||||
2:
|
||||
/* Move sp to the 16B boundary below argv. */
|
||||
and x4, x1, ~15
|
||||
mov sp, x4
|
||||
|
||||
bl FUNCTION (main)
|
||||
|
||||
b FUNCTION (exit) /* Cannot return. */
|
||||
|
||||
/* Function initializing exception vector table, flatmap, etc.
|
||||
Declared as weak symbol so that user can override this definition
|
||||
by linking in their own version of the function. */
|
||||
.weak FUNCTION (_cpu_init_hook)
|
||||
FUNCTION (_cpu_init_hook):
|
||||
ret
|
||||
|
||||
.align 3
|
||||
.LC0:
|
||||
.dword HeapBase
|
||||
.LC1:
|
||||
.dword __bss_start__
|
||||
.LC2:
|
||||
.dword __bss_end__
|
||||
.Lfini:
|
||||
.dword FUNCTION(_fini)
|
||||
.Lenvp:
|
||||
.dword env
|
||||
.Lcmdline:
|
||||
.dword CommandLine
|
||||
.dword 255
|
||||
|
||||
/* Workspace for Angel calls. */
|
||||
.data
|
||||
.align 3
|
||||
/* Data returned by monitor SVC. */
|
||||
.global __stack_base__
|
||||
HeapBase: .dword 0
|
||||
HeapLimit: .dword 0
|
||||
__stack_base__: .dword 0
|
||||
StackLimit: .dword 0
|
||||
env: .dword 0 /* Dummy environment array */
|
||||
CommandLine: .space 256,0 /* Maximum length of 255 chars handled. */
|
@ -1,12 +0,0 @@
|
||||
# aem-ve.specs
|
||||
#
|
||||
# Spec file for AArch64 baremetal newlib, libgloss on the validation platform
|
||||
# with AngelAPI semi-hosting.
|
||||
|
||||
%rename lib libc
|
||||
|
||||
*libgloss:
|
||||
-lrdimon
|
||||
|
||||
*lib:
|
||||
cpu-init/rdimon-aem-el3.o%s --start-group %(libc) %(libgloss) --end-group
|
@ -1,19 +0,0 @@
|
||||
# aem-ve.specs
|
||||
#
|
||||
# Spec file for AArch64 baremetal newlib, libgloss on VE platform with AngelAPI
|
||||
# semi-hosting.
|
||||
#
|
||||
# This Spec file is also appropriate for the foundation model.
|
||||
|
||||
%rename link old_link
|
||||
|
||||
*link:
|
||||
-Ttext-segment 0x80000000 %(old_link)
|
||||
|
||||
%rename lib libc
|
||||
|
||||
*libgloss:
|
||||
-lrdimon
|
||||
|
||||
*lib:
|
||||
cpu-init/rdimon-aem-el3.o%s --start-group %(libc) %(libgloss) --end-group
|
@ -1,7 +0,0 @@
|
||||
%rename lib libc
|
||||
|
||||
*libgloss:
|
||||
-lrdimon
|
||||
|
||||
*lib:
|
||||
--start-group %(libc) %(libgloss) --end-group
|
@ -1,91 +0,0 @@
|
||||
/* Copyright (c) 2009, 2010, 2011, 2012 ARM Ltd. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. The name of the company may not be used to endorse or promote
|
||||
products derived from this software without specific prior written
|
||||
permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
||||
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
|
||||
|
||||
/* 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 "svc.h"
|
||||
|
||||
#include <errno.h>
|
||||
#include <sys/types.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
|
||||
|
||||
extern clock_t _clock (void);
|
||||
extern int _isatty (int);
|
||||
|
||||
unsigned __attribute__((weak))
|
||||
alarm (unsigned seconds)
|
||||
{
|
||||
(void) seconds;
|
||||
return 0;
|
||||
}
|
||||
|
||||
clock_t __attribute__((weak))
|
||||
clock (void)
|
||||
{
|
||||
return _clock ();
|
||||
}
|
||||
|
||||
int __attribute__((weak))
|
||||
isatty (int fildes)
|
||||
{
|
||||
return _isatty (fildes);
|
||||
}
|
||||
|
||||
int __attribute__((weak))
|
||||
pause (void)
|
||||
{
|
||||
errno = ENOSYS;
|
||||
return -1;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
@ -1,75 +0,0 @@
|
||||
/* Copyright (c) 2009, 2010, 2011, 2012 ARM Ltd. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. The name of the company may not be used to endorse or promote
|
||||
products derived from this software without specific prior written
|
||||
permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
||||
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
|
||||
|
||||
/* Now the SWI numbers and reason codes for RDI (Angel) monitors. */
|
||||
#define AngelSVC 0xF000
|
||||
#define AngelSVCInsn "hlt"
|
||||
#define AngelSVCAsm hlt
|
||||
|
||||
/* The reason codes: */
|
||||
#define AngelSVC_Reason_Open 0x01
|
||||
#define AngelSVC_Reason_Close 0x02
|
||||
#define AngelSVC_Reason_WriteC 0x03
|
||||
#define AngelSVC_Reason_Write0 0x04
|
||||
#define AngelSVC_Reason_Write 0x05
|
||||
#define AngelSVC_Reason_Read 0x06
|
||||
#define AngelSVC_Reason_ReadC 0x07
|
||||
#define AngelSVC_Reason_IsTTY 0x09
|
||||
#define AngelSVC_Reason_Seek 0x0A
|
||||
#define AngelSVC_Reason_FLen 0x0C
|
||||
#define AngelSVC_Reason_TmpNam 0x0D
|
||||
#define AngelSVC_Reason_Remove 0x0E
|
||||
#define AngelSVC_Reason_Rename 0x0F
|
||||
#define AngelSVC_Reason_Clock 0x10
|
||||
#define AngelSVC_Reason_Time 0x11
|
||||
#define AngelSVC_Reason_System 0x12
|
||||
#define AngelSVC_Reason_Errno 0x13
|
||||
#define AngelSVC_Reason_GetCmdLine 0x15
|
||||
#define AngelSVC_Reason_HeapInfo 0x16
|
||||
#define AngelSVC_Reason_EnterSVC 0x17
|
||||
#define AngelSVC_Reason_ReportException 0x18
|
||||
#define AngelSVC_Reason_SyncCacheRange 0x19
|
||||
#define AngelSVC_Reason_Elapsed 0x30
|
||||
#define ADP_Stopped_ApplicationExit ((2 << 16) + 38)
|
||||
#define ADP_Stopped_RunTimeError ((2 << 16) + 35)
|
||||
|
||||
#if defined(ARM_RDI_MONITOR) && !defined(__ASSEMBLER__)
|
||||
|
||||
/* Type of each entry in a parameter block. */
|
||||
typedef long long param_block_t;
|
||||
|
||||
static inline long long
|
||||
do_AngelSVC (int reason, param_block_t * arg)
|
||||
{
|
||||
long long value;
|
||||
asm volatile ("mov w0, %w1; mov x1, %2; " AngelSVCInsn " %3; mov %0, x0"
|
||||
: "=r" (value) /* Outputs */
|
||||
: "r" (reason), "r" (arg), "n" (AngelSVC) /* Inputs */
|
||||
: "x0", "x1", "x2", "x3", "x17", "x30", "memory", "cc"
|
||||
/* Clobbers x0 and x1, and lr if in supervisor mode */);
|
||||
return value;
|
||||
}
|
||||
|
||||
#endif
|
@ -1,751 +0,0 @@
|
||||
/* Copyright (c) 2009, 2010, 2011, 2012 ARM Ltd. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. The name of the company may not be used to endorse or promote
|
||||
products derived from this software without specific prior written
|
||||
permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
||||
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
|
||||
|
||||
/* 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 <sys/wait.h>
|
||||
#include "svc.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 *, void *));
|
||||
int _unlink _PARAMS ((const char *));
|
||||
int _link _PARAMS ((void));
|
||||
int _stat _PARAMS ((const char *, struct stat *));
|
||||
int _fstat _PARAMS ((int, struct stat *));
|
||||
int _swistat _PARAMS ((int fd, struct stat * st));
|
||||
caddr_t _sbrk _PARAMS ((int));
|
||||
int _getpid _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 checkerror _PARAMS ((int));
|
||||
static int error _PARAMS ((int));
|
||||
static int get_errno _PARAMS ((void));
|
||||
|
||||
/* Struct used to keep track of the file position, just so we
|
||||
can implement fseek(fh,x,SEEK_CUR). */
|
||||
struct fdent
|
||||
{
|
||||
int handle;
|
||||
int flags;
|
||||
ino_t ino;
|
||||
int pos;
|
||||
};
|
||||
|
||||
#define MAX_OPEN_FILES 20
|
||||
|
||||
/* User file descriptors (fd) are integer indexes into
|
||||
the openfiles[] array. Error checking is done by using
|
||||
findslot().
|
||||
|
||||
This openfiles array is manipulated directly by only
|
||||
these 5 functions:
|
||||
|
||||
findslot() - Translate entry.
|
||||
newslot() - Find empty entry.
|
||||
initilise_monitor_handles() - Initialize entries.
|
||||
_swiopen() - Initialize entry.
|
||||
_close() - Handle stdout == stderr case.
|
||||
|
||||
Every other function must use findslot(). */
|
||||
|
||||
static struct fdent openfiles[MAX_OPEN_FILES];
|
||||
|
||||
static struct fdent *findslot _PARAMS ((int));
|
||||
static int newslot _PARAMS ((void));
|
||||
|
||||
/* 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)
|
||||
|
||||
static int monitor_stdin;
|
||||
static int monitor_stdout;
|
||||
static int monitor_stderr;
|
||||
|
||||
/* Return a pointer to the structure associated with
|
||||
the user file descriptor fd. */
|
||||
static struct fdent *
|
||||
findslot (int fd)
|
||||
{
|
||||
CHECK_INIT (_REENT);
|
||||
|
||||
/* User file descriptor is out of range. */
|
||||
if ((unsigned int) fd >= MAX_OPEN_FILES)
|
||||
return NULL;
|
||||
|
||||
/* User file descriptor is open? */
|
||||
if (openfiles[fd].handle == -1)
|
||||
return NULL;
|
||||
|
||||
/* Valid. */
|
||||
return &openfiles[fd];
|
||||
}
|
||||
|
||||
/* Return the next lowest numbered free file
|
||||
structure, or -1 if we can't find one. */
|
||||
static int
|
||||
newslot (void)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < MAX_OPEN_FILES; i++)
|
||||
if (openfiles[i].handle == -1)
|
||||
break;
|
||||
|
||||
if (i == MAX_OPEN_FILES)
|
||||
return -1;
|
||||
|
||||
return i;
|
||||
}
|
||||
|
||||
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.
|
||||
*/
|
||||
|
||||
param_block_t block[3];
|
||||
|
||||
block[0] = (param_block_t) ":tt";
|
||||
block[2] = 3; /* length of filename */
|
||||
block[1] = 0; /* mode "r" */
|
||||
monitor_stdin = do_AngelSVC (AngelSVC_Reason_Open, block);
|
||||
|
||||
block[0] = (param_block_t) ":tt";
|
||||
block[2] = 3; /* length of filename */
|
||||
block[1] = 4; /* mode "w" */
|
||||
monitor_stdout = do_AngelSVC (AngelSVC_Reason_Open, block);
|
||||
|
||||
block[0] = (param_block_t) ":tt";
|
||||
block[2] = 3; /* length of filename */
|
||||
block[1] = 8; /* mode "a" */
|
||||
monitor_stderr = do_AngelSVC (AngelSVC_Reason_Open, block);
|
||||
|
||||
/* If we failed to open stderr, redirect to stdout. */
|
||||
if (monitor_stderr == -1)
|
||||
monitor_stderr = monitor_stdout;
|
||||
|
||||
for (i = 0; i < MAX_OPEN_FILES; i++)
|
||||
openfiles[i].handle = -1;
|
||||
|
||||
openfiles[0].handle = monitor_stdin;
|
||||
openfiles[0].flags = _FREAD;
|
||||
openfiles[0].pos = 0;
|
||||
openfiles[1].handle = monitor_stdout;
|
||||
openfiles[0].flags = _FWRITE;
|
||||
openfiles[1].pos = 0;
|
||||
openfiles[2].handle = monitor_stderr;
|
||||
openfiles[0].flags = _FWRITE;
|
||||
openfiles[2].pos = 0;
|
||||
}
|
||||
|
||||
static int
|
||||
get_errno (void)
|
||||
{
|
||||
return do_AngelSVC (AngelSVC_Reason_Errno, NULL);
|
||||
}
|
||||
|
||||
/* Set errno and return result. */
|
||||
static int
|
||||
error (int result)
|
||||
{
|
||||
errno = get_errno ();
|
||||
return result;
|
||||
}
|
||||
|
||||
/* Check the return and set errno appropriately. */
|
||||
static int
|
||||
checkerror (int result)
|
||||
{
|
||||
if (result == -1)
|
||||
return error (-1);
|
||||
return result;
|
||||
}
|
||||
|
||||
/* fh, is a valid internal file handle.
|
||||
ptr, is a null terminated string.
|
||||
len, is the length in bytes to read.
|
||||
Returns the number of bytes *not* written. */
|
||||
int
|
||||
_swiread (int fh, char *ptr, int len)
|
||||
{
|
||||
param_block_t block[3];
|
||||
|
||||
block[0] = fh;
|
||||
block[1] = (param_block_t) ptr;
|
||||
block[2] = len;
|
||||
|
||||
return checkerror (do_AngelSVC (AngelSVC_Reason_Read, block));
|
||||
}
|
||||
|
||||
/* fd, is a valid user file handle.
|
||||
Translates the return of _swiread into
|
||||
bytes read. */
|
||||
int
|
||||
_read (int fd, char *ptr, int len)
|
||||
{
|
||||
int res;
|
||||
struct fdent *pfd;
|
||||
|
||||
pfd = findslot (fd);
|
||||
if (pfd == NULL)
|
||||
{
|
||||
errno = EBADF;
|
||||
return -1;
|
||||
}
|
||||
|
||||
res = _swiread (pfd->handle, ptr, len);
|
||||
|
||||
if (res == -1)
|
||||
return res;
|
||||
|
||||
pfd->pos += len - res;
|
||||
|
||||
/* res == len is not an error,
|
||||
at least if we want feof() to work. */
|
||||
return len - res;
|
||||
}
|
||||
|
||||
/* fd, is a user file descriptor. */
|
||||
int
|
||||
_swilseek (int fd, int ptr, int dir)
|
||||
{
|
||||
int res;
|
||||
struct fdent *pfd;
|
||||
|
||||
/* Valid file descriptor? */
|
||||
pfd = findslot (fd);
|
||||
if (pfd == NULL)
|
||||
{
|
||||
errno = EBADF;
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Valid whence? */
|
||||
if ((dir != SEEK_CUR) && (dir != SEEK_SET) && (dir != SEEK_END))
|
||||
{
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Convert SEEK_CUR to SEEK_SET */
|
||||
if (dir == SEEK_CUR)
|
||||
{
|
||||
ptr = pfd->pos + ptr;
|
||||
/* The resulting file offset would be negative. */
|
||||
if (ptr < 0)
|
||||
{
|
||||
errno = EINVAL;
|
||||
if ((pfd->pos > 0) && (ptr > 0))
|
||||
errno = EOVERFLOW;
|
||||
return -1;
|
||||
}
|
||||
dir = SEEK_SET;
|
||||
}
|
||||
|
||||
param_block_t block[2];
|
||||
if (dir == SEEK_END)
|
||||
{
|
||||
block[0] = pfd->handle;
|
||||
res = checkerror (do_AngelSVC (AngelSVC_Reason_FLen, block));
|
||||
if (res == -1)
|
||||
return -1;
|
||||
ptr += res;
|
||||
}
|
||||
|
||||
/* This code only does absolute seeks. */
|
||||
block[0] = pfd->handle;
|
||||
block[1] = ptr;
|
||||
res = checkerror (do_AngelSVC (AngelSVC_Reason_Seek, block));
|
||||
/* At this point ptr is the current file position. */
|
||||
if (res >= 0)
|
||||
{
|
||||
pfd->pos = ptr;
|
||||
return ptr;
|
||||
}
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
_lseek (int fd, int ptr, int dir)
|
||||
{
|
||||
return _swilseek (fd, ptr, dir);
|
||||
}
|
||||
|
||||
/* fh, is a valid internal file handle.
|
||||
Returns the number of bytes *not* written. */
|
||||
int
|
||||
_swiwrite (int fh, char *ptr, int len)
|
||||
{
|
||||
param_block_t block[3];
|
||||
|
||||
block[0] = fh;
|
||||
block[1] = (param_block_t) ptr;
|
||||
block[2] = len;
|
||||
|
||||
return checkerror (do_AngelSVC (AngelSVC_Reason_Write, block));
|
||||
}
|
||||
|
||||
/* fd, is a user file descriptor. */
|
||||
int
|
||||
_write (int fd, char *ptr, int len)
|
||||
{
|
||||
int res;
|
||||
struct fdent *pfd;
|
||||
|
||||
pfd = findslot (fd);
|
||||
if (pfd == NULL)
|
||||
{
|
||||
errno = EBADF;
|
||||
return -1;
|
||||
}
|
||||
|
||||
res = _swiwrite (pfd->handle, ptr, len);
|
||||
|
||||
/* Clearly an error. */
|
||||
if (res < 0)
|
||||
return -1;
|
||||
|
||||
pfd->pos += len - res;
|
||||
|
||||
/* We wrote 0 bytes?
|
||||
Retrieve errno just in case. */
|
||||
if ((len - res) == 0)
|
||||
return error (0);
|
||||
|
||||
return (len - res);
|
||||
}
|
||||
|
||||
int
|
||||
_swiopen (const char *path, int flags)
|
||||
{
|
||||
int aflags = 0, fh;
|
||||
param_block_t block[3];
|
||||
static ino_t ino = 1;
|
||||
int fd;
|
||||
|
||||
if (path == NULL)
|
||||
{
|
||||
errno = ENOENT;
|
||||
return -1;
|
||||
}
|
||||
|
||||
fd = newslot ();
|
||||
|
||||
if (fd == -1)
|
||||
{
|
||||
errno = EMFILE;
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* It is an error to open a file that already exists. */
|
||||
if ((flags & O_CREAT) && (flags & O_EXCL))
|
||||
{
|
||||
struct stat st;
|
||||
int res;
|
||||
res = _stat (path, &st);
|
||||
if (res != -1)
|
||||
{
|
||||
errno = EEXIST;
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/* The flags are Unix-style, so we need to convert them. */
|
||||
#ifdef O_BINARY
|
||||
if (flags & O_BINARY)
|
||||
aflags |= 1;
|
||||
#endif
|
||||
|
||||
/* In O_RDONLY we expect aflags == 0. */
|
||||
|
||||
if (flags & O_RDWR)
|
||||
aflags |= 2;
|
||||
|
||||
if ((flags & O_CREAT) || (flags & O_TRUNC) || (flags & O_WRONLY))
|
||||
aflags |= 4;
|
||||
|
||||
if (flags & O_APPEND)
|
||||
{
|
||||
/* Can't ask for w AND a; means just 'a'. */
|
||||
aflags &= ~4;
|
||||
aflags |= 8;
|
||||
}
|
||||
|
||||
block[0] = (param_block_t) path;
|
||||
block[2] = strlen (path);
|
||||
block[1] = aflags;
|
||||
|
||||
fh = do_AngelSVC (AngelSVC_Reason_Open, block);
|
||||
|
||||
/* Return a user file descriptor or an error. */
|
||||
if (fh >= 0)
|
||||
{
|
||||
openfiles[fd].handle = fh;
|
||||
openfiles[fd].flags = flags + 1;
|
||||
openfiles[fd].ino = ino++;
|
||||
openfiles[fd].pos = 0;
|
||||
return fd;
|
||||
}
|
||||
else
|
||||
return error (fh);
|
||||
}
|
||||
|
||||
int
|
||||
_open (const char *path, int flags, ...)
|
||||
{
|
||||
return _swiopen (path, flags);
|
||||
}
|
||||
|
||||
/* fh, is a valid internal file handle. */
|
||||
int
|
||||
_swiclose (int fh)
|
||||
{
|
||||
param_block_t param[1];
|
||||
param[0] = fh;
|
||||
return checkerror (do_AngelSVC (AngelSVC_Reason_Close, param));
|
||||
}
|
||||
|
||||
/* fd, is a user file descriptor. */
|
||||
int
|
||||
_close (int fd)
|
||||
{
|
||||
int res;
|
||||
struct fdent *pfd;
|
||||
|
||||
pfd = findslot (fd);
|
||||
if (pfd == NULL)
|
||||
{
|
||||
errno = EBADF;
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Handle stderr == stdout. */
|
||||
if ((fd == 1 || fd == 2) && (openfiles[1].handle == openfiles[2].handle))
|
||||
{
|
||||
pfd->handle = -1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Attempt to close the handle. */
|
||||
res = _swiclose (pfd->handle);
|
||||
|
||||
/* Reclaim handle? */
|
||||
if (res == 0)
|
||||
pfd->handle = -1;
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
int __attribute__((weak))
|
||||
_getpid (int n __attribute__ ((unused)))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
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. */
|
||||
errno = ENOMEM;
|
||||
return (caddr_t) - 1;
|
||||
}
|
||||
|
||||
heap_end += incr;
|
||||
|
||||
return (caddr_t) prev_heap_end;
|
||||
}
|
||||
|
||||
int
|
||||
_swistat (int fd, struct stat *st)
|
||||
{
|
||||
struct fdent *pfd;
|
||||
param_block_t param[1];
|
||||
int res;
|
||||
|
||||
pfd = findslot (fd);
|
||||
if (pfd == NULL)
|
||||
{
|
||||
errno = EBADF;
|
||||
return -1;
|
||||
}
|
||||
|
||||
param[0] = pfd->handle;
|
||||
res = do_AngelSVC (AngelSVC_Reason_IsTTY, param);
|
||||
if (res != 0 && res != 1)
|
||||
return error (-1);
|
||||
|
||||
memset (st, 0, sizeof (*st));
|
||||
|
||||
if (res)
|
||||
{
|
||||
/* This is a tty. */
|
||||
st->st_mode |= S_IFCHR;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* This is a file, return the file length. */
|
||||
st->st_mode |= S_IFREG;
|
||||
res = checkerror (do_AngelSVC (AngelSVC_Reason_FLen, param));
|
||||
if (res == -1)
|
||||
return -1;
|
||||
st->st_size = res;
|
||||
st->st_blksize = 1024;
|
||||
st->st_blocks = (res + 1023) / 1024;
|
||||
}
|
||||
|
||||
/* Deduce permissions based on mode in which file opened. */
|
||||
st->st_mode |= S_IRUSR | S_IRGRP | S_IROTH;
|
||||
if (pfd->flags & _FWRITE)
|
||||
st->st_mode |= S_IWUSR | S_IWGRP | S_IWOTH;
|
||||
|
||||
st->st_ino = pfd->ino;
|
||||
st->st_nlink = 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int __attribute__((weak))
|
||||
_fstat (int fd, struct stat * st)
|
||||
{
|
||||
return _swistat (fd, st);
|
||||
}
|
||||
|
||||
int __attribute__((weak))
|
||||
_stat (const char *fname, struct stat *st)
|
||||
{
|
||||
int fd, res;
|
||||
/* 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 ((fd = _open (fname, O_RDONLY)) == -1)
|
||||
return -1;
|
||||
res = _swistat (fd, st);
|
||||
/* Not interested in the error. */
|
||||
_close (fd);
|
||||
return res;
|
||||
}
|
||||
|
||||
int __attribute__((weak))
|
||||
_link (void)
|
||||
{
|
||||
errno = ENOSYS;
|
||||
return -1;
|
||||
}
|
||||
|
||||
int
|
||||
_unlink (const char *path)
|
||||
{
|
||||
int res;
|
||||
param_block_t block[2];
|
||||
block[0] = (param_block_t) path;
|
||||
block[1] = strlen (path);
|
||||
res = do_AngelSVC (AngelSVC_Reason_Remove, block);
|
||||
if (res == -1)
|
||||
return error (res);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
_gettimeofday (struct timeval *tp, void *tzvp)
|
||||
{
|
||||
struct timezone *tzp = tzvp;
|
||||
if (tp)
|
||||
{
|
||||
/* Ask the host for the seconds since the Unix epoch. */
|
||||
tp->tv_sec = do_AngelSVC (AngelSVC_Reason_Time, NULL);
|
||||
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;
|
||||
|
||||
timeval = do_AngelSVC (AngelSVC_Reason_Clock, NULL);
|
||||
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)
|
||||
{
|
||||
struct fdent *pfd;
|
||||
param_block_t param[1];
|
||||
int res;
|
||||
|
||||
/* Return 1 if fd is an open file descriptor referring to a terminal;
|
||||
otherwise 0 is returned, and errno is set to indicate the error. */
|
||||
|
||||
pfd = findslot (fd);
|
||||
if (pfd == NULL)
|
||||
{
|
||||
errno = EBADF;
|
||||
return 0;
|
||||
}
|
||||
|
||||
param[0] = pfd->handle;
|
||||
res = do_AngelSVC (AngelSVC_Reason_IsTTY, param);
|
||||
|
||||
if (res != 1)
|
||||
return error (0);
|
||||
return res;
|
||||
}
|
||||
|
||||
int
|
||||
_system (const char *s)
|
||||
{
|
||||
param_block_t block[2];
|
||||
int e;
|
||||
|
||||
/* Hmmm. The ARM debug interface specification doesn't say whether
|
||||
SYS_SYSTEM does the right thing with a null argument, or assign any
|
||||
meaning to its return value. Try to do something reasonable.... */
|
||||
if (!s)
|
||||
return 1; /* maybe there is a shell available? we can hope. :-P */
|
||||
block[0] = (param_block_t) s;
|
||||
block[1] = strlen (s);
|
||||
e = checkerror (do_AngelSVC (AngelSVC_Reason_System, block));
|
||||
if ((e >= 0) && (e < 256))
|
||||
{
|
||||
/* We have to convert e, an exit status to the encoded status of
|
||||
the command. To avoid hard coding the exit status, we simply
|
||||
loop until we find the right position. */
|
||||
int exit_code;
|
||||
|
||||
for (exit_code = e; e && WEXITSTATUS (e) != exit_code; e <<= 1)
|
||||
continue;
|
||||
}
|
||||
return e;
|
||||
}
|
||||
|
||||
int
|
||||
_rename (const char *oldpath, const char *newpath)
|
||||
{
|
||||
param_block_t block[4];
|
||||
block[0] = (param_block_t) oldpath;
|
||||
block[1] = strlen (oldpath);
|
||||
block[2] = (param_block_t) newpath;
|
||||
block[3] = strlen (newpath);
|
||||
return checkerror (do_AngelSVC (AngelSVC_Reason_Rename, block)) ? -1 : 0;
|
||||
}
|
||||
|
||||
/* Returns the number of elapsed target ticks since the support code
|
||||
started execution. Returns -1 and sets errno on error. */
|
||||
long
|
||||
__aarch64_angel_elapsed (void)
|
||||
{
|
||||
int result;
|
||||
param_block_t block[2];
|
||||
result = checkerror (do_AngelSVC (AngelSVC_Reason_Elapsed, block));
|
||||
if (result == -1)
|
||||
return result;
|
||||
return block[0];
|
||||
}
|
@ -1,62 +0,0 @@
|
||||
# FIXME: We temporarily define our own version of AC_PROG_CC. This is
|
||||
# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We
|
||||
# are probably using a cross compiler, which will not be able to fully
|
||||
# link an executable. This should really be fixed in autoconf
|
||||
# itself.
|
||||
|
||||
AC_DEFUN([LIB_AC_PROG_CC_GNU],
|
||||
[AC_CACHE_CHECK(whether we are using GNU C, ac_cv_prog_gcc,
|
||||
[dnl The semicolon is to pacify NeXT's syntax-checking cpp.
|
||||
cat > conftest.c <<EOF
|
||||
#ifdef __GNUC__
|
||||
yes;
|
||||
#endif
|
||||
EOF
|
||||
if AC_TRY_COMMAND(${CC-cc} -E conftest.c) | egrep yes >/dev/null 2>&1; then
|
||||
ac_cv_prog_gcc=yes
|
||||
else
|
||||
ac_cv_prog_gcc=no
|
||||
fi])])
|
||||
|
||||
AC_DEFUN([LIB_AM_PROG_AS],
|
||||
[# By default we simply use the C compiler to build assembly code.
|
||||
AC_REQUIRE([LIB_AC_PROG_CC])
|
||||
test "${CCAS+set}" = set || CCAS=$CC
|
||||
test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS
|
||||
AC_ARG_VAR([CCAS], [assembler compiler command (defaults to CC)])
|
||||
AC_ARG_VAR([CCASFLAGS], [assembler compiler flags (defaults to CFLAGS)])
|
||||
])
|
||||
|
||||
AC_DEFUN([LIB_AC_PROG_CC],
|
||||
[AC_BEFORE([$0], [AC_PROG_CPP])dnl
|
||||
AC_CHECK_PROG(CC, gcc, gcc)
|
||||
_AM_DEPENDENCIES(CC)
|
||||
if test -z "$CC"; then
|
||||
AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc)
|
||||
test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH])
|
||||
fi
|
||||
|
||||
LIB_AC_PROG_CC_GNU
|
||||
|
||||
if test $ac_cv_prog_gcc = yes; then
|
||||
GCC=yes
|
||||
dnl Check whether -g works, even if CFLAGS is set, in case the package
|
||||
dnl plays around with CFLAGS (such as to build both debugging and
|
||||
dnl normal versions of a library), tasteless as that idea is.
|
||||
ac_test_CFLAGS="${CFLAGS+set}"
|
||||
ac_save_CFLAGS="$CFLAGS"
|
||||
CFLAGS=
|
||||
_AC_PROG_CC_G
|
||||
if test "$ac_test_CFLAGS" = set; then
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
elif test $ac_cv_prog_cc_g = yes; then
|
||||
CFLAGS="-g -O2"
|
||||
else
|
||||
CFLAGS="-O2"
|
||||
fi
|
||||
else
|
||||
GCC=
|
||||
test "${CFLAGS+set}" = set || CFLAGS="-g"
|
||||
fi
|
||||
])
|
||||
|
851
libgloss/aclocal.m4
vendored
851
libgloss/aclocal.m4
vendored
@ -1,851 +0,0 @@
|
||||
# generated automatically by aclocal 1.9.5 -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||
# 2005 Free Software Foundation, Inc.
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# AM_AUTOMAKE_VERSION(VERSION)
|
||||
# ----------------------------
|
||||
# Automake X.Y traces this macro to ensure aclocal.m4 has been
|
||||
# generated from the m4 files accompanying Automake X.Y.
|
||||
AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
|
||||
|
||||
# AM_SET_CURRENT_AUTOMAKE_VERSION
|
||||
# -------------------------------
|
||||
# Call AM_AUTOMAKE_VERSION so it can be traced.
|
||||
# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
|
||||
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
|
||||
[AM_AUTOMAKE_VERSION([1.9.5])])
|
||||
|
||||
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
|
||||
# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
|
||||
# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
|
||||
#
|
||||
# Of course, Automake must honor this variable whenever it calls a
|
||||
# tool from the auxiliary directory. The problem is that $srcdir (and
|
||||
# therefore $ac_aux_dir as well) can be either absolute or relative,
|
||||
# depending on how configure is run. This is pretty annoying, since
|
||||
# it makes $ac_aux_dir quite unusable in subdirectories: in the top
|
||||
# source directory, any form will work fine, but in subdirectories a
|
||||
# relative path needs to be adjusted first.
|
||||
#
|
||||
# $ac_aux_dir/missing
|
||||
# fails when called from a subdirectory if $ac_aux_dir is relative
|
||||
# $top_srcdir/$ac_aux_dir/missing
|
||||
# fails if $ac_aux_dir is absolute,
|
||||
# fails when called from a subdirectory in a VPATH build with
|
||||
# a relative $ac_aux_dir
|
||||
#
|
||||
# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
|
||||
# are both prefixed by $srcdir. In an in-source build this is usually
|
||||
# harmless because $srcdir is `.', but things will broke when you
|
||||
# start a VPATH build or use an absolute $srcdir.
|
||||
#
|
||||
# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
|
||||
# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
|
||||
# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
|
||||
# and then we would define $MISSING as
|
||||
# MISSING="\${SHELL} $am_aux_dir/missing"
|
||||
# This will work as long as MISSING is not called from configure, because
|
||||
# unfortunately $(top_srcdir) has no meaning in configure.
|
||||
# However there are other variables, like CC, which are often used in
|
||||
# configure, and could therefore not use this "fixed" $ac_aux_dir.
|
||||
#
|
||||
# Another solution, used here, is to always expand $ac_aux_dir to an
|
||||
# absolute PATH. The drawback is that using absolute paths prevent a
|
||||
# configured tree to be moved without reconfiguration.
|
||||
|
||||
AC_DEFUN([AM_AUX_DIR_EXPAND],
|
||||
[dnl Rely on autoconf to set up CDPATH properly.
|
||||
AC_PREREQ([2.50])dnl
|
||||
# expand $ac_aux_dir to an absolute path
|
||||
am_aux_dir=`cd $ac_aux_dir && pwd`
|
||||
])
|
||||
|
||||
# AM_CONDITIONAL -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 7
|
||||
|
||||
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
|
||||
# -------------------------------------
|
||||
# Define a conditional.
|
||||
AC_DEFUN([AM_CONDITIONAL],
|
||||
[AC_PREREQ(2.52)dnl
|
||||
ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
|
||||
[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
|
||||
AC_SUBST([$1_TRUE])
|
||||
AC_SUBST([$1_FALSE])
|
||||
if $2; then
|
||||
$1_TRUE=
|
||||
$1_FALSE='#'
|
||||
else
|
||||
$1_TRUE='#'
|
||||
$1_FALSE=
|
||||
fi
|
||||
AC_CONFIG_COMMANDS_PRE(
|
||||
[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
|
||||
AC_MSG_ERROR([[conditional "$1" was never defined.
|
||||
Usually this means the macro was only invoked conditionally.]])
|
||||
fi])])
|
||||
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 8
|
||||
|
||||
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
|
||||
# written in clear, in which case automake, when reading aclocal.m4,
|
||||
# will think it sees a *use*, and therefore will trigger all it's
|
||||
# C support machinery. Also note that it means that autoscan, seeing
|
||||
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
|
||||
|
||||
|
||||
# _AM_DEPENDENCIES(NAME)
|
||||
# ----------------------
|
||||
# See how the compiler implements dependency checking.
|
||||
# NAME is "CC", "CXX", "GCJ", or "OBJC".
|
||||
# We try a few techniques and use that to set a single cache variable.
|
||||
#
|
||||
# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
|
||||
# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
|
||||
# dependency, and given that the user is not expected to run this macro,
|
||||
# just rely on AC_PROG_CC.
|
||||
AC_DEFUN([_AM_DEPENDENCIES],
|
||||
[AC_REQUIRE([AM_SET_DEPDIR])dnl
|
||||
AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
|
||||
AC_REQUIRE([AM_MAKE_INCLUDE])dnl
|
||||
AC_REQUIRE([AM_DEP_TRACK])dnl
|
||||
|
||||
ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
|
||||
[$1], CXX, [depcc="$CXX" am_compiler_list=],
|
||||
[$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
|
||||
[$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
|
||||
[depcc="$$1" am_compiler_list=])
|
||||
|
||||
AC_CACHE_CHECK([dependency style of $depcc],
|
||||
[am_cv_$1_dependencies_compiler_type],
|
||||
[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
|
||||
# We make a subdir and do the tests there. Otherwise we can end up
|
||||
# making bogus files that we don't know about and never remove. For
|
||||
# instance it was reported that on HP-UX the gcc test will end up
|
||||
# making a dummy file named `D' -- because `-MD' means `put the output
|
||||
# in D'.
|
||||
mkdir conftest.dir
|
||||
# Copy depcomp to subdir because otherwise we won't find it if we're
|
||||
# using a relative directory.
|
||||
cp "$am_depcomp" conftest.dir
|
||||
cd conftest.dir
|
||||
# We will build objects and dependencies in a subdirectory because
|
||||
# it helps to detect inapplicable dependency modes. For instance
|
||||
# both Tru64's cc and ICC support -MD to output dependencies as a
|
||||
# side effect of compilation, but ICC will put the dependencies in
|
||||
# the current directory while Tru64 will put them in the object
|
||||
# directory.
|
||||
mkdir sub
|
||||
|
||||
am_cv_$1_dependencies_compiler_type=none
|
||||
if test "$am_compiler_list" = ""; then
|
||||
am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
|
||||
fi
|
||||
for depmode in $am_compiler_list; do
|
||||
# Setup a source with many dependencies, because some compilers
|
||||
# like to wrap large dependency lists on column 80 (with \), and
|
||||
# we should not choose a depcomp mode which is confused by this.
|
||||
#
|
||||
# We need to recreate these files for each test, as the compiler may
|
||||
# overwrite some of them when testing with obscure command lines.
|
||||
# This happens at least with the AIX C compiler.
|
||||
: > sub/conftest.c
|
||||
for i in 1 2 3 4 5 6; do
|
||||
echo '#include "conftst'$i'.h"' >> sub/conftest.c
|
||||
# Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
|
||||
# Solaris 8's {/usr,}/bin/sh.
|
||||
touch sub/conftst$i.h
|
||||
done
|
||||
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
|
||||
|
||||
case $depmode in
|
||||
nosideeffect)
|
||||
# after this tag, mechanisms are not by side-effect, so they'll
|
||||
# only be used when explicitly requested
|
||||
if test "x$enable_dependency_tracking" = xyes; then
|
||||
continue
|
||||
else
|
||||
break
|
||||
fi
|
||||
;;
|
||||
none) break ;;
|
||||
esac
|
||||
# We check with `-c' and `-o' for the sake of the "dashmstdout"
|
||||
# mode. It turns out that the SunPro C++ compiler does not properly
|
||||
# handle `-M -o', and we need to detect this.
|
||||
if depmode=$depmode \
|
||||
source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
|
||||
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
|
||||
$SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
|
||||
>/dev/null 2>conftest.err &&
|
||||
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
|
||||
grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
|
||||
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
|
||||
# icc doesn't choke on unknown options, it will just issue warnings
|
||||
# or remarks (even with -Werror). So we grep stderr for any message
|
||||
# that says an option was ignored or not supported.
|
||||
# When given -MP, icc 7.0 and 7.1 complain thusly:
|
||||
# icc: Command line warning: ignoring option '-M'; no argument required
|
||||
# The diagnosis changed in icc 8.0:
|
||||
# icc: Command line remark: option '-MP' not supported
|
||||
if (grep 'ignoring option' conftest.err ||
|
||||
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
|
||||
am_cv_$1_dependencies_compiler_type=$depmode
|
||||
break
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
cd ..
|
||||
rm -rf conftest.dir
|
||||
else
|
||||
am_cv_$1_dependencies_compiler_type=none
|
||||
fi
|
||||
])
|
||||
AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
|
||||
AM_CONDITIONAL([am__fastdep$1], [
|
||||
test "x$enable_dependency_tracking" != xno \
|
||||
&& test "$am_cv_$1_dependencies_compiler_type" = gcc3])
|
||||
])
|
||||
|
||||
|
||||
# AM_SET_DEPDIR
|
||||
# -------------
|
||||
# Choose a directory name for dependency files.
|
||||
# This macro is AC_REQUIREd in _AM_DEPENDENCIES
|
||||
AC_DEFUN([AM_SET_DEPDIR],
|
||||
[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
||||
AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
|
||||
])
|
||||
|
||||
|
||||
# AM_DEP_TRACK
|
||||
# ------------
|
||||
AC_DEFUN([AM_DEP_TRACK],
|
||||
[AC_ARG_ENABLE(dependency-tracking,
|
||||
[ --disable-dependency-tracking speeds up one-time build
|
||||
--enable-dependency-tracking do not reject slow dependency extractors])
|
||||
if test "x$enable_dependency_tracking" != xno; then
|
||||
am_depcomp="$ac_aux_dir/depcomp"
|
||||
AMDEPBACKSLASH='\'
|
||||
fi
|
||||
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
|
||||
AC_SUBST([AMDEPBACKSLASH])
|
||||
])
|
||||
|
||||
# Generate code to set up dependency tracking. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
#serial 3
|
||||
|
||||
# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
# ------------------------------
|
||||
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[for mf in $CONFIG_FILES; do
|
||||
# Strip MF so we end up with the name of the file.
|
||||
mf=`echo "$mf" | sed -e 's/:.*$//'`
|
||||
# Check whether this is an Automake generated Makefile or not.
|
||||
# We used to match only the files named `Makefile.in', but
|
||||
# some people rename them; so instead we look at the file content.
|
||||
# Grep'ing the first line is not enough: some people post-process
|
||||
# each Makefile.in and add a new line on top of each file to say so.
|
||||
# So let's grep whole file.
|
||||
if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
|
||||
dirpart=`AS_DIRNAME("$mf")`
|
||||
else
|
||||
continue
|
||||
fi
|
||||
# Extract the definition of DEPDIR, am__include, and am__quote
|
||||
# from the Makefile without running `make'.
|
||||
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
|
||||
test -z "$DEPDIR" && continue
|
||||
am__include=`sed -n 's/^am__include = //p' < "$mf"`
|
||||
test -z "am__include" && continue
|
||||
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
|
||||
# When using ansi2knr, U may be empty or an underscore; expand it
|
||||
U=`sed -n 's/^U = //p' < "$mf"`
|
||||
# Find all dependency output files, they are included files with
|
||||
# $(DEPDIR) in their names. We invoke sed twice because it is the
|
||||
# simplest approach to changing $(DEPDIR) to its actual value in the
|
||||
# expansion.
|
||||
for file in `sed -n "
|
||||
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
|
||||
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
|
||||
# Make sure the directory exists.
|
||||
test -f "$dirpart/$file" && continue
|
||||
fdir=`AS_DIRNAME(["$file"])`
|
||||
AS_MKDIR_P([$dirpart/$fdir])
|
||||
# echo "creating $dirpart/$file"
|
||||
echo '# dummy' > "$dirpart/$file"
|
||||
done
|
||||
done
|
||||
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
|
||||
|
||||
# AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
# -----------------------------
|
||||
# This macro should only be invoked once -- use via AC_REQUIRE.
|
||||
#
|
||||
# This code is only required when automatic dependency tracking
|
||||
# is enabled. FIXME. This creates each `.P' file that we will
|
||||
# need in order to bootstrap the dependency handling code.
|
||||
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[AC_CONFIG_COMMANDS([depfiles],
|
||||
[test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
|
||||
])
|
||||
|
||||
# Do all the work for Automake. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 12
|
||||
|
||||
# This macro actually does too much. Some checks are only needed if
|
||||
# your package does certain things. But this isn't really a big deal.
|
||||
|
||||
# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
|
||||
# AM_INIT_AUTOMAKE([OPTIONS])
|
||||
# -----------------------------------------------
|
||||
# The call with PACKAGE and VERSION arguments is the old style
|
||||
# call (pre autoconf-2.50), which is being phased out. PACKAGE
|
||||
# and VERSION should now be passed to AC_INIT and removed from
|
||||
# the call to AM_INIT_AUTOMAKE.
|
||||
# We support both call styles for the transition. After
|
||||
# the next Automake release, Autoconf can make the AC_INIT
|
||||
# arguments mandatory, and then we can depend on a new Autoconf
|
||||
# release and drop the old call support.
|
||||
AC_DEFUN([AM_INIT_AUTOMAKE],
|
||||
[AC_PREREQ([2.58])dnl
|
||||
dnl Autoconf wants to disallow AM_ names. We explicitly allow
|
||||
dnl the ones we care about.
|
||||
m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
|
||||
AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
|
||||
AC_REQUIRE([AC_PROG_INSTALL])dnl
|
||||
# test to see if srcdir already configured
|
||||
if test "`cd $srcdir && pwd`" != "`pwd`" &&
|
||||
test -f $srcdir/config.status; then
|
||||
AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
|
||||
fi
|
||||
|
||||
# test whether we have cygpath
|
||||
if test -z "$CYGPATH_W"; then
|
||||
if (cygpath --version) >/dev/null 2>/dev/null; then
|
||||
CYGPATH_W='cygpath -w'
|
||||
else
|
||||
CYGPATH_W=echo
|
||||
fi
|
||||
fi
|
||||
AC_SUBST([CYGPATH_W])
|
||||
|
||||
# Define the identity of the package.
|
||||
dnl Distinguish between old-style and new-style calls.
|
||||
m4_ifval([$2],
|
||||
[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
|
||||
AC_SUBST([PACKAGE], [$1])dnl
|
||||
AC_SUBST([VERSION], [$2])],
|
||||
[_AM_SET_OPTIONS([$1])dnl
|
||||
AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
|
||||
AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
|
||||
|
||||
_AM_IF_OPTION([no-define],,
|
||||
[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
|
||||
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
|
||||
|
||||
# Some tools Automake needs.
|
||||
AC_REQUIRE([AM_SANITY_CHECK])dnl
|
||||
AC_REQUIRE([AC_ARG_PROGRAM])dnl
|
||||
AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
|
||||
AM_MISSING_PROG(AUTOCONF, autoconf)
|
||||
AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
|
||||
AM_MISSING_PROG(AUTOHEADER, autoheader)
|
||||
AM_MISSING_PROG(MAKEINFO, makeinfo)
|
||||
AM_PROG_INSTALL_SH
|
||||
AM_PROG_INSTALL_STRIP
|
||||
AC_REQUIRE([AM_PROG_MKDIR_P])dnl
|
||||
# We need awk for the "check" target. The system "awk" is bad on
|
||||
# some platforms.
|
||||
AC_REQUIRE([AC_PROG_AWK])dnl
|
||||
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
|
||||
AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
||||
_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
|
||||
[_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
|
||||
[_AM_PROG_TAR([v7])])])
|
||||
_AM_IF_OPTION([no-dependencies],,
|
||||
[AC_PROVIDE_IFELSE([AC_PROG_CC],
|
||||
[_AM_DEPENDENCIES(CC)],
|
||||
[define([AC_PROG_CC],
|
||||
defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
|
||||
AC_PROVIDE_IFELSE([AC_PROG_CXX],
|
||||
[_AM_DEPENDENCIES(CXX)],
|
||||
[define([AC_PROG_CXX],
|
||||
defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
|
||||
])
|
||||
])
|
||||
|
||||
|
||||
# When config.status generates a header, we must update the stamp-h file.
|
||||
# This file resides in the same directory as the config header
|
||||
# that is generated. The stamp files are numbered to have different names.
|
||||
|
||||
# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
|
||||
# loop where config.status creates the headers, so we can generate
|
||||
# our stamp files there.
|
||||
AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
|
||||
[# Compute $1's index in $config_headers.
|
||||
_am_stamp_count=1
|
||||
for _am_header in $config_headers :; do
|
||||
case $_am_header in
|
||||
$1 | $1:* )
|
||||
break ;;
|
||||
* )
|
||||
_am_stamp_count=`expr $_am_stamp_count + 1` ;;
|
||||
esac
|
||||
done
|
||||
echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
|
||||
|
||||
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# AM_PROG_INSTALL_SH
|
||||
# ------------------
|
||||
# Define $install_sh.
|
||||
AC_DEFUN([AM_PROG_INSTALL_SH],
|
||||
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||
install_sh=${install_sh-"$am_aux_dir/install-sh"}
|
||||
AC_SUBST(install_sh)])
|
||||
|
||||
# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 2
|
||||
|
||||
# Check whether the underlying file-system supports filenames
|
||||
# with a leading dot. For instance MS-DOS doesn't.
|
||||
AC_DEFUN([AM_SET_LEADING_DOT],
|
||||
[rm -rf .tst 2>/dev/null
|
||||
mkdir .tst 2>/dev/null
|
||||
if test -d .tst; then
|
||||
am__leading_dot=.
|
||||
else
|
||||
am__leading_dot=_
|
||||
fi
|
||||
rmdir .tst 2>/dev/null
|
||||
AC_SUBST([am__leading_dot])])
|
||||
|
||||
# Check to see how 'make' treats includes. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 3
|
||||
|
||||
# AM_MAKE_INCLUDE()
|
||||
# -----------------
|
||||
# Check to see how make treats includes.
|
||||
AC_DEFUN([AM_MAKE_INCLUDE],
|
||||
[am_make=${MAKE-make}
|
||||
cat > confinc << 'END'
|
||||
am__doit:
|
||||
@echo done
|
||||
.PHONY: am__doit
|
||||
END
|
||||
# If we don't find an include directive, just comment out the code.
|
||||
AC_MSG_CHECKING([for style of include used by $am_make])
|
||||
am__include="#"
|
||||
am__quote=
|
||||
_am_result=none
|
||||
# First try GNU make style include.
|
||||
echo "include confinc" > confmf
|
||||
# We grep out `Entering directory' and `Leaving directory'
|
||||
# messages which can occur if `w' ends up in MAKEFLAGS.
|
||||
# In particular we don't look at `^make:' because GNU make might
|
||||
# be invoked under some other name (usually "gmake"), in which
|
||||
# case it prints its new name instead of `make'.
|
||||
if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
|
||||
am__include=include
|
||||
am__quote=
|
||||
_am_result=GNU
|
||||
fi
|
||||
# Now try BSD make style include.
|
||||
if test "$am__include" = "#"; then
|
||||
echo '.include "confinc"' > confmf
|
||||
if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
|
||||
am__include=.include
|
||||
am__quote="\""
|
||||
_am_result=BSD
|
||||
fi
|
||||
fi
|
||||
AC_SUBST([am__include])
|
||||
AC_SUBST([am__quote])
|
||||
AC_MSG_RESULT([$_am_result])
|
||||
rm -f confinc confmf
|
||||
])
|
||||
|
||||
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 4
|
||||
|
||||
# AM_MISSING_PROG(NAME, PROGRAM)
|
||||
# ------------------------------
|
||||
AC_DEFUN([AM_MISSING_PROG],
|
||||
[AC_REQUIRE([AM_MISSING_HAS_RUN])
|
||||
$1=${$1-"${am_missing_run}$2"}
|
||||
AC_SUBST($1)])
|
||||
|
||||
|
||||
# AM_MISSING_HAS_RUN
|
||||
# ------------------
|
||||
# Define MISSING if not defined so far and test if it supports --run.
|
||||
# If it does, set am_missing_run to use it, otherwise, to nothing.
|
||||
AC_DEFUN([AM_MISSING_HAS_RUN],
|
||||
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||
test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
|
||||
# Use eval to expand $SHELL
|
||||
if eval "$MISSING --run true"; then
|
||||
am_missing_run="$MISSING --run "
|
||||
else
|
||||
am_missing_run=
|
||||
AC_MSG_WARN([`missing' script is too old or missing])
|
||||
fi
|
||||
])
|
||||
|
||||
# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# AM_PROG_MKDIR_P
|
||||
# ---------------
|
||||
# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
|
||||
#
|
||||
# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
|
||||
# created by `make install' are always world readable, even if the
|
||||
# installer happens to have an overly restrictive umask (e.g. 077).
|
||||
# This was a mistake. There are at least two reasons why we must not
|
||||
# use `-m 0755':
|
||||
# - it causes special bits like SGID to be ignored,
|
||||
# - it may be too restrictive (some setups expect 775 directories).
|
||||
#
|
||||
# Do not use -m 0755 and let people choose whatever they expect by
|
||||
# setting umask.
|
||||
#
|
||||
# We cannot accept any implementation of `mkdir' that recognizes `-p'.
|
||||
# Some implementations (such as Solaris 8's) are not thread-safe: if a
|
||||
# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c'
|
||||
# concurrently, both version can detect that a/ is missing, but only
|
||||
# one can create it and the other will error out. Consequently we
|
||||
# restrict ourselves to GNU make (using the --version option ensures
|
||||
# this.)
|
||||
AC_DEFUN([AM_PROG_MKDIR_P],
|
||||
[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
|
||||
# We used to keeping the `.' as first argument, in order to
|
||||
# allow $(mkdir_p) to be used without argument. As in
|
||||
# $(mkdir_p) $(somedir)
|
||||
# where $(somedir) is conditionally defined. However this is wrong
|
||||
# for two reasons:
|
||||
# 1. if the package is installed by a user who cannot write `.'
|
||||
# make install will fail,
|
||||
# 2. the above comment should most certainly read
|
||||
# $(mkdir_p) $(DESTDIR)$(somedir)
|
||||
# so it does not work when $(somedir) is undefined and
|
||||
# $(DESTDIR) is not.
|
||||
# To support the latter case, we have to write
|
||||
# test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
|
||||
# so the `.' trick is pointless.
|
||||
mkdir_p='mkdir -p --'
|
||||
else
|
||||
# On NextStep and OpenStep, the `mkdir' command does not
|
||||
# recognize any option. It will interpret all options as
|
||||
# directories to create, and then abort because `.' already
|
||||
# exists.
|
||||
for d in ./-p ./--version;
|
||||
do
|
||||
test -d $d && rmdir $d
|
||||
done
|
||||
# $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
|
||||
if test -f "$ac_aux_dir/mkinstalldirs"; then
|
||||
mkdir_p='$(mkinstalldirs)'
|
||||
else
|
||||
mkdir_p='$(install_sh) -d'
|
||||
fi
|
||||
fi
|
||||
AC_SUBST([mkdir_p])])
|
||||
|
||||
# Helper functions for option handling. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 3
|
||||
|
||||
# _AM_MANGLE_OPTION(NAME)
|
||||
# -----------------------
|
||||
AC_DEFUN([_AM_MANGLE_OPTION],
|
||||
[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
|
||||
|
||||
# _AM_SET_OPTION(NAME)
|
||||
# ------------------------------
|
||||
# Set option NAME. Presently that only means defining a flag for this option.
|
||||
AC_DEFUN([_AM_SET_OPTION],
|
||||
[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
|
||||
|
||||
# _AM_SET_OPTIONS(OPTIONS)
|
||||
# ----------------------------------
|
||||
# OPTIONS is a space-separated list of Automake options.
|
||||
AC_DEFUN([_AM_SET_OPTIONS],
|
||||
[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
|
||||
|
||||
# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
|
||||
# -------------------------------------------
|
||||
# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
|
||||
AC_DEFUN([_AM_IF_OPTION],
|
||||
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
|
||||
|
||||
# Check to make sure that the build environment is sane. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 4
|
||||
|
||||
# AM_SANITY_CHECK
|
||||
# ---------------
|
||||
AC_DEFUN([AM_SANITY_CHECK],
|
||||
[AC_MSG_CHECKING([whether build environment is sane])
|
||||
# Just in case
|
||||
sleep 1
|
||||
echo timestamp > conftest.file
|
||||
# Do `set' in a subshell so we don't clobber the current shell's
|
||||
# arguments. Must try -L first in case configure is actually a
|
||||
# symlink; some systems play weird games with the mod time of symlinks
|
||||
# (eg FreeBSD returns the mod time of the symlink's containing
|
||||
# directory).
|
||||
if (
|
||||
set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
|
||||
if test "$[*]" = "X"; then
|
||||
# -L didn't work.
|
||||
set X `ls -t $srcdir/configure conftest.file`
|
||||
fi
|
||||
rm -f conftest.file
|
||||
if test "$[*]" != "X $srcdir/configure conftest.file" \
|
||||
&& test "$[*]" != "X conftest.file $srcdir/configure"; then
|
||||
|
||||
# If neither matched, then we have a broken ls. This can happen
|
||||
# if, for instance, CONFIG_SHELL is bash and it inherits a
|
||||
# broken ls alias from the environment. This has actually
|
||||
# happened. Such a system could not be considered "sane".
|
||||
AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
|
||||
alias in your environment])
|
||||
fi
|
||||
|
||||
test "$[2]" = conftest.file
|
||||
)
|
||||
then
|
||||
# Ok.
|
||||
:
|
||||
else
|
||||
AC_MSG_ERROR([newly created file is older than distributed files!
|
||||
Check your system clock])
|
||||
fi
|
||||
AC_MSG_RESULT(yes)])
|
||||
|
||||
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# AM_PROG_INSTALL_STRIP
|
||||
# ---------------------
|
||||
# One issue with vendor `install' (even GNU) is that you can't
|
||||
# specify the program used to strip binaries. This is especially
|
||||
# annoying in cross-compiling environments, where the build's strip
|
||||
# is unlikely to handle the host's binaries.
|
||||
# Fortunately install-sh will honor a STRIPPROG variable, so we
|
||||
# always use install-sh in `make install-strip', and initialize
|
||||
# STRIPPROG with the value of the STRIP variable (set by the user).
|
||||
AC_DEFUN([AM_PROG_INSTALL_STRIP],
|
||||
[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
|
||||
# Installed binaries are usually stripped using `strip' when the user
|
||||
# run `make install-strip'. However `strip' might not be the right
|
||||
# tool to use in cross-compilation environments, therefore Automake
|
||||
# will honor the `STRIP' environment variable to overrule this program.
|
||||
dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
|
||||
if test "$cross_compiling" != no; then
|
||||
AC_CHECK_TOOL([STRIP], [strip], :)
|
||||
fi
|
||||
INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
|
||||
AC_SUBST([INSTALL_STRIP_PROGRAM])])
|
||||
|
||||
# Check how to create a tarball. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 2
|
||||
|
||||
# _AM_PROG_TAR(FORMAT)
|
||||
# --------------------
|
||||
# Check how to create a tarball in format FORMAT.
|
||||
# FORMAT should be one of `v7', `ustar', or `pax'.
|
||||
#
|
||||
# Substitute a variable $(am__tar) that is a command
|
||||
# writing to stdout a FORMAT-tarball containing the directory
|
||||
# $tardir.
|
||||
# tardir=directory && $(am__tar) > result.tar
|
||||
#
|
||||
# Substitute a variable $(am__untar) that extract such
|
||||
# a tarball read from stdin.
|
||||
# $(am__untar) < result.tar
|
||||
AC_DEFUN([_AM_PROG_TAR],
|
||||
[# Always define AMTAR for backward compatibility.
|
||||
AM_MISSING_PROG([AMTAR], [tar])
|
||||
m4_if([$1], [v7],
|
||||
[am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
|
||||
[m4_case([$1], [ustar],, [pax],,
|
||||
[m4_fatal([Unknown tar format])])
|
||||
AC_MSG_CHECKING([how to create a $1 tar archive])
|
||||
# Loop over all known methods to create a tar archive until one works.
|
||||
_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
|
||||
_am_tools=${am_cv_prog_tar_$1-$_am_tools}
|
||||
# Do not fold the above two line into one, because Tru64 sh and
|
||||
# Solaris sh will not grok spaces in the rhs of `-'.
|
||||
for _am_tool in $_am_tools
|
||||
do
|
||||
case $_am_tool in
|
||||
gnutar)
|
||||
for _am_tar in tar gnutar gtar;
|
||||
do
|
||||
AM_RUN_LOG([$_am_tar --version]) && break
|
||||
done
|
||||
am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
|
||||
am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
|
||||
am__untar="$_am_tar -xf -"
|
||||
;;
|
||||
plaintar)
|
||||
# Must skip GNU tar: if it does not support --format= it doesn't create
|
||||
# ustar tarball either.
|
||||
(tar --version) >/dev/null 2>&1 && continue
|
||||
am__tar='tar chf - "$$tardir"'
|
||||
am__tar_='tar chf - "$tardir"'
|
||||
am__untar='tar xf -'
|
||||
;;
|
||||
pax)
|
||||
am__tar='pax -L -x $1 -w "$$tardir"'
|
||||
am__tar_='pax -L -x $1 -w "$tardir"'
|
||||
am__untar='pax -r'
|
||||
;;
|
||||
cpio)
|
||||
am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
|
||||
am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
|
||||
am__untar='cpio -i -H $1 -d'
|
||||
;;
|
||||
none)
|
||||
am__tar=false
|
||||
am__tar_=false
|
||||
am__untar=false
|
||||
;;
|
||||
esac
|
||||
|
||||
# If the value was cached, stop now. We just wanted to have am__tar
|
||||
# and am__untar set.
|
||||
test -n "${am_cv_prog_tar_$1}" && break
|
||||
|
||||
# tar/untar a dummy directory, and stop if the command works
|
||||
rm -rf conftest.dir
|
||||
mkdir conftest.dir
|
||||
echo GrepMe > conftest.dir/file
|
||||
AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
|
||||
rm -rf conftest.dir
|
||||
if test -s conftest.tar; then
|
||||
AM_RUN_LOG([$am__untar <conftest.tar])
|
||||
grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
|
||||
fi
|
||||
done
|
||||
rm -rf conftest.dir
|
||||
|
||||
AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
|
||||
AC_MSG_RESULT([$am_cv_prog_tar_$1])])
|
||||
AC_SUBST([am__tar])
|
||||
AC_SUBST([am__untar])
|
||||
]) # _AM_PROG_TAR
|
||||
|
||||
m4_include([acinclude.m4])
|
@ -1,187 +0,0 @@
|
||||
#
|
||||
#
|
||||
DESTDIR =
|
||||
VPATH = @srcdir@ @srcdir@/..
|
||||
srcdir = @srcdir@
|
||||
objdir = .
|
||||
srcroot = $(srcdir)/../..
|
||||
objroot = $(objdir)/../..
|
||||
|
||||
prefix = @prefix@
|
||||
exec_prefix = @exec_prefix@
|
||||
|
||||
host_alias = @host_alias@
|
||||
target_alias = @target_alias@
|
||||
|
||||
bindir = @bindir@
|
||||
libdir = @libdir@
|
||||
tooldir = $(exec_prefix)/$(target_alias)
|
||||
|
||||
objtype = @objtype@
|
||||
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
|
||||
# Multilib support variables.
|
||||
# TOP is used instead of MULTI{BUILD,SRC}TOP.
|
||||
MULTISRCTOP =
|
||||
MULTIBUILDTOP =
|
||||
MULTIDIRS =
|
||||
MULTISUBDIR =
|
||||
MULTIDO = true
|
||||
MULTICLEAN = true
|
||||
|
||||
SHELL = /bin/sh
|
||||
|
||||
CC = @CC@
|
||||
|
||||
AS = @AS@
|
||||
AR = @AR@
|
||||
LD = @LD@
|
||||
RANLIB = @RANLIB@
|
||||
|
||||
OBJDUMP = `if [ -f ${objroot}/../binutils/objdump ] ; \
|
||||
then echo ${objroot}/../binutils/objdump ; \
|
||||
else t='$(program_transform_name)'; echo objdump | sed -e $$t ; fi`
|
||||
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 =
|
||||
|
||||
LINUX_CRT0 = linux-crt0.o
|
||||
LINUX_BSP = libgloss-linux.a
|
||||
LINUX_OBJS = linux-syscalls0.o linux-syscalls1.o
|
||||
LINUX_SCRIPTS = linux.specs
|
||||
LINUX_INSTALL = install-linux
|
||||
|
||||
REDBOOT_CRT0 = redboot-crt0.o
|
||||
REDBOOT_OBJS = 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 _exit.o _kill.o
|
||||
RDPMON_SCRIPTS = rdpmon.specs
|
||||
RDPMON_INSTALL = install-rdpmon
|
||||
|
||||
RDIMON_CRT0 = rdimon-crt0.o
|
||||
RDIMON_BSP = librdimon.a
|
||||
RDIMON_OBJS = $(patsubst %,rdimon-%,$(RDPMON_OBJS))
|
||||
RDIMON_SCRIPTS = rdimon.specs
|
||||
RDIMON_INSTALL = install-rdimon
|
||||
|
||||
CFLAGS = -g
|
||||
|
||||
# Here is all of the eval board stuff
|
||||
PID_SCRIPTS = pid.specs
|
||||
PID_INSTALL = install-pid
|
||||
|
||||
IQ80310_SCRIPTS = iq80310.specs
|
||||
IQ80310_INSTALL = install-iq80310
|
||||
|
||||
|
||||
# Host specific makefile fragment comes in here.
|
||||
@host_makefile_frag@
|
||||
|
||||
#
|
||||
# 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} ${LINUX_CRT0} ${LINUX_BSP} ${REDBOOT_CRT0} ${REDBOOT_OBJS} ${RDPMON_CRT0} ${RDPMON_BSP} ${RDIMON_CRT0} ${RDIMON_BSP}
|
||||
|
||||
#
|
||||
# here's where we build the test programs for each target
|
||||
#
|
||||
.PHONY: test
|
||||
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) $(CFLAGS) $(INCLUDES) -DARM_RDP_MONITOR -o $@ -c $<
|
||||
|
||||
rdimon-crt0.o: crt0.S
|
||||
$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<
|
||||
|
||||
rdimon-trap.o: trap.S
|
||||
$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<
|
||||
|
||||
rdimon-_exit.o: _exit.c
|
||||
$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<
|
||||
|
||||
rdimon-_kill.o: _kill.c
|
||||
$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<
|
||||
|
||||
rdimon-syscalls.o: syscalls.c
|
||||
$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<
|
||||
|
||||
rdimon-libcfunc.o: libcfunc.c
|
||||
$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<
|
||||
|
||||
$(LINUX_BSP): $(LINUX_OBJS)
|
||||
${AR} ${ARFLAGS} $@ $^
|
||||
${RANLIB} $@
|
||||
|
||||
$(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)
|
||||
|
||||
distclean maintainer-clean realclean: clean
|
||||
rm -f Makefile config.status *~
|
||||
|
||||
.PHONY: install info install-info clean-info
|
||||
install: ${CRT0_INSTALL} ${LINUX_INSTALL} ${REDBOOT_INSTALL} ${RDPMON_INSTALL} ${RDIMON_INSTALL} ${IQ80310_INSTALL} ${PID_INSTALL}
|
||||
|
||||
install-crt0:
|
||||
${INSTALL_DATA} ${CRT0} $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x
|
||||
|
||||
install-linux:
|
||||
set -e; for x in ${LINUX_CRT0} ${LINUX_BSP}; do ${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
|
||||
set -e; for x in ${LINUX_SCRIPTS}; do ${INSTALL_DATA} ${srcdir}/${objtype}$$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
|
||||
|
||||
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
|
||||
|
||||
|
||||
install-pid:
|
||||
set -e; for x in ${PID_SCRIPTS}; do ${INSTALL_DATA} ${srcdir}/${objtype}$$x $(DESTDIR)${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
|
||||
|
||||
|
||||
doc:
|
||||
info:
|
||||
install-info:
|
||||
clean-info:
|
||||
|
||||
Makefile: Makefile.in config.status @host_makefile_frag_path@
|
||||
$(SHELL) config.status
|
||||
|
||||
config.status: configure
|
||||
$(SHELL) config.status --recheck
|
@ -1,15 +0,0 @@
|
||||
#include <_ansi.h>
|
||||
|
||||
int _kill _PARAMS ((int, int));
|
||||
void _exit _PARAMS ((int));
|
||||
|
||||
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);
|
||||
}
|
@ -1,25 +0,0 @@
|
||||
#include <_ansi.h>
|
||||
#include <signal.h>
|
||||
#include "swi.h"
|
||||
|
||||
int _kill _PARAMS ((int, int));
|
||||
|
||||
int
|
||||
_kill (int pid, int sig)
|
||||
{
|
||||
(void) pid; (void) sig;
|
||||
#ifdef ARM_RDI_MONITOR
|
||||
/* Note: The pid argument is thrown away. */
|
||||
switch (sig)
|
||||
{
|
||||
case SIGABRT:
|
||||
return do_AngelSWI (AngelSWI_Reason_ReportException,
|
||||
(void *) ADP_Stopped_RunTimeError);
|
||||
default:
|
||||
return do_AngelSWI (AngelSWI_Reason_ReportException,
|
||||
(void *) ADP_Stopped_ApplicationExit);
|
||||
}
|
||||
#else
|
||||
asm ("swi %a0" :: "i" (SWI_Exit));
|
||||
#endif
|
||||
}
|
344
libgloss/arm/aclocal.m4
vendored
344
libgloss/arm/aclocal.m4
vendored
@ -1,344 +0,0 @@
|
||||
# generated automatically by aclocal 1.9.5 -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||
# 2005 Free Software Foundation, Inc.
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
# AM_CONDITIONAL -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 7
|
||||
|
||||
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
|
||||
# -------------------------------------
|
||||
# Define a conditional.
|
||||
AC_DEFUN([AM_CONDITIONAL],
|
||||
[AC_PREREQ(2.52)dnl
|
||||
ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
|
||||
[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
|
||||
AC_SUBST([$1_TRUE])
|
||||
AC_SUBST([$1_FALSE])
|
||||
if $2; then
|
||||
$1_TRUE=
|
||||
$1_FALSE='#'
|
||||
else
|
||||
$1_TRUE='#'
|
||||
$1_FALSE=
|
||||
fi
|
||||
AC_CONFIG_COMMANDS_PRE(
|
||||
[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
|
||||
AC_MSG_ERROR([[conditional "$1" was never defined.
|
||||
Usually this means the macro was only invoked conditionally.]])
|
||||
fi])])
|
||||
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 8
|
||||
|
||||
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
|
||||
# written in clear, in which case automake, when reading aclocal.m4,
|
||||
# will think it sees a *use*, and therefore will trigger all it's
|
||||
# C support machinery. Also note that it means that autoscan, seeing
|
||||
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
|
||||
|
||||
|
||||
# _AM_DEPENDENCIES(NAME)
|
||||
# ----------------------
|
||||
# See how the compiler implements dependency checking.
|
||||
# NAME is "CC", "CXX", "GCJ", or "OBJC".
|
||||
# We try a few techniques and use that to set a single cache variable.
|
||||
#
|
||||
# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
|
||||
# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
|
||||
# dependency, and given that the user is not expected to run this macro,
|
||||
# just rely on AC_PROG_CC.
|
||||
AC_DEFUN([_AM_DEPENDENCIES],
|
||||
[AC_REQUIRE([AM_SET_DEPDIR])dnl
|
||||
AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
|
||||
AC_REQUIRE([AM_MAKE_INCLUDE])dnl
|
||||
AC_REQUIRE([AM_DEP_TRACK])dnl
|
||||
|
||||
ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
|
||||
[$1], CXX, [depcc="$CXX" am_compiler_list=],
|
||||
[$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
|
||||
[$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
|
||||
[depcc="$$1" am_compiler_list=])
|
||||
|
||||
AC_CACHE_CHECK([dependency style of $depcc],
|
||||
[am_cv_$1_dependencies_compiler_type],
|
||||
[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
|
||||
# We make a subdir and do the tests there. Otherwise we can end up
|
||||
# making bogus files that we don't know about and never remove. For
|
||||
# instance it was reported that on HP-UX the gcc test will end up
|
||||
# making a dummy file named `D' -- because `-MD' means `put the output
|
||||
# in D'.
|
||||
mkdir conftest.dir
|
||||
# Copy depcomp to subdir because otherwise we won't find it if we're
|
||||
# using a relative directory.
|
||||
cp "$am_depcomp" conftest.dir
|
||||
cd conftest.dir
|
||||
# We will build objects and dependencies in a subdirectory because
|
||||
# it helps to detect inapplicable dependency modes. For instance
|
||||
# both Tru64's cc and ICC support -MD to output dependencies as a
|
||||
# side effect of compilation, but ICC will put the dependencies in
|
||||
# the current directory while Tru64 will put them in the object
|
||||
# directory.
|
||||
mkdir sub
|
||||
|
||||
am_cv_$1_dependencies_compiler_type=none
|
||||
if test "$am_compiler_list" = ""; then
|
||||
am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
|
||||
fi
|
||||
for depmode in $am_compiler_list; do
|
||||
# Setup a source with many dependencies, because some compilers
|
||||
# like to wrap large dependency lists on column 80 (with \), and
|
||||
# we should not choose a depcomp mode which is confused by this.
|
||||
#
|
||||
# We need to recreate these files for each test, as the compiler may
|
||||
# overwrite some of them when testing with obscure command lines.
|
||||
# This happens at least with the AIX C compiler.
|
||||
: > sub/conftest.c
|
||||
for i in 1 2 3 4 5 6; do
|
||||
echo '#include "conftst'$i'.h"' >> sub/conftest.c
|
||||
# Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
|
||||
# Solaris 8's {/usr,}/bin/sh.
|
||||
touch sub/conftst$i.h
|
||||
done
|
||||
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
|
||||
|
||||
case $depmode in
|
||||
nosideeffect)
|
||||
# after this tag, mechanisms are not by side-effect, so they'll
|
||||
# only be used when explicitly requested
|
||||
if test "x$enable_dependency_tracking" = xyes; then
|
||||
continue
|
||||
else
|
||||
break
|
||||
fi
|
||||
;;
|
||||
none) break ;;
|
||||
esac
|
||||
# We check with `-c' and `-o' for the sake of the "dashmstdout"
|
||||
# mode. It turns out that the SunPro C++ compiler does not properly
|
||||
# handle `-M -o', and we need to detect this.
|
||||
if depmode=$depmode \
|
||||
source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
|
||||
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
|
||||
$SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
|
||||
>/dev/null 2>conftest.err &&
|
||||
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
|
||||
grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
|
||||
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
|
||||
# icc doesn't choke on unknown options, it will just issue warnings
|
||||
# or remarks (even with -Werror). So we grep stderr for any message
|
||||
# that says an option was ignored or not supported.
|
||||
# When given -MP, icc 7.0 and 7.1 complain thusly:
|
||||
# icc: Command line warning: ignoring option '-M'; no argument required
|
||||
# The diagnosis changed in icc 8.0:
|
||||
# icc: Command line remark: option '-MP' not supported
|
||||
if (grep 'ignoring option' conftest.err ||
|
||||
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
|
||||
am_cv_$1_dependencies_compiler_type=$depmode
|
||||
break
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
cd ..
|
||||
rm -rf conftest.dir
|
||||
else
|
||||
am_cv_$1_dependencies_compiler_type=none
|
||||
fi
|
||||
])
|
||||
AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
|
||||
AM_CONDITIONAL([am__fastdep$1], [
|
||||
test "x$enable_dependency_tracking" != xno \
|
||||
&& test "$am_cv_$1_dependencies_compiler_type" = gcc3])
|
||||
])
|
||||
|
||||
|
||||
# AM_SET_DEPDIR
|
||||
# -------------
|
||||
# Choose a directory name for dependency files.
|
||||
# This macro is AC_REQUIREd in _AM_DEPENDENCIES
|
||||
AC_DEFUN([AM_SET_DEPDIR],
|
||||
[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
||||
AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
|
||||
])
|
||||
|
||||
|
||||
# AM_DEP_TRACK
|
||||
# ------------
|
||||
AC_DEFUN([AM_DEP_TRACK],
|
||||
[AC_ARG_ENABLE(dependency-tracking,
|
||||
[ --disable-dependency-tracking speeds up one-time build
|
||||
--enable-dependency-tracking do not reject slow dependency extractors])
|
||||
if test "x$enable_dependency_tracking" != xno; then
|
||||
am_depcomp="$ac_aux_dir/depcomp"
|
||||
AMDEPBACKSLASH='\'
|
||||
fi
|
||||
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
|
||||
AC_SUBST([AMDEPBACKSLASH])
|
||||
])
|
||||
|
||||
# Generate code to set up dependency tracking. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
#serial 3
|
||||
|
||||
# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
# ------------------------------
|
||||
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[for mf in $CONFIG_FILES; do
|
||||
# Strip MF so we end up with the name of the file.
|
||||
mf=`echo "$mf" | sed -e 's/:.*$//'`
|
||||
# Check whether this is an Automake generated Makefile or not.
|
||||
# We used to match only the files named `Makefile.in', but
|
||||
# some people rename them; so instead we look at the file content.
|
||||
# Grep'ing the first line is not enough: some people post-process
|
||||
# each Makefile.in and add a new line on top of each file to say so.
|
||||
# So let's grep whole file.
|
||||
if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
|
||||
dirpart=`AS_DIRNAME("$mf")`
|
||||
else
|
||||
continue
|
||||
fi
|
||||
# Extract the definition of DEPDIR, am__include, and am__quote
|
||||
# from the Makefile without running `make'.
|
||||
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
|
||||
test -z "$DEPDIR" && continue
|
||||
am__include=`sed -n 's/^am__include = //p' < "$mf"`
|
||||
test -z "am__include" && continue
|
||||
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
|
||||
# When using ansi2knr, U may be empty or an underscore; expand it
|
||||
U=`sed -n 's/^U = //p' < "$mf"`
|
||||
# Find all dependency output files, they are included files with
|
||||
# $(DEPDIR) in their names. We invoke sed twice because it is the
|
||||
# simplest approach to changing $(DEPDIR) to its actual value in the
|
||||
# expansion.
|
||||
for file in `sed -n "
|
||||
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
|
||||
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
|
||||
# Make sure the directory exists.
|
||||
test -f "$dirpart/$file" && continue
|
||||
fdir=`AS_DIRNAME(["$file"])`
|
||||
AS_MKDIR_P([$dirpart/$fdir])
|
||||
# echo "creating $dirpart/$file"
|
||||
echo '# dummy' > "$dirpart/$file"
|
||||
done
|
||||
done
|
||||
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
|
||||
|
||||
# AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
# -----------------------------
|
||||
# This macro should only be invoked once -- use via AC_REQUIRE.
|
||||
#
|
||||
# This code is only required when automatic dependency tracking
|
||||
# is enabled. FIXME. This creates each `.P' file that we will
|
||||
# need in order to bootstrap the dependency handling code.
|
||||
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[AC_CONFIG_COMMANDS([depfiles],
|
||||
[test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
|
||||
])
|
||||
|
||||
# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 2
|
||||
|
||||
# Check whether the underlying file-system supports filenames
|
||||
# with a leading dot. For instance MS-DOS doesn't.
|
||||
AC_DEFUN([AM_SET_LEADING_DOT],
|
||||
[rm -rf .tst 2>/dev/null
|
||||
mkdir .tst 2>/dev/null
|
||||
if test -d .tst; then
|
||||
am__leading_dot=.
|
||||
else
|
||||
am__leading_dot=_
|
||||
fi
|
||||
rmdir .tst 2>/dev/null
|
||||
AC_SUBST([am__leading_dot])])
|
||||
|
||||
# Check to see how 'make' treats includes. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 3
|
||||
|
||||
# AM_MAKE_INCLUDE()
|
||||
# -----------------
|
||||
# Check to see how make treats includes.
|
||||
AC_DEFUN([AM_MAKE_INCLUDE],
|
||||
[am_make=${MAKE-make}
|
||||
cat > confinc << 'END'
|
||||
am__doit:
|
||||
@echo done
|
||||
.PHONY: am__doit
|
||||
END
|
||||
# If we don't find an include directive, just comment out the code.
|
||||
AC_MSG_CHECKING([for style of include used by $am_make])
|
||||
am__include="#"
|
||||
am__quote=
|
||||
_am_result=none
|
||||
# First try GNU make style include.
|
||||
echo "include confinc" > confmf
|
||||
# We grep out `Entering directory' and `Leaving directory'
|
||||
# messages which can occur if `w' ends up in MAKEFLAGS.
|
||||
# In particular we don't look at `^make:' because GNU make might
|
||||
# be invoked under some other name (usually "gmake"), in which
|
||||
# case it prints its new name instead of `make'.
|
||||
if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
|
||||
am__include=include
|
||||
am__quote=
|
||||
_am_result=GNU
|
||||
fi
|
||||
# Now try BSD make style include.
|
||||
if test "$am__include" = "#"; then
|
||||
echo '.include "confinc"' > confmf
|
||||
if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
|
||||
am__include=.include
|
||||
am__quote="\""
|
||||
_am_result=BSD
|
||||
fi
|
||||
fi
|
||||
AC_SUBST([am__include])
|
||||
AC_SUBST([am__quote])
|
||||
AC_MSG_RESULT([$_am_result])
|
||||
rm -f confinc confmf
|
||||
])
|
||||
|
||||
m4_include([../acinclude.m4])
|
@ -1,62 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2011 ARM Ltd
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. The name of the company may not be used to endorse or promote
|
||||
* products derived from this software without specific prior written
|
||||
* permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
* IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
||||
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _LIBGLOSS_ARM_H
|
||||
#define _LIBGLOSS_ARM_H
|
||||
|
||||
/* __thumb2__ stands for thumb on armva7(A/R/M/EM) architectures,
|
||||
__ARM_ARCH_6M__ stands for armv6-M(thumb only) architecture,
|
||||
__ARM_ARCH_7M__ stands for armv7-M(thumb only) architecture.
|
||||
__ARM_ARCH_7EM__ stands for armv7e-M(thumb only) architecture.
|
||||
There are some macro combinations used many times in libgloss/arm,
|
||||
like (__thumb2__ || (__thumb__ && __ARM_ARCH_6M__)), so factor
|
||||
it out and use THUMB_V7_V6M instead, which stands for thumb on
|
||||
v6-m/v7 arch as the combination does. */
|
||||
#if defined(__thumb2__) || (defined(__thumb__) && defined(__ARM_ARCH_6M__))
|
||||
# define THUMB_V7_V6M
|
||||
#endif
|
||||
|
||||
/* The (__ARM_ARCH_7EM__ || __ARM_ARCH_7M__ || __ARM_ARCH_6M__) combination
|
||||
stands for cortex-M profile architectures, which don't support ARM state.
|
||||
Factor it out and use THUMB_V7M_V6M instead. */
|
||||
#if defined(__ARM_ARCH_7M__) \
|
||||
|| defined(__ARM_ARCH_7EM__) \
|
||||
|| defined(__ARM_ARCH_6M__)
|
||||
# define THUMB_V7M_V6M
|
||||
#endif
|
||||
|
||||
/* Defined if this target supports the BLX Rm instruction. */
|
||||
#if !defined(__ARM_ARCH_2__) \
|
||||
&& !defined(__ARM_ARCH_3__) \
|
||||
&& !defined(__ARM_ARCH_3M__) \
|
||||
&& !defined(__ARM_ARCH_4__) \
|
||||
&& !defined(__ARM_ARCH_4T__)
|
||||
# define HAVE_CALL_INDIRECT
|
||||
#endif
|
||||
|
||||
#endif /* _LIBGLOSS_ARM_H */
|
@ -1,8 +0,0 @@
|
||||
%rename link old_link
|
||||
|
||||
*link:
|
||||
-T redboot.ld%s -Ttext 0xA0020000 %(old_link)
|
||||
|
||||
*startfile:
|
||||
%{!pg:redboot-crt0%O%s} %{pg:redboot-crt0%O%s} redboot-syscalls%O%s
|
||||
|
@ -1,8 +0,0 @@
|
||||
%rename link old_link
|
||||
|
||||
*link:
|
||||
-T redboot.ld%s -Ttext 0x10000 %(old_link)
|
||||
|
||||
*startfile:
|
||||
redboot-crt0%O%s redboot-syscalls%O%s
|
||||
|
@ -1,8 +0,0 @@
|
||||
%rename link old_link
|
||||
|
||||
*link:
|
||||
%(old_link) -lrdimon
|
||||
|
||||
*startfile:
|
||||
rdimon-crt0%O%s
|
||||
|
@ -1,8 +0,0 @@
|
||||
%rename link old_link
|
||||
|
||||
*link:
|
||||
%(old_link) -lrdpmon
|
||||
|
||||
*startfile:
|
||||
rdpmon-crt0%O%s
|
||||
|
@ -1,54 +0,0 @@
|
||||
OUTPUT_FORMAT("coff-arm-little", "coff-arm-big", "coff-arm-little")
|
||||
SEARCH_DIR(/toolbin/xscale-coff/lib);
|
||||
ENTRY(_start)
|
||||
SECTIONS
|
||||
{
|
||||
/* We start at 0x8000 because gdb assumes it (see FRAME_CHAIN).
|
||||
This is an artifact of the ARM Demon monitor using the bottom 32k
|
||||
as workspace (shared with the FP instruction emulator if
|
||||
present): */
|
||||
.text 0x8000 : {
|
||||
*(.init)
|
||||
*(.text*)
|
||||
*(.glue_7t)
|
||||
*(.glue_7)
|
||||
*(.rdata)
|
||||
___CTOR_LIST__ = .; __CTOR_LIST__ = . ;
|
||||
LONG (-1); *(.ctors); *(.ctor); LONG (0);
|
||||
___DTOR_LIST__ = .; __DTOR_LIST__ = . ;
|
||||
LONG (-1); *(.dtors); *(.dtor); LONG (0);
|
||||
*(.fini)
|
||||
etext = .;
|
||||
_etext = .;
|
||||
}
|
||||
.data 0x40000 + (. & 0xfffc0fff) : {
|
||||
__data_start__ = . ;
|
||||
*(.data*)
|
||||
*(.gcc_exc*)
|
||||
___EH_FRAME_BEGIN__ = . ;
|
||||
*(.eh_fram*)
|
||||
___EH_FRAME_END__ = . ;
|
||||
LONG(0);
|
||||
__data_end__ = . ;
|
||||
edata = .;
|
||||
_edata = .;
|
||||
}
|
||||
.bss SIZEOF(.data) + ADDR(.data) :
|
||||
{
|
||||
__bss_start__ = . ;
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
__bss_end__ = . ;
|
||||
}
|
||||
end = .;
|
||||
_end = .;
|
||||
__end__ = .;
|
||||
.stab 0 (NOLOAD) :
|
||||
{
|
||||
[ .stab ]
|
||||
}
|
||||
.stabstr 0 (NOLOAD) :
|
||||
{
|
||||
[ .stabstr ]
|
||||
}
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
%rename link old_link
|
||||
|
||||
*link:
|
||||
-T redboot.ld%s -Ttext 0x20000 %(old_link)
|
||||
|
||||
*startfile:
|
||||
redboot-crt0%O%s redboot-syscalls%O%s
|
||||
|
3770
libgloss/arm/configure
vendored
3770
libgloss/arm/configure
vendored
File diff suppressed because it is too large
Load Diff
@ -1,82 +0,0 @@
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
AC_PREREQ(2.59)
|
||||
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}../../.."
|
||||
else
|
||||
libgloss_topdir="${srcdir}/${with_multisrctop}../.."
|
||||
fi
|
||||
else
|
||||
libgloss_topdir="${srcdir}/../.."
|
||||
fi
|
||||
AC_CONFIG_AUX_DIR($libgloss_topdir)
|
||||
|
||||
AC_CANONICAL_SYSTEM
|
||||
AC_ARG_PROGRAM
|
||||
|
||||
AC_PROG_INSTALL
|
||||
|
||||
LIB_AC_PROG_CC
|
||||
AS=${AS-as}
|
||||
AC_SUBST(AS)
|
||||
AR=${AR-ar}
|
||||
AC_SUBST(AR)
|
||||
LD=${LD-ld}
|
||||
AC_SUBST(LD)
|
||||
AC_PROG_RANLIB
|
||||
LIB_AM_PROG_AS
|
||||
|
||||
case "${target}" in
|
||||
*-*-elf | *-*-eabi)
|
||||
objtype=elf-
|
||||
;;
|
||||
*-*-coff)
|
||||
objtype=coff-
|
||||
;;
|
||||
esac
|
||||
|
||||
AC_SUBST(objtype)
|
||||
|
||||
host_makefile_frag=${srcdir}/../config/default.mh
|
||||
|
||||
dnl We have to assign the same value to other variables because autoconf
|
||||
dnl doesn't provide a mechanism to substitute a replacement keyword with
|
||||
dnl arbitrary data or pathnames.
|
||||
dnl
|
||||
host_makefile_frag_path=$host_makefile_frag
|
||||
AC_SUBST(host_makefile_frag_path)
|
||||
AC_SUBST_FILE(host_makefile_frag)
|
||||
|
||||
AC_CONFIG_FILES(Makefile,
|
||||
. ${libgloss_topdir}/config-ml.in,
|
||||
srcdir=${srcdir}
|
||||
target=${target}
|
||||
with_multisubdir=${with_multisubdir}
|
||||
ac_configure_args="${ac_configure_args} --enable-multilib"
|
||||
CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
|
||||
libgloss_topdir=${libgloss_topdir}
|
||||
)
|
||||
AC_OUTPUT
|
||||
|
@ -1,492 +0,0 @@
|
||||
#include "newlib.h"
|
||||
#include "arm.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
|
||||
|
||||
#if defined(__ARM_EABI__) && defined(__thumb__) && !defined(__thumb2__)
|
||||
/* For Thumb1 we need to force the architecture to be sure that we get the
|
||||
correct attributes on the object file; otherwise the assembler will get
|
||||
confused and mark the object as being v6T2. */
|
||||
#if defined(__ARM_ARCH_4T__)
|
||||
.arch armv4t
|
||||
#elif defined(__ARM_ARCH_5T__) || defined(__ARM_ARCH_5TE__)
|
||||
/* Nothing in this object requires higher than v5. */
|
||||
.arch armv5t
|
||||
#elif defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) \
|
||||
|| defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) \
|
||||
|| defined(__ARM_ARCH_6ZK__)
|
||||
/* Nothing in this object requires higher than v6. */
|
||||
.arch armv6
|
||||
#elif defined(__ARM_ARCH_6M__)
|
||||
#ifdef ARM_RDP_MONITOR
|
||||
/* Object file uses SVC, so mark as v6s-m. */
|
||||
.arch armv6s-m
|
||||
#else
|
||||
.arch armv6-m
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* .text is used instead of .section .text so it works with arm-aout too. */
|
||||
.text
|
||||
.syntax unified
|
||||
#ifdef THUMB_V7_V6M
|
||||
.thumb
|
||||
.macro FUNC_START name
|
||||
.global \name
|
||||
.thumb_func
|
||||
\name:
|
||||
.endm
|
||||
#else
|
||||
.code 32
|
||||
.macro FUNC_START name
|
||||
.global \name
|
||||
\name:
|
||||
.endm
|
||||
#endif
|
||||
|
||||
.macro indirect_call reg
|
||||
#ifdef HAVE_CALL_INDIRECT
|
||||
blx \reg
|
||||
#else
|
||||
mov lr, pc
|
||||
mov pc, \reg
|
||||
#endif
|
||||
.endm
|
||||
|
||||
.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 */
|
||||
|
||||
/* stack limit is at end of data */
|
||||
/* allow slop for stack overflow handling and small frames */
|
||||
#ifdef __ARM_ARCH_6M__
|
||||
ldr r0, .LC2
|
||||
adds r0, #128
|
||||
adds r0, #128
|
||||
mov sl, r0
|
||||
#else
|
||||
ldr sl, .LC2
|
||||
add sl, sl, #256
|
||||
#endif
|
||||
#else
|
||||
#ifdef ARM_RDI_MONITOR
|
||||
/* Issue Angel SWI to read stack info */
|
||||
movs r0, #AngelSWI_Reason_HeapInfo
|
||||
adr r1, .LC0 /* point at ptr to 4 words to receive data */
|
||||
#ifdef THUMB_V7M_V6M
|
||||
bkpt AngelSWI
|
||||
#elif defined(__thumb2__)
|
||||
/* We are in thumb mode for startup on armv7 architectures. */
|
||||
AngelSWIAsm AngelSWI
|
||||
#else
|
||||
/* We are always in ARM mode for startup on pre armv7 archs. */
|
||||
AngelSWIAsm AngelSWI_ARM
|
||||
#endif
|
||||
ldr r0, .LC0 /* point at values read */
|
||||
|
||||
ldr r1, [r0, #0]
|
||||
cmp r1, #0
|
||||
bne .LC32
|
||||
/* If the heap base value [r0, #0] is 0 then the heap base is actually
|
||||
at the end of program data (i.e. __end__). See:
|
||||
http://infocenter.arm.com/help/topic/com.arm.doc.dui0471-/Bacbefaa.html
|
||||
for more information. */
|
||||
ldr r1, .LC31
|
||||
str r1, [r0, #0]
|
||||
.LC32:
|
||||
ldr r1, [r0, #8]
|
||||
ldr r2, [r0, #12]
|
||||
/* We skip setting sp/sl if 0 returned from semihosting.
|
||||
- According to semihosting docs, if 0 returned from semihosting,
|
||||
the system was unable to calculate the real value, so it's ok
|
||||
to skip setting sp/sl to 0 here.
|
||||
- Considering M-profile processors, We might want to initialize
|
||||
sp by the first entry of vector table and return 0 to SYS_HEAPINFO
|
||||
semihosting call, which will be skipped here. */
|
||||
cmp r1, #0
|
||||
beq .LC26
|
||||
mov sp, r1
|
||||
.LC26:
|
||||
cmp r2, #0
|
||||
beq .LC27
|
||||
/* allow slop for stack overflow handling and small frames */
|
||||
#ifdef __ARM_ARCH_6M__
|
||||
adds r2, #128
|
||||
adds r2, #128
|
||||
mov sl, r2
|
||||
#else
|
||||
add sl, r2, #256
|
||||
#endif
|
||||
.LC27:
|
||||
#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
|
||||
#ifdef __thumb2__
|
||||
it eq
|
||||
#endif
|
||||
#ifdef __ARM_ARCH_6M__
|
||||
bne .LC28
|
||||
ldr r3, .LC0
|
||||
.LC28:
|
||||
#else
|
||||
ldreq r3, .LC0
|
||||
#endif
|
||||
/* 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
|
||||
#ifdef THUMB_V7_V6M
|
||||
/* XXX Fill in stack assignments for interrupt modes. */
|
||||
#else
|
||||
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 */
|
||||
#endif
|
||||
.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: */
|
||||
#ifdef __ARM_ARCH_6M__
|
||||
movs r2, #64
|
||||
lsls r2, r2, #10
|
||||
subs r2, r3, r2
|
||||
mov sl, r2
|
||||
#else
|
||||
sub sl, r3, #64 << 10 /* Still assumes 256bytes below sl */
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
/* Zero the memory in the .bss section. */
|
||||
movs 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
|
||||
subs a3, a3, a1 /* Third arg: length of block */
|
||||
|
||||
|
||||
#if defined(__thumb__) && !defined(THUMB_V7_V6M)
|
||||
/* 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
|
||||
indirect_call r3
|
||||
.LC24:
|
||||
ldr r3, .Lswinit
|
||||
cmp r3, #0
|
||||
beq .LC25
|
||||
indirect_call r3
|
||||
|
||||
.LC25:
|
||||
movs r0, #0 /* no arguments */
|
||||
movs 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 */
|
||||
movs r1, r0
|
||||
#else
|
||||
movs r0, #AngelSWI_Reason_GetCmdLine
|
||||
adr r1, .LC30 /* Space for command line */
|
||||
AngelSWIAsm AngelSWI
|
||||
ldr r1, .LC30
|
||||
#endif
|
||||
/* Parse string at r1 */
|
||||
movs 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]
|
||||
adds 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:
|
||||
movs r2, r3
|
||||
b .LC22
|
||||
|
||||
.LC21:
|
||||
movs r2, #' ' /* terminator type */
|
||||
subs 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
|
||||
adds r0, r0, #1
|
||||
.LC11:
|
||||
#ifdef __thumb__
|
||||
ldrb r3, [r1]
|
||||
adds r1, #1
|
||||
#else
|
||||
ldrb r3, [r1], #1
|
||||
#endif
|
||||
cmp r3, #0
|
||||
beq .LC12
|
||||
cmp r2, r3 /* reached terminator? */
|
||||
bne .LC11
|
||||
movs r2, #0
|
||||
subs 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__
|
||||
movs r2, r0
|
||||
lsls r2, #2
|
||||
add r2, sp
|
||||
mov r3, sp
|
||||
.LC15: cmp r2, r3
|
||||
bls .LC14
|
||||
subs r2, #4
|
||||
ldr r4, [r2]
|
||||
ldr r5, [r3]
|
||||
str r5, [r2]
|
||||
str r4, [r3]
|
||||
adds r3, #4
|
||||
b .LC15
|
||||
.LC14:
|
||||
/* Ensure doubleword stack alignment. */
|
||||
mov r4, sp
|
||||
movs r5, #7
|
||||
bics 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. */
|
||||
movs r4, r0
|
||||
movs r5, r1
|
||||
ldr r0, .Lfini
|
||||
bl FUNCTION (atexit)
|
||||
bl FUNCTION (_init)
|
||||
movs r0, r4
|
||||
movs r1, r5
|
||||
#endif
|
||||
bl FUNCTION (main)
|
||||
|
||||
bl FUNCTION (exit) /* Should not return. */
|
||||
|
||||
#if defined(__thumb__) && !defined(THUMB_V7_V6M)
|
||||
/* 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.) */
|
||||
|
||||
.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
|
||||
.LC31:
|
||||
.word __end__
|
||||
|
||||
/* 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
|
@ -1,8 +0,0 @@
|
||||
%rename link old_link
|
||||
|
||||
*link:
|
||||
-T redboot.ld%s -Ttext 0xA0020000 %(old_link)
|
||||
|
||||
*startfile:
|
||||
crti%O%s crtbegin%O%s %{!pg:redboot-crt0%O%s} %{pg:redboot-crt0%O%s} redboot-syscalls%O%s
|
||||
|
@ -1,11 +0,0 @@
|
||||
%rename lib libc
|
||||
|
||||
*libgloss:
|
||||
-lgloss-linux
|
||||
|
||||
*lib:
|
||||
%(libc) %(libgloss)
|
||||
|
||||
*startfile:
|
||||
linux-crt0%O%s crti%O%s crtbegin%O%s
|
||||
|
@ -1,8 +0,0 @@
|
||||
%rename link old_link
|
||||
|
||||
*link:
|
||||
-T redboot.ld%s -Ttext 0x10000 %(old_link)
|
||||
|
||||
*startfile:
|
||||
crti%O%s crtbegin%O%s %{!pg:redboot-crt0%O%s} %{pg:redboot-crt0%O%s} redboot-syscalls%O%s
|
||||
|
@ -1,11 +0,0 @@
|
||||
%rename lib libc
|
||||
|
||||
*libgloss:
|
||||
-lrdimon
|
||||
|
||||
*lib:
|
||||
--start-group %(libc) %(libgloss) --end-group
|
||||
|
||||
*startfile:
|
||||
crti%O%s crtbegin%O%s %{!pg:rdimon-crt0%O%s} %{pg:rdimon-crt0%O%s}
|
||||
|
@ -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}
|
||||
|
@ -1,220 +0,0 @@
|
||||
OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm",
|
||||
"elf32-littlearm")
|
||||
OUTPUT_ARCH(arm)
|
||||
ENTRY(_start)
|
||||
/* Do we need any of these for elf?
|
||||
__DYNAMIC = 0; */
|
||||
SECTIONS
|
||||
{
|
||||
/* Read-only sections, merged into text segment: */
|
||||
. = 0x00020000;
|
||||
.interp : { *(.interp) }
|
||||
.hash : { *(.hash) }
|
||||
.dynsym : { *(.dynsym) }
|
||||
.dynstr : { *(.dynstr) }
|
||||
.gnu.version : { *(.gnu.version) }
|
||||
.gnu.version_d : { *(.gnu.version_d) }
|
||||
.gnu.version_r : { *(.gnu.version_r) }
|
||||
.rel.init : { *(.rel.init) }
|
||||
.rela.init : { *(.rela.init) }
|
||||
.rel.text :
|
||||
{
|
||||
*(.rel.text)
|
||||
*(.rel.text.*)
|
||||
*(.rel.gnu.linkonce.t*)
|
||||
}
|
||||
.rela.text :
|
||||
{
|
||||
*(.rela.text)
|
||||
*(.rela.text.*)
|
||||
*(.rela.gnu.linkonce.t*)
|
||||
}
|
||||
.rel.fini : { *(.rel.fini) }
|
||||
.rela.fini : { *(.rela.fini) }
|
||||
.rel.rodata :
|
||||
{
|
||||
*(.rel.rodata)
|
||||
*(.rel.rodata.*)
|
||||
*(.rel.gnu.linkonce.r*)
|
||||
}
|
||||
.rela.rodata :
|
||||
{
|
||||
*(.rela.rodata)
|
||||
*(.rela.rodata.*)
|
||||
*(.rela.gnu.linkonce.r*)
|
||||
}
|
||||
.rel.data :
|
||||
{
|
||||
*(.rel.data)
|
||||
*(.rel.data.*)
|
||||
*(.rel.gnu.linkonce.d*)
|
||||
}
|
||||
.rela.data :
|
||||
{
|
||||
*(.rela.data)
|
||||
*(.rela.data.*)
|
||||
*(.rela.gnu.linkonce.d*)
|
||||
}
|
||||
.rel.ctors : { *(.rel.ctors) }
|
||||
.rela.ctors : { *(.rela.ctors) }
|
||||
.rel.dtors : { *(.rel.dtors) }
|
||||
.rela.dtors : { *(.rela.dtors) }
|
||||
.rel.got : { *(.rel.got) }
|
||||
.rela.got : { *(.rela.got) }
|
||||
.rel.sdata :
|
||||
{
|
||||
*(.rel.sdata)
|
||||
*(.rel.sdata.*)
|
||||
*(.rel.gnu.linkonce.s*)
|
||||
}
|
||||
.rela.sdata :
|
||||
{
|
||||
*(.rela.sdata)
|
||||
*(.rela.sdata.*)
|
||||
*(.rela.gnu.linkonce.s*)
|
||||
}
|
||||
.rel.sbss : { *(.rel.sbss) }
|
||||
.rela.sbss : { *(.rela.sbss) }
|
||||
.rel.bss : { *(.rel.bss) }
|
||||
.rela.bss : { *(.rela.bss) }
|
||||
.rel.plt : { *(.rel.plt) }
|
||||
.rela.plt : { *(.rela.plt) }
|
||||
.plt : { *(.plt) }
|
||||
.text :
|
||||
{
|
||||
*(.text)
|
||||
*(.text.*)
|
||||
*(.stub)
|
||||
/* .gnu.warning sections are handled specially by elf32.em. */
|
||||
*(.gnu.warning)
|
||||
*(.gnu.linkonce.t*)
|
||||
*(.glue_7t) *(.glue_7)
|
||||
} =0
|
||||
.init :
|
||||
{
|
||||
KEEP (*(.init))
|
||||
} =0
|
||||
_etext = .;
|
||||
PROVIDE (etext = .);
|
||||
.fini :
|
||||
{
|
||||
KEEP (*(.fini))
|
||||
} =0
|
||||
.rodata : { *(.rodata) *(.rodata.*) *(.gnu.linkonce.r*) }
|
||||
.rodata1 : { *(.rodata1) }
|
||||
.eh_frame_hdr : { *(.eh_frame_hdr) }
|
||||
/* Adjust the address for the data segment. We want to adjust up to
|
||||
the same address within the page on the next page up. */
|
||||
. = ALIGN(256) + (. & (256 - 1));
|
||||
.data :
|
||||
{
|
||||
*(.data)
|
||||
*(.data.*)
|
||||
*(.gnu.linkonce.d*)
|
||||
SORT(CONSTRUCTORS)
|
||||
}
|
||||
.data1 : { *(.data1) }
|
||||
.eh_frame : { KEEP (*(.eh_frame)) }
|
||||
.gcc_except_table : { *(.gcc_except_table) }
|
||||
.ctors :
|
||||
{
|
||||
/* gcc uses crtbegin.o to find the start of
|
||||
the constructors, so we make sure it is
|
||||
first. Because this is a wildcard, it
|
||||
doesn't matter if the user does not
|
||||
actually link against crtbegin.o; the
|
||||
linker won't look for a file to match a
|
||||
wildcard. The wildcard also means that it
|
||||
doesn't matter which directory crtbegin.o
|
||||
is in. */
|
||||
KEEP (*crtbegin.o(.ctors))
|
||||
/* We don't want to include the .ctor section from
|
||||
from the crtend.o file until after the sorted ctors.
|
||||
The .ctor section from the crtend file contains the
|
||||
end of ctors marker and it must be last */
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o ) .ctors))
|
||||
KEEP (*(SORT(.ctors.*)))
|
||||
KEEP (*(.ctors))
|
||||
}
|
||||
.dtors :
|
||||
{
|
||||
KEEP (*crtbegin.o(.dtors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors))
|
||||
KEEP (*(SORT(.dtors.*)))
|
||||
KEEP (*(.dtors))
|
||||
}
|
||||
.jcr : { KEEP (*(.jcr)) }
|
||||
.got : { *(.got.plt) *(.got) }
|
||||
.dynamic : { *(.dynamic) }
|
||||
/* We want the small data sections together, so single-instruction offsets
|
||||
can access them all, and initialized data all before uninitialized, so
|
||||
we can shorten the on-disk segment size. */
|
||||
.sdata :
|
||||
{
|
||||
*(.sdata)
|
||||
*(.sdata.*)
|
||||
*(.gnu.linkonce.s.*)
|
||||
}
|
||||
_edata = .;
|
||||
PROVIDE (edata = .);
|
||||
__bss_start = .;
|
||||
__bss_start__ = .;
|
||||
.sbss :
|
||||
{
|
||||
*(.dynsbss)
|
||||
*(.sbss)
|
||||
*(.sbss.*)
|
||||
*(.scommon)
|
||||
}
|
||||
.bss :
|
||||
{
|
||||
*(.dynbss)
|
||||
*(.bss)
|
||||
*(.bss.*)
|
||||
*(COMMON)
|
||||
/* Align here to ensure that the .bss section occupies space up to
|
||||
_end. Align after .bss to ensure correct alignment even if the
|
||||
.bss section disappears because there are no input sections. */
|
||||
. = ALIGN(32 / 8);
|
||||
}
|
||||
. = ALIGN(32 / 8);
|
||||
_end = .;
|
||||
_bss_end__ = . ; __bss_end__ = . ; __end__ = . ;
|
||||
PROVIDE (end = .);
|
||||
/* Stabs debugging sections. */
|
||||
.stab 0 : { *(.stab) }
|
||||
.stabstr 0 : { *(.stabstr) }
|
||||
.stab.excl 0 : { *(.stab.excl) }
|
||||
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||
.stab.index 0 : { *(.stab.index) }
|
||||
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||
.comment 0 : { *(.comment) }
|
||||
/* DWARF debug sections.
|
||||
Symbols in the DWARF debugging sections are relative to the beginning
|
||||
of the section so we begin them at 0. */
|
||||
/* DWARF 1 */
|
||||
.debug 0 : { *(.debug) }
|
||||
.line 0 : { *(.line) }
|
||||
/* GNU DWARF 1 extensions */
|
||||
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||
/* DWARF 1.1 and DWARF 2 */
|
||||
.debug_aranges 0 : { *(.debug_aranges) }
|
||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||
/* DWARF 2 */
|
||||
.debug_info 0 : { *(.debug_info) }
|
||||
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||
.debug_line 0 : { *(.debug_line) }
|
||||
.debug_frame 0 : { *(.debug_frame) }
|
||||
.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) }
|
||||
.debug_typenames 0 : { *(.debug_typenames) }
|
||||
.debug_varnames 0 : { *(.debug_varnames) }
|
||||
.stack 0x80000 : { _stack = .; *(.stack) }
|
||||
/* These must appear regardless of . */
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
%rename link old_link
|
||||
|
||||
*link:
|
||||
-T redboot.ld%s -Ttext 0x20000 %(old_link)
|
||||
|
||||
*startfile:
|
||||
crti%O%s crtbegin%O%s %{!pg:redboot-crt0%O%s} %{pg:redboot-crt0%O%s} redboot-syscalls%O%s
|
||||
|
@ -1,62 +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>
|
||||
|
||||
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;
|
||||
}
|
@ -1,42 +0,0 @@
|
||||
/** Linux startup code for the ARM processor.
|
||||
* Written by Shaun Jackman <sjackman@gmail.com>.
|
||||
* Copyright 2006 Pathway Connectivity
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software
|
||||
* is freely granted, provided that this notice is preserved.
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include "arm.h"
|
||||
|
||||
static int _main(int argc, char *argv[]) __attribute__((noreturn));
|
||||
|
||||
#if defined(__thumb__) && !defined(THUMB_V7_V6M)
|
||||
asm("\n"
|
||||
".code 32\n"
|
||||
".global _start\n"
|
||||
".type _start, %function\n"
|
||||
"_start:\n"
|
||||
"\tldr r0, .LC0\n"
|
||||
"\tbx r0\n"
|
||||
".LC0:\n"
|
||||
"\t.word _start_thumb\n"
|
||||
".size _start, .-_start\n");
|
||||
|
||||
__attribute__((naked, used))
|
||||
static void _start_thumb(void)
|
||||
#else
|
||||
__attribute__((naked))
|
||||
void _start(void)
|
||||
#endif
|
||||
{
|
||||
register int *sp asm("sp");
|
||||
_main(*sp, (char **)(sp + 1));
|
||||
}
|
||||
|
||||
static int _main(int argc, char *argv[])
|
||||
{
|
||||
environ = argv + argc + 1;
|
||||
exit(main(argc, argv, environ));
|
||||
}
|
@ -1,318 +0,0 @@
|
||||
/** Linux system call numbers for the ARM processor.
|
||||
* Written by Shaun Jackman <sjackman@gmail.com>
|
||||
* Copyright 2006 Pathway Connectivity
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software
|
||||
* is freely granted, provided that this notice is preserved.
|
||||
*/
|
||||
|
||||
#ifndef _LIBGLOSS_ARM_LINUX_UNISTD_H
|
||||
#define _LIBGLOSS_ARM_LINUX_UNISTD_H
|
||||
|
||||
#if __thumb__
|
||||
# define SYS_BASE 0
|
||||
#else
|
||||
# define SYS_BASE 0x900000
|
||||
#endif
|
||||
|
||||
#define SYS_restart_syscall (SYS_BASE+ 0)
|
||||
#define SYS_exit (SYS_BASE+ 1)
|
||||
#define SYS_fork (SYS_BASE+ 2)
|
||||
#define SYS_read (SYS_BASE+ 3)
|
||||
#define SYS_write (SYS_BASE+ 4)
|
||||
#define SYS_open (SYS_BASE+ 5)
|
||||
#define SYS_close (SYS_BASE+ 6)
|
||||
/* SYS_waitpid was 7 */
|
||||
#define SYS_creat (SYS_BASE+ 8)
|
||||
#define SYS_link (SYS_BASE+ 9)
|
||||
#define SYS_unlink (SYS_BASE+ 10)
|
||||
#define SYS_execve (SYS_BASE+ 11)
|
||||
#define SYS_chdir (SYS_BASE+ 12)
|
||||
#define SYS_time (SYS_BASE+ 13)
|
||||
#define SYS_mknod (SYS_BASE+ 14)
|
||||
#define SYS_chmod (SYS_BASE+ 15)
|
||||
#define SYS_lchown (SYS_BASE+ 16)
|
||||
/* SYS_break was 17 */
|
||||
/* SYS_stat was 18 */
|
||||
#define SYS_lseek (SYS_BASE+ 19)
|
||||
#define SYS_getpid (SYS_BASE+ 20)
|
||||
#define SYS_mount (SYS_BASE+ 21)
|
||||
#define SYS_umount (SYS_BASE+ 22)
|
||||
#define SYS_setuid (SYS_BASE+ 23)
|
||||
#define SYS_getuid (SYS_BASE+ 24)
|
||||
#define SYS_stime (SYS_BASE+ 25)
|
||||
#define SYS_ptrace (SYS_BASE+ 26)
|
||||
#define SYS_alarm (SYS_BASE+ 27)
|
||||
/* SYS_fstat was 28 */
|
||||
#define SYS_pause (SYS_BASE+ 29)
|
||||
#define SYS_utime (SYS_BASE+ 30)
|
||||
/* SYS_stty was 31 */
|
||||
/* SYS_gtty was 32 */
|
||||
#define SYS_access (SYS_BASE+ 33)
|
||||
#define SYS_nice (SYS_BASE+ 34)
|
||||
/* SYS_ftime was 35 */
|
||||
#define SYS_sync (SYS_BASE+ 36)
|
||||
#define SYS_kill (SYS_BASE+ 37)
|
||||
#define SYS_rename (SYS_BASE+ 38)
|
||||
#define SYS_mkdir (SYS_BASE+ 39)
|
||||
#define SYS_rmdir (SYS_BASE+ 40)
|
||||
#define SYS_dup (SYS_BASE+ 41)
|
||||
#define SYS_pipe (SYS_BASE+ 42)
|
||||
#define SYS_times (SYS_BASE+ 43)
|
||||
/* SYS_prof was 44 */
|
||||
#define SYS_brk (SYS_BASE+ 45)
|
||||
#define SYS_setgid (SYS_BASE+ 46)
|
||||
#define SYS_getgid (SYS_BASE+ 47)
|
||||
/* SYS_signal was 48 */
|
||||
#define SYS_geteuid (SYS_BASE+ 49)
|
||||
#define SYS_getegid (SYS_BASE+ 50)
|
||||
#define SYS_acct (SYS_BASE+ 51)
|
||||
#define SYS_umount2 (SYS_BASE+ 52)
|
||||
/* SYS_lock was 53 */
|
||||
#define SYS_ioctl (SYS_BASE+ 54)
|
||||
#define SYS_fcntl (SYS_BASE+ 55)
|
||||
/* SYS_mpx was 56 */
|
||||
#define SYS_setpgid (SYS_BASE+ 57)
|
||||
/* SYS_ulimit was 58 */
|
||||
/* SYS_olduname was 59 */
|
||||
#define SYS_umask (SYS_BASE+ 60)
|
||||
#define SYS_chroot (SYS_BASE+ 61)
|
||||
#define SYS_ustat (SYS_BASE+ 62)
|
||||
#define SYS_dup2 (SYS_BASE+ 63)
|
||||
#define SYS_getppid (SYS_BASE+ 64)
|
||||
#define SYS_getpgrp (SYS_BASE+ 65)
|
||||
#define SYS_setsid (SYS_BASE+ 66)
|
||||
#define SYS_sigaction (SYS_BASE+ 67)
|
||||
/* SYS_sgetmask was 68 */
|
||||
/* SYS_ssetmask was 69 */
|
||||
#define SYS_setreuid (SYS_BASE+ 70)
|
||||
#define SYS_setregid (SYS_BASE+ 71)
|
||||
#define SYS_sigsuspend (SYS_BASE+ 72)
|
||||
#define SYS_sigpending (SYS_BASE+ 73)
|
||||
#define SYS_sethostname (SYS_BASE+ 74)
|
||||
#define SYS_setrlimit (SYS_BASE+ 75)
|
||||
#define SYS_getrlimit (SYS_BASE+ 76)
|
||||
#define SYS_getrusage (SYS_BASE+ 77)
|
||||
#define SYS_gettimeofday (SYS_BASE+ 78)
|
||||
#define SYS_settimeofday (SYS_BASE+ 79)
|
||||
#define SYS_getgroups (SYS_BASE+ 80)
|
||||
#define SYS_setgroups (SYS_BASE+ 81)
|
||||
#define SYS_select (SYS_BASE+ 82)
|
||||
#define SYS_symlink (SYS_BASE+ 83)
|
||||
/* SYS_lstat was 84 */
|
||||
#define SYS_readlink (SYS_BASE+ 85)
|
||||
#define SYS_uselib (SYS_BASE+ 86)
|
||||
#define SYS_swapon (SYS_BASE+ 87)
|
||||
#define SYS_reboot (SYS_BASE+ 88)
|
||||
#define SYS_readdir (SYS_BASE+ 89)
|
||||
#define SYS_mmap (SYS_BASE+ 90)
|
||||
#define SYS_munmap (SYS_BASE+ 91)
|
||||
#define SYS_truncate (SYS_BASE+ 92)
|
||||
#define SYS_ftruncate (SYS_BASE+ 93)
|
||||
#define SYS_fchmod (SYS_BASE+ 94)
|
||||
#define SYS_fchown (SYS_BASE+ 95)
|
||||
#define SYS_getpriority (SYS_BASE+ 96)
|
||||
#define SYS_setpriority (SYS_BASE+ 97)
|
||||
/* SYS_profil was 98 */
|
||||
#define SYS_statfs (SYS_BASE+ 99)
|
||||
#define SYS_fstatfs (SYS_BASE+100)
|
||||
/* SYS_ioperm was 101 */
|
||||
#define SYS_socketcall (SYS_BASE+102)
|
||||
#define SYS_syslog (SYS_BASE+103)
|
||||
#define SYS_setitimer (SYS_BASE+104)
|
||||
#define SYS_getitimer (SYS_BASE+105)
|
||||
#define SYS_stat (SYS_BASE+106)
|
||||
#define SYS_lstat (SYS_BASE+107)
|
||||
#define SYS_fstat (SYS_BASE+108)
|
||||
/* SYS_uname was 109 */
|
||||
/* SYS_iopl was 110 */
|
||||
#define SYS_vhangup (SYS_BASE+111)
|
||||
/* SYS_idle was 112 */
|
||||
#define SYS_syscall (SYS_BASE+113)
|
||||
#define SYS_wait4 (SYS_BASE+114)
|
||||
#define SYS_swapoff (SYS_BASE+115)
|
||||
#define SYS_sysinfo (SYS_BASE+116)
|
||||
#define SYS_ipc (SYS_BASE+117)
|
||||
#define SYS_fsync (SYS_BASE+118)
|
||||
#define SYS_sigreturn (SYS_BASE+119)
|
||||
#define SYS_clone (SYS_BASE+120)
|
||||
#define SYS_setdomainname (SYS_BASE+121)
|
||||
#define SYS_uname (SYS_BASE+122)
|
||||
/* SYS_modify_ldt was 123 */
|
||||
#define SYS_adjtimex (SYS_BASE+124)
|
||||
#define SYS_mprotect (SYS_BASE+125)
|
||||
#define SYS_sigprocmask (SYS_BASE+126)
|
||||
/* SYS_create_module was 127 */
|
||||
#define SYS_init_module (SYS_BASE+128)
|
||||
#define SYS_delete_module (SYS_BASE+129)
|
||||
/* SYS_get_kernel_syms was 130 */
|
||||
#define SYS_quotactl (SYS_BASE+131)
|
||||
#define SYS_getpgid (SYS_BASE+132)
|
||||
#define SYS_fchdir (SYS_BASE+133)
|
||||
#define SYS_bdflush (SYS_BASE+134)
|
||||
#define SYS_sysfs (SYS_BASE+135)
|
||||
#define SYS_personality (SYS_BASE+136)
|
||||
/* SYS_afs_syscall was 137 */
|
||||
#define SYS_setfsuid (SYS_BASE+138)
|
||||
#define SYS_setfsgid (SYS_BASE+139)
|
||||
#define SYS__llseek (SYS_BASE+140)
|
||||
#define SYS_getdents (SYS_BASE+141)
|
||||
#define SYS__newselect (SYS_BASE+142)
|
||||
#define SYS_flock (SYS_BASE+143)
|
||||
#define SYS_msync (SYS_BASE+144)
|
||||
#define SYS_readv (SYS_BASE+145)
|
||||
#define SYS_writev (SYS_BASE+146)
|
||||
#define SYS_getsid (SYS_BASE+147)
|
||||
#define SYS_fdatasync (SYS_BASE+148)
|
||||
#define SYS__sysctl (SYS_BASE+149)
|
||||
#define SYS_mlock (SYS_BASE+150)
|
||||
#define SYS_munlock (SYS_BASE+151)
|
||||
#define SYS_mlockall (SYS_BASE+152)
|
||||
#define SYS_munlockall (SYS_BASE+153)
|
||||
#define SYS_sched_setparam (SYS_BASE+154)
|
||||
#define SYS_sched_getparam (SYS_BASE+155)
|
||||
#define SYS_sched_setscheduler (SYS_BASE+156)
|
||||
#define SYS_sched_getscheduler (SYS_BASE+157)
|
||||
#define SYS_sched_yield (SYS_BASE+158)
|
||||
#define SYS_sched_get_priority_max (SYS_BASE+159)
|
||||
#define SYS_sched_get_priority_min (SYS_BASE+160)
|
||||
#define SYS_sched_rr_get_interval (SYS_BASE+161)
|
||||
#define SYS_nanosleep (SYS_BASE+162)
|
||||
#define SYS_mremap (SYS_BASE+163)
|
||||
#define SYS_setresuid (SYS_BASE+164)
|
||||
#define SYS_getresuid (SYS_BASE+165)
|
||||
/* SYS_vm86 was 166 */
|
||||
/* SYS_query_module was 167 */
|
||||
#define SYS_poll (SYS_BASE+168)
|
||||
#define SYS_nfsservctl (SYS_BASE+169)
|
||||
#define SYS_setresgid (SYS_BASE+170)
|
||||
#define SYS_getresgid (SYS_BASE+171)
|
||||
#define SYS_prctl (SYS_BASE+172)
|
||||
#define SYS_rt_sigreturn (SYS_BASE+173)
|
||||
#define SYS_rt_sigaction (SYS_BASE+174)
|
||||
#define SYS_rt_sigprocmask (SYS_BASE+175)
|
||||
#define SYS_rt_sigpending (SYS_BASE+176)
|
||||
#define SYS_rt_sigtimedwait (SYS_BASE+177)
|
||||
#define SYS_rt_sigqueueinfo (SYS_BASE+178)
|
||||
#define SYS_rt_sigsuspend (SYS_BASE+179)
|
||||
#define SYS_pread64 (SYS_BASE+180)
|
||||
#define SYS_pwrite64 (SYS_BASE+181)
|
||||
#define SYS_chown (SYS_BASE+182)
|
||||
#define SYS_getcwd (SYS_BASE+183)
|
||||
#define SYS_capget (SYS_BASE+184)
|
||||
#define SYS_capset (SYS_BASE+185)
|
||||
#define SYS_sigaltstack (SYS_BASE+186)
|
||||
#define SYS_sendfile (SYS_BASE+187)
|
||||
/* reserved 188 */
|
||||
/* reserved 189 */
|
||||
#define SYS_vfork (SYS_BASE+190)
|
||||
#define SYS_ugetrlimit (SYS_BASE+191)
|
||||
#define SYS_mmap2 (SYS_BASE+192)
|
||||
#define SYS_truncate64 (SYS_BASE+193)
|
||||
#define SYS_ftruncate64 (SYS_BASE+194)
|
||||
#define SYS_stat64 (SYS_BASE+195)
|
||||
#define SYS_lstat64 (SYS_BASE+196)
|
||||
#define SYS_fstat64 (SYS_BASE+197)
|
||||
#define SYS_lchown32 (SYS_BASE+198)
|
||||
#define SYS_getuid32 (SYS_BASE+199)
|
||||
#define SYS_getgid32 (SYS_BASE+200)
|
||||
#define SYS_geteuid32 (SYS_BASE+201)
|
||||
#define SYS_getegid32 (SYS_BASE+202)
|
||||
#define SYS_setreuid32 (SYS_BASE+203)
|
||||
#define SYS_setregid32 (SYS_BASE+204)
|
||||
#define SYS_getgroups32 (SYS_BASE+205)
|
||||
#define SYS_setgroups32 (SYS_BASE+206)
|
||||
#define SYS_fchown32 (SYS_BASE+207)
|
||||
#define SYS_setresuid32 (SYS_BASE+208)
|
||||
#define SYS_getresuid32 (SYS_BASE+209)
|
||||
#define SYS_setresgid32 (SYS_BASE+210)
|
||||
#define SYS_getresgid32 (SYS_BASE+211)
|
||||
#define SYS_chown32 (SYS_BASE+212)
|
||||
#define SYS_setuid32 (SYS_BASE+213)
|
||||
#define SYS_setgid32 (SYS_BASE+214)
|
||||
#define SYS_setfsuid32 (SYS_BASE+215)
|
||||
#define SYS_setfsgid32 (SYS_BASE+216)
|
||||
#define SYS_getdents64 (SYS_BASE+217)
|
||||
#define SYS_pivot_root (SYS_BASE+218)
|
||||
#define SYS_mincore (SYS_BASE+219)
|
||||
#define SYS_madvise (SYS_BASE+220)
|
||||
#define SYS_fcntl64 (SYS_BASE+221)
|
||||
/* SYS_tux reserved 222 */
|
||||
/* unused 223 */
|
||||
#define SYS_gettid (SYS_BASE+224)
|
||||
#define SYS_readahead (SYS_BASE+225)
|
||||
#define SYS_setxattr (SYS_BASE+226)
|
||||
#define SYS_lsetxattr (SYS_BASE+227)
|
||||
#define SYS_fsetxattr (SYS_BASE+228)
|
||||
#define SYS_getxattr (SYS_BASE+229)
|
||||
#define SYS_lgetxattr (SYS_BASE+230)
|
||||
#define SYS_fgetxattr (SYS_BASE+231)
|
||||
#define SYS_listxattr (SYS_BASE+232)
|
||||
#define SYS_llistxattr (SYS_BASE+233)
|
||||
#define SYS_flistxattr (SYS_BASE+234)
|
||||
#define SYS_removexattr (SYS_BASE+235)
|
||||
#define SYS_lremovexattr (SYS_BASE+236)
|
||||
#define SYS_fremovexattr (SYS_BASE+237)
|
||||
#define SYS_tkill (SYS_BASE+238)
|
||||
#define SYS_sendfile64 (SYS_BASE+239)
|
||||
#define SYS_futex (SYS_BASE+240)
|
||||
#define SYS_sched_setaffinity (SYS_BASE+241)
|
||||
#define SYS_sched_getaffinity (SYS_BASE+242)
|
||||
#define SYS_io_setup (SYS_BASE+243)
|
||||
#define SYS_io_destroy (SYS_BASE+244)
|
||||
#define SYS_io_getevents (SYS_BASE+245)
|
||||
#define SYS_io_submit (SYS_BASE+246)
|
||||
#define SYS_io_cancel (SYS_BASE+247)
|
||||
#define SYS_exit_group (SYS_BASE+248)
|
||||
#define SYS_lookup_dcookie (SYS_BASE+249)
|
||||
#define SYS_epoll_create (SYS_BASE+250)
|
||||
#define SYS_epoll_ctl (SYS_BASE+251)
|
||||
#define SYS_epoll_wait (SYS_BASE+252)
|
||||
#define SYS_remap_file_pages (SYS_BASE+253)
|
||||
/* SYS_set_thread_area reserved 254 */
|
||||
/* SYS_get_thread_area reserved 255 */
|
||||
#define SYS_set_tid_address (SYS_BASE+256)
|
||||
#define SYS_timer_create (SYS_BASE+257)
|
||||
#define SYS_timer_settime (SYS_BASE+258)
|
||||
#define SYS_timer_gettime (SYS_BASE+259)
|
||||
#define SYS_timer_getoverrun (SYS_BASE+260)
|
||||
#define SYS_timer_delete (SYS_BASE+261)
|
||||
#define SYS_clock_settime (SYS_BASE+262)
|
||||
#define SYS_clock_gettime (SYS_BASE+263)
|
||||
#define SYS_clock_getres (SYS_BASE+264)
|
||||
#define SYS_clock_nanosleep (SYS_BASE+265)
|
||||
#define SYS_statfs64 (SYS_BASE+266)
|
||||
#define SYS_fstatfs64 (SYS_BASE+267)
|
||||
#define SYS_tgkill (SYS_BASE+268)
|
||||
#define SYS_utimes (SYS_BASE+269)
|
||||
#define SYS_arm_fadvise64_64 (SYS_BASE+270)
|
||||
#define SYS_pciconfig_iobase (SYS_BASE+271)
|
||||
#define SYS_pciconfig_read (SYS_BASE+272)
|
||||
#define SYS_pciconfig_write (SYS_BASE+273)
|
||||
#define SYS_mq_open (SYS_BASE+274)
|
||||
#define SYS_mq_unlink (SYS_BASE+275)
|
||||
#define SYS_mq_timedsend (SYS_BASE+276)
|
||||
#define SYS_mq_timedreceive (SYS_BASE+277)
|
||||
#define SYS_mq_notify (SYS_BASE+278)
|
||||
#define SYS_mq_getsetattr (SYS_BASE+279)
|
||||
#define SYS_waitid (SYS_BASE+280)
|
||||
|
||||
#define SYS_SOCKET 1
|
||||
#define SYS_BIND 2
|
||||
#define SYS_CONNECT 3
|
||||
#define SYS_LISTEN 4
|
||||
#define SYS_ACCEPT 5
|
||||
#define SYS_GETSOCKNAME 6
|
||||
#define SYS_GETPEERNAME 7
|
||||
#define SYS_SOCKETPAIR 8
|
||||
#define SYS_SEND 9
|
||||
#define SYS_RECV 10
|
||||
#define SYS_SENDTO 11
|
||||
#define SYS_RECVFROM 12
|
||||
#define SYS_SHUTDOWN 13
|
||||
#define SYS_SETSOCKOPT 14
|
||||
#define SYS_GETSOCKOPT 15
|
||||
#define SYS_SENDMSG 16
|
||||
#define SYS_RECVMSG 17
|
||||
|
||||
#endif /* _LIBGLOSS_ARM_LINUX_UNISTD_H */
|
@ -1,192 +0,0 @@
|
||||
/** Linux system call interface for the ARM processor.
|
||||
* Written by Shaun Jackman <sjackman@gmail.com>.
|
||||
* Copyright 2006 Pathway Connectivity
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software
|
||||
* is freely granted, provided that this notice is preserved.
|
||||
*/
|
||||
|
||||
#include "linux-syscall.h"
|
||||
|
||||
#if __thumb__
|
||||
# define FUNC(name) .type name, %function; .thumb_func; name:
|
||||
# define SET .thumb_set
|
||||
#else
|
||||
# define FUNC(name) .type name, %function; name:
|
||||
# define SET .set
|
||||
#endif
|
||||
|
||||
#define GLOBAL(name) .global name; FUNC(name)
|
||||
#define SIZE(name) .size name, .-name
|
||||
|
||||
# define SYSCALL4(name) \
|
||||
GLOBAL(_ ## name); \
|
||||
swi #SYS_ ## name; \
|
||||
b _set_errno; \
|
||||
SIZE(_ ## name)
|
||||
|
||||
# define SYSCALL6(name) \
|
||||
GLOBAL(_ ## name); \
|
||||
push { r4 - r5 }; \
|
||||
ldr r4, [sp, #8]; \
|
||||
ldr r5, [sp, #12]; \
|
||||
swi #SYS_ ## name; \
|
||||
pop { r4 - r5 }; \
|
||||
b _set_errno; \
|
||||
SIZE(_ ## name)
|
||||
|
||||
#define SYSCALL0(name) SYSCALL3(name)
|
||||
#define SYSCALL3(name) SYSCALL4(name)
|
||||
#define SYSCALL1(name) SYSCALL3(name)
|
||||
#define SYSCALL2(name) SYSCALL3(name)
|
||||
#define SYSCALL5(name) SYSCALL6(name)
|
||||
|
||||
SYSCALL1(alarm)
|
||||
SYSCALL1(brk)
|
||||
SYSCALL1(chdir)
|
||||
SYSCALL2(chmod)
|
||||
SYSCALL3(chown)
|
||||
SYSCALL1(close)
|
||||
SYSCALL1(dup)
|
||||
SYSCALL2(dup2)
|
||||
SYSCALL3(execve)
|
||||
SYSCALL1(exit)
|
||||
SYSCALL3(fcntl)
|
||||
SYSCALL2(fstat)
|
||||
SYSCALL2(ftruncate)
|
||||
SYSCALL3(getdents)
|
||||
SYSCALL0(getegid)
|
||||
SYSCALL0(geteuid)
|
||||
SYSCALL0(getgid)
|
||||
SYSCALL2(getgroups)
|
||||
SYSCALL1(getpgid)
|
||||
SYSCALL0(getpgrp)
|
||||
SYSCALL0(getpid)
|
||||
SYSCALL0(getuid)
|
||||
SYSCALL2(gettimeofday)
|
||||
SYSCALL3(ioctl)
|
||||
SYSCALL2(kill)
|
||||
SYSCALL3(lchown)
|
||||
SYSCALL2(link)
|
||||
SYSCALL3(lseek)
|
||||
SYSCALL2(lstat)
|
||||
SYSCALL2(mkdir)
|
||||
SYSCALL3(mknod)
|
||||
SYSCALL2(nanosleep)
|
||||
SYSCALL3(open)
|
||||
SYSCALL0(pause)
|
||||
SYSCALL1(pipe)
|
||||
SYSCALL3(read)
|
||||
SYSCALL3(readlink)
|
||||
SYSCALL4(reboot)
|
||||
SYSCALL1(rmdir)
|
||||
SYSCALL5(select)
|
||||
SYSCALL2(setpgid)
|
||||
SYSCALL1(setgid)
|
||||
SYSCALL0(setsid)
|
||||
SYSCALL1(setuid)
|
||||
SYSCALL3(sigprocmask)
|
||||
SYSCALL2(socketcall)
|
||||
SYSCALL2(stat)
|
||||
SYSCALL1(stime)
|
||||
SYSCALL2(symlink)
|
||||
SYSCALL1(sync)
|
||||
SYSCALL1(sysinfo)
|
||||
SYSCALL1(times)
|
||||
SYSCALL2(truncate)
|
||||
SYSCALL1(umask)
|
||||
SYSCALL1(uname)
|
||||
SYSCALL1(unlink)
|
||||
SYSCALL2(utime)
|
||||
SYSCALL0(vfork)
|
||||
SYSCALL4(wait4)
|
||||
SYSCALL3(write)
|
||||
|
||||
#define ALIAS(name) .GLOBAL name; SET name, _ ## name
|
||||
|
||||
ALIAS(alarm)
|
||||
ALIAS(chdir)
|
||||
ALIAS(chmod)
|
||||
ALIAS(chown)
|
||||
ALIAS(dup)
|
||||
ALIAS(dup2)
|
||||
ALIAS(ftruncate)
|
||||
ALIAS(getdents)
|
||||
ALIAS(getegid)
|
||||
ALIAS(geteuid)
|
||||
ALIAS(getgid)
|
||||
ALIAS(getgroups)
|
||||
ALIAS(getpgid)
|
||||
ALIAS(getpgrp)
|
||||
ALIAS(getuid)
|
||||
ALIAS(ioctl)
|
||||
ALIAS(lchown)
|
||||
ALIAS(lstat)
|
||||
ALIAS(mkdir)
|
||||
ALIAS(mknod)
|
||||
ALIAS(nanosleep)
|
||||
ALIAS(pause)
|
||||
ALIAS(pipe)
|
||||
ALIAS(readlink)
|
||||
ALIAS(rmdir)
|
||||
ALIAS(select)
|
||||
ALIAS(setgid)
|
||||
ALIAS(setpgid)
|
||||
ALIAS(setsid)
|
||||
ALIAS(setuid)
|
||||
ALIAS(sigprocmask)
|
||||
ALIAS(stime)
|
||||
ALIAS(symlink)
|
||||
ALIAS(sync)
|
||||
ALIAS(sysinfo)
|
||||
ALIAS(truncate)
|
||||
ALIAS(umask)
|
||||
ALIAS(uname)
|
||||
ALIAS(utime)
|
||||
ALIAS(vfork)
|
||||
ALIAS(wait4)
|
||||
|
||||
# define SOCKETCALL(name, NAME) \
|
||||
GLOBAL(name); \
|
||||
push { r0 - r3 }; \
|
||||
mov r0, #SYS_ ## NAME; \
|
||||
b _socketcall_tail; \
|
||||
SIZE(name)
|
||||
|
||||
FUNC(_socketcall_tail)
|
||||
mov r1, sp
|
||||
push { lr }
|
||||
bl _socketcall
|
||||
pop { r3 }
|
||||
add sp, #16
|
||||
#if defined(__ARM_ARCH_2__) || defined(__ARM_ARCH_3__) \
|
||||
|| defined(__ARM_ARCH_3M__) || defined(__ARM_ARCH_4__)
|
||||
mov pc, r3
|
||||
#else
|
||||
bx r3
|
||||
#endif
|
||||
SIZE(_socketcall_tail)
|
||||
|
||||
#define SOCKETCALL2(name, NAME) SOCKETCALL(name, NAME)
|
||||
#define SOCKETCALL3(name, NAME) SOCKETCALL(name, NAME)
|
||||
#define SOCKETCALL4(name, NAME) SOCKETCALL(name, NAME)
|
||||
#define SOCKETCALL5(name, NAME) SOCKETCALL(name, NAME)
|
||||
#define SOCKETCALL6(name, NAME) SOCKETCALL(name, NAME)
|
||||
|
||||
SOCKETCALL3(accept, ACCEPT)
|
||||
SOCKETCALL3(bind, BIND)
|
||||
SOCKETCALL3(connect, CONNECT)
|
||||
SOCKETCALL3(getpeername, GETPEERNAME)
|
||||
SOCKETCALL3(getsockname, GETSOCKNAME)
|
||||
SOCKETCALL5(getsockopt, GETSOCKOPT)
|
||||
SOCKETCALL2(listen, LISTEN)
|
||||
SOCKETCALL4(recv, RECV)
|
||||
SOCKETCALL6(recvfrom, RECVFROM)
|
||||
SOCKETCALL3(recvmsg, RECVMSG)
|
||||
SOCKETCALL4(send, SEND)
|
||||
SOCKETCALL3(sendmsg, SENDMSG)
|
||||
SOCKETCALL6(sendto, SENDTO)
|
||||
SOCKETCALL5(setsockopt, SETSOCKOPT)
|
||||
SOCKETCALL2(shutdown, SHUTDOWN)
|
||||
SOCKETCALL3(socket, SOCKET)
|
||||
SOCKETCALL4(socketpair, SOCKETPAIR)
|
@ -1,71 +0,0 @@
|
||||
/** Linux system call interface.
|
||||
* Written by Shaun Jackman <sjackman@gmail.com>.
|
||||
* Copyright 2006 Pathway Connectivity
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software
|
||||
* is freely granted, provided that this notice is preserved.
|
||||
*/
|
||||
|
||||
#include <errno.h>
|
||||
#include <stdint.h>
|
||||
|
||||
extern char _end[];
|
||||
static void *curbrk = _end;
|
||||
|
||||
extern void *_brk(void *addr);
|
||||
|
||||
int brk(void *addr)
|
||||
{
|
||||
void *newbrk;
|
||||
if (curbrk == addr)
|
||||
return 0;
|
||||
newbrk = _brk(addr);
|
||||
curbrk = newbrk;
|
||||
if (newbrk < addr) {
|
||||
errno = ENOMEM;
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void *_sbrk(intptr_t incr)
|
||||
{
|
||||
void *oldbrk = curbrk;
|
||||
if (brk(oldbrk + incr) == -1)
|
||||
return (void *)-1;
|
||||
return oldbrk;
|
||||
}
|
||||
|
||||
void *sbrk(intptr_t incr) __attribute__((alias("_sbrk")));
|
||||
|
||||
int _set_errno(int n)
|
||||
{
|
||||
if (n < 0) {
|
||||
errno = -n;
|
||||
return -1;
|
||||
}
|
||||
return n;
|
||||
}
|
||||
|
||||
#include <sys/wait.h>
|
||||
|
||||
struct rusage;
|
||||
|
||||
pid_t wait4(pid_t pid, int *status, int options, struct rusage *rusage);
|
||||
|
||||
pid_t _wait(int *status)
|
||||
{
|
||||
return wait4(-1, status, 0, NULL);
|
||||
}
|
||||
|
||||
pid_t waitpid(pid_t pid, int *status, int options)
|
||||
{
|
||||
return wait4(pid, status, options, NULL);
|
||||
}
|
||||
|
||||
extern int _reboot(int magic, int magic2, int flag, void *arg);
|
||||
|
||||
int reboot(int flag)
|
||||
{
|
||||
return _reboot(0xfee1dead, 0x28121969, flag, NULL);
|
||||
}
|
@ -1,133 +0,0 @@
|
||||
#include "arm.h"
|
||||
|
||||
.file "crt0.S"
|
||||
|
||||
#define XGLUE(a,b) a##b
|
||||
#define GLUE(a,b) XGLUE(a,b)
|
||||
|
||||
#ifdef __USER_LABEL_PREFIX__
|
||||
#define SYM_NAME( name ) GLUE (__USER_LABEL_PREFIX__, name)
|
||||
#else
|
||||
#error __USER_LABEL_PREFIX is not defined
|
||||
#endif
|
||||
|
||||
.text
|
||||
.syntax unified
|
||||
/* Setup the assembly entry point. */
|
||||
#ifdef THUMB_V7_V6M
|
||||
.macro FUNC_START name
|
||||
.global \name
|
||||
.thumb_func
|
||||
\name:
|
||||
.endm
|
||||
.thumb
|
||||
#else
|
||||
.macro FUNC_START name
|
||||
.global \name
|
||||
\name:
|
||||
.endm
|
||||
.code 32
|
||||
#endif
|
||||
FUNC_START SYM_NAME(start)
|
||||
FUNC_START SYM_NAME(_start)
|
||||
/* Unnecessary to set fp for v6-m/v7-m, which don't support
|
||||
ARM state. */
|
||||
#ifndef THUMB_V7M_V6M
|
||||
mov fp, #0 /* Null frame pointer. */
|
||||
#endif
|
||||
movs r7, #0 /* Null frame pointer for Thumb. */
|
||||
|
||||
/* Enable interrupts for gdb debugging. */
|
||||
#ifdef THUMB_V7_V6M
|
||||
cpsie if
|
||||
#else
|
||||
mrs r0, cpsr
|
||||
bic r0, r0, #0xC0
|
||||
msr cpsr, r0
|
||||
#endif
|
||||
|
||||
movs a2, #0 /* Second arg: fill value. */
|
||||
ldr a1, .LC1 /* First arg: start of memory block. */
|
||||
ldr a3, .LC2
|
||||
subs a3, a3, a1 /* Third arg: length of block. */
|
||||
|
||||
#ifdef GCRT0
|
||||
/* Zero out the bss without using memset.
|
||||
Using memset is bad because it may be instrumented for
|
||||
profiling, but at this point, the profiling data structures
|
||||
have not been set up.
|
||||
FIXME: This loop could be a lot more efficient. */
|
||||
subs a3, a3, #0
|
||||
beq 2f
|
||||
1: strb a2, [a1]
|
||||
subs a3, a3, #1
|
||||
add a1, a1, #1
|
||||
bne 1b
|
||||
2:
|
||||
/* Nothing to left to clear. */
|
||||
#endif
|
||||
|
||||
#if defined(__thumb__) && !defined(THUMB_V7_V6M)
|
||||
/* 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
|
||||
|
||||
#ifndef GCRT0
|
||||
bl SYM_NAME(memset)
|
||||
#endif
|
||||
bl SYM_NAME(__get_memtop)
|
||||
subs r0, r0, #32
|
||||
mov sp, r0
|
||||
|
||||
#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. */
|
||||
ldr r0, .Lfini
|
||||
bl SYM_NAME (atexit)
|
||||
bl SYM_NAME (_init)
|
||||
#endif
|
||||
|
||||
movs a1, #0
|
||||
ldr a2, .LC3
|
||||
movs a3, a2
|
||||
bl SYM_NAME(main)
|
||||
1: bl SYM_NAME(exit)
|
||||
b 1b
|
||||
.align 2
|
||||
.LC1:
|
||||
.word __bss_start__
|
||||
.LC2:
|
||||
.word __bss_end__
|
||||
.LC3:
|
||||
.word 0
|
||||
#ifdef __USES_INITFINI__
|
||||
.Lfini:
|
||||
.word SYM_NAME(_fini)
|
||||
#endif
|
||||
#if 0
|
||||
#ifdef __thumb__
|
||||
.code 16
|
||||
#endif
|
||||
.global SYM_NAME(__syscall)
|
||||
#ifdef __thumb__
|
||||
.thumb_func
|
||||
#else
|
||||
.align 4
|
||||
#endif
|
||||
SYM_NAME(__syscall):
|
||||
mov r12, lr
|
||||
#ifdef __thumb__
|
||||
swi 0x18
|
||||
#else
|
||||
swi 0x180001
|
||||
#endif
|
||||
mov pc, r12
|
||||
#endif
|
@ -1,284 +0,0 @@
|
||||
/*
|
||||
* redboot-syscalls.c -- provide system call support for RedBoot
|
||||
*
|
||||
* Copyright (c) 1997, 2001, 2002 Red Hat, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/times.h>
|
||||
#include <errno.h>
|
||||
#include "syscall.h"
|
||||
|
||||
// Use "naked" attribute to suppress C prologue/epilogue
|
||||
static int __attribute__ ((naked)) __syscall(int func_no, ...)
|
||||
{
|
||||
asm ("mov r12, lr\n");
|
||||
#ifdef __thumb__
|
||||
asm ("swi 0x18\n");
|
||||
#else
|
||||
asm ("swi 0x180001\n");
|
||||
#endif
|
||||
asm ("mov pc, r12\n");
|
||||
}
|
||||
|
||||
int
|
||||
_close(int fd)
|
||||
{
|
||||
int err;
|
||||
err = __syscall(SYS_close, fd);
|
||||
if (err<0)
|
||||
{
|
||||
errno = -err;
|
||||
return -1;
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
_exit(int stat)
|
||||
{
|
||||
while (1)
|
||||
__syscall(SYS_exit, stat);
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
_stat (const char *filename, struct stat *st)
|
||||
{
|
||||
int err;
|
||||
err = __syscall(SYS_stat, filename, st);
|
||||
if (err<0)
|
||||
{
|
||||
errno = -err;
|
||||
return -1;
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
int
|
||||
_fstat (int file, struct stat *st)
|
||||
{
|
||||
int err;
|
||||
err = __syscall(SYS_fstat, file, st);
|
||||
if (err<0)
|
||||
{
|
||||
errno = -err;
|
||||
return -1;
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
int
|
||||
_getpid(void)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
_gettimeofday (void * tp, void * tzp)
|
||||
{
|
||||
int err;
|
||||
err = __syscall(SYS_gettimeofday, tp, tzp);
|
||||
if (err<0)
|
||||
{
|
||||
errno = -err;
|
||||
return -1;
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
_isatty(int fd)
|
||||
{
|
||||
int err;
|
||||
err = __syscall(SYS_isatty, fd);
|
||||
if (err<0)
|
||||
{
|
||||
errno = -err;
|
||||
return -1;
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
_kill(int pid, int sig)
|
||||
{
|
||||
if(pid == 1)
|
||||
_exit(sig);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
off_t
|
||||
_lseek(int fd, off_t offset, int whence)
|
||||
{
|
||||
int err;
|
||||
err = __syscall(SYS_lseek, fd, offset, whence);
|
||||
if (err<0)
|
||||
{
|
||||
errno = -err;
|
||||
return (off_t)-1;
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
_open(const char *buf, int flags, int mode)
|
||||
{
|
||||
int err ;
|
||||
err = __syscall(SYS_open, buf, flags, mode);
|
||||
if (err<0)
|
||||
{
|
||||
errno = -err;
|
||||
return -1;
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
_write(int fd, const char *buf, int nbytes)
|
||||
{
|
||||
int err;
|
||||
|
||||
err = __syscall(SYS_write, fd, buf, nbytes);
|
||||
if (err<0)
|
||||
{
|
||||
errno = -err;
|
||||
return -1;
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
print(char *ptr)
|
||||
{
|
||||
char *p = ptr;
|
||||
|
||||
while (*p != '\0')
|
||||
p++;
|
||||
|
||||
_write (1, ptr, p-ptr);
|
||||
}
|
||||
|
||||
void
|
||||
_raise (void)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
_read(int fd, char *buf, int nbytes)
|
||||
{
|
||||
int err;
|
||||
err = __syscall(SYS_read, fd, buf, nbytes);
|
||||
if (err<0)
|
||||
{
|
||||
errno = -err;
|
||||
return -1;
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
extern char end[]; /* end is set in the linker command file */
|
||||
|
||||
char *heap_ptr;
|
||||
|
||||
char *
|
||||
_sbrk (int nbytes)
|
||||
{
|
||||
char *base;
|
||||
|
||||
if (!heap_ptr)
|
||||
heap_ptr = (char *)&end;
|
||||
base = heap_ptr;
|
||||
heap_ptr += nbytes;
|
||||
|
||||
return base;
|
||||
}
|
||||
|
||||
|
||||
clock_t
|
||||
_times(struct tms * tp)
|
||||
{
|
||||
clock_t utime;
|
||||
int err;
|
||||
err = __syscall(SYS_times, &utime);
|
||||
if (err)
|
||||
utime = 0;
|
||||
|
||||
if (tp) {
|
||||
tp->tms_utime = utime;
|
||||
tp->tms_stime = 0;
|
||||
tp->tms_cutime = 0;
|
||||
tp->tms_cstime = 0;
|
||||
}
|
||||
|
||||
return utime;
|
||||
}
|
||||
|
||||
int
|
||||
_rename (const char *oldpath, const char *newpath)
|
||||
{
|
||||
int err ;
|
||||
err = __syscall(SYS_rename, oldpath, newpath);
|
||||
if (err<0)
|
||||
{
|
||||
errno = -err;
|
||||
return -1;
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
int
|
||||
_unlink (const char *pathname)
|
||||
{
|
||||
int err ;
|
||||
err = __syscall(SYS_unlink, pathname);
|
||||
if (err<0)
|
||||
{
|
||||
errno = -err;
|
||||
return -1;
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
int
|
||||
_system (const char *command)
|
||||
{
|
||||
int err ;
|
||||
err = __syscall(SYS_system, command);
|
||||
return err;
|
||||
}
|
||||
|
||||
#define SYS_meminfo 1001
|
||||
|
||||
void *
|
||||
__get_memtop(void)
|
||||
{
|
||||
unsigned long totmem = 0, topmem = 0;
|
||||
int numbanks;
|
||||
|
||||
__syscall(SYS_meminfo, (unsigned long)&totmem, (unsigned long)&topmem, 0);
|
||||
return (void*)topmem;
|
||||
}
|
@ -1,91 +0,0 @@
|
||||
#include "arm.h"
|
||||
|
||||
/* 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 only architectures use the BKPT instruction instead of SWI. */
|
||||
#ifdef THUMB_V7M_V6M
|
||||
#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)
|
||||
|
||||
#if defined(ARM_RDI_MONITOR) && !defined(__ASSEMBLER__)
|
||||
|
||||
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
|
@ -1,54 +0,0 @@
|
||||
/* General use syscall.h file.
|
||||
The more ports that use this file, the simpler sim/common/nltvals.def
|
||||
remains. */
|
||||
|
||||
#ifndef LIBGLOSS_SYSCALL_H
|
||||
#define LIBGLOSS_SYSCALL_H
|
||||
|
||||
/* Note: This file may be included by assembler source. */
|
||||
|
||||
/* These should be as small as possible to allow a port to use a trap type
|
||||
instruction, which the system call # as the trap (the d10v for instance
|
||||
supports traps 0..31). An alternative would be to define one trap for doing
|
||||
system calls, and put the system call number in a register that is not used
|
||||
for the normal calling sequence (so that you don't have to shift down the
|
||||
arguments to add the system call number). Obviously, if these system call
|
||||
numbers are ever changed, all of the simulators and potentially user code
|
||||
will need to be updated. */
|
||||
|
||||
/* There is no current need for the following: SYS_execv, SYS_creat, SYS_wait,
|
||||
etc. etc. Don't add them. */
|
||||
|
||||
/* These are required by the ANSI C part of newlib (excluding system() of
|
||||
course). */
|
||||
#define SYS_exit 1
|
||||
#define SYS_open 2
|
||||
#define SYS_close 3
|
||||
#define SYS_read 4
|
||||
#define SYS_write 5
|
||||
#define SYS_lseek 6
|
||||
#define SYS_unlink 7
|
||||
#define SYS_getpid 8
|
||||
#define SYS_kill 9
|
||||
#define SYS_fstat 10
|
||||
/*#define SYS_sbrk 11 - not currently a system call, but reserved. */
|
||||
|
||||
/* ARGV support. */
|
||||
#define SYS_argvlen 12
|
||||
#define SYS_argv 13
|
||||
|
||||
/* These are extras added for one reason or another. */
|
||||
#define SYS_chdir 14
|
||||
#define SYS_stat 15
|
||||
#define SYS_chmod 16
|
||||
#define SYS_utime 17
|
||||
#define SYS_time 18
|
||||
#define SYS_gettimeofday 19
|
||||
#define SYS_times 20
|
||||
#define SYS_link 21
|
||||
/* These are additional syscalls in RedBoot. */
|
||||
#define SYS_rename 3001
|
||||
#define SYS_isatty 3002
|
||||
#define SYS_system 3003
|
||||
|
||||
#endif
|
@ -1,855 +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 <sys/wait.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 *, void *));
|
||||
int _unlink _PARAMS ((const char *));
|
||||
int _link _PARAMS ((void));
|
||||
int _stat _PARAMS ((const char *, struct stat *));
|
||||
int _fstat _PARAMS ((int, struct stat *));
|
||||
int _swistat _PARAMS ((int fd, struct stat * st));
|
||||
caddr_t _sbrk _PARAMS ((int));
|
||||
int _getpid _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 checkerror _PARAMS ((int));
|
||||
static int error _PARAMS ((int));
|
||||
static int get_errno _PARAMS ((void));
|
||||
|
||||
/* Struct used to keep track of the file position, just so we
|
||||
can implement fseek(fh,x,SEEK_CUR). */
|
||||
struct fdent
|
||||
{
|
||||
int handle;
|
||||
int pos;
|
||||
};
|
||||
|
||||
#define MAX_OPEN_FILES 20
|
||||
|
||||
/* User file descriptors (fd) are integer indexes into
|
||||
the openfiles[] array. Error checking is done by using
|
||||
findslot().
|
||||
|
||||
This openfiles array is manipulated directly by only
|
||||
these 5 functions:
|
||||
|
||||
findslot() - Translate entry.
|
||||
newslot() - Find empty entry.
|
||||
initilise_monitor_handles() - Initialize entries.
|
||||
_swiopen() - Initialize entry.
|
||||
_close() - Handle stdout == stderr case.
|
||||
|
||||
Every other function must use findslot(). */
|
||||
|
||||
static struct fdent openfiles [MAX_OPEN_FILES];
|
||||
|
||||
static struct fdent* findslot _PARAMS ((int));
|
||||
static int newslot _PARAMS ((void));
|
||||
|
||||
/* 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)
|
||||
|
||||
static int monitor_stdin;
|
||||
static int monitor_stdout;
|
||||
static int monitor_stderr;
|
||||
|
||||
/* Return a pointer to the structure associated with
|
||||
the user file descriptor fd. */
|
||||
static struct fdent*
|
||||
findslot (int fd)
|
||||
{
|
||||
CHECK_INIT(_REENT);
|
||||
|
||||
/* User file descriptor is out of range. */
|
||||
if ((unsigned int)fd >= MAX_OPEN_FILES)
|
||||
return NULL;
|
||||
|
||||
/* User file descriptor is open? */
|
||||
if (openfiles[fd].handle == -1)
|
||||
return NULL;
|
||||
|
||||
/* Valid. */
|
||||
return &openfiles[fd];
|
||||
}
|
||||
|
||||
/* Return the next lowest numbered free file
|
||||
structure, or -1 if we can't find one. */
|
||||
static int
|
||||
newslot (void)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < MAX_OPEN_FILES; i++)
|
||||
if (openfiles[i].handle == -1)
|
||||
break;
|
||||
|
||||
if (i == MAX_OPEN_FILES)
|
||||
return -1;
|
||||
|
||||
return i;
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
/* If we failed to open stderr, redirect to stdout. */
|
||||
if (monitor_stderr == -1)
|
||||
monitor_stderr = monitor_stdout;
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
/* Set errno and return result. */
|
||||
static int
|
||||
error (int result)
|
||||
{
|
||||
errno = get_errno ();
|
||||
return result;
|
||||
}
|
||||
|
||||
/* Check the return and set errno appropriately. */
|
||||
static int
|
||||
checkerror (int result)
|
||||
{
|
||||
if (result == -1)
|
||||
return error (-1);
|
||||
return result;
|
||||
}
|
||||
|
||||
/* fh, is a valid internal file handle.
|
||||
ptr, is a null terminated string.
|
||||
len, is the length in bytes to read.
|
||||
Returns the number of bytes *not* written. */
|
||||
int
|
||||
_swiread (int fh,
|
||||
char * ptr,
|
||||
int len)
|
||||
{
|
||||
#ifdef ARM_RDI_MONITOR
|
||||
int block[3];
|
||||
|
||||
block[0] = fh;
|
||||
block[1] = (int) ptr;
|
||||
block[2] = len;
|
||||
|
||||
return checkerror (do_AngelSWI (AngelSWI_Reason_Read, block));
|
||||
#else
|
||||
register r0 asm("r0");
|
||||
register r1 asm("r1");
|
||||
register r2 asm("r2");
|
||||
r0 = fh;
|
||||
r1 = (int)ptr;
|
||||
r2 = len;
|
||||
asm ("swi %a4"
|
||||
: "=r" (r0)
|
||||
: "0"(r0), "r"(r1), "r"(r2), "i"(SWI_Read));
|
||||
return checkerror (r0);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* fd, is a valid user file handle.
|
||||
Translates the return of _swiread into
|
||||
bytes read. */
|
||||
int
|
||||
_read (int fd,
|
||||
char * ptr,
|
||||
int len)
|
||||
{
|
||||
int res;
|
||||
struct fdent *pfd;
|
||||
|
||||
pfd = findslot (fd);
|
||||
if (pfd == NULL)
|
||||
{
|
||||
errno = EBADF;
|
||||
return -1;
|
||||
}
|
||||
|
||||
res = _swiread (pfd->handle, ptr, len);
|
||||
|
||||
if (res == -1)
|
||||
return res;
|
||||
|
||||
pfd->pos += len - res;
|
||||
|
||||
/* res == len is not an error,
|
||||
at least if we want feof() to work. */
|
||||
return len - res;
|
||||
}
|
||||
|
||||
/* fd, is a user file descriptor. */
|
||||
int
|
||||
_swilseek (int fd,
|
||||
int ptr,
|
||||
int dir)
|
||||
{
|
||||
int res;
|
||||
struct fdent *pfd;
|
||||
|
||||
/* Valid file descriptor? */
|
||||
pfd = findslot (fd);
|
||||
if (pfd == NULL)
|
||||
{
|
||||
errno = EBADF;
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Valid whence? */
|
||||
if ((dir != SEEK_CUR)
|
||||
&& (dir != SEEK_SET)
|
||||
&& (dir != SEEK_END))
|
||||
{
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Convert SEEK_CUR to SEEK_SET */
|
||||
if (dir == SEEK_CUR)
|
||||
{
|
||||
ptr = pfd->pos + ptr;
|
||||
/* The resulting file offset would be negative. */
|
||||
if (ptr < 0)
|
||||
{
|
||||
errno = EINVAL;
|
||||
if ((pfd->pos > 0) && (ptr > 0))
|
||||
errno = EOVERFLOW;
|
||||
return -1;
|
||||
}
|
||||
dir = SEEK_SET;
|
||||
}
|
||||
|
||||
#ifdef ARM_RDI_MONITOR
|
||||
int block[2];
|
||||
if (dir == SEEK_END)
|
||||
{
|
||||
block[0] = pfd->handle;
|
||||
res = checkerror (do_AngelSWI (AngelSWI_Reason_FLen, block));
|
||||
if (res == -1)
|
||||
return -1;
|
||||
ptr += res;
|
||||
}
|
||||
|
||||
/* This code only does absolute seeks. */
|
||||
block[0] = pfd->handle;
|
||||
block[1] = ptr;
|
||||
res = checkerror (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" (pfd->handle)
|
||||
: "r0");
|
||||
checkerror (res);
|
||||
if (res == -1)
|
||||
return -1;
|
||||
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" (pfd->handle), "r" (ptr)
|
||||
: "r0", "r1");
|
||||
checkerror (res);
|
||||
#endif
|
||||
/* At this point ptr is the current file position. */
|
||||
if (res >= 0)
|
||||
{
|
||||
pfd->pos = ptr;
|
||||
return ptr;
|
||||
}
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
_lseek (int fd,
|
||||
int ptr,
|
||||
int dir)
|
||||
{
|
||||
return _swilseek (fd, ptr, dir);
|
||||
}
|
||||
|
||||
/* fh, is a valid internal file handle.
|
||||
Returns the number of bytes *not* written. */
|
||||
int
|
||||
_swiwrite (
|
||||
int fh,
|
||||
char * ptr,
|
||||
int len)
|
||||
{
|
||||
#ifdef ARM_RDI_MONITOR
|
||||
int block[3];
|
||||
|
||||
block[0] = fh;
|
||||
block[1] = (int) ptr;
|
||||
block[2] = len;
|
||||
|
||||
return checkerror (do_AngelSWI (AngelSWI_Reason_Write, block));
|
||||
#else
|
||||
register r0 asm("r0");
|
||||
register r1 asm("r1");
|
||||
register r2 asm("r2");
|
||||
r0 = fh;
|
||||
r1 = (int)ptr;
|
||||
r2 = len;
|
||||
asm ("swi %a4"
|
||||
: "=r" (r0)
|
||||
: "0"(r0), "r"(r1), "r"(r2), "i"(SWI_Write));
|
||||
return checkerror (r0);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* fd, is a user file descriptor. */
|
||||
int
|
||||
_write (int fd,
|
||||
char * ptr,
|
||||
int len)
|
||||
{
|
||||
int res;
|
||||
struct fdent *pfd;
|
||||
|
||||
pfd = findslot (fd);
|
||||
if (pfd == NULL)
|
||||
{
|
||||
errno = EBADF;
|
||||
return -1;
|
||||
}
|
||||
|
||||
res = _swiwrite (pfd->handle, ptr,len);
|
||||
|
||||
/* Clearly an error. */
|
||||
if (res < 0)
|
||||
return -1;
|
||||
|
||||
pfd->pos += len - res;
|
||||
|
||||
/* We wrote 0 bytes?
|
||||
Retrieve errno just in case. */
|
||||
if ((len - res) == 0)
|
||||
return error (0);
|
||||
|
||||
return (len - res);
|
||||
}
|
||||
|
||||
int
|
||||
_swiopen (const char * path, int flags)
|
||||
{
|
||||
int aflags = 0, fh;
|
||||
#ifdef ARM_RDI_MONITOR
|
||||
int block[3];
|
||||
#endif
|
||||
|
||||
int fd = newslot ();
|
||||
|
||||
if (fd == -1)
|
||||
{
|
||||
errno = EMFILE;
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* It is an error to open a file that already exists. */
|
||||
if ((flags & O_CREAT)
|
||||
&& (flags & O_EXCL))
|
||||
{
|
||||
struct stat st;
|
||||
int res;
|
||||
res = _stat (path, &st);
|
||||
if (res != -1)
|
||||
{
|
||||
errno = EEXIST;
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/* The flags are Unix-style, so we need to convert them. */
|
||||
#ifdef O_BINARY
|
||||
if (flags & O_BINARY)
|
||||
aflags |= 1;
|
||||
#endif
|
||||
|
||||
/* In O_RDONLY we expect aflags == 0. */
|
||||
|
||||
if (flags & O_RDWR)
|
||||
aflags |= 2;
|
||||
|
||||
if ((flags & O_CREAT)
|
||||
|| (flags & O_TRUNC)
|
||||
|| (flags & O_WRONLY))
|
||||
aflags |= 4;
|
||||
|
||||
if (flags & O_APPEND)
|
||||
{
|
||||
/* Can't ask for w AND a; means just 'a'. */
|
||||
aflags &= ~4;
|
||||
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
|
||||
|
||||
/* Return a user file descriptor or an error. */
|
||||
if (fh >= 0)
|
||||
{
|
||||
openfiles[fd].handle = fh;
|
||||
openfiles[fd].pos = 0;
|
||||
return fd;
|
||||
}
|
||||
else
|
||||
return error (fh);
|
||||
}
|
||||
|
||||
int
|
||||
_open (const char * path, int flags, ...)
|
||||
{
|
||||
return _swiopen (path, flags);
|
||||
}
|
||||
|
||||
/* fh, is a valid internal file handle. */
|
||||
int
|
||||
_swiclose (int fh)
|
||||
{
|
||||
#ifdef ARM_RDI_MONITOR
|
||||
return checkerror (do_AngelSWI (AngelSWI_Reason_Close, &fh));
|
||||
#else
|
||||
register r0 asm("r0");
|
||||
r0 = fh;
|
||||
asm ("swi %a2"
|
||||
: "=r"(r0)
|
||||
: "0"(r0), "i" (SWI_Close));
|
||||
return checkerror (r0);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* fd, is a user file descriptor. */
|
||||
int
|
||||
_close (int fd)
|
||||
{
|
||||
int res;
|
||||
struct fdent *pfd;
|
||||
|
||||
pfd = findslot (fd);
|
||||
if (pfd == NULL)
|
||||
{
|
||||
errno = EBADF;
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Handle stderr == stdout. */
|
||||
if ((fd == 1 || fd == 2)
|
||||
&& (openfiles[1].handle == openfiles[2].handle))
|
||||
{
|
||||
pfd->handle = -1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Attempt to close the handle. */
|
||||
res = _swiclose (pfd->handle);
|
||||
|
||||
/* Reclaim handle? */
|
||||
if (res == 0)
|
||||
pfd->handle = -1;
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
int __attribute__((weak))
|
||||
_getpid (int n __attribute__ ((unused)))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
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
|
||||
_swistat (int fd, struct stat * st)
|
||||
{
|
||||
struct fdent *pfd;
|
||||
int res;
|
||||
|
||||
pfd = findslot (fd);
|
||||
if (pfd == NULL)
|
||||
{
|
||||
errno = EBADF;
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Always assume a character device,
|
||||
with 1024 byte blocks. */
|
||||
st->st_mode |= S_IFCHR;
|
||||
st->st_blksize = 1024;
|
||||
#ifdef ARM_RDI_MONITOR
|
||||
res = checkerror (do_AngelSWI (AngelSWI_Reason_FLen, &pfd->handle));
|
||||
#else
|
||||
asm ("mov r0, %2; swi %a1; mov %0, r0"
|
||||
: "=r" (res)
|
||||
: "i" (SWI_Flen), "r" (pfd->handle)
|
||||
: "r0");
|
||||
checkerror (res);
|
||||
#endif
|
||||
if (res == -1)
|
||||
return -1;
|
||||
/* Return the file size. */
|
||||
st->st_size = res;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int __attribute__((weak))
|
||||
_fstat (int fd, struct stat * st)
|
||||
{
|
||||
memset (st, 0, sizeof (* st));
|
||||
return _swistat (fd, st);
|
||||
}
|
||||
|
||||
int __attribute__((weak))
|
||||
_stat (const char *fname, struct stat *st)
|
||||
{
|
||||
int fd, res;
|
||||
memset (st, 0, sizeof (* st));
|
||||
/* 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 ((fd = _open (fname, O_RDONLY)) == -1)
|
||||
return -1;
|
||||
st->st_mode |= S_IFREG | S_IREAD;
|
||||
res = _swistat (fd, st);
|
||||
/* Not interested in the error. */
|
||||
_close (fd);
|
||||
return res;
|
||||
}
|
||||
|
||||
int __attribute__((weak))
|
||||
_link (void)
|
||||
{
|
||||
errno = ENOSYS;
|
||||
return -1;
|
||||
}
|
||||
|
||||
int
|
||||
_unlink (const char *path)
|
||||
{
|
||||
int res;
|
||||
#ifdef ARM_RDI_MONITOR
|
||||
int block[2];
|
||||
block[0] = (int)path;
|
||||
block[1] = strlen(path);
|
||||
res = do_AngelSWI (AngelSWI_Reason_Remove, block);
|
||||
#else
|
||||
register r0 asm("r0");
|
||||
r0 = (int)path;
|
||||
asm ("swi %a2"
|
||||
: "=r"(r0)
|
||||
: "0"(r0), "i" (SWI_Remove));
|
||||
res = r0;
|
||||
#endif
|
||||
if (res == -1)
|
||||
return error (res);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
_gettimeofday (struct timeval * tp, void * tzvp)
|
||||
{
|
||||
struct timezone *tzp = tzvp;
|
||||
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)
|
||||
{
|
||||
struct fdent *pfd;
|
||||
int tty;
|
||||
|
||||
pfd = findslot (fd);
|
||||
if (pfd == NULL)
|
||||
{
|
||||
errno = EBADF;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef ARM_RDI_MONITOR
|
||||
tty = do_AngelSWI (AngelSWI_Reason_IsTTY, &pfd->handle);
|
||||
#else
|
||||
register r0 asm("r0");
|
||||
r0 = pfd->handle;
|
||||
asm ("swi %a2"
|
||||
: "=r" (r0)
|
||||
: "0"(r0), "i" (SWI_IsTTY));
|
||||
tty = r0;
|
||||
#endif
|
||||
|
||||
if (tty == 1)
|
||||
return 1;
|
||||
errno = get_errno ();
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
_system (const char *s)
|
||||
{
|
||||
#ifdef ARM_RDI_MONITOR
|
||||
int block[2];
|
||||
int e;
|
||||
|
||||
/* Hmmm. The ARM debug interface specification doesn't say whether
|
||||
SYS_SYSTEM does the right thing with a null argument, or assign any
|
||||
meaning to its return value. Try to do something reasonable.... */
|
||||
if (!s)
|
||||
return 1; /* maybe there is a shell available? we can hope. :-P */
|
||||
block[0] = (int)s;
|
||||
block[1] = strlen (s);
|
||||
e = checkerror (do_AngelSWI (AngelSWI_Reason_System, block));
|
||||
if ((e >= 0) && (e < 256))
|
||||
{
|
||||
/* We have to convert e, an exit status to the encoded status of
|
||||
the command. To avoid hard coding the exit status, we simply
|
||||
loop until we find the right position. */
|
||||
int exit_code;
|
||||
|
||||
for (exit_code = e; e && WEXITSTATUS (e) != exit_code; e <<= 1)
|
||||
continue;
|
||||
}
|
||||
return e;
|
||||
#else
|
||||
register r0 asm("r0");
|
||||
r0 = (int)s;
|
||||
asm ("swi %a2"
|
||||
: "=r" (r0)
|
||||
: "0"(r0), "i" (SWI_CLI));
|
||||
return checkerror (r0);
|
||||
#endif
|
||||
}
|
||||
|
||||
int
|
||||
_rename (const char * oldpath, const char * newpath)
|
||||
{
|
||||
#ifdef ARM_RDI_MONITOR
|
||||
int block[4];
|
||||
block[0] = (int)oldpath;
|
||||
block[1] = strlen(oldpath);
|
||||
block[2] = (int)newpath;
|
||||
block[3] = strlen(newpath);
|
||||
return checkerror (do_AngelSWI (AngelSWI_Reason_Rename, block)) ? -1 : 0;
|
||||
#else
|
||||
register r0 asm("r0");
|
||||
register r1 asm("r1");
|
||||
r0 = (int)oldpath;
|
||||
r1 = (int)newpath;
|
||||
asm ("swi %a3"
|
||||
: "=r" (r0)
|
||||
: "0" (r0), "r" (r1), "i" (SWI_Rename));
|
||||
return checkerror (r0);
|
||||
#endif
|
||||
}
|
@ -1,96 +0,0 @@
|
||||
#include "arm.h"
|
||||
/* Run-time exception support */
|
||||
#ifndef THUMB_V7_V6M
|
||||
#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
|
@ -1,209 +0,0 @@
|
||||
#
|
||||
#
|
||||
|
||||
DESTDIR =
|
||||
VPATH = @srcdir@ @srcdir@/..
|
||||
srcdir = @srcdir@
|
||||
objdir = .
|
||||
srcroot = $(srcdir)/../..
|
||||
objroot = $(objdir)/../..
|
||||
top_srcdir = @top_srcdir@
|
||||
|
||||
prefix = @prefix@
|
||||
exec_prefix = @exec_prefix@
|
||||
|
||||
host_alias = @host_alias@
|
||||
target_alias = @target_alias@
|
||||
|
||||
bindir = @bindir@
|
||||
libdir = @libdir@
|
||||
tooldir = $(exec_prefix)/$(target_alias)
|
||||
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
|
||||
# Multilib support variables.
|
||||
# TOP is used instead of MULTI{BUILD,SRC}TOP.
|
||||
MULTIDIRS =
|
||||
MULTISUBDIR =
|
||||
|
||||
SHELL = /bin/sh
|
||||
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
|
||||
|
||||
CC = @CC@
|
||||
|
||||
AS = @AS@
|
||||
AR = @AR@
|
||||
LD = @LD@
|
||||
RANLIB = @RANLIB@
|
||||
|
||||
OBJDUMP = `if [ -f ${objroot}/../binutils/objdump ] ; \
|
||||
then echo ${objroot}/../binutils/objdump ; \
|
||||
else t='$(program_transform_name)'; echo objdump | sed -e $$t ; fi`
|
||||
OBJCOPY = `if [ -f ${objroot}/../binutils/objcopy ] ; \
|
||||
then echo ${objroot}/../binutils/objcopy ; \
|
||||
else t='$(program_transform_name)'; echo objcopy | sed -e $$t ; fi`
|
||||
|
||||
OBJS =
|
||||
CFLAGS =
|
||||
SCRIPTS =
|
||||
|
||||
# Here is all of the simulator stuff
|
||||
SIM_SCRIPTS =
|
||||
SIM_LDFLAGS =
|
||||
SIM_BSP = libsim.a
|
||||
SIM_CRT0 = crt0.o
|
||||
SIM_OBJS = syscalls.o clear_cache_range.o
|
||||
SIM_TEST = sim-test
|
||||
SIM_INSTALL = install-sim
|
||||
|
||||
# Here is all of the development board stuff
|
||||
BOARD_SCRIPTS = bfin-common-sc.ld bfin-common-mc.ld bfin-common-mc0.ld \
|
||||
bf504.ld bf506.ld \
|
||||
bf512.ld bf514.ld bf516.ld bf518.ld \
|
||||
bf522.ld bf523.ld bf524.ld bf525.ld bf526.ld bf527.ld \
|
||||
bf531.ld bf532.ld bf533.ld \
|
||||
bf534.ld bf536.ld bf537.ld \
|
||||
bf538.ld bf539.ld \
|
||||
bf542.ld bf544.ld bf547.ld bf548.ld bf549.ld \
|
||||
bf561.ld bf561a.ld bf561b.ld bf561m.ld \
|
||||
bf606.ld bf606c0.ld bf606c1.ld bf606m.ld \
|
||||
bf607.ld bf607c0.ld bf607c1.ld bf607m.ld \
|
||||
bf608.ld bf608c0.ld bf608c1.ld bf608m.ld \
|
||||
bf609.ld bf609c0.ld bf609c1.ld bf609m.ld \
|
||||
bf592.ld
|
||||
BOARD_LDFLAGS =
|
||||
BOARD_BSP = libbfinbsp.a
|
||||
BOARD_CRT0S = basiccrt.o basiccrts.o
|
||||
BOARD_CRT0S += basiccrt561.o basiccrt561s.o basiccrt561b.o
|
||||
BOARD_CRT0S += basiccrt60x.o basiccrt60xs.o basiccrt60xc1.o
|
||||
BOARD_OBJS = clear_cache_range.o _exit.o
|
||||
BOARD_TEST =
|
||||
BOARD_INSTALL = install-board
|
||||
|
||||
# Host specific makefile fragment comes in here.
|
||||
@host_makefile_frag@
|
||||
|
||||
INCLUDES += -I$(srcdir)/include
|
||||
#
|
||||
# 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: ${SIM_CRT0} ${SIM_BSP} ${BOARD_CRT0S} ${BOARD_BSP}
|
||||
|
||||
#
|
||||
# here's where we build the board support packages for each target
|
||||
#
|
||||
${BOARD_BSP}: ${OBJS} ${BOARD_OBJS}
|
||||
${AR} ${ARFLAGS} $@ $^
|
||||
${RANLIB} $@
|
||||
|
||||
${SIM_BSP}: ${OBJS} ${SIM_OBJS}
|
||||
${AR} ${ARFLAGS} ${SIM_BSP} ${SIM_OBJS} ${OBJS}
|
||||
${RANLIB} ${SIM_BSP}
|
||||
|
||||
#
|
||||
#
|
||||
#
|
||||
crt0.o: crt0.S
|
||||
|
||||
basiccrt.o: basiccrt.S
|
||||
ifeq (,$(findstring mcpu=,$(CFLAGS)))
|
||||
$(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -mcpu=bf532-any -o $@ -c $<
|
||||
else
|
||||
$(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -o $@ -c $<
|
||||
endif
|
||||
|
||||
basiccrts.o: basiccrt.S
|
||||
ifeq (,$(findstring mcpu=,$(CFLAGS)))
|
||||
$(CC) -D__BFIN_SDRAM $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -mcpu=bf532-any -o $@ -c $<
|
||||
else
|
||||
$(CC) -D__BFIN_SDRAM $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -o $@ -c $<
|
||||
endif
|
||||
|
||||
basiccrt561.o: basiccrt.S
|
||||
ifneq (,$(findstring mcpu=bf532-none,$(CFLAGS)))
|
||||
$(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -mcpu=bf561-none -o $@ -c $<
|
||||
else
|
||||
$(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -mcpu=bf561-any -o $@ -c $<
|
||||
endif
|
||||
|
||||
basiccrt561s.o: basiccrt.S
|
||||
ifneq (,$(findstring mcpu=bf532-none,$(CFLAGS)))
|
||||
$(CC) -D__BFIN_SDRAM $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -mcpu=bf561-none -o $@ -c $<
|
||||
else
|
||||
$(CC) -D__BFIN_SDRAM $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -mcpu=bf561-any -o $@ -c $<
|
||||
endif
|
||||
|
||||
basiccrt561b.o: basiccrt.S
|
||||
ifneq (,$(findstring mcpu=bf532-none,$(CFLAGS)))
|
||||
$(CC) -D__ADSPBF561_COREB__ $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -mcpu=bf561-none -o $@ -c $<
|
||||
else
|
||||
$(CC) -D__ADSPBF561_COREB__ $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -mcpu=bf561-any -o $@ -c $<
|
||||
endif
|
||||
|
||||
basiccrt60x.o: basiccrt.S
|
||||
ifneq (,$(findstring mcpu=bf532-none,$(CFLAGS)))
|
||||
$(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -mcpu=bf608-none -o $@ -c $<
|
||||
else
|
||||
$(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -mcpu=bf608-any -o $@ -c $<
|
||||
endif
|
||||
|
||||
basiccrt60xs.o: basiccrt.S
|
||||
ifneq (,$(findstring mcpu=bf532-none,$(CFLAGS)))
|
||||
$(CC) -D__BFIN_SDRAM $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -mcpu=bf608-none -o $@ -c $<
|
||||
else
|
||||
$(CC) -D__BFIN_SDRAM $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -mcpu=bf608-any -o $@ -c $<
|
||||
endif
|
||||
|
||||
basiccrt60xc1.o: basiccrt.S
|
||||
ifneq (,$(findstring mcpu=bf532-none,$(CFLAGS)))
|
||||
$(CC) -D__ADSPBF60x_CORE1__ $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -mcpu=bf608-none -o $@ -c $<
|
||||
else
|
||||
$(CC) -D__ADSPBF60x_CORE1__ $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -mcpu=bf608-any -o $@ -c $<
|
||||
endif
|
||||
|
||||
clean mostlyclean:
|
||||
rm -f a.out core *.i *.o ${SIM_BSP} ${BOARD_BSP}
|
||||
|
||||
distclean maintainer-clean realclean: clean
|
||||
rm -f Makefile config.status *~
|
||||
|
||||
.PHONY: install info install-info clean-info
|
||||
install: ${SIM_INSTALL} ${BOARD_INSTALL}
|
||||
|
||||
install-sim:
|
||||
for x in ${SIM_CRT0} ${SIM_BSP} ${SIM_SCRIPTS}; do \
|
||||
${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x || exit $$?; \
|
||||
done
|
||||
|
||||
install-board:
|
||||
for x in ${BOARD_CRT0S} ${BOARD_BSP}; do \
|
||||
${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x || exit $$?; \
|
||||
done
|
||||
-if [ -z "${MULTISUBDIR}" ]; then \
|
||||
for x in ${BOARD_SCRIPTS}; do \
|
||||
${INSTALL_DATA} ${srcdir}/$$x $(DESTDIR)${tooldir}/lib/$$x; \
|
||||
done; \
|
||||
${mkinstalldirs} ${DESTDIR}${tooldir}/include; \
|
||||
for i in ${srcdir}/include/*.h; do \
|
||||
${INSTALL_DATA} $$i ${DESTDIR}${tooldir}/include/`basename $$i`; \
|
||||
done; \
|
||||
${mkinstalldirs} ${DESTDIR}${tooldir}/include/sys; \
|
||||
for i in ${srcdir}/include/sys/*.h; do \
|
||||
${INSTALL_DATA} $$i ${DESTDIR}${tooldir}/include/sys/`basename $$i`; \
|
||||
done; \
|
||||
else true; fi
|
||||
|
||||
doc:
|
||||
info:
|
||||
install-info:
|
||||
clean-info:
|
||||
|
||||
Makefile: Makefile.in config.status @host_makefile_frag_path@
|
||||
$(SHELL) config.status
|
||||
|
||||
config.status: configure
|
||||
$(SHELL) config.status --recheck
|
@ -1,25 +0,0 @@
|
||||
/*
|
||||
* C library support files for the Blackfin processor
|
||||
*
|
||||
* Copyright (C) 2012 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
#include <_ansi.h>
|
||||
|
||||
_VOID
|
||||
_DEFUN (_exit, (rc),
|
||||
int rc)
|
||||
{
|
||||
while (1)
|
||||
asm volatile ("EXCPT 0;");
|
||||
}
|
344
libgloss/bfin/aclocal.m4
vendored
344
libgloss/bfin/aclocal.m4
vendored
@ -1,344 +0,0 @@
|
||||
# generated automatically by aclocal 1.9.5 -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||
# 2005 Free Software Foundation, Inc.
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
# AM_CONDITIONAL -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 7
|
||||
|
||||
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
|
||||
# -------------------------------------
|
||||
# Define a conditional.
|
||||
AC_DEFUN([AM_CONDITIONAL],
|
||||
[AC_PREREQ(2.52)dnl
|
||||
ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
|
||||
[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
|
||||
AC_SUBST([$1_TRUE])
|
||||
AC_SUBST([$1_FALSE])
|
||||
if $2; then
|
||||
$1_TRUE=
|
||||
$1_FALSE='#'
|
||||
else
|
||||
$1_TRUE='#'
|
||||
$1_FALSE=
|
||||
fi
|
||||
AC_CONFIG_COMMANDS_PRE(
|
||||
[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
|
||||
AC_MSG_ERROR([[conditional "$1" was never defined.
|
||||
Usually this means the macro was only invoked conditionally.]])
|
||||
fi])])
|
||||
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 8
|
||||
|
||||
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
|
||||
# written in clear, in which case automake, when reading aclocal.m4,
|
||||
# will think it sees a *use*, and therefore will trigger all it's
|
||||
# C support machinery. Also note that it means that autoscan, seeing
|
||||
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
|
||||
|
||||
|
||||
# _AM_DEPENDENCIES(NAME)
|
||||
# ----------------------
|
||||
# See how the compiler implements dependency checking.
|
||||
# NAME is "CC", "CXX", "GCJ", or "OBJC".
|
||||
# We try a few techniques and use that to set a single cache variable.
|
||||
#
|
||||
# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
|
||||
# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
|
||||
# dependency, and given that the user is not expected to run this macro,
|
||||
# just rely on AC_PROG_CC.
|
||||
AC_DEFUN([_AM_DEPENDENCIES],
|
||||
[AC_REQUIRE([AM_SET_DEPDIR])dnl
|
||||
AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
|
||||
AC_REQUIRE([AM_MAKE_INCLUDE])dnl
|
||||
AC_REQUIRE([AM_DEP_TRACK])dnl
|
||||
|
||||
ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
|
||||
[$1], CXX, [depcc="$CXX" am_compiler_list=],
|
||||
[$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
|
||||
[$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
|
||||
[depcc="$$1" am_compiler_list=])
|
||||
|
||||
AC_CACHE_CHECK([dependency style of $depcc],
|
||||
[am_cv_$1_dependencies_compiler_type],
|
||||
[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
|
||||
# We make a subdir and do the tests there. Otherwise we can end up
|
||||
# making bogus files that we don't know about and never remove. For
|
||||
# instance it was reported that on HP-UX the gcc test will end up
|
||||
# making a dummy file named `D' -- because `-MD' means `put the output
|
||||
# in D'.
|
||||
mkdir conftest.dir
|
||||
# Copy depcomp to subdir because otherwise we won't find it if we're
|
||||
# using a relative directory.
|
||||
cp "$am_depcomp" conftest.dir
|
||||
cd conftest.dir
|
||||
# We will build objects and dependencies in a subdirectory because
|
||||
# it helps to detect inapplicable dependency modes. For instance
|
||||
# both Tru64's cc and ICC support -MD to output dependencies as a
|
||||
# side effect of compilation, but ICC will put the dependencies in
|
||||
# the current directory while Tru64 will put them in the object
|
||||
# directory.
|
||||
mkdir sub
|
||||
|
||||
am_cv_$1_dependencies_compiler_type=none
|
||||
if test "$am_compiler_list" = ""; then
|
||||
am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
|
||||
fi
|
||||
for depmode in $am_compiler_list; do
|
||||
# Setup a source with many dependencies, because some compilers
|
||||
# like to wrap large dependency lists on column 80 (with \), and
|
||||
# we should not choose a depcomp mode which is confused by this.
|
||||
#
|
||||
# We need to recreate these files for each test, as the compiler may
|
||||
# overwrite some of them when testing with obscure command lines.
|
||||
# This happens at least with the AIX C compiler.
|
||||
: > sub/conftest.c
|
||||
for i in 1 2 3 4 5 6; do
|
||||
echo '#include "conftst'$i'.h"' >> sub/conftest.c
|
||||
# Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
|
||||
# Solaris 8's {/usr,}/bin/sh.
|
||||
touch sub/conftst$i.h
|
||||
done
|
||||
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
|
||||
|
||||
case $depmode in
|
||||
nosideeffect)
|
||||
# after this tag, mechanisms are not by side-effect, so they'll
|
||||
# only be used when explicitly requested
|
||||
if test "x$enable_dependency_tracking" = xyes; then
|
||||
continue
|
||||
else
|
||||
break
|
||||
fi
|
||||
;;
|
||||
none) break ;;
|
||||
esac
|
||||
# We check with `-c' and `-o' for the sake of the "dashmstdout"
|
||||
# mode. It turns out that the SunPro C++ compiler does not properly
|
||||
# handle `-M -o', and we need to detect this.
|
||||
if depmode=$depmode \
|
||||
source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
|
||||
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
|
||||
$SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
|
||||
>/dev/null 2>conftest.err &&
|
||||
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
|
||||
grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
|
||||
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
|
||||
# icc doesn't choke on unknown options, it will just issue warnings
|
||||
# or remarks (even with -Werror). So we grep stderr for any message
|
||||
# that says an option was ignored or not supported.
|
||||
# When given -MP, icc 7.0 and 7.1 complain thusly:
|
||||
# icc: Command line warning: ignoring option '-M'; no argument required
|
||||
# The diagnosis changed in icc 8.0:
|
||||
# icc: Command line remark: option '-MP' not supported
|
||||
if (grep 'ignoring option' conftest.err ||
|
||||
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
|
||||
am_cv_$1_dependencies_compiler_type=$depmode
|
||||
break
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
cd ..
|
||||
rm -rf conftest.dir
|
||||
else
|
||||
am_cv_$1_dependencies_compiler_type=none
|
||||
fi
|
||||
])
|
||||
AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
|
||||
AM_CONDITIONAL([am__fastdep$1], [
|
||||
test "x$enable_dependency_tracking" != xno \
|
||||
&& test "$am_cv_$1_dependencies_compiler_type" = gcc3])
|
||||
])
|
||||
|
||||
|
||||
# AM_SET_DEPDIR
|
||||
# -------------
|
||||
# Choose a directory name for dependency files.
|
||||
# This macro is AC_REQUIREd in _AM_DEPENDENCIES
|
||||
AC_DEFUN([AM_SET_DEPDIR],
|
||||
[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
||||
AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
|
||||
])
|
||||
|
||||
|
||||
# AM_DEP_TRACK
|
||||
# ------------
|
||||
AC_DEFUN([AM_DEP_TRACK],
|
||||
[AC_ARG_ENABLE(dependency-tracking,
|
||||
[ --disable-dependency-tracking speeds up one-time build
|
||||
--enable-dependency-tracking do not reject slow dependency extractors])
|
||||
if test "x$enable_dependency_tracking" != xno; then
|
||||
am_depcomp="$ac_aux_dir/depcomp"
|
||||
AMDEPBACKSLASH='\'
|
||||
fi
|
||||
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
|
||||
AC_SUBST([AMDEPBACKSLASH])
|
||||
])
|
||||
|
||||
# Generate code to set up dependency tracking. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
#serial 3
|
||||
|
||||
# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
# ------------------------------
|
||||
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[for mf in $CONFIG_FILES; do
|
||||
# Strip MF so we end up with the name of the file.
|
||||
mf=`echo "$mf" | sed -e 's/:.*$//'`
|
||||
# Check whether this is an Automake generated Makefile or not.
|
||||
# We used to match only the files named `Makefile.in', but
|
||||
# some people rename them; so instead we look at the file content.
|
||||
# Grep'ing the first line is not enough: some people post-process
|
||||
# each Makefile.in and add a new line on top of each file to say so.
|
||||
# So let's grep whole file.
|
||||
if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
|
||||
dirpart=`AS_DIRNAME("$mf")`
|
||||
else
|
||||
continue
|
||||
fi
|
||||
# Extract the definition of DEPDIR, am__include, and am__quote
|
||||
# from the Makefile without running `make'.
|
||||
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
|
||||
test -z "$DEPDIR" && continue
|
||||
am__include=`sed -n 's/^am__include = //p' < "$mf"`
|
||||
test -z "am__include" && continue
|
||||
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
|
||||
# When using ansi2knr, U may be empty or an underscore; expand it
|
||||
U=`sed -n 's/^U = //p' < "$mf"`
|
||||
# Find all dependency output files, they are included files with
|
||||
# $(DEPDIR) in their names. We invoke sed twice because it is the
|
||||
# simplest approach to changing $(DEPDIR) to its actual value in the
|
||||
# expansion.
|
||||
for file in `sed -n "
|
||||
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
|
||||
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
|
||||
# Make sure the directory exists.
|
||||
test -f "$dirpart/$file" && continue
|
||||
fdir=`AS_DIRNAME(["$file"])`
|
||||
AS_MKDIR_P([$dirpart/$fdir])
|
||||
# echo "creating $dirpart/$file"
|
||||
echo '# dummy' > "$dirpart/$file"
|
||||
done
|
||||
done
|
||||
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
|
||||
|
||||
# AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
# -----------------------------
|
||||
# This macro should only be invoked once -- use via AC_REQUIRE.
|
||||
#
|
||||
# This code is only required when automatic dependency tracking
|
||||
# is enabled. FIXME. This creates each `.P' file that we will
|
||||
# need in order to bootstrap the dependency handling code.
|
||||
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[AC_CONFIG_COMMANDS([depfiles],
|
||||
[test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
|
||||
])
|
||||
|
||||
# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 2
|
||||
|
||||
# Check whether the underlying file-system supports filenames
|
||||
# with a leading dot. For instance MS-DOS doesn't.
|
||||
AC_DEFUN([AM_SET_LEADING_DOT],
|
||||
[rm -rf .tst 2>/dev/null
|
||||
mkdir .tst 2>/dev/null
|
||||
if test -d .tst; then
|
||||
am__leading_dot=.
|
||||
else
|
||||
am__leading_dot=_
|
||||
fi
|
||||
rmdir .tst 2>/dev/null
|
||||
AC_SUBST([am__leading_dot])])
|
||||
|
||||
# Check to see how 'make' treats includes. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 3
|
||||
|
||||
# AM_MAKE_INCLUDE()
|
||||
# -----------------
|
||||
# Check to see how make treats includes.
|
||||
AC_DEFUN([AM_MAKE_INCLUDE],
|
||||
[am_make=${MAKE-make}
|
||||
cat > confinc << 'END'
|
||||
am__doit:
|
||||
@echo done
|
||||
.PHONY: am__doit
|
||||
END
|
||||
# If we don't find an include directive, just comment out the code.
|
||||
AC_MSG_CHECKING([for style of include used by $am_make])
|
||||
am__include="#"
|
||||
am__quote=
|
||||
_am_result=none
|
||||
# First try GNU make style include.
|
||||
echo "include confinc" > confmf
|
||||
# We grep out `Entering directory' and `Leaving directory'
|
||||
# messages which can occur if `w' ends up in MAKEFLAGS.
|
||||
# In particular we don't look at `^make:' because GNU make might
|
||||
# be invoked under some other name (usually "gmake"), in which
|
||||
# case it prints its new name instead of `make'.
|
||||
if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
|
||||
am__include=include
|
||||
am__quote=
|
||||
_am_result=GNU
|
||||
fi
|
||||
# Now try BSD make style include.
|
||||
if test "$am__include" = "#"; then
|
||||
echo '.include "confinc"' > confmf
|
||||
if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
|
||||
am__include=.include
|
||||
am__quote="\""
|
||||
_am_result=BSD
|
||||
fi
|
||||
fi
|
||||
AC_SUBST([am__include])
|
||||
AC_SUBST([am__quote])
|
||||
AC_MSG_RESULT([$_am_result])
|
||||
rm -f confinc confmf
|
||||
])
|
||||
|
||||
m4_include([../acinclude.m4])
|
@ -1,627 +0,0 @@
|
||||
/*
|
||||
* Basic startup code for Blackfin processor
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
// basic startup code which
|
||||
// - turns the cycle counter on
|
||||
// - loads up FP & SP (both supervisor and user)
|
||||
// - initialises the device drivers (FIOCRT)
|
||||
// - calls monstartup to set up the profiling routines (PROFCRT)
|
||||
// - calls the C++ startup (CPLUSCRT)
|
||||
// - initialises argc/argv (FIOCRT/normal)
|
||||
// - calls _main
|
||||
// - calls _exit (which calls monexit to dump accumulated prof data (PROFCRT))
|
||||
// - defines dummy IO routines (!FIOCRT)
|
||||
|
||||
#include <sys/platform.h>
|
||||
#include <cplb.h>
|
||||
#include <sys/anomaly_macros_rtl.h>
|
||||
|
||||
#define IVBh (EVT0 >> 16)
|
||||
#define IVBl (EVT0 & 0xFFFF)
|
||||
#define UNASSIGNED_VAL 0
|
||||
#define UNASSIGNED_FILL 0
|
||||
// just IVG15
|
||||
#define INTERRUPT_BITS 0x400
|
||||
#if defined(_ADI_THREADS) || \
|
||||
!defined(__ADSPLPBLACKFIN__) || defined(__ADSPBF561__) || defined(__ADSPBF566__)
|
||||
#define SET_CLOCK_SPEED 0
|
||||
#else
|
||||
#define SET_CLOCK_SPEED 1
|
||||
#endif
|
||||
|
||||
#if SET_CLOCK_SPEED == 1
|
||||
#include <sys/pll.h>
|
||||
#define SET_CLK_MSEL 0x16
|
||||
#define SET_CLK_DF 0
|
||||
#define SET_CLK_LOCK_COUNT 0x300
|
||||
#define SET_CLK_CSEL 0
|
||||
#define SET_CLK_SSEL 5
|
||||
|
||||
/*
|
||||
** CLKIN == 27MHz on the EZ-Kits.
|
||||
** D==0 means CLKIN is passed to PLL without dividing.
|
||||
** MSEL==0x16 means VCO==27*0x16 == 594MHz
|
||||
** CSEL==0 means CCLK==VCO == 594MHz
|
||||
** SSEL==5 means SCLK==VCO/5 == 118MHz
|
||||
*/
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef __ADSPBF561_COREB__
|
||||
.section .b.text,"ax",@progbits
|
||||
.align 2;
|
||||
.global __coreb_start;
|
||||
.type __coreb_start, STT_FUNC;
|
||||
__coreb_start:
|
||||
#elif defined(__ADSPBF60x_CORE1__)
|
||||
.section .1.text,"ax",@progbits
|
||||
.align 2;
|
||||
.global __core1_start;
|
||||
.type __core1_start, STT_FUNC;
|
||||
__core1_start:
|
||||
#else
|
||||
.text;
|
||||
.align 2;
|
||||
.global __start;
|
||||
.type __start, STT_FUNC;
|
||||
__start:
|
||||
#endif
|
||||
#if WA_05000109
|
||||
// Avoid Anomaly ID 05000109.
|
||||
# define SYSCFG_VALUE 0x30
|
||||
R1 = SYSCFG_VALUE;
|
||||
SYSCFG = R1;
|
||||
#endif
|
||||
#if WA_05000229
|
||||
// Avoid Anomaly 05-00-0229: DMA5_CONFIG and SPI_CTL not cleared on reset.
|
||||
R1 = 0x400;
|
||||
#if defined(__ADSPBF538__) || defined(__ADSPBF539__)
|
||||
P0.L = SPI0_CTL & 0xFFFF;
|
||||
P0.H = SPI0_CTL >> 16;
|
||||
W[P0] = R1.L;
|
||||
#else
|
||||
P0.L = SPI_CTL & 0xFFFF;
|
||||
P0.H = SPI_CTL >> 16;
|
||||
W[P0] = R1.L;
|
||||
#endif
|
||||
P0.L = DMA5_CONFIG & 0xFFFF;
|
||||
P0.H = DMA5_CONFIG >> 16;
|
||||
R1 = 0;
|
||||
W[P0] = R1.L;
|
||||
#endif
|
||||
// Zap loop counters to zero, to make sure that
|
||||
// hw loops are disabled - it could be really baffling
|
||||
// if the counters and bottom regs are set, and we happen
|
||||
// to run into them.
|
||||
R7 = 0;
|
||||
LC0 = R7;
|
||||
LC1 = R7;
|
||||
|
||||
// Clear the DAG Length regs too, so that it's safe to
|
||||
// use I-regs without them wrapping around.
|
||||
L0 = R7;
|
||||
L1 = R7;
|
||||
L2 = R7;
|
||||
L3 = R7;
|
||||
|
||||
// Zero ITEST_COMMAND and DTEST_COMMAND
|
||||
// (in case they have crud in them and
|
||||
// does a write somewhere when we enable cache)
|
||||
I0.L = (ITEST_COMMAND & 0xFFFF);
|
||||
I0.H = (ITEST_COMMAND >> 16);
|
||||
I1.L = (DTEST_COMMAND & 0xFFFF);
|
||||
I1.H = (DTEST_COMMAND >> 16);
|
||||
R7 = 0;
|
||||
[I0] = R7;
|
||||
[I1] = R7;
|
||||
// It seems writing ITEST_COMMAND from SDRAM with icache enabled
|
||||
// needs SSYNC.
|
||||
#ifdef __BFIN_SDRAM
|
||||
SSYNC;
|
||||
#else
|
||||
CSYNC;
|
||||
#endif
|
||||
|
||||
// Initialise the Event Vector table.
|
||||
P0.H = IVBh;
|
||||
P0.L = IVBl;
|
||||
|
||||
// Install __unknown_exception_occurred in EVT so that
|
||||
// there is defined behaviour.
|
||||
P0 += 2*4; // Skip Emulation and Reset
|
||||
P1 = 13;
|
||||
R1.L = __unknown_exception_occurred;
|
||||
R1.H = __unknown_exception_occurred;
|
||||
LSETUP (L$ivt,L$ivt) LC0 = P1;
|
||||
L$ivt: [P0++] = R1;
|
||||
// Set IVG15's handler to be the start of the mode-change
|
||||
// code. Then, before we return from the Reset back to user
|
||||
// mode, we'll raise IVG15. This will mean we stay in supervisor
|
||||
// mode, and continue from the mode-change point., but at a
|
||||
// much lower priority.
|
||||
P1.H = L$supervisor_mode;
|
||||
P1.L = L$supervisor_mode;
|
||||
[P0] = P1;
|
||||
|
||||
// Initialise the stack.
|
||||
// Note: this points just past the end of the section.
|
||||
// First write should be with [--SP].
|
||||
#ifdef __BFIN_SDRAM
|
||||
SP.L = __end + 0x400000 - 12;
|
||||
SP.H = __end + 0x400000 - 12;
|
||||
#else
|
||||
#ifdef __ADSPBF561_COREB__
|
||||
SP.L=__coreb_stack_end - 12;
|
||||
SP.H=__coreb_stack_end - 12;
|
||||
#elif defined(__ADSPBF60x_CORE1__)
|
||||
SP.L=__core1_stack_end - 12;
|
||||
SP.H=__core1_stack_end - 12;
|
||||
#else
|
||||
SP.L=__stack_end - 12;
|
||||
SP.H=__stack_end - 12;
|
||||
#endif
|
||||
#endif
|
||||
usp = sp;
|
||||
|
||||
// We're still in supervisor mode at the moment, so the FP
|
||||
// needs to point to the supervisor stack.
|
||||
FP = SP;
|
||||
|
||||
// And make space for incoming "parameters" for functions
|
||||
// we call from here:
|
||||
SP += -12;
|
||||
|
||||
// Zero out bss section
|
||||
#ifdef __BFIN_SDRAM
|
||||
R0.L = ___bss_start;
|
||||
R0.H = ___bss_start;
|
||||
R1.L = __end;
|
||||
R1.H = __end;
|
||||
#else
|
||||
#ifdef __ADSPBF561_COREB__
|
||||
R0.L = __coreb_bss_start;
|
||||
R0.H = __coreb_bss_start;
|
||||
R1.L = __coreb_bss_end;
|
||||
R1.H = __coreb_bss_end;
|
||||
#elif defined(__ADSPBF60x_CORE1__)
|
||||
R0.L = __core1_bss_start;
|
||||
R0.H = __core1_bss_start;
|
||||
R1.L = __core1_bss_end;
|
||||
R1.H = __core1_bss_end;
|
||||
#else
|
||||
R0.L = __bss_start;
|
||||
R0.H = __bss_start;
|
||||
R1.L = __bss_end;
|
||||
R1.H = __bss_end;
|
||||
#endif
|
||||
#endif
|
||||
R2 = R1 - R0;
|
||||
R1 = 0;
|
||||
#ifdef __ADSPBF561_COREB__
|
||||
CALL.X __coreb_memset;
|
||||
#elif defined(__ADSPBF60x_CORE1__)
|
||||
CALL.X __core1_memset;
|
||||
#else
|
||||
CALL.X _memset;
|
||||
#endif
|
||||
|
||||
R0 = INTERRUPT_BITS;
|
||||
R0 <<= 5; // Bits 0-4 not settable.
|
||||
// CALL.X __install_default_handlers;
|
||||
R4 = R0; // Save modified list
|
||||
|
||||
R0 = SYSCFG; // Enable the Cycle counter
|
||||
BITSET(R0,1);
|
||||
SYSCFG = R0;
|
||||
|
||||
#if WA_05000137
|
||||
// Avoid anomaly #05000137
|
||||
|
||||
// Set the port preferences of DAG0 and DAG1 to be
|
||||
// different; this gives better performance when
|
||||
// performing dual-dag operations on SDRAM.
|
||||
P0.L = DMEM_CONTROL & 0xFFFF;
|
||||
P0.H = DMEM_CONTROL >> 16;
|
||||
R0 = [P0];
|
||||
BITSET(R0, 12);
|
||||
BITCLR(R0, 13);
|
||||
[P0] = R0;
|
||||
CSYNC;
|
||||
#endif
|
||||
|
||||
// Reinitialise data areas in RAM from ROM, if MemInit's
|
||||
// been used.
|
||||
// CALL.X _mi_initialize;
|
||||
|
||||
#if defined(__ADSPLPBLACKFIN__)
|
||||
#if SET_CLOCK_SPEED == 1
|
||||
|
||||
#if 0
|
||||
// Check if this feature is enabled, i.e. ___clk_ctrl is defined to non-zero
|
||||
P0.L = ___clk_ctrl;
|
||||
P0.H = ___clk_ctrl;
|
||||
R0 = MAX_IN_STARTUP;
|
||||
R1 = [P0];
|
||||
R0 = R0 - R1;
|
||||
CC = R0;
|
||||
IF CC JUMP L$clock_is_set;
|
||||
#endif
|
||||
|
||||
// Investigate whether we are a suitable revision
|
||||
// for boosting the system clocks.
|
||||
// speed.
|
||||
P0.L = DSPID & 0xFFFF;
|
||||
P0.H = DSPID >> 16;
|
||||
R0 = [P0];
|
||||
R0 = R0.L (Z);
|
||||
CC = R0 < 2;
|
||||
IF CC JUMP L$clock_is_set;
|
||||
|
||||
// Set the internal Voltage-Controlled Oscillator (VCO)
|
||||
R0 = SET_CLK_MSEL (Z);
|
||||
R1 = SET_CLK_DF (Z);
|
||||
R2 = SET_CLK_LOCK_COUNT (Z);
|
||||
CALL.X __pll_set_system_vco;
|
||||
|
||||
// Set the Core and System clocks
|
||||
R0 = SET_CLK_CSEL (Z);
|
||||
R1 = SET_CLK_SSEL (Z);
|
||||
CALL.X __pll_set_system_clocks;
|
||||
|
||||
L$clock_is_set:
|
||||
#endif
|
||||
#endif /* ADSPLPBLACKFIN */
|
||||
|
||||
#if defined(__ADSPBF561__) || defined(__ADSPBF566__) || defined(__ADSPBF606__) || defined(__ADSPBF607__) || defined(__ADSPBF608__) || defined(__ADSPBF609__)
|
||||
|
||||
// Initialise the multi-core data tables.
|
||||
// A dummy function will be called if we are not linking with
|
||||
// -multicore
|
||||
// CALL.X __mc_data_initialise;
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
// Write the cplb exception handler to the EVT if approprate and
|
||||
// initialise the CPLBs if they're needed. couldn't do
|
||||
// this before we set up the stacks.
|
||||
P2.H = ___cplb_ctrl;
|
||||
P2.L = ___cplb_ctrl;
|
||||
R0 = CPLB_ENABLE_ANY_CPLBS;
|
||||
R6 = [P2];
|
||||
R0 = R0 & R6;
|
||||
CC = R0;
|
||||
IF !CC JUMP L$no_cplbs;
|
||||
#if !defined(_ADI_THREADS)
|
||||
P1.H = __cplb_hdr;
|
||||
P1.L = __cplb_hdr;
|
||||
P0.H = IVBh;
|
||||
P0.L = IVBl;
|
||||
[P0+12] = P1; // write exception handler
|
||||
#endif /* _ADI_THREADS */
|
||||
R0 = R6;
|
||||
CALL.X __cplb_init;
|
||||
#endif
|
||||
L$no_cplbs:
|
||||
// Enable interrupts
|
||||
STI R4; // Using the mask from default handlers
|
||||
RAISE 15;
|
||||
|
||||
// Move the processor into user mode.
|
||||
P0.L=L$still_interrupt_in_ipend;
|
||||
P0.H=L$still_interrupt_in_ipend;
|
||||
RETI=P0;
|
||||
|
||||
L$still_interrupt_in_ipend:
|
||||
rti; // keep doing 'rti' until we've 'finished' servicing all
|
||||
// interrupts of priority higher than IVG15. Normally one
|
||||
// would expect to only have the reset interrupt in IPEND
|
||||
// being serviced, but occasionally when debugging this may
|
||||
// not be the case - if restart is hit when servicing an
|
||||
// interrupt.
|
||||
//
|
||||
// When we clear all bits from IPEND, we'll enter user mode,
|
||||
// then we'll automatically jump to supervisor_mode to start
|
||||
// servicing IVG15 (which we will 'service' for the whole
|
||||
// program, so that the program is in supervisor mode.
|
||||
//
|
||||
// Need to do this to 'finish' servicing the reset interupt.
|
||||
|
||||
L$supervisor_mode:
|
||||
[--SP] = RETI; // re-enables the interrupt system
|
||||
|
||||
R0.L = UNASSIGNED_VAL;
|
||||
R0.H = UNASSIGNED_VAL;
|
||||
#if UNASSIGNED_FILL
|
||||
R2=R0;
|
||||
R3=R0;
|
||||
R4=R0;
|
||||
R5=R0;
|
||||
R6=R0;
|
||||
R7=R0;
|
||||
P0=R0;
|
||||
P1=R0;
|
||||
P2=R0;
|
||||
P3=R0;
|
||||
P4=R0;
|
||||
P5=R0;
|
||||
#endif
|
||||
// Push a RETS and Old FP onto the stack, for sanity.
|
||||
[--SP]=R0;
|
||||
[--SP]=R0;
|
||||
// Make sure the FP is sensible.
|
||||
FP = SP;
|
||||
|
||||
// And leave space for incoming "parameters"
|
||||
SP += -12;
|
||||
|
||||
#ifdef PROFCRT
|
||||
CALL.X monstartup; // initialise profiling routines
|
||||
#endif /* PROFCRT */
|
||||
|
||||
#if !defined(__ADSPBF561_COREB__) && !defined(__ADSPBF60x_CORE1__)
|
||||
CALL.X __init;
|
||||
|
||||
R0.L = __fini;
|
||||
R0.H = __fini;
|
||||
CALL.X _atexit;
|
||||
#endif
|
||||
|
||||
#if !defined(_ADI_THREADS)
|
||||
#ifdef FIOCRT
|
||||
// FILE IO provides access to real command-line arguments.
|
||||
CALL.X __getargv;
|
||||
r1.l=__Argv;
|
||||
r1.h=__Argv;
|
||||
#else
|
||||
// Default to having no arguments and a null list.
|
||||
R0=0;
|
||||
#ifdef __ADSPBF561_COREB__
|
||||
R1.L=L$argv_coreb;
|
||||
R1.H=L$argv_coreb;
|
||||
#elif defined(__ADSPBF60x_CORE1__)
|
||||
R1.L=L$argv_core1;
|
||||
R1.H=L$argv_core1;
|
||||
#else
|
||||
R1.L=L$argv;
|
||||
R1.H=L$argv;
|
||||
#endif
|
||||
#endif /* FIOCRT */
|
||||
#endif /* _ADI_THREADS */
|
||||
|
||||
// At long last, call the application program.
|
||||
#ifdef __ADSPBF561_COREB__
|
||||
CALL.X _coreb_main;
|
||||
#elif defined(__ADSPBF60x_CORE1__)
|
||||
CALL.X _core1_main;
|
||||
#else
|
||||
CALL.X _main;
|
||||
#endif
|
||||
|
||||
#if !defined(_ADI_THREADS)
|
||||
#if !defined(__ADSPBF561_COREB__) && !defined(__ADSPBF60x_CORE1__)
|
||||
CALL.X _exit; // passing in main's return value
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef __ADSPBF561_COREB__
|
||||
.size __coreb_start, .-__coreb_start
|
||||
#elif defined(__ADSPBF60x_CORE1__)
|
||||
.size __core1_start, .-__core1_start
|
||||
#else
|
||||
.size __start, .-__start
|
||||
#endif
|
||||
|
||||
.align 2
|
||||
.type __unknown_exception_occurred, STT_FUNC;
|
||||
__unknown_exception_occurred:
|
||||
// This function is invoked by the default exception
|
||||
// handler, if it does not recognise the kind of
|
||||
// exception that has occurred. In other words, the
|
||||
// default handler only handles some of the system's
|
||||
// exception types, and it does not expect any others
|
||||
// to occur. If your application is going to be using
|
||||
// other kinds of exceptions, you must replace the
|
||||
// default handler with your own, that handles all the
|
||||
// exceptions you will use.
|
||||
//
|
||||
// Since there's nothing we can do, we just loop here
|
||||
// at what we hope is a suitably informative label.
|
||||
IDLE;
|
||||
CSYNC;
|
||||
JUMP __unknown_exception_occurred;
|
||||
RTS;
|
||||
.size __unknown_exception_occurred, .-__unknown_exception_occurred
|
||||
|
||||
#if defined(__ADSPLPBLACKFIN__)
|
||||
#if SET_CLOCK_SPEED == 1
|
||||
|
||||
/*
|
||||
** CLKIN == 27MHz on the EZ-Kits.
|
||||
** D==0 means CLKIN is passed to PLL without dividing.
|
||||
** MSEL==0x16 means VCO==27*0x16 == 594MHz
|
||||
** CSEL==0 means CCLK==VCO == 594MHz
|
||||
** SSEL==5 means SCLK==VCO/5 == 118MHz
|
||||
*/
|
||||
|
||||
// int pll_set_system_clocks(int csel, int ssel)
|
||||
// returns 0 for success, -1 for error.
|
||||
|
||||
.align 2
|
||||
.type __pll_set_system_clocks, STT_FUNC;
|
||||
__pll_set_system_clocks:
|
||||
P0.H = PLL_DIV >> 16;
|
||||
P0.L = PLL_DIV & 0xFFFF;
|
||||
R2 = W[P0] (Z);
|
||||
|
||||
// Plant CSEL and SSEL
|
||||
R0 <<= 16;
|
||||
R0.L = (4 << 8) | 2; // 2 bits, at posn 4
|
||||
R1 <<= 16;
|
||||
R1.L = 4; // 4 bits, at posn 0
|
||||
R2 = DEPOSIT(R2, R0);
|
||||
|
||||
#if defined(__WORKAROUND_DREG_COMP_LATENCY)
|
||||
// Work around anomaly 05-00-0209 which affects the DEPOSIT
|
||||
// instruction (and the EXTRACT, SIGNBITS, and EXPADJ instructions)
|
||||
// if the previous instruction created any of its operands
|
||||
NOP;
|
||||
#endif
|
||||
|
||||
R2 = DEPOSIT(R2, R1);
|
||||
|
||||
W[P0] = R2;
|
||||
SSYNC;
|
||||
RTS;
|
||||
.size __pll_set_system_clocks, .-__pll_set_system_clocks
|
||||
|
||||
// int pll_set_system_vco(int msel, int df, lockcnt)
|
||||
.align 2
|
||||
.type __pll_set_system_vco, STT_FUNC;
|
||||
__pll_set_system_vco:
|
||||
P0.H = PLL_CTL >> 16;
|
||||
P0.L = PLL_CTL & 0xFFFF;
|
||||
R3 = W[P0] (Z);
|
||||
P2 = R3; // Save copy
|
||||
R3 >>= 1; // Drop old DF
|
||||
R1 = ROT R1 BY -1; // Move DF into CC
|
||||
R3 = ROT R3 BY 1; // and into ctl space.
|
||||
R0 <<= 16; // Set up pattern reg
|
||||
R0.L = (9<<8) | 6; // (6 bits at posn 9)
|
||||
R1 = P2; // Get the old version
|
||||
R3 = DEPOSIT(R3, R0);
|
||||
CC = R1 == R3; // and if we haven't changed
|
||||
IF CC JUMP L$done; // Anything, return
|
||||
|
||||
CC = R2 == 0; // Use default lockcount if
|
||||
IF CC JUMP L$wakeup; // user one is zero.
|
||||
P2.H = PLL_LOCKCNT >> 16;
|
||||
P2.L = PLL_LOCKCNT & 0xFFFF;
|
||||
W[P2] = R2; // Set the lock counter
|
||||
L$wakeup:
|
||||
P2.H = SIC_IWR >> 16;
|
||||
P2.L = SIC_IWR & 0xFFFF;
|
||||
R2 = [P2];
|
||||
BITSET(R2, 0); // enable PLL Wakeup
|
||||
[P2] = R2;
|
||||
|
||||
W[P0] = R3; // Update PLL_CTL
|
||||
SSYNC;
|
||||
|
||||
CLI R2; // Avoid unnecessary interrupts
|
||||
IDLE; // Wait until PLL has locked
|
||||
STI R2; // Restore interrupts.
|
||||
|
||||
L$done:
|
||||
RTS;
|
||||
.size __pll_set_system_vco, .-__pll_set_system_vco
|
||||
#endif
|
||||
#endif /* ADSPLPBLACKFIN */
|
||||
|
||||
#if defined(__ADSPBF561_COREB__) || defined(__ADSPBF60x_CORE1__)
|
||||
#ifdef __ADSPBF561_COREB__
|
||||
.section .b.text,"ax",@progbits
|
||||
.type __coreb_memset, STT_FUNC
|
||||
__coreb_memset:
|
||||
#else
|
||||
.section .1.text,"ax",@progbits
|
||||
.type __core1_memset, STT_FUNC
|
||||
__core1_memset:
|
||||
#endif
|
||||
P0 = R0 ; /* P0 = address */
|
||||
P2 = R2 ; /* P2 = count */
|
||||
R3 = R0 + R2; /* end */
|
||||
CC = R2 <= 7(IU);
|
||||
IF CC JUMP .Ltoo_small;
|
||||
R1 = R1.B (Z); /* R1 = fill char */
|
||||
R2 = 3;
|
||||
R2 = R0 & R2; /* addr bottom two bits */
|
||||
CC = R2 == 0; /* AZ set if zero. */
|
||||
IF !CC JUMP .Lforce_align ; /* Jump if addr not aligned. */
|
||||
|
||||
.Laligned:
|
||||
P1 = P2 >> 2; /* count = n/4 */
|
||||
R2 = R1 << 8; /* create quad filler */
|
||||
R2.L = R2.L + R1.L(NS);
|
||||
R2.H = R2.L + R1.H(NS);
|
||||
P2 = R3;
|
||||
|
||||
LSETUP (.Lquad_loop , .Lquad_loop) LC0=P1;
|
||||
.Lquad_loop:
|
||||
[P0++] = R2;
|
||||
|
||||
CC = P0 == P2;
|
||||
IF !CC JUMP .Lbytes_left;
|
||||
RTS;
|
||||
|
||||
.Lbytes_left:
|
||||
R2 = R3; /* end point */
|
||||
R3 = P0; /* current position */
|
||||
R2 = R2 - R3; /* bytes left */
|
||||
P2 = R2;
|
||||
|
||||
.Ltoo_small:
|
||||
CC = P2 == 0; /* Check zero count */
|
||||
IF CC JUMP .Lfinished; /* Unusual */
|
||||
|
||||
.Lbytes:
|
||||
LSETUP (.Lbyte_loop , .Lbyte_loop) LC0=P2;
|
||||
.Lbyte_loop:
|
||||
B[P0++] = R1;
|
||||
|
||||
.Lfinished:
|
||||
RTS;
|
||||
|
||||
.Lforce_align:
|
||||
CC = BITTST (R0, 0); /* odd byte */
|
||||
R0 = 4;
|
||||
R0 = R0 - R2;
|
||||
P1 = R0;
|
||||
R0 = P0; /* Recover return address */
|
||||
IF !CC JUMP .Lskip1;
|
||||
B[P0++] = R1;
|
||||
.Lskip1:
|
||||
CC = R2 <= 2; /* 2 bytes */
|
||||
P2 -= P1; /* reduce count */
|
||||
IF !CC JUMP .Laligned;
|
||||
B[P0++] = R1;
|
||||
B[P0++] = R1;
|
||||
JUMP .Laligned;
|
||||
#ifdef __ADSPBF561_COREB__
|
||||
.size __coreb_memset,.-__coreb_memset
|
||||
#else
|
||||
.size __core1_memset,.-__core1_memset
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef __ADSPBF561_COREB__
|
||||
.section .b.bss,"aw",@progbits
|
||||
.align 4
|
||||
.type L$argv_coreb, @object
|
||||
.size L$argv_coreb, 4
|
||||
L$argv_coreb:
|
||||
.zero 4
|
||||
#elif defined(__ADSPBF60x_CORE1__)
|
||||
.section .1.bss,"aw",@progbits
|
||||
.align 4
|
||||
.type L$argv_core1, @object
|
||||
.size L$argv_core1, 4
|
||||
L$argv_core1:
|
||||
.zero 4
|
||||
#else
|
||||
.local L$argv
|
||||
.comm L$argv,4,4
|
||||
#endif
|
||||
|
@ -1,26 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF506 processor.
|
||||
*
|
||||
* Copyright (C) 2007-2009 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x4000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA04000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
@ -1,26 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF506 processor.
|
||||
*
|
||||
* Copyright (C) 2007-2009 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x4000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA04000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF512 processor.
|
||||
*
|
||||
* Copyright (C) 2009 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0xc000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF514 processor.
|
||||
*
|
||||
* Copyright (C) 2009 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0xc000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF516 processor.
|
||||
*
|
||||
* Copyright (C) 2009 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0xc000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF518 processor.
|
||||
*
|
||||
* Copyright (C) 2009 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0xc000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF522 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0xc000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF523 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0xc000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF522 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0xc000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF525 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0xc000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF522 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0xc000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF527 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0xc000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
@ -1,26 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF531 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA08000, LENGTH = 0x4000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF804000, LENGTH = 0x4000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF532 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA08000, LENGTH = 0x8000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF904000, LENGTH = 0x4000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF804000, LENGTH = 0x4000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF533 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x10000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executable running on
|
||||
* ADSP-BF534 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0xC000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executable running on
|
||||
* ADSP-BF536 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0xC000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF904000, LENGTH = 0x4000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF804000, LENGTH = 0x4000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executable running on
|
||||
* ADSP-BF537 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0xC000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executable running on
|
||||
* ADSP-BF538 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x10000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executable running on
|
||||
* ADSP-BF539 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x10000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF542 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x8000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x20000
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF544 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x8000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x20000
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF547 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x8000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x20000
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF548 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x8000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x20000
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF549 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x8000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x20000
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF561 processor (single core).
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x4000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x20000
|
||||
}
|
@ -1,34 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* Core A of ADSP-BF561 processor (dual core).
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x4000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
B_MEM_L1_CODE : ORIGIN = 0xFF600000, LENGTH = 0x0
|
||||
B_MEM_L1_CODE_CACHE : ORIGIN = 0xFF610000, LENGTH = 0x0
|
||||
B_MEM_L1_SCRATCH : ORIGIN = 0xFF700000, LENGTH = 0x0
|
||||
B_MEM_L1_DATA_B : ORIGIN = 0xFF500000, LENGTH = 0x0
|
||||
B_MEM_L1_DATA_A : ORIGIN = 0xFF400000, LENGTH = 0x0
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB08000, LENGTH = 0x8000
|
||||
MEM_L2_SHARED : ORIGIN = 0xFEB10000, LENGTH = 0x10000
|
||||
}
|
@ -1,36 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* Core B of ADSP-BF561 processor (dual core).
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
/* These B_MEM_* are Core A memory region with zero length.
|
||||
They just provide dummy memory region to satisfy bfin-common-mc.ld. */
|
||||
B_MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x0
|
||||
B_MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x0
|
||||
B_MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x0
|
||||
B_MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x0
|
||||
B_MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x0
|
||||
|
||||
MEM_L1_CODE : ORIGIN = 0xFF600000, LENGTH = 0x4000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFF610000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFF700000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF500000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF400000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x8000
|
||||
MEM_L2_SHARED : ORIGIN = 0xFEB10000, LENGTH = 0x10000
|
||||
}
|
@ -1,34 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF561 processor (dual core).
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x4000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
B_MEM_L1_CODE : ORIGIN = 0xFF600000, LENGTH = 0x4000
|
||||
B_MEM_L1_CODE_CACHE : ORIGIN = 0xFF610000, LENGTH = 0x4000
|
||||
B_MEM_L1_SCRATCH : ORIGIN = 0xFF700000, LENGTH = 0x1000
|
||||
B_MEM_L1_DATA_B : ORIGIN = 0xFF500000, LENGTH = 0x8000
|
||||
B_MEM_L1_DATA_A : ORIGIN = 0xFF400000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x20000
|
||||
MEM_L2_SHARED : ORIGIN = 0xFEB20000, LENGTH = 0x0
|
||||
}
|
@ -1,26 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF592 processor.
|
||||
*
|
||||
* Copyright (C) 2007-2010 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x4000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA04000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF606 processor (single core).
|
||||
*
|
||||
* Copyright (C) 2011 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x10000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xC8080000, LENGTH = 0x40000
|
||||
}
|
@ -1,34 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* Core 0 of ADSP-BF606 processor (dual core).
|
||||
*
|
||||
* Copyright (C) 2011 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x10000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_C1_L1_CODE : ORIGIN = 0xFF600000, LENGTH = 0x0
|
||||
MEM_C1_L1_CODE_CACHE : ORIGIN = 0xFF610000, LENGTH = 0x0
|
||||
MEM_C1_L1_SCRATCH : ORIGIN = 0xFF700000, LENGTH = 0x0
|
||||
MEM_C1_L1_DATA_B : ORIGIN = 0xFF500000, LENGTH = 0x0
|
||||
MEM_C1_L1_DATA_A : ORIGIN = 0xFF400000, LENGTH = 0x0
|
||||
|
||||
MEM_L2 : ORIGIN = 0xC8090000, LENGTH = 0x10000
|
||||
MEM_L2_SHARED : ORIGIN = 0xC80A0000, LENGTH = 0x20000
|
||||
}
|
@ -1,36 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* Core 1 of ADSP-BF606 processor (dual core).
|
||||
*
|
||||
* Copyright (C) 2011 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
/* These MEM_C1_* are Core A memory region with zero length.
|
||||
They just provide dummy memory region to satisfy bfin-common-mc.ld. */
|
||||
MEM_C1_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x0
|
||||
MEM_C1_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x0
|
||||
MEM_C1_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x0
|
||||
MEM_C1_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x0
|
||||
MEM_C1_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x0
|
||||
|
||||
MEM_L1_CODE : ORIGIN = 0xFF600000, LENGTH = 0x10000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFF610000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFF700000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF500000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF400000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xC8080000, LENGTH = 0x10000
|
||||
MEM_L2_SHARED : ORIGIN = 0xC80A0000, LENGTH = 0x20000
|
||||
}
|
@ -1,34 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF606 processor (dual core).
|
||||
*
|
||||
* Copyright (C) 2011 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x10000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_C1_L1_CODE : ORIGIN = 0xFF600000, LENGTH = 0x10000
|
||||
MEM_C1_L1_CODE_CACHE : ORIGIN = 0xFF610000, LENGTH = 0x4000
|
||||
MEM_C1_L1_SCRATCH : ORIGIN = 0xFF700000, LENGTH = 0x1000
|
||||
MEM_C1_L1_DATA_B : ORIGIN = 0xFF500000, LENGTH = 0x8000
|
||||
MEM_C1_L1_DATA_A : ORIGIN = 0xFF400000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xC8080000, LENGTH = 0x40000
|
||||
MEM_L2_SHARED : ORIGIN = 0xC80C0000, LENGTH = 0x0
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF607 processor (single core).
|
||||
*
|
||||
* Copyright (C) 2011 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x10000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xC8080000, LENGTH = 0x40000
|
||||
}
|
@ -1,34 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* Core 0 of ADSP-BF607 processor (dual core).
|
||||
*
|
||||
* Copyright (C) 2011 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x10000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_C1_L1_CODE : ORIGIN = 0xFF600000, LENGTH = 0x0
|
||||
MEM_C1_L1_CODE_CACHE : ORIGIN = 0xFF610000, LENGTH = 0x0
|
||||
MEM_C1_L1_SCRATCH : ORIGIN = 0xFF700000, LENGTH = 0x0
|
||||
MEM_C1_L1_DATA_B : ORIGIN = 0xFF500000, LENGTH = 0x0
|
||||
MEM_C1_L1_DATA_A : ORIGIN = 0xFF400000, LENGTH = 0x0
|
||||
|
||||
MEM_L2 : ORIGIN = 0xC8090000, LENGTH = 0x10000
|
||||
MEM_L2_SHARED : ORIGIN = 0xC80A0000, LENGTH = 0x20000
|
||||
}
|
@ -1,36 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* Core 1 of ADSP-BF607 processor (dual core).
|
||||
*
|
||||
* Copyright (C) 2011 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
/* These MEM_C1_* are Core A memory region with zero length.
|
||||
They just provide dummy memory region to satisfy bfin-common-mc.ld. */
|
||||
MEM_C1_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x0
|
||||
MEM_C1_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x0
|
||||
MEM_C1_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x0
|
||||
MEM_C1_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x0
|
||||
MEM_C1_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x0
|
||||
|
||||
MEM_L1_CODE : ORIGIN = 0xFF600000, LENGTH = 0x10000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFF610000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFF700000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF500000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF400000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xC8080000, LENGTH = 0x10000
|
||||
MEM_L2_SHARED : ORIGIN = 0xC80A0000, LENGTH = 0x20000
|
||||
}
|
@ -1,34 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF607 processor (dual core).
|
||||
*
|
||||
* Copyright (C) 2011 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x10000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_C1_L1_CODE : ORIGIN = 0xFF600000, LENGTH = 0x10000
|
||||
MEM_C1_L1_CODE_CACHE : ORIGIN = 0xFF610000, LENGTH = 0x4000
|
||||
MEM_C1_L1_SCRATCH : ORIGIN = 0xFF700000, LENGTH = 0x1000
|
||||
MEM_C1_L1_DATA_B : ORIGIN = 0xFF500000, LENGTH = 0x8000
|
||||
MEM_C1_L1_DATA_A : ORIGIN = 0xFF400000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xC8080000, LENGTH = 0x40000
|
||||
MEM_L2_SHARED : ORIGIN = 0xC80C0000, LENGTH = 0x0
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF608 processor (single core).
|
||||
*
|
||||
* Copyright (C) 2011 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x10000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xC8080000, LENGTH = 0x40000
|
||||
}
|
@ -1,34 +0,0 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* Core 0 of ADSP-BF608 processor (dual core).
|
||||
*
|
||||
* Copyright (C) 2011 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x10000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_C1_L1_CODE : ORIGIN = 0xFF600000, LENGTH = 0x0
|
||||
MEM_C1_L1_CODE_CACHE : ORIGIN = 0xFF610000, LENGTH = 0x0
|
||||
MEM_C1_L1_SCRATCH : ORIGIN = 0xFF700000, LENGTH = 0x0
|
||||
MEM_C1_L1_DATA_B : ORIGIN = 0xFF500000, LENGTH = 0x0
|
||||
MEM_C1_L1_DATA_A : ORIGIN = 0xFF400000, LENGTH = 0x0
|
||||
|
||||
MEM_L2 : ORIGIN = 0xC8090000, LENGTH = 0x10000
|
||||
MEM_L2_SHARED : ORIGIN = 0xC80A0000, LENGTH = 0x20000
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user