upgrade to newlib 1.2.0

This commit is contained in:
Stefan Lankes 2012-04-23 15:29:51 +02:00
parent ee5597df15
commit dafa1f813e
634 changed files with 58689 additions and 39685 deletions

View file

@ -285,3 +285,40 @@ 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.
(16) - GPL with exception (sparc-*leon*, crx-*, cr16-* targets only)
Copyright (C) 1992 Free Software Foundation, Inc.
Written By David Vinayak Henkel-Wallace, June 1992
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
In addition to the permissions in the GNU General Public License, the
Free Software Foundation gives you unlimited permission to link the
compiled version of this file with other programs, and to distribute
those programs without any restriction coming from the use of this
file. (The General Public License restrictions do apply in other
respects; for example, they cover modification of the file, and
distribution when not linked into another program.)
This file is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
As a special exception, if you link this library with files
compiled with GCC to produce an executable, this does not cause
the resulting executable to be covered by the GNU General Public License.
This exception does not however invalidate any other reasons why
the executable file might be covered by the GNU General Public License.

View file

@ -1,3 +1,679 @@
2011-12-18 Eric Botcazou <ebotcazou@adacore.com>
* configure: Regenerate.
2011-12-15 Jeff Johnston <jjohnstn@redhat.com>
* COPYING.LIBGLOSS: Add GPL with exception license.
2011-11-09 Roland McGrath <mcgrathr@google.com>
* configure.ac: Add tool checks for READELF and READELF_FOR_TARGET.
* configure: Rebuild.
* Makefile.def (flags_to_pass): Add READELF_FOR_TARGET.
* Makefile.tpl (READELF, READELF_FOR_TARGET): New variables.
(HOST_EXPORTS): Add READELF, READELF_FOR_TARGET.
(BASE_FLAGS_TO_PASS): Add READELF_FOR_TARGET.
(BASE_TARGET_EXPORTS, EXTRA_HOST_FLAGS, EXTRA_TARGET_FLAGS):
Add READELF.
* Makefile.in: Rebuild.
2011-11-08 Richard Henderson <rth@redhat.com>
* configure.ac: Test for libitm directory present first.
* configure.ac: Adjust srcdir for running libitm/configure.tgt.
* configure.ac: Test libitm/configure.tgt to disable libitm.
* configure: Rebuild.
2011-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* Makefile.tpl (EXTRA_GCC_FLAGS): Remove LIBGCC2_CFLAGS,
LIBGCC2_DEBUG_CFLAGS, LIBGCC2_INCLUDES.
* Makefile.in: Regenerate.
2011-11-01 DJ Delorie <dj@redhat.com>
* configure.ac (rl78-*-*) New case.
* configure: Regenerate.
2011-11-01 DJ Delorie <dj@redhat.com>
* config.sub: Update to version 2011-10-29 (added rl78)
2011-10-27 Nick Clifton <nickc@redhat.com>
* config.sub: Import these changes from the config project:
2011-10-08 Joern Rennecke <joern.rennecke@embecosm.com>
Ben Elliston <bje@gnu.org>
* config.sub (epiphany): New.
2011-09-09 Linas Vepstas <linasvepstas@gmail.com>
Ben Elliston <bje@gnu.org>
* config.sub (hexagon, hexagon-*): New.
2011-08-23 Roland McGrath <mcgrathr@google.com>
* config.sub: Rename 32eb to be32, 32el to le32, 64el to le64, and
64eb to be64.
2011-08-16 Roland McGrath <mcgrathr@google.com>
* config.sub (32eb, 32el, 64eb, 64el): New (pseudo-)CPUs.
(nacl): Grok as alias for 32el-unknown-nacl.
2011-08-19 Joel Brobecker <brobecker@adacore.com>
* src-release (GDB_SUPPORT_DIRS): Add 'cpu'.
2011-08-14 Yao Qi <yao@codesourcery.com>
Merge from gcc:
2011-08-14 Yao Qi <yao@codesourcery.com>
* configure.ac (tic6x-*-*): Remove gdb from noconfigdirs.
* configure: Regenerate.
2011-07-26 Ian Lance Taylor <iant@google.com>
Merge from gcc:
2011-07-26 Ian Lance Taylor <iant@google.com>
* configure.ac: Set have_compiler based on whether gcc directory
exists, rather than on whether gcc is in configdirs.
* configure: Rebuild.
2011-07-20 David Edelsohn <dje.gcc@gmail.com>
* Makefile.tpl (POSTSTAGE1_CONFIGURE_FLAGS): Add libsupc++ to
link directories.
* Makefile.in: Rebuild.
2011-07-20 Ian Lance Taylor <iant@google.com>
PR bootstrap/49787
* configure.ac: Move --enable-bootstrap handling earlier in file.
If --enable-bootstrap and either --enable-build-with-cxx or
--enable-build-poststage1-with-cxx, enable C++ automatically.
* configure: Rebuild.
2011-07-19 Ian Lance Taylor <iant@google.com>
* configure.ac: Add --enable-build-poststage1-with-cxx. If set,
make C++ a boot_language. Set and substitute
POSTSTAGE1_CONFIGURE_FLAGS.
* Makefile.tpl (POSTSTAGE1_CONFIGURE_FLAGS): New variable.
(STAGE[+id+]_CONFIGURE_FLAGS): Add $(POSTSTAGE1_CONFIGURE_FLAGS).
* configure, Makefile.in: Rebuild.
2011-07-16 Jason Merrill <jason@redhat.com>
* Makefile.def (language=c++): Add check-c++0x and
check-target-libmudflap-c++.
* Makefile.tpl (check-target-libmudflap-c++): New.
* Makefile.in: Regenerate.
2011-07-16 Matthias Klose <doko@ubuntu.com>
* Makefile.tpl (EXTRA_CONFIGARGS_LIBJAVA): Define.
* Makefile.def (target_modules/libjava): Pass
$(EXTRA_CONFIGARGS_LIBJAVA).
* configure.ac: Pass --disable-static in EXTRA_CONFIGARGS_LIBJAVA,
if not configured with --enable-static-libjava.
* Makefile.in: Regenerate.
* configure: Likewise.
2011-06-22 Hans-Peter Nilsson <hp@axis.com>
PR regression/47836
PR bootstrap/23656
PR other/47733
PR bootstrap/49247
PR c/48825
* configure.ac (target_libraries): Remove target-libiberty.
Remove case-statement setting skipdirs=target-libiberty for
multiple targets. Remove checking target_configdirs and
removing target-libiberty but keeping target-libgcc if
otherwise empty.
* Makefile.def (target_modules): Don't add libiberty.
(dependencies): Remove all traces of target-libiberty.
* configure, Makefile.in: Regenerate.
2011-07-22 Jason Merrill <jason@redhat.com>
* Makefile.def (language=c++): Add check-c++0x and
check-target-libmudflap-c++.
* Makefile.tpl (check-target-libmudflap-c++): New.
* Makefile.in: Regenerate.
2011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* configure: Regenerate.
2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
PR target/39150
* configure.ac (i[3456789]86-*-solaris2*): Also accept
x86_64-*-solaris2.1[0-9]*.
* configure: Regenerate.
2011-06-13 Walter Lee <walt@tilera.com>
* configure.ac (tilepro-*-*) New case.
(tilegx-*-*): Likewise.
* configure: Regenerate.
2011-06-06 Nick Clifton <nickc@redhat.com>
* config.sub: Sync from upstream.
2011-05-08 Doug Kwan <dougkwan@google.com>
Merge from gcc:
2011-05-08 Doug Kwan <dougkwan@google.com>
* configure.ac: Propagate LDFLAGS_FOR_TARGET.
* configure: Regenerated.
* Makefile.tpl (LDFLAGS_FOR_TARGET): Use LDFLAGS_FOR_TARGET
value from configure.
* Makefile.in: Regenerated.
2011-05-05 Joseph Myers <joseph@codesourcery.com>
* configure.ac (alpha*-dec-osf*, i[[3456789]]86-*-rdos*,
sh*-*-pe|mips*-*-pe|arm-wince-pe, sparc-*-sunos4*, *-*-aix*,
*-*-beos*, *-*-chorusos, *-*-dragonfly*, *-*-freebsd*, *-*-linux*
| *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu, *-*-lynxos*,
*-*-mingw*, *-*-netbsd*, *-*-netware*, *-*-tpf*, *-*-uclinux*,
*-*-vxworks*): Disable newlib and libgloss in separate case
statement.
(i[[3456789]]86-*-linux*): Move logic allowing newlib to be built
to separate case statement.
(*-*-chorusos, *-*-dragonfly*, *-*-freebsd*, *-*-netbsd*,
*-*-netware*, *-*-tpf*, *-*-uclinux*, *-*-vxworks*,
alpha*-dec-osf*, alpha*-*-linux*, am33_2.0-*-linux*, sh-*-linux*,
sh*-*-pe|mips*-*-pe|*arm-wince-pe, arm-*-coff, arm-*-elf* |
arm*-*-eabi*, arm*-*-linux-gnueabi, arm*-*-symbianelf*, avr-*-*,
bfin-*-*, cris-*-* | crisv32-*-*, frv-*-*, i[[3456789]]86-*-coff |
i[[3456789]]86-*-elf, i[[3456789]]86-w64-mingw*,
i[[3456789]]86-*-mingw*, x86_64-*-mingw*,
i[[3456789]]86-*-interix*, i[[3456789]]86-*-beos*,
i[[3456789]]86-*-rdos*, m32r-*-*,
m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*, m68k-*-elf*, m68*-*-*
| fido-*-*, powerpc-*-aix*, powerpc-*-beos*, powerpc-*-eabi,
powerpc-*-eabi* | powerpcle-*-eabi* | powerpc-*-rtems*,
rs6000-*-lynxos*, rs6000-*-aix*, mips*-*-linux*, sparclet-*-aout*
| sparc86x-*-*, sparc-*-elf*, sparc64-*-elf*, sparclite-*-*,
sparc-*-sunos4*, sparc-*-solaris* | sparc64-*-solaris* |
sparcv9-*-solaris*, *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu |
*-*-kopensolaris*-gnu, *-*-lynxos*, *-*-*): Don't disable newlib
and libgloss in main case over targets. Remove most empty cases
in main case over targets.
* configure: Regenerate.
2011-05-04 Joseph Myers <joseph@codesourcery.com>
* configure.ac: Remove code setting special library locations for
hppa*64*-*-hpux11*. Remove code setting compiler for
sparc-sun-solaris2*.
* configure: Regenerate.
2011-05-04 Joseph Myers <joseph@codesourcery.com>
* configure.ac: Separate libgloss_dir settings from general case
over targets.
* configure: Regenerate.
2011-04-28 Joseph Myers <joseph@codesourcery.com>
* configure.ac (*-*-dragonfly*, *-*-freebsd*, *-*-netbsd*,
alpha*-dec-osf*, alpha*-*-linux*, alpha*-*-*, sh-*-linux*,
arm-*-elf* | arm*-*-eabi*, arm*-*-linux-gnueabi, frv-*-*): Remove
cases in libgcj-disabling case statement.
(hppa*64*-*-linux*): Set unsupported_languages instead of
disabling target-zlib.
(hppa*64*-*-*): Restrict case in libgcj-disabling case statement
to hppa*64*-*-hpux*.
(hppa*-*-*): Restrict case in libgcj-disabling case statement to
hppa*-*-hpux*.
(ia64*-*-elf*, ia64*-**-hpux*, i[[3456789]]86-*-elf,
i[[3456789]]86-*-linux*, *-*-cygwin*, i[[3456789]]86-*-interix*,
i[[3456789]]86-*-solaris2*, m32r-*-*, m68k-*-elf*, m68*-*-* |
fido-*-*, powerpc-*-eabi, powerpc-*-eabi* | powerpcle-*-eabi* |
powerpc-*-rtems*, mips*-*-linux*, mips*-*-*, sh-*-* | sh64-*-*,
sparc-*-elf*, sparc64-*-elf*, sparc-*-solaris* |
sparc64-*-solaris* | sparcv9-*-solaris*, *-*-linux* | *-*-gnu* |
*-*-k*bsd*-gnu | *-*-kopensolaris*-gnu, *-*-*): Remove cases in
libgcj-disabling case statement.
* configure: Regenerate.
2011-04-28 Joseph Myers <joseph@codesourcery.com>
* configure.ac: Disable Java for targets not supporting libffi.
(*-*-chorusos, *-*-kaos*, am33_2.0-*-linux*, sh*-*-pe|mips*-*-pe):
Remove cases in Java-disabling statement.
(*arm-wince-pe): Change to arm-wince-pe.
(arc-*-*, arm-*-coff, arm-*-pe*, arm-*-riscix*, avr-*-*): Remove
cases in Java-disabling statement.
(bfin-*-*): Don't disable Java again.
(c4x-*-* | tic4x-*-*, tic54x-*-*, cr16-*-*, d10v-*-*, d30v-*-*,
fr30-*-elf*, moxie-*-*, h8300*-*-*, h8500-*-*, hppa1.1-*-osf* |
hppa1.1-*-bsd*, hppa*-*-*elf* | hppa*-*-lites* | hppa*-*-openbsd*,
hppa*-*-pro*, i960-*-*, i[[3456789]]86-*-coff,
i[[3456789]]86-*-pe, i[[3456789]]86-*-sco3.2v5*,
i[[3456789]]86-*-sco*, i[[3456789]]86-*-sysv4*,
i[[3456789]]86-*-beos*, i[[3456789]]86-*-rdos*,
m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*): Remove cases in
Java-disabling statement.
(mmix-*-*): Don't disable Java again.
(mt-*-*, powerpc*-*-winnt* | powerpc*-*-pe*, powerpcle-*-solaris*,
powerpc-*-beos*, rs6000-*-lynxos*, rs6000-*-*, m68k-apollo-*,
microblaze*, mips*-sde-elf*, mips*-*-irix5*, mips*-*-bsd*,
sparclet-*-aout* | sparc86x-*-*, sparclite-*-*, sparc-*-sunos4*,
tic6x-*-*, v810-*-*, vax-*-*): Remove cases in Java-disabling
statement.
* configure: Regenerate.
2011-04-28 Joseph Myers <joseph@codesourcery.com>
Merge from GCC:
2011-04-18 Jack Howarth <howarth@bromo.med.uc.edu>
PR lto/48086
* configure.ac: Re-enable LTO on *-apple-darwin9*.
* configure: Regenerate.
2011-04-28 Joseph Myers <joseph@codesourcery.com>
* configure.ac: Separate cases disabling Java and Java libraries
from general case over targets.
* configure: Regenerate.
2011-04-06 Joseph Myers <joseph@codesourcery.com>
* configure.ac (build_tools): Remove build-byacc.
(host_libs): Remove mmalloc.
(host_tools): Remove byacc make patch prms send-pr ash bash bzip2
autoconf automake libtool diff rcs fileutils shellutils time
textutils wdiff find uudecode hello tar gzip indent recode release
sed perl gawk findutils gettext zip.
(libgcj): Remove target-qthreads.
(target_tools): Remove target-examples target-gperf.
(YACC): Don't handle building byacc.
* configure: Regenerate.
* Makefile.def (ash, autoconf, automake, bash, byacc, bzip2, diff,
dosutils, examples, fileutils, find, findutils, gawk, gettext,
gnuserv, gperf, gzip, hello, indent, libtool, make, mmalloc,
patch, perl, prms, qthreads, rcs, recode, release, sed, send-pr,
shellutils, tar, textutils, time, uudecode, wdiff, zip): Don't
handle building components.
* Makefile.in: Regenerate.
2011-04-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* config.sub: Sync from upstream.
2011-04-01 Joseph Myers <joseph@codesourcery.com>
* configure.ac (avr-*-*): Add comment about why libssp is disabled.
(microblaze*): Don't disable libssp.
* configure: Regenerate.
2011-04-01 Joseph Myers <joseph@codesourcery.com>
* configure.ac: Remove code setting CONFIG_SHELL, config_shell and
moveifchange.
* configure: Regenerate.
* Makefile.tpl: Use @SHELL@ not @config_shell@.
* Makefile.in: Regenerate.
2011-04-01 Joseph Myers <joseph@codesourcery.com>
* configure.ac (*-*-sysv4*): Don't enable libgomp.
(alpha*-*-*vms*, i[[34567]]86-*-sco3.2v5*, mn10300-*-*,
powerpc-*-chorusos*, powerpc*-*-eabi*, powerpc*-*-sysv*,
powerpc*-*-kaos*, s390x-ibm-tpf*, sparc64-*-elf*, v850*-*-*,
xtensa*-*-elf*, *-*-beos*, *-*-elf*, *-*-netware*, *-*-rtems*,
*-*-sysv[[45]]*, *-*-vxworks*, *-wrs-windiss): Remove
md_exec_prefix cases.
* configure: Regenerate.
2011-04-01 Joseph Myers <joseph@codesourcery.com>
* configure.ac: Separate cases disabling target-libssp,
target-libiberty, target-libstdc++-v3 and Fortran from general
case over targets.
* configure: Regenerate.
2011-04-01 Joseph Myers <joseph@codesourcery.com>
* configure.ac (*-*-chorusos): Don't disable libgcj.
(*-*-freebsd[[12]] | *-*-freebsd[[12]].* | *-*-freebsd*aout*):
Remove case.
(*-*-kaos*): Don't disable GCC libraries, zlib or fastjar.
(arm-*-coff): Don't disable libgcj.
(arm*-*-linux-gnueabi): Remove useless assignment.
(arm-*-riscix*): Don't disable libgcj.
(bfin-*-*): Don't enable target-bsp and target-cygmon depending on
configuration.
(c4x-*-* | tic4x-*-*): Don't disable GCC libraries.
(c54x*-*-*): Remove case.
(tic54x-*-*): Don't disable GCC or GCC libraries.
(cris-*-* | crisv32-*-*): Don't handle *-*-aout. Change *-*-elf
to *.
(d10v-*-*): Don't disable GCC libraries.
(d30v-*-*): Don't disable libgcj.
(h8500-*-*): Don't disable GCC libraries.
(i960-*-*): Don't disable libgcj.
(i[[3456789]]86-*-linux*): Don't handle *-*-*libc1*.
(i[[3456789]]86-*-sco3.2v5*, i[[3456789]]86-*-sco*,
i[[3456789]]86-*-sysv4*, i[[3456789]]86-*-beos*): Don't disable
libgcj.
(m68k-*-coff*): Remove case.
(mmix-*-*): Don't disable libgloss on host.
(mn10200-*-*, mn10300-*-*): Remove cases.
(powerpc*-*-winnt* | powerpc*-*-pe*, powerpcle-*-solaris*,
powerpc-*-beos*, m68k-apollo-*, mips*-*-irix5*, mips*-*-bsd*):
Don't disable libgcj.
(romp-*-*): Remove case.
(sparclite-*-*, sparc-*-sunos4*): Don't disable libgcj.
(sparc-*-solaris2.[[0-6]] | sparc-*-solaris2.[[0-6]].*): Remove
case.
(v810-*-*): Don't disable GCC libraries.
(v850*-*-*, vax-*-vms, xtensa*-*-*): Remove cases.
(ip2k-*-*): Don't disable GCC libraries.
* configure: Regenerate.
2011-03-28 Joseph Myers <joseph@codesourcery.com>
* configure.ac (i[[3456789]]86-*-msdosdjgpp*): Don't disable
libffi on host.
(x86_64-*-mingw*, i[[3456789]]86-*-mingw32*): Don't disable newlib
on host.
(c54x*-*-* | tic54x-*-*): Don't disable newlib on host.
* configure: Regenerate.
2011-03-26 John Marino <binutils@marino.st>
* configure.ac: Add support for *-*-dragonfly*
* configure: Regenerate.
2011-03-25 Joseph Myers <joseph@codesourcery.com>
* configure.ac (native_only): Remove.
(i[[3456789]]86-*-msdosdjgpp*): Don't disable expect dejagnu
send-pr uudecode guile gnuserv on host.
(x86_64-*-mingw*): Don't disable expect dejagnu autoconf automake
send-pr rcs guile perl texinfo libtool on host.
(i[[3456789]]86-*-mingw32*): Don't disable expect dejagnu autoconf
automake send-pr rcs guile perl texinfo libtool on host.
(*-*-cygwin*, *-*-netbsd*): Remove host cases.
(*-*-kaos*): Don't disable target-examples target-gperf on target.
(alpha*-dec-osf*): Don't disable fileutils on target.
(sh*-*-pe|mips*-*-pe|*arm-wince-pe): Don't disable target-examples
texinfo send-pr expect dejagnu on target.
(arm-*-elf* | arm*-*-eabi*, arm*-*-linux-gnueabi): Don't disable
target-qthreads on target.
(hppa*-hp-hpux11*, hppa*-*-*): Don't disable shellutils on target.
(ia64*-*-elf*, ia64*-*-*vms*): Don't disable mmalloc on target.
(i[[3456789]]86-w64-mingw*, i[[3456789]]86-*-mingw*,
x86_64-*-mingw*): Don't disable expect on target.
(*-*-cygwin*): Don't disable target-gperf on target.
(powerpc*-*-winnt* | powerpc*-*-pe*): Don't disable make expect
gnuserv on target.
(powerpcle-*-solaris*): Don't disable make expect gnuserv on
target.
* configure: Regenerate.
2011-03-25 Joseph Myers <joseph@codesourcery.com>
* configure.ac (target_tools): Remove target-groff.
(native_only): Remove target-groff.
(hppa*64*-*-*): Don't disable byacc.
(i[[3456789]]86-*-mingw32*): Remove commented-out noconfigdirs
setting.
(*-*-kaos*): Don't skip target-librx and target-groff.
(*-*-netware*): Don't skip target-libmudflap.
(*-*-tpf*): Don't skip target-libmudflap.
(sh*-*-pe|mips*-*-pe|*arm-wince-pe): Don't condition configured
directories on the host.
(ia64*-*-*vms*): Don't skip tix.
(sh-*-* | sh64-*-*): Don't condition skipped directories on the
host.
* configure: Regenerate.
2011-03-24 Paolo Bonzini <pbonzini@redhat.com>
* configure.ac: Remove references to mt-mep, mt-netware,
mt-wince.
* Makefile.def: Add all-utils soft dependencies.
* Makefile.tpl: Remove GDB_NLM_DEPS.
* configure: Regenerate.
* Makefile.in: Regenerate.
2011-03-24 Paolo Bonzini <bonzini@gnu.org>
Sync from GCC:
2011-03-24 Paolo Bonzini <bonzini@gnu.org>
* configure.ac: Do not include mh-x86omitfp.
* configure: Regenerate.
2011-03-24 Paolo Bonzini <bonzini@gnu.org>
* configure.ac: Remove empty cases.
* configure: Regenerate.
2011-03-24 Paolo Bonzini <bonzini@gnu.org>
* Makefile.def: Add dependency from termcap to gdb.
* Makefile.in: Regenerate.
2011-03-24 Paolo Bonzini <bonzini@gnu.org>
* configure.ac: Remove all mentions of mh-sysv4 and mh-solaris.
* configure: Regenerate.
* Makefile.def: Remove all mentions of X11_FLAGS_TO_PASS.
* Makefile.tpl: Likewise.
* Makefile.in: Regenerate.
2011-03-24 Paolo Bonzini <bonzini@gnu.org>
* configure.ac: Remove all mentions of tentative_cc.
* configure: Regenerate.
2011-03-16 Jack Howarth <howarth@bromo.med.uc.edu>
PR lto/48086
* configure.ac: Re-enable LTO on *-apple-darwin9.
* configure: Regenerate.
2011-03-24 Joseph Myers <joseph@codesourcery.com>
* configure.ac (i[[3456789]]86-*-vsta, i[[3456789]]86-*-go32*,
i[[3456789]]86-*-beos*, powerpc-*-beos*, m68k-hp-hpux*,
m68k-apollo-sysv*, m68k-apollo-bsd*, m88k-dg-dgux*,
m88k-harris-cxux*, m88k-motorola-sysv*, mips*-dec-ultrix*,
mips*-nec-sysv4*, mips*-sgi-irix4*, mips*-*-sysv4*, mips*-*-sysv*,
i370-ibm-opened*, i[[3456789]]86-*-sysv5*, i[[3456789]]86-*-dgux*,
i[[3456789]]86-ncr-sysv4.3*, i[[3456789]]86-ncr-sysv4*,
i[[3456789]]86-*-sco3.2v5*, i[[3456789]]86-*-sco*,
i[[3456789]]86-*-udk*, vax-*-ultrix2*, m68k-sun-sunos*,
hppa*-*-hiux*, *-*-hiux*, rs6000-*-lynxos*, *-*-sysv4*,
*-*-rhapsody*): Remove host cases.
* configure: Regenerate.
2011-03-24 Joseph Myers <joseph@codesourcery.com>
* configure.ac (ppc*-*-pe): Remove host case.
(strongarm-*-coff | xscale-*-coff, strongarm-*-elf* |
xscale-*-elf*, thumb-*-coff, thumb-*-elf, thumb-*-pe, ep9312-*-elf
| ep9312-*-coff, parisc*64*-*-linux*, ppc*-*-pe): Remove target
cases.
* configure: Regenerate.
2011-03-24 Joseph Myers <joseph@codesourcery.com>
* config.sub: Update to version 2011-03-23.
2011-03-22 Joseph Myers <joseph@codesourcery.com>
* configure.ac (arm-semi-aof, crx-*-*, parisc*-*-linux*,
i370-*-opened*, i[[3456789]]86-moss-msdos | i[[3456789]]86-*-moss*
| i[[3456789]]86-*-uwin*, mcore-*-pe*): Remove empty cases.
* configure: Regenerate.
2011-03-22 Joseph Myers <joseph@codesourcery.com>
* config-ml.in: Don't handle arc-*-elf*.
* configure.ac (arc-*-*, crx-*-*, i[[3456789]]86-*-pe,
m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*, mcore-*-pe*): Don't
handle GCC libraries.
* configure: Regenerate.
2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
PR bootstrap/48120:
* configure.ac (pwllib): Use LIBS instead of LDFLAGS.
Add -lstdc++ -lm to LIBS.
* configure: Regenerate.
2011-03-18 David Edelsohn <dje.gcc@gmail.com>
* config.guess: Update to version 2011-02-02
* config.sub: Update to version 2011-02-24
2011-03-03 Sebastian Pop <sebastian.pop@amd.com>
* configure.ac: Adjust test of with_ppl.
* configure: Regenerated.
2011-03-02 Sebastian Pop <sebastian.pop@amd.com>
* configure.ac: Add -lpwl to ppllibs.
* config/cloog.m4: Add -lisl to clooglibs.
* configure: Regenerated.
2011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Import from Libtool and gnulib:
2011-01-27 Gerald Pfeifer <gerald@pfeifer.com>
Prepare for supporting FreeBSD 10.
* config.rpath: Remove handling of freebsd1* which soon would
match FreeBSD 10.0.
2011-01-20 Gerald Pfeifer <gerald@pfeifer.com> (tiny change)
Remove support for FreeBSD 1.x.
* libtool.m4 (_LT_LINKER_SHLIBS)
(_LT_SYS_DYNAMIC_LINKER): Remove handling of freebsd1* which
soon would incorrectly match FreeBSD 10.0.
2011-02-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
PR binutils/12283
* MAINTAINERS (mkinstalldirs): Comes from Automake.
(move-if-change): Comes from gnulib.
* move-if-change: Import version from gnulib.
2011-02-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Sync from GCC:
2011-02-12 Alexandre Oliva <aoliva@redhat.com>
PR lto/47225
* Makefile.def (lto-plugin): Double dash for enable-shared.
(configure-gcc): Depend on all-lto-plugin.
* Makefile.in: Rebuilt.
2011-02-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* configure.ac: Remove extra bracket.
* configure: Regenerate.
2011-02-06 Kai Tietz <kai.tietz@onevision.com>
PR lto/47225
* Makefile.def: Add dependency for install-gcc
on install-lto-plugin.
* Makfile.in: Regenerated
2011-01-25 Jakub Jelinek <jakub@redhat.com>
* configure.ac: If with_ppl is no, move setting with_cloog=no
after CLOOG_REQUESTED check.
* configure: Regenerated.
2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
* configure.ac: Call AC_MSG_ERROR when PPL 0.11 is not present and
CLooG has been requested.
* configure: Regenerated.
2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
* configure: Regenerated.
* configure.ac: Check for version 0.11 (or later revision) of PPL.
2011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
* configure: Regenerated.
* configure.ac: Use CLOOG_CHECK_VERSION(0,16,1).
2011-01-07 Jan Hubicka <jh@suse.cz>
PR lto/47225
* Makefile.in: Regenerate.
* Makefile.def (lto-plugin): Always pass enable-shared to the plugin
configure.
2011-01-31 Alexandre Oliva <aoliva@redhat.com>
PR libgcj/44341
* configure.ac: Discard --with-* flags for host when configuring
target libraries for cross build.
* configure: Rebuilt.
2011-01-21 Andreas Schwab <schwab@redhat.com>
Sync from GCC:
2011-01-21 Andreas Schwab <schwab@redhat.com>
* configure.ac: Use AS_HELP_STRING throughout.
* configure: Regenerate.
2011-01-18 Jie Zhang <jie.zhang@analog.com>
* configure.ac (bfin-*-*): Remove gdb from noconfigdirs.
* configure: Regenerate.
2010-12-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* ltmain.sh (relink): Use absolute path when hardcoding with -L.
2011-01-13 Joel Brobecker <brobecker@adacore.com>
* configure.ac: Remove readline, mmalloc, and gdb from noconfigdirs
for ia64-hpux.
* configure: Regenerate.
2011-01-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Sync from GCC:
2010-12-22 Hariharan Sandanagobalane <hariharan@picochip.com>
* configure.ac: (picochip): Disable libiberty.
* configure: Regenerate.
2010-12-18 Jeff Johnston <jjohnstn@redhat.com>
* COPYING.LIBGLOSS: Remove the GPL for fr30 target.
2010-12-10 Ian Lance Taylor <iant@google.com>
PR bootstrap/46819

View file

@ -38,7 +38,7 @@ config.guess; config.sub; readline/support/config.{sub,guess}
binutils@sourceware.org
gdb-patches@sourceware.org
depcomp
depcomp; mkinstalldirs
Send bug reports and patches to bug-automake@gnu.org.
gdb/; readline/; sim/; GDB's part of include/
@ -69,12 +69,8 @@ ltconfig; ltmain.sh; ltcf-*.sh
sources or submitted to the master file maintainer and brought
in via a merge.
mkinstalldirs; move-if-change
autoconf: http://gnu.org
Patches to autoconf-patches@gnu.org.
Changes need to be done in tandem with the official AUTOCONF
sources or submitted to the master file maintainer and brought
in via a merge.
move-if-change
Send bug reports and patches to bug-gnulib@gnu.org.
symlink-tree
gcc: http://gcc.gnu.org

View file

@ -4,7 +4,7 @@ AutoGen definitions Makefile.tpl;
// Makefile.in is generated from Makefile.tpl by 'autogen Makefile.def'.
// This file was originally written by Nathanael Nerode.
//
// Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
// Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
// Free Software Foundation
//
// This file is free software; you can redistribute it and/or modify
@ -27,39 +27,25 @@ AutoGen definitions Makefile.tpl;
build_modules= { module= libiberty; };
build_modules= { module= bison; };
build_modules= { module= byacc; };
build_modules= { module= flex; };
build_modules= { module= m4; };
build_modules= { module= texinfo; };
build_modules= { module= fixincludes; };
host_modules= { module= ash; };
host_modules= { module= autoconf; };
host_modules= { module= automake; };
host_modules= { module= bash; };
host_modules= { module= bfd; lib_path=.libs; bootstrap=true; };
host_modules= { module= opcodes; lib_path=.libs; bootstrap=true; };
host_modules= { module= binutils; bootstrap=true; };
host_modules= { module= bison; no_check_cross= true; };
host_modules= { module= byacc; no_check_cross= true; };
host_modules= { module= bzip2; };
host_modules= { module= cgen; };
host_modules= { module= dejagnu; };
host_modules= { module= diff; };
host_modules= { module= dosutils; no_check= true; };
host_modules= { module= etc; };
host_modules= { module= fastjar; no_check_cross= true; };
host_modules= { module= fileutils; };
host_modules= { module= findutils; };
host_modules= { module= find; };
host_modules= { module= fixincludes;
missing= TAGS; };
host_modules= { module= flex; no_check_cross= true; };
host_modules= { module= gas; bootstrap=true; };
host_modules= { module= gcc; bootstrap=true;
extra_make_flags="$(EXTRA_GCC_FLAGS)"; };
host_modules= { module= gawk; };
host_modules= { module= gettext; };
host_modules= { module= gmp; lib_path=.libs; bootstrap=true;
extra_configure_flags='--disable-shared';
no_install= true;
@ -86,12 +72,8 @@ host_modules= { module= cloog; lib_path=.libs; bootstrap=true;
host_modules= { module= libelf; lib_path=.libs; bootstrap=true;
extra_configure_flags='--disable-shared';
no_install= true; };
host_modules= { module= gnuserv; };
host_modules= { module= gold; bootstrap=true; };
host_modules= { module= gprof; };
host_modules= { module= gzip; };
host_modules= { module= hello; };
host_modules= { module= indent; };
host_modules= { module= intl; bootstrap=true; };
host_modules= { module= tcl;
missing=mostlyclean; };
@ -110,34 +92,16 @@ host_modules= { module= libiconv;
missing= install-pdf;
missing= install-html;
missing= install-info; };
host_modules= { module= libtool; };
host_modules= { module= m4; };
host_modules= { module= make; };
host_modules= { module= mmalloc; no_check=true; };
host_modules= { module= patch; };
host_modules= { module= perl; };
host_modules= { module= prms; };
host_modules= { module= rcs; };
host_modules= { module= readline; };
host_modules= { module= release; no_install= true; no_check= true; };
host_modules= { module= recode; };
host_modules= { module= sed; };
host_modules= { module= send-pr; };
host_modules= { module= shellutils; };
host_modules= { module= sid; };
host_modules= { module= sim; };
host_modules= { module= tar; };
host_modules= { module= texinfo; no_install= true; };
host_modules= { module= textutils; };
host_modules= { module= time; };
host_modules= { module= uudecode; };
host_modules= { module= wdiff; };
host_modules= { module= zip; no_check_cross=true; };
host_modules= { module= zlib; no_install=true; no_check=true; bootstrap=true; };
host_modules= { module= gdb; extra_make_flags="$(X11_FLAGS_TO_PASS)"; };
host_modules= { module= expect; extra_make_flags="$(X11_FLAGS_TO_PASS)"; };
host_modules= { module= guile; extra_make_flags="$(X11_FLAGS_TO_PASS)"; };
host_modules= { module= tk; extra_make_flags="$(X11_FLAGS_TO_PASS)"; };
host_modules= { module= gdb; };
host_modules= { module= expect; };
host_modules= { module= guile; };
host_modules= { module= tk; };
host_modules= { module= libtermcap; no_check=true;
missing=mostlyclean;
missing=clean;
@ -145,7 +109,8 @@ host_modules= { module= libtermcap; no_check=true;
missing=maintainer-clean; };
host_modules= { module= utils; no_check=true; };
host_modules= { module= gnattools; };
host_modules= { module= lto-plugin; bootstrap=true; };
host_modules= { module= lto-plugin; bootstrap=true;
extra_configure_flags=--enable-shared; };
target_modules = { module= libstdc++-v3;
bootstrap=true;
@ -166,14 +131,11 @@ target_modules = { module= libtermcap; no_check=true;
missing=maintainer-clean; };
target_modules = { module= winsup; };
target_modules = { module= libgloss; no_check=true; };
target_modules = { module= libiberty; };
target_modules = { module= gperf; };
target_modules = { module= examples; no_check=true; no_install=true; };
target_modules = { module= libffi; };
target_modules = { module= libjava; raw_cxx=true; };
target_modules = { module= libjava; raw_cxx=true;
extra_configure_flags="$(EXTRA_CONFIGARGS_LIBJAVA)"; };
target_modules = { module= zlib; };
target_modules = { module= boehm-gc; };
target_modules = { module= qthreads; };
target_modules = { module= rda; };
target_modules = { module= libada; };
target_modules = { module= libgomp; bootstrap= true; lib_path=.libs; };
@ -297,6 +259,7 @@ flags_to_pass = { flag= LIBCXXFLAGS_FOR_TARGET ; };
flags_to_pass = { flag= NM_FOR_TARGET ; };
flags_to_pass = { flag= OBJDUMP_FOR_TARGET ; };
flags_to_pass = { flag= RANLIB_FOR_TARGET ; };
flags_to_pass = { flag= READELF_FOR_TARGET ; };
flags_to_pass = { flag= STRIP_FOR_TARGET ; };
flags_to_pass = { flag= WINDRES_FOR_TARGET ; };
flags_to_pass = { flag= WINDMC_FOR_TARGET ; };
@ -310,10 +273,8 @@ flags_to_pass = { flag= LEAN ; };
// Build modules
dependencies = { module=all-build-bison; on=all-build-texinfo; };
dependencies = { module=all-build-byacc; on=all-build-texinfo; };
dependencies = { module=all-build-flex; on=all-build-texinfo; };
dependencies = { module=all-build-flex; on=all-build-bison; };
dependencies = { module=all-build-flex; on=all-build-byacc; };
dependencies = { module=all-build-flex; on=all-build-m4; };
dependencies = { module=all-build-libiberty; on=all-build-texinfo; };
dependencies = { module=all-build-m4; on=all-build-texinfo; };
@ -321,6 +282,7 @@ dependencies = { module=all-build-fixincludes; on=all-build-libiberty; };
// Host modules specific to gcc.
dependencies = { module=configure-gcc; on=configure-intl; };
dependencies = { module=configure-gcc; on=all-lto-plugin; };
dependencies = { module=configure-gcc; on=all-binutils; };
dependencies = { module=configure-gcc; on=all-gas; };
dependencies = { module=configure-gcc; on=all-ld; };
@ -335,7 +297,6 @@ dependencies = { module=all-gcc; on=all-ppl; };
dependencies = { module=all-gcc; on=all-cloog; };
dependencies = { module=all-gcc; on=all-build-texinfo; };
dependencies = { module=all-gcc; on=all-build-bison; };
dependencies = { module=all-gcc; on=all-build-byacc; };
dependencies = { module=all-gcc; on=all-build-flex; };
dependencies = { module=all-gcc; on=all-build-libiberty; };
dependencies = { module=all-gcc; on=all-build-fixincludes; };
@ -344,11 +305,13 @@ dependencies = { module=all-gcc; on=all-libcpp; hard=true; };
dependencies = { module=all-gcc; on=all-libdecnumber; hard=true; };
dependencies = { module=all-gcc; on=all-libiberty; };
dependencies = { module=all-gcc; on=all-fixincludes; };
dependencies = { module=all-gcc; on=all-lto-plugin; };
dependencies = { module=info-gcc; on=all-build-libiberty; };
dependencies = { module=dvi-gcc; on=all-build-libiberty; };
dependencies = { module=pdf-gcc; on=all-build-libiberty; };
dependencies = { module=html-gcc; on=all-build-libiberty; };
dependencies = { module=install-gcc ; on=install-fixincludes; };
dependencies = { module=install-gcc ; on=install-lto-plugin; };
dependencies = { module=install-strip-gcc ; on=install-strip-fixincludes; };
dependencies = { module=configure-libcpp; on=configure-libiberty; hard=true; };
@ -360,7 +323,9 @@ dependencies = { module=all-fixincludes; on=all-libiberty; };
dependencies = { module=all-gnattools; on=all-target-libada; };
dependencies = { module=all-lto-plugin; on=all-gcc; };
dependencies = { module=all-lto-plugin; on=all-libiberty; };
dependencies = { module=all-utils; on=all-libiberty; };
dependencies = { module=configure-mpfr; on=all-gmp; };
dependencies = { module=configure-mpc; on=all-mpfr; };
@ -380,9 +345,9 @@ dependencies = { module=all-gdb; on=all-libiconv; };
dependencies = { module=all-gdb; on=all-opcodes; };
dependencies = { module=all-gdb; on=all-readline; };
dependencies = { module=all-gdb; on=all-build-bison; };
dependencies = { module=all-gdb; on=all-build-byacc; };
dependencies = { module=all-gdb; on=all-sim; };
dependencies = { module=all-gdb; on=all-libdecnumber; };
dependencies = { module=all-gdb; on=all-libtermcap; };
dependencies = { module=configure-libgui; on=configure-tcl; };
dependencies = { module=configure-libgui; on=configure-tk; };
@ -404,7 +369,6 @@ dependencies = { module=all-binutils; on=all-opcodes; };
dependencies = { module=all-binutils; on=all-bfd; };
dependencies = { module=all-binutils; on=all-build-flex; };
dependencies = { module=all-binutils; on=all-build-bison; };
dependencies = { module=all-binutils; on=all-build-byacc; };
dependencies = { module=all-binutils; on=all-intl; };
// We put install-opcodes before install-binutils because the installed
@ -432,7 +396,6 @@ dependencies = { module=all-ld; on=all-libiberty; };
dependencies = { module=all-ld; on=all-bfd; };
dependencies = { module=all-ld; on=all-opcodes; };
dependencies = { module=all-ld; on=all-build-bison; };
dependencies = { module=all-ld; on=all-build-byacc; };
dependencies = { module=all-ld; on=all-build-flex; };
dependencies = { module=all-ld; on=all-intl; };
dependencies = { module=install-ld; on=install-gold; };
@ -442,7 +405,6 @@ dependencies = { module=all-gold; on=all-libiberty; };
dependencies = { module=all-gold; on=all-intl; };
dependencies = { module=all-gold; on=all-bfd; };
dependencies = { module=all-gold; on=all-build-bison; };
dependencies = { module=all-gold; on=all-build-byacc; };
dependencies = { module=check-gold; on=all-binutils; };
dependencies = { module=check-gold; on=all-gas; };
@ -496,44 +458,18 @@ dependencies = { module=all-fastjar; on=all-build-texinfo; };
dependencies = { module=all-fastjar; on=all-libiberty; };
// Warning, these are not well tested.
dependencies = { module=all-autoconf; on=all-m4; };
dependencies = { module=all-autoconf; on=all-build-texinfo; };
dependencies = { module=all-automake; on=all-m4; };
dependencies = { module=all-automake; on=all-build-texinfo; };
dependencies = { module=all-automake; on=all-autoconf; };
dependencies = { module=all-bison; on=all-intl; };
dependencies = { module=all-bison; on=all-build-texinfo; };
dependencies = { module=all-diff; on=all-intl; };
dependencies = { module=all-diff; on=all-build-texinfo; };
dependencies = { module=all-fileutils; on=all-intl; };
dependencies = { module=all-fileutils; on=all-build-texinfo; };
dependencies = { module=all-flex; on=all-build-bison; };
dependencies = { module=all-flex; on=all-build-byacc; };
dependencies = { module=all-flex; on=all-intl; };
dependencies = { module=all-flex; on=all-m4; };
dependencies = { module=all-flex; on=all-build-texinfo; };
dependencies = { module=all-gzip; on=all-intl; };
dependencies = { module=all-gzip; on=all-zlib; };
dependencies = { module=all-gzip; on=all-build-texinfo; };
dependencies = { module=all-hello; on=all-intl; };
dependencies = { module=all-hello; on=all-build-texinfo; };
dependencies = { module=all-m4; on=all-intl; };
dependencies = { module=all-m4; on=all-build-texinfo; };
dependencies = { module=all-make; on=all-intl; };
dependencies = { module=all-make; on=all-build-texinfo; };
dependencies = { module=all-patch; on=all-build-texinfo; };
dependencies = { module=all-make; on=all-build-texinfo; };
dependencies = { module=all-prms; on=all-libiberty; };
dependencies = { module=all-recode; on=all-build-texinfo; };
dependencies = { module=all-sed; on=all-build-texinfo; };
dependencies = { module=all-send-pr; on=all-prms; };
dependencies = { module=all-tar; on=all-build-texinfo; };
dependencies = { module=all-uudecode; on=all-build-texinfo; };
// Target modules. These can also have dependencies on the language
// environment (e.g. on libstdc++). By default target modules depend
// on libgcc and newlib/libgloss.
lang_env_dependencies = { module=gperf; cxx=true; };
lang_env_dependencies = { module=libjava; cxx=true; };
lang_env_dependencies = { module=newlib; no_c=true; };
lang_env_dependencies = { module=libgloss; no_c=true; };
@ -543,27 +479,21 @@ lang_env_dependencies = { module=libgcc; no_gcc=true; no_c=true; };
// a dependency on libgcc for native targets to configure.
lang_env_dependencies = { module=libiberty; no_c=true; };
dependencies = { module=configure-target-boehm-gc; on=configure-target-qthreads; };
dependencies = { module=configure-target-boehm-gc; on=all-target-libstdc++-v3; };
dependencies = { module=configure-target-fastjar; on=configure-target-zlib; };
dependencies = { module=all-target-fastjar; on=all-target-zlib; };
dependencies = { module=all-target-fastjar; on=all-target-libiberty; };
dependencies = { module=configure-target-libgo; on=configure-target-libffi; };
dependencies = { module=configure-target-libgo; on=all-target-libstdc++-v3; };
dependencies = { module=all-target-libgo; on=all-target-libffi; };
dependencies = { module=configure-target-libjava; on=configure-target-zlib; };
dependencies = { module=configure-target-libjava; on=configure-target-boehm-gc; };
dependencies = { module=configure-target-libjava; on=configure-target-qthreads; };
dependencies = { module=configure-target-libjava; on=configure-target-libffi; };
dependencies = { module=all-target-libjava; on=all-fastjar; };
dependencies = { module=all-target-libjava; on=all-target-zlib; };
dependencies = { module=all-target-libjava; on=all-target-boehm-gc; };
dependencies = { module=all-target-libjava; on=all-target-qthreads; };
dependencies = { module=all-target-libjava; on=all-target-libffi; };
dependencies = { module=configure-target-libobjc; on=configure-target-boehm-gc; };
dependencies = { module=all-target-libobjc; on=all-target-libiberty; };
dependencies = { module=all-target-libobjc; on=all-target-boehm-gc; };
dependencies = { module=all-target-libstdc++-v3; on=all-target-libiberty; };
dependencies = { module=configure-target-libstdc++-v3; on=configure-target-libgomp; };
// parallel_list.o and parallel_settings.o depend on omp.h, which is
// generated by the libgomp configure. Unfortunately, due to the use of
@ -571,24 +501,20 @@ dependencies = { module=configure-target-libstdc++-v3; on=configure-target-libgo
dependencies = { module=all-target-libstdc++-v3; on=configure-target-libgomp; };
// Target modules in the 'src' repository.
lang_env_dependencies = { module=examples; };
lang_env_dependencies = { module=libtermcap; };
lang_env_dependencies = { module=rda; };
lang_env_dependencies = { module=winsup; };
lang_env_dependencies = { module=qthreads; };
dependencies = { module=all-target-libgloss; on=all-target-newlib; };
dependencies = { module=all-target-winsup; on=all-target-libiberty; };
dependencies = { module=all-target-winsup; on=all-target-libtermcap; };
dependencies = { module=configure-target-libiberty; on=all-binutils; };
dependencies = { module=configure-target-libiberty; on=all-ld; };
dependencies = { module=configure-target-newlib; on=all-binutils; };
dependencies = { module=configure-target-newlib; on=all-ld; };
dependencies = { module=configure-target-libgfortran; on=all-target-libquadmath; };
languages = { language=c; gcc-check-target=check-gcc; };
languages = { language=c++; gcc-check-target=check-c++;
lib-check-target=check-target-libstdc++-v3; };
languages = { language=c++; gcc-check-target="check-c++ check-c++0x";
lib-check-target=check-target-libstdc++-v3;
lib-check-target=check-target-libmudflap-c++; };
languages = { language=fortran; gcc-check-target=check-fortran;
lib-check-target=check-target-libquadmath;
lib-check-target=check-target-libgfortran; };

File diff suppressed because it is too large Load diff

View file

@ -6,7 +6,7 @@ in
#
# Makefile for directory with subdirs to build.
# Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
# 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
# 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
# Free Software Foundation
#
# This file is free software; you can redistribute it and/or modify
@ -103,8 +103,6 @@ TOPLEVEL_CONFIGURE_ARGUMENTS=@TOPLEVEL_CONFIGURE_ARGUMENTS@
tooldir = @tooldir@
build_tooldir = @build_tooldir@
GDB_NLM_DEPS =
# This is the name of the environment variable used for the path to
# the libraries.
RPATH_ENVVAR = @RPATH_ENVVAR@
@ -211,6 +209,7 @@ HOST_EXPORTS = \
WINDMC="$(WINDMC)"; export WINDMC; \
OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
READELF="$(READELF)"; export READELF; \
AR_FOR_TARGET="$(AR_FOR_TARGET)"; export AR_FOR_TARGET; \
AS_FOR_TARGET="$(AS_FOR_TARGET)"; export AS_FOR_TARGET; \
GCC_FOR_TARGET="$(GCC_FOR_TARGET)"; export GCC_FOR_TARGET; \
@ -218,6 +217,7 @@ HOST_EXPORTS = \
NM_FOR_TARGET="$(NM_FOR_TARGET)"; export NM_FOR_TARGET; \
OBJDUMP_FOR_TARGET="$(OBJDUMP_FOR_TARGET)"; export OBJDUMP_FOR_TARGET; \
RANLIB_FOR_TARGET="$(RANLIB_FOR_TARGET)"; export RANLIB_FOR_TARGET; \
READELF_FOR_TARGET="$(READELF_FOR_TARGET)"; export READELF_FOR_TARGET; \
TOPLEVEL_CONFIGURE_ARGUMENTS="$(TOPLEVEL_CONFIGURE_ARGUMENTS)"; export TOPLEVEL_CONFIGURE_ARGUMENTS; \
HOST_LIBS="$(STAGE1_LIBS)"; export HOST_LIBS; \
GMPLIBS="$(HOST_GMPLIBS)"; export GMPLIBS; \
@ -242,10 +242,13 @@ POSTSTAGE1_CXX_EXPORT = \
CXX="$(STAGE_CC_WRAPPER) $$r/$(HOST_SUBDIR)/prev-gcc/g++$(exeext) \
-B$$r/$(HOST_SUBDIR)/prev-gcc/ -B$(build_tooldir)/bin/ -nostdinc++ \
-B$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/src/.libs \
-B$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs \
-I$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/include/$(TARGET_SUBDIR) \
-I$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/include \
-I$$s/libstdc++-v3/libsupc++ \
-L$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/src/.libs"; export CXX; \
-L$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/src/.libs \
-L$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs"; \
export CXX; \
CXX_FOR_BUILD="$$CXX"; export CXX_FOR_BUILD;
@endif target-libstdc++-v3-bootstrap
@ -287,6 +290,7 @@ BASE_TARGET_EXPORTS = \
NM="$(COMPILER_NM_FOR_TARGET)"; export NM; \
OBJDUMP="$(OBJDUMP_FOR_TARGET)"; export OBJDUMP; \
RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \
READELF="$(READELF_FOR_TARGET)"; export READELF; \
STRIP="$(STRIP_FOR_TARGET)"; export STRIP; \
WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \
WINDMC="$(WINDMC_FOR_TARGET)"; export WINDMC; \
@ -321,11 +325,13 @@ HOST_CLOOGINC = @clooginc@
HOST_LIBELFLIBS = @libelflibs@
HOST_LIBELFINC = @libelfinc@
EXTRA_CONFIGARGS_LIBJAVA = @EXTRA_CONFIGARGS_LIBJAVA@
# ----------------------------------------------
# Programs producing files for the BUILD machine
# ----------------------------------------------
SHELL = @config_shell@
SHELL = @SHELL@
# pwd command to use. Allow user to override default by setting PWDCMD in
# the environment to account for automounters. The make variable must not
@ -397,6 +403,7 @@ LIPO = @LIPO@
NM = @NM@
OBJDUMP = @OBJDUMP@
RANLIB = @RANLIB@
READELF = @READELF@
STRIP = @STRIP@
WINDRES = @WINDRES@
WINDMC = @WINDMC@
@ -418,6 +425,7 @@ TFLAGS =
STAGE_CFLAGS = $(BOOT_CFLAGS)
STAGE_TFLAGS = $(TFLAGS)
STAGE_CONFIGURE_FLAGS=@stage2_werror_flag@
POSTSTAGE1_CONFIGURE_FLAGS = @POSTSTAGE1_CONFIGURE_FLAGS@
[+ FOR bootstrap-stage +]
# Defaults for stage [+id+]; some are overridden below.
@ -428,7 +436,10 @@ STAGE[+id+]_CXXFLAGS = $(CXXFLAGS)
STAGE[+id+]_CXXFLAGS = $(STAGE[+id+]_CFLAGS)
@endif target-libstdc++-v3-bootstrap
STAGE[+id+]_TFLAGS = $(STAGE_TFLAGS)
STAGE[+id+]_CONFIGURE_FLAGS = $(STAGE_CONFIGURE_FLAGS)
# STAGE1_CONFIGURE_FLAGS overridden below, so we can use
# POSTSTAGE1_CONFIGURE_FLAGS here.
STAGE[+id+]_CONFIGURE_FLAGS = \
$(STAGE_CONFIGURE_FLAGS) $(POSTSTAGE1_CONFIGURE_FLAGS)
[+ ENDFOR bootstrap-stage +]
# Only build the C compiler for stage1, because that is the only one that
@ -446,6 +457,9 @@ STAGE1_LANGUAGES = @stage1_languages@
# the last argument when conflicting --enable arguments are passed.
# * Likewise, we force-disable coverage flags, since the installed
# compiler probably has never heard of them.
# * Don't remove this, because above we added
# POSTSTAGE1_CONFIGURE_FLAGS to STAGE[+id+]_CONFIGURE_FLAGS, which
# we don't want for STAGE1_CONFIGURE_FLAGS.
STAGE1_CONFIGURE_FLAGS = --disable-intermodule $(STAGE1_CHECKING) \
--disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"
@ -483,6 +497,7 @@ LIPO_FOR_TARGET=@LIPO_FOR_TARGET@
NM_FOR_TARGET=@NM_FOR_TARGET@
OBJDUMP_FOR_TARGET=@OBJDUMP_FOR_TARGET@
RANLIB_FOR_TARGET=@RANLIB_FOR_TARGET@
READELF_FOR_TARGET=@READELF_FOR_TARGET@
STRIP_FOR_TARGET=@STRIP_FOR_TARGET@
WINDRES_FOR_TARGET=@WINDRES_FOR_TARGET@
WINDMC_FOR_TARGET=@WINDMC_FOR_TARGET@
@ -496,7 +511,7 @@ CXXFLAGS_FOR_TARGET = @CXXFLAGS_FOR_TARGET@
LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET)
LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
LDFLAGS_FOR_TARGET =
LDFLAGS_FOR_TARGET = @LDFLAGS_FOR_TARGET@
GOCFLAGS_FOR_TARGET = -O2 -g
FLAGS_FOR_TARGET = @FLAGS_FOR_TARGET@
@ -602,24 +617,13 @@ EXTRA_HOST_FLAGS = \
'NM=$(NM)' \
'OBJDUMP=$(OBJDUMP)' \
'RANLIB=$(RANLIB)' \
'READELF=$(READELF)' \
'STRIP=$(STRIP)' \
'WINDRES=$(WINDRES)' \
'WINDMC=$(WINDMC)'
FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)
# Flags that are concerned with the location of the X11 include files
# and library files
#
# NOTE: until the top-level is getting the values via autoconf, it only
# causes problems to have this top-level Makefile overriding the autoconf-set
# values in child directories. Only variables that don't conflict with
# autoconf'ed ones should be passed by X11_FLAGS_TO_PASS for now.
#
X11_FLAGS_TO_PASS = \
'X11_EXTRA_CFLAGS=$(X11_EXTRA_CFLAGS)' \
'X11_EXTRA_LIBS=$(X11_EXTRA_LIBS)'
# Flags to pass to stage2 and later makes.
POSTSTAGE1_FLAGS_TO_PASS = \
@ -654,6 +658,7 @@ EXTRA_TARGET_FLAGS = \
'NM=$(COMPILER_NM_FOR_TARGET)' \
'OBJDUMP=$$(OBJDUMP_FOR_TARGET)' \
'RANLIB=$$(RANLIB_FOR_TARGET)' \
'READELF=$$(READELF_FOR_TARGET)' \
'WINDRES=$$(WINDRES_FOR_TARGET)' \
'WINDMC=$$(WINDMC_FOR_TARGET)' \
'XGCC_FLAGS_FOR_TARGET=$(XGCC_FLAGS_FOR_TARGET)' \
@ -670,10 +675,7 @@ TARGET_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)
EXTRA_GCC_FLAGS = \
"GCC_FOR_TARGET=$(GCC_FOR_TARGET)" \
"`echo 'STMP_FIXPROTO=$(STMP_FIXPROTO)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`" \
"`echo 'LIMITS_H_TEST=$(LIMITS_H_TEST)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`" \
"`echo 'LIBGCC2_CFLAGS=$(LIBGCC2_CFLAGS)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`" \
"`echo 'LIBGCC2_DEBUG_CFLAGS=$(LIBGCC2_DEBUG_CFLAGS)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`" \
"`echo 'LIBGCC2_INCLUDES=$(LIBGCC2_INCLUDES)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`"
"`echo 'LIMITS_H_TEST=$(LIMITS_H_TEST)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`"
GCC_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(EXTRA_GCC_FLAGS)
@ -1405,6 +1407,13 @@ ENDIF raw_cxx +]
[+ ENDFOR recursive_targets +]
[+ ENDFOR target_modules +]
@if target-libmudflap
.PHONY: check-target-libmudflap-c++
check-target-libmudflap-c++:
$(MAKE) RUNTESTFLAGS="$(RUNTESTFLAGS) c++frags.exp" check-target-libmudflap
@endif target-libmudflap
# ----------
# GCC module
# ----------

View file

@ -2,7 +2,7 @@
# wanting multilib support.
#
# Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
# 2005, 2006, 2007, 2008, 2010 Free Software Foundation, Inc.
# 2005, 2006, 2007, 2008, 2010, 2011 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@ -224,19 +224,6 @@ done
# $host here, not $target.
case "${host}" in
arc-*-elf*)
if [ x$enable_biendian != xyes ]
then
old_multidirs=${multidirs}
multidirs=""
for x in ${old_multidirs}; do
case "${x}" in
*be*) : ;;
*) multidirs="${multidirs} ${x}" ;;
esac
done
fi
;;
arm-*-*)
if [ x"$enable_fpu" = xno ]
then

View file

@ -1,10 +1,10 @@
#! /bin/sh
# Attempt to guess a canonical system name.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
# Free Software Foundation, Inc.
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
# 2011 Free Software Foundation, Inc.
timestamp='2010-04-03'
timestamp='2011-06-03'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@ -57,7 +57,7 @@ GNU config.guess ($timestamp)
Originally written by Per Bothner.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free
Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
@ -92,7 +92,7 @@ if test $# != 0; then
exit 1
fi
trap 'exit 1' HUP INT TERM
trap 'exit 1' 1 2 15
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
# compiler to aid in system detection is discouraged as it requires
@ -106,7 +106,7 @@ trap 'exit 1' HUP INT TERM
set_cc_for_build='
trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" HUP INT PIPE TERM ;
trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
: ${TMPDIR=/tmp} ;
{ tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
@ -181,7 +181,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
fi
;;
*)
os=netbsd
os=netbsd
;;
esac
# The OS release
@ -224,7 +224,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
;;
*5.*)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
;;
esac
# According to Compaq, /usr/sbin/psrinfo has been available on
@ -270,7 +270,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
exit ;;
# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
exitcode=$?
trap '' 0
exit $exitcode ;;
Alpha\ *:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# Should we change UNAME_MACHINE based on the output of uname instead
@ -296,7 +299,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
echo s390-ibm-zvmoe
exit ;;
*:OS400:*:*)
echo powerpc-ibm-os400
echo powerpc-ibm-os400
exit ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix${UNAME_RELEASE}
@ -395,23 +398,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# MiNT. But MiNT is downward compatible to TOS, so this should
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
echo m68k-atari-mint${UNAME_RELEASE}
exit ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
exit ;;
exit ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
echo m68k-atari-mint${UNAME_RELEASE}
exit ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
echo m68k-milan-mint${UNAME_RELEASE}
exit ;;
echo m68k-milan-mint${UNAME_RELEASE}
exit ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
echo m68k-hades-mint${UNAME_RELEASE}
exit ;;
echo m68k-hades-mint${UNAME_RELEASE}
exit ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
echo m68k-unknown-mint${UNAME_RELEASE}
exit ;;
echo m68k-unknown-mint${UNAME_RELEASE}
exit ;;
m68k:machten:*:*)
echo m68k-apple-machten${UNAME_RELEASE}
exit ;;
@ -481,8 +484,8 @@ EOF
echo m88k-motorola-sysv3
exit ;;
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
then
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
@ -495,7 +498,7 @@ EOF
else
echo i586-dg-dgux${UNAME_RELEASE}
fi
exit ;;
exit ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
echo m88k-dolphin-sysv3
exit ;;
@ -552,7 +555,7 @@ EOF
echo rs6000-ibm-aix3.2
fi
exit ;;
*:AIX:*:[456])
*:AIX:*:[4567])
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
IBM_ARCH=rs6000
@ -595,52 +598,52 @@ EOF
9000/[678][0-9][0-9])
if [ -x /usr/bin/getconf ]; then
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
case "${sc_cpu_version}" in
523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
532) # CPU_PA_RISC2_0
case "${sc_kernel_bits}" in
32) HP_ARCH="hppa2.0n" ;;
64) HP_ARCH="hppa2.0w" ;;
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
case "${sc_cpu_version}" in
523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
532) # CPU_PA_RISC2_0
case "${sc_kernel_bits}" in
32) HP_ARCH="hppa2.0n" ;;
64) HP_ARCH="hppa2.0w" ;;
'') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
esac ;;
esac
esac ;;
esac
fi
if [ "${HP_ARCH}" = "" ]; then
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
sed 's/^ //' << EOF >$dummy.c
#define _HPUX_SOURCE
#include <stdlib.h>
#include <unistd.h>
#define _HPUX_SOURCE
#include <stdlib.h>
#include <unistd.h>
int main ()
{
#if defined(_SC_KERNEL_BITS)
long bits = sysconf(_SC_KERNEL_BITS);
#endif
long cpu = sysconf (_SC_CPU_VERSION);
int main ()
{
#if defined(_SC_KERNEL_BITS)
long bits = sysconf(_SC_KERNEL_BITS);
#endif
long cpu = sysconf (_SC_CPU_VERSION);
switch (cpu)
{
case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
case CPU_PA_RISC2_0:
#if defined(_SC_KERNEL_BITS)
switch (bits)
{
case 64: puts ("hppa2.0w"); break;
case 32: puts ("hppa2.0n"); break;
default: puts ("hppa2.0"); break;
} break;
#else /* !defined(_SC_KERNEL_BITS) */
puts ("hppa2.0"); break;
#endif
default: puts ("hppa1.0"); break;
}
exit (0);
}
switch (cpu)
{
case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
case CPU_PA_RISC2_0:
#if defined(_SC_KERNEL_BITS)
switch (bits)
{
case 64: puts ("hppa2.0w"); break;
case 32: puts ("hppa2.0n"); break;
default: puts ("hppa2.0"); break;
} break;
#else /* !defined(_SC_KERNEL_BITS) */
puts ("hppa2.0"); break;
#endif
default: puts ("hppa1.0"); break;
}
exit (0);
}
EOF
(CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
test -z "$HP_ARCH" && HP_ARCH=hppa
@ -731,22 +734,22 @@ EOF
exit ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
echo c1-convex-bsd
exit ;;
exit ;;
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
exit ;;
exit ;;
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
echo c34-convex-bsd
exit ;;
exit ;;
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
echo c38-convex-bsd
exit ;;
exit ;;
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
echo c4-convex-bsd
exit ;;
exit ;;
CRAY*Y-MP:*:*:*)
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
@ -770,14 +773,14 @@ EOF
exit ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;;
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;;
5000:UNIX_System_V:4.*:*)
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;;
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
@ -805,14 +808,14 @@ EOF
echo ${UNAME_MACHINE}-pc-mingw32
exit ;;
i*:windows32*:*)
# uname -m includes "-pc" on this system.
echo ${UNAME_MACHINE}-mingw32
# uname -m includes "-pc" on this system.
echo ${UNAME_MACHINE}-mingw32
exit ;;
i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32
exit ;;
*:Interix*:*)
case ${UNAME_MACHINE} in
case ${UNAME_MACHINE} in
x86)
echo i586-pc-interix${UNAME_RELEASE}
exit ;;
@ -867,7 +870,7 @@ EOF
EV6) UNAME_MACHINE=alphaev6 ;;
EV67) UNAME_MACHINE=alphaev67 ;;
EV68*) UNAME_MACHINE=alphaev68 ;;
esac
esac
objdump --private-headers /bin/sh | grep -q ld.so.1
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
@ -879,7 +882,13 @@ EOF
then
echo ${UNAME_MACHINE}-unknown-linux-gnu
else
echo ${UNAME_MACHINE}-unknown-linux-gnueabi
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_PCS_VFP
then
echo ${UNAME_MACHINE}-unknown-linux-gnueabi
else
echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
fi
fi
exit ;;
avr32*:Linux:*:*)
@ -892,7 +901,7 @@ EOF
echo crisv32-axis-linux-gnu
exit ;;
frv:Linux:*:*)
echo frv-unknown-linux-gnu
echo frv-unknown-linux-gnu
exit ;;
i*86:Linux:*:*)
LIBC=gnu
@ -960,7 +969,7 @@ EOF
echo ${UNAME_MACHINE}-ibm-linux
exit ;;
sh64*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
sh*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
@ -968,6 +977,9 @@ EOF
sparc:Linux:*:* | sparc64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
tile*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
vax:Linux:*:*)
echo ${UNAME_MACHINE}-dec-linux-gnu
exit ;;
@ -975,7 +987,7 @@ EOF
echo x86_64-unknown-linux-gnu
exit ;;
xtensa*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
@ -984,11 +996,11 @@ EOF
echo i386-sequent-sysv4
exit ;;
i*86:UNIX_SV:4.2MP:2.*)
# Unixware is an offshoot of SVR4, but it has its own version
# number series starting with 2...
# I am not positive that other SVR4 systems won't match this,
# Unixware is an offshoot of SVR4, but it has its own version
# number series starting with 2...
# I am not positive that other SVR4 systems won't match this,
# I just have to hope. -- rms.
# Use sysv4.2uw... so that sysv4* matches it.
# Use sysv4.2uw... so that sysv4* matches it.
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
exit ;;
i*86:OS/2:*:*)
@ -1020,7 +1032,7 @@ EOF
fi
exit ;;
i*86:*:5:[678]*)
# UnixWare 7.x, OpenUNIX and OpenServer 6.
# UnixWare 7.x, OpenUNIX and OpenServer 6.
case `/bin/uname -X | grep "^Machine"` in
*486*) UNAME_MACHINE=i486 ;;
*Pentium) UNAME_MACHINE=i586 ;;
@ -1048,13 +1060,13 @@ EOF
exit ;;
pc:*:*:*)
# Left here for compatibility:
# uname -m prints for DJGPP always 'pc', but it prints nothing about
# the processor, so we play safe by assuming i586.
# uname -m prints for DJGPP always 'pc', but it prints nothing about
# the processor, so we play safe by assuming i586.
# Note: whatever this is, it MUST be the same as what config.sub
# prints for the "djgpp" host, or else GDB configury will decide that
# this is a cross-build.
echo i586-pc-msdosdjgpp
exit ;;
exit ;;
Intel:Mach:3*:*)
echo i386-pc-mach3
exit ;;
@ -1089,8 +1101,8 @@ EOF
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
&& { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& { echo i486-ncr-sysv4; exit; } ;;
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& { echo i486-ncr-sysv4; exit; } ;;
NCR*:*:4.2:* | MPRAS*:*:4.2:*)
OS_REL='.3'
test -r /etc/.relid \
@ -1133,10 +1145,10 @@ EOF
echo ns32k-sni-sysv
fi
exit ;;
PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
# says <Richard.M.Bartel@ccMail.Census.GOV>
echo i586-unisys-sysv4
exit ;;
PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
# says <Richard.M.Bartel@ccMail.Census.GOV>
echo i586-unisys-sysv4
exit ;;
*:UNIX_System_V:4*:FTX*)
# From Gerald Hewes <hewes@openmarket.com>.
# How about differentiating between stratus architectures? -djm
@ -1162,11 +1174,11 @@ EOF
exit ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
if [ -d /usr/nec ]; then
echo mips-nec-sysv${UNAME_RELEASE}
echo mips-nec-sysv${UNAME_RELEASE}
else
echo mips-unknown-sysv${UNAME_RELEASE}
echo mips-unknown-sysv${UNAME_RELEASE}
fi
exit ;;
exit ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
echo powerpc-be-beos
exit ;;
@ -1231,6 +1243,9 @@ EOF
*:QNX:*:4*)
echo i386-pc-qnx
exit ;;
NEO-?:NONSTOP_KERNEL:*:*)
echo neo-tandem-nsk${UNAME_RELEASE}
exit ;;
NSE-?:NONSTOP_KERNEL:*:*)
echo nse-tandem-nsk${UNAME_RELEASE}
exit ;;
@ -1276,13 +1291,13 @@ EOF
echo pdp10-unknown-its
exit ;;
SEI:*:*:SEIUX)
echo mips-sei-seiux${UNAME_RELEASE}
echo mips-sei-seiux${UNAME_RELEASE}
exit ;;
*:DragonFly:*:*)
echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
exit ;;
*:*VMS:*:*)
UNAME_MACHINE=`(uname -p) 2>/dev/null`
UNAME_MACHINE=`(uname -p) 2>/dev/null`
case "${UNAME_MACHINE}" in
A*) echo alpha-dec-vms ; exit ;;
I*) echo ia64-dec-vms ; exit ;;
@ -1322,11 +1337,11 @@ main ()
#include <sys/param.h>
printf ("m68k-sony-newsos%s\n",
#ifdef NEWSOS4
"4"
"4"
#else
""
""
#endif
); exit (0);
); exit (0);
#endif
#endif

View file

@ -284,9 +284,6 @@ else
dgux*)
hardcode_libdir_flag_spec='-L$libdir'
;;
freebsd1*)
ld_shlibs=no
;;
freebsd2.2*)
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
@ -448,8 +445,6 @@ case "$host_os" in
;;
dgux*)
;;
freebsd1*)
;;
freebsd*)
;;
gnu*)

132
newlib/src/config.sub vendored
View file

@ -1,10 +1,10 @@
#! /bin/sh
# Configuration validation subroutine script.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
# Free Software Foundation, Inc.
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
# 2011 Free Software Foundation, Inc.
timestamp='2010-05-21'
timestamp='2011-10-29'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
@ -76,7 +76,7 @@ version="\
GNU config.sub ($timestamp)
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free
Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
@ -158,8 +158,8 @@ case $os in
os=
basic_machine=$1
;;
-bluegene*)
os=-cnk
-bluegene*)
os=-cnk
;;
-sim | -cisco | -oki | -wec | -winbond)
os=
@ -175,10 +175,10 @@ case $os in
os=-chorusos
basic_machine=$1
;;
-chorusrdb)
os=-chorusrdb
-chorusrdb)
os=-chorusrdb
basic_machine=$1
;;
;;
-hiux*)
os=-hiuxwe2
;;
@ -251,13 +251,17 @@ case $basic_machine in
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
| am33_2.0 \
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
| be32 | be64 \
| bfin \
| c4x | clipper \
| d10v | d30v | dlx | dsp16xx \
| epiphany \
| fido | fr30 | frv \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| hexagon \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
| le32 | le64 \
| lm32 \
| m32c | m32r | m32rle | m68000 | m68k | m88k \
| maxq | mb | microblaze | mcore | mep | metag \
@ -283,24 +287,26 @@ case $basic_machine in
| moxie \
| mt \
| msp430 \
| nds32 | nds32le | nds32be \
| nios | nios2 \
| ns16k | ns32k \
| open8 \
| or32 \
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
| powerpc | powerpc64 | powerpc64le | powerpcle \
| pyramid \
| rx \
| rl78 | rx \
| score \
| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
| sh64 | sh64le \
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
| spu | strongarm \
| tahoe | thumb | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
| spu \
| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
| ubicom32 \
| v850 | v850e \
| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
| we32k \
| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
| x86 | xc16x | xstormy16 | xtensa \
| z8k | z80)
basic_machine=$basic_machine-unknown
;;
@ -324,6 +330,18 @@ case $basic_machine in
basic_machine=mt-unknown
;;
strongarm | thumb | xscale)
basic_machine=arm-unknown
;;
xscaleeb)
basic_machine=armeb-unknown
;;
xscaleel)
basic_machine=armel-unknown
;;
# We use `pc' rather than `unknown'
# because (1) that's what they normally are, and
# (2) the word "unknown" tends to confuse beginning users.
@ -343,6 +361,7 @@ case $basic_machine in
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* | avr32-* \
| be32-* | be64-* \
| bfin-* | bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* \
| clipper-* | craynv-* | cydra-* \
@ -351,8 +370,10 @@ case $basic_machine in
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
| h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
| hexagon-* \
| i*86-* | i860-* | i960-* | ia64-* \
| ip2k-* | iq2000-* \
| le32-* | le64-* \
| lm32-* \
| m32c-* | m32r-* | m32rle-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
@ -378,26 +399,29 @@ case $basic_machine in
| mmix-* \
| mt-* \
| msp430-* \
| nds32-* | nds32le-* | nds32be-* \
| nios-* | nios2-* \
| none-* | np1-* | ns16k-* | ns32k-* \
| open8-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
| pyramid-* \
| romp-* | rs6000-* | rx-* \
| rl78-* | romp-* | rs6000-* | rx-* \
| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
| sparclite-* \
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
| tahoe-* | thumb-* \
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
| tahoe-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
| tile-* | tilegx-* \
| tile*-* \
| tron-* \
| ubicom32-* \
| v850-* | v850e-* | vax-* \
| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
| vax-* \
| we32k-* \
| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
| x86-* | x86_64-* | xc16x-* | xps100-* \
| xstormy16-* | xtensa*-* \
| ymp-* \
| z8k-* | z80-*)
@ -422,7 +446,7 @@ case $basic_machine in
basic_machine=a29k-amd
os=-udi
;;
abacus)
abacus)
basic_machine=abacus-unknown
;;
adobe68k)
@ -505,7 +529,7 @@ case $basic_machine in
basic_machine=c90-cray
os=-unicos
;;
cegcc)
cegcc)
basic_machine=arm-unknown
os=-cegcc
;;
@ -537,7 +561,7 @@ case $basic_machine in
basic_machine=craynv-cray
os=-unicosmp
;;
cr16)
cr16 | cr16-*)
basic_machine=cr16-unknown
os=-elf
;;
@ -753,7 +777,7 @@ case $basic_machine in
basic_machine=ns32k-utek
os=-sysv
;;
microblaze)
microblaze)
basic_machine=microblaze-xilinx
;;
mingw32)
@ -796,6 +820,10 @@ case $basic_machine in
basic_machine=i370-ibm
os=-mvs
;;
nacl)
basic_machine=le32-unknown
os=-nacl
;;
ncr3000)
basic_machine=i486-ncr
os=-sysv4
@ -860,6 +888,12 @@ case $basic_machine in
np1)
basic_machine=np1-gould
;;
neo-tandem)
basic_machine=neo-tandem
;;
nse-tandem)
basic_machine=nse-tandem
;;
nsr-tandem)
basic_machine=nsr-tandem
;;
@ -942,9 +976,10 @@ case $basic_machine in
;;
power) basic_machine=power-ibm
;;
ppc) basic_machine=powerpc-unknown
ppc | ppcbe) basic_machine=powerpc-unknown
;;
ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
ppc-* | ppcbe-*)
basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppcle | powerpclittle | ppc-le | powerpc-little)
basic_machine=powerpcle-unknown
@ -1038,6 +1073,9 @@ case $basic_machine in
basic_machine=i860-stratus
os=-sysv4
;;
strongarm-* | thumb-*)
basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
sun2)
basic_machine=m68000-sun
;;
@ -1094,13 +1132,8 @@ case $basic_machine in
basic_machine=t90-cray
os=-unicos
;;
# This must be matched before tile*.
tilegx*)
basic_machine=tilegx-unknown
os=-linux-gnu
;;
tile*)
basic_machine=tile-unknown
basic_machine=$basic_machine-unknown
os=-linux-gnu
;;
tx39)
@ -1170,6 +1203,9 @@ case $basic_machine in
xps | xps100)
basic_machine=xps100-honeywell
;;
xscale-* | xscalee[bl]-*)
basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
;;
ymp)
basic_machine=ymp-cray
os=-unicos
@ -1267,11 +1303,11 @@ esac
if [ x"$os" != x"" ]
then
case $os in
# First match some system type aliases
# that might get confused with valid system types.
# First match some system type aliases
# that might get confused with valid system types.
# -solaris* is a basic system type, with this one exception.
-auroraux)
os=-auroraux
-auroraux)
os=-auroraux
;;
-solaris1 | -solaris1.*)
os=`echo $os | sed -e 's|solaris1|sunos4|'`
@ -1356,7 +1392,7 @@ case $os in
-opened*)
os=-openedition
;;
-os400*)
-os400*)
os=-os400
;;
-wince*)
@ -1405,7 +1441,7 @@ case $os in
-sinix*)
os=-sysv4
;;
-tpf*)
-tpf*)
os=-tpf
;;
-triton*)
@ -1450,8 +1486,8 @@ case $os in
-dicos*)
os=-dicos
;;
-nacl*)
;;
-nacl*)
;;
-none)
;;
*)
@ -1474,10 +1510,10 @@ else
# system, and we'll never get to this point.
case $basic_machine in
score-*)
score-*)
os=-elf
;;
spu-*)
spu-*)
os=-elf
;;
*-acorn)
@ -1489,8 +1525,8 @@ case $basic_machine in
arm*-semi)
os=-aout
;;
c4x-* | tic4x-*)
os=-coff
c4x-* | tic4x-*)
os=-coff
;;
tic54x-*)
os=-coff
@ -1526,7 +1562,7 @@ case $basic_machine in
m68*-cisco)
os=-aout
;;
mep-*)
mep-*)
os=-elf
;;
mips*-cisco)
@ -1553,7 +1589,7 @@ case $basic_machine in
*-ibm)
os=-aix
;;
*-knuth)
*-knuth)
os=-mmixware
;;
*-wec)

View file

@ -1,3 +1,73 @@
2011-12-19 Andreas Schwab <schwab@linux-m68k.org>
* warnings.m4 (ACX_PROG_CC_WARNING_OPTS)
(ACX_PROG_CC_WARNING_ALMOST_PEDANTIC): Run the test without the
no- prefix.
2011-12-18 Eric Botcazou <ebotcazou@adacore.com>
* acx.m4 (Test for GNAT): Update comment and add quotes in final test.
2011-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* mh-interix (LIBGCC2_DEBUG_CFLAGS): Remove.
2011-08-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* picflag.m4: New file.
2011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* elf.m4 (target_elf): Remove *-netware*.
2011-04-20 Eric Botcazou <ebotcazou@adacore.com>
* bootstrap-lto.mk: Remove obsolete requirement.
2011-03-24 Paolo Bonzini <pbonzini@redhat.com>
* mt-mep: Remove, obsolete.
* mt-netware: Remove, obsolete.
* mt-wince: Remove, obsolete.
* mt-v810: Remove, unused.
2011-03-24 Paolo Bonzini <bonzini@gnu.org>
* mh-x86omitfp: Remove.
2011-03-24 Paolo Bonzini <bonzini@gnu.org>
* mh-cygwin: Remove obsolete variables and dependencies.
2011-03-24 Paolo Bonzini <bonzini@gnu.org>
* mh-sysv4: Remove.
* mh-solaris: Remove.
2011-03-24 Paolo Bonzini <bonzini@gnu.org>
* mh-sysv4: Remove AR_CFLAGS.
2011-03-24 Joseph Myers <joseph@codesourcery.com>
* mh-cxux, mh-decstation, mh-dgux386, mh-lynxrs6k, mh-ncr3000,
mh-necv4, mh-sco, mh-sysv5: Remove.
2011-03-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Eric Blake <eblake@redhat.com>
* override.m4: Error out if a buggy M4 was detected, to
avoid spurious diffs in generated files.
2011-01-25 Jakub Jelinek <jakub@redhat.com>
* cloog.m4 (CLOOG_REQUESTED): Use $2 if --without-cloog.
2011-01-10 Jan Hubicka <jh@suse.cz>
* bootstrap-lto.mk: -fuse-linker-plugin is default now;
pass -fno-lto to STAGEprofile.
2010-12-06 Dave Korn <dave.korn.cygwin@gmail.com>
PR target/40125
@ -99,8 +169,8 @@
2010-06-09 Iain Sandoe <iains@gcc.gnu.org>
PR bootstrap/43170
* tls.m4 (GCC_CHECK_TLS): Add volatile qualifier to the test
references. Move the main () test reference ahead of
* tls.m4 (GCC_CHECK_TLS): Add volatile qualifier to the test
references. Move the main () test reference ahead of
pthread_create(). Add a comment to explain the requirements
of the test.
@ -382,7 +452,7 @@
PR bootstrap/32009
* mh-ppc-darwin (BOOT_CFLAGS): Reenable.
2008-01-08 Jakub Jelinek <jakub@redhat.com>
* futex.m4: New file.
@ -456,7 +526,7 @@
* acx.m4 (ACX_CHECK_INSTALLED_TARGET_TOOL): Fixup logic for cross
builds.
2007-06-20 Mike Stump <mrs@apple.com>
* acx.m4 (NCN_STRICT_CHECK_TARGET_TOOLS): Fix incremental builds.
@ -481,7 +551,7 @@
2007-04-11 Kai Tietz <kai.tietz@onevision.com>
* stdint.m4: Make template compatible with older cygwin
* stdint.m4: Make template compatible with older cygwin
types.h, wrapping each type in a __XXX_t_defined #ifdef.
2007-03-26 H.J. Lu <hongjiu.lu@intel.com>
@ -585,7 +655,8 @@
2006-07-25 Paolo Bonzini <bonzini@gnu.org>
PR build/26188
* stdint.m4: Test for uintptr_t even on systems with uint64_t or uint32_t.
* stdint.m4: Test for uintptr_t even on systems with uint64_t
or uint32_t.
2006-07-21 Steve Ellcey <sje@cup.hp.com>

View file

@ -356,9 +356,9 @@ m4_define([AC_CHECK_HEADER],m4_defn([_AC_CHECK_HEADER_OLD]))
ac_c_preproc_warn_flag=yes])# AC_PROG_CPP_WERROR
# Test for GNAT.
# We require the gnatbind program, and a compiler driver that
# understands Ada. We use the user's CC setting, already found,
# and possibly add $1 to the command-line parameters.
# We require the gnatbind & gnatmake programs, as well as a compiler driver
# that understands Ada. We use the user's CC setting, already found, and
# possibly add $1 to the command-line parameters.
#
# Sets the shell variable have_gnat to yes or no as appropriate, and
# substitutes GNATBIND and GNATMAKE.
@ -387,7 +387,7 @@ if test x"$errors" = x && test -f conftest.$ac_objext; then
fi
rm -f conftest.*])
if test x$GNATBIND != xno && test x$GNATMAKE != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
if test "x$GNATBIND" != xno && test "x$GNATMAKE" != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
have_gnat=yes
else
have_gnat=no

View file

@ -1,5 +1,5 @@
# This option enables LTO for stage2 and stage3. It requires lto to
# be enabled for stage1 with --enable-stage1-languages.
# This option enables LTO for stage2 and stage3.
STAGE2_CFLAGS += -flto=jobserver -fuse-linker-plugin -frandom-seed=1
STAGE3_CFLAGS += -flto=jobserver -fuse-linker-plugin -frandom-seed=1
STAGE2_CFLAGS += -flto=jobserver -frandom-seed=1
STAGE3_CFLAGS += -flto=jobserver -frandom-seed=1
STAGEprofile_CFLAGS += -fno-lto

View file

@ -88,7 +88,9 @@ AC_DEFUN([CLOOG_REQUESTED],
[
AC_REQUIRE([CLOOG_INIT_FLAGS])
if test "x${with_cloog}" != x \
if test "x${with_cloog}" = xno; then
$2
elif test "x${with_cloog}" != x \
|| test "x${with_cloog_include}" != x \
|| test "x${with_cloog_lib}" != x ; then
$1
@ -177,7 +179,7 @@ AC_DEFUN([CLOOG_FIND_FLAGS],
;;
"ISL")
clooginc="${clooginc} ${_cloogorginc}"
clooglibs="${clooglibs} -lcloog-isl"
clooglibs="${clooglibs} -lcloog-isl -lisl"
cloog_org=yes
;;
"PPL")

View file

@ -1,4 +1,4 @@
dnl Copyright (C) 2010 Free Software Foundation, Inc.
dnl Copyright (C) 2010, 2011 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU
dnl General Public License. As a special exception to the GNU General
dnl Public License, this file may be distributed as part of a program
@ -14,7 +14,7 @@ AC_REQUIRE([AC_CANONICAL_TARGET])
target_elf=no
case $target in
*-darwin* | *-aix* | *-cygwin* | *-mingw* | *-aout* | *-*coff* | \
*-msdosdjgpp* | *-netware* | *-vms* | *-wince* | *-*-pe* | \
*-msdosdjgpp* | *-vms* | *-wince* | *-*-pe* | \
alpha*-dec-osf* | *-interix* | hppa[[12]]*-*-hpux*)
target_elf=no
;;

View file

@ -1,11 +1,4 @@
EXTRA_TARGET_HOST_ALL_MODULES=maybe-all-libtermcap
EXTRA_TARGET_HOST_INSTALL_MODULES=maybe-install-libtermcap
# Increase stack limit to a figure based on the Linux default, with 4MB added
# as GCC turns out to need that much more to pass all the limits-* tests.
LDFLAGS += -Wl,--stack,12582912
BOOT_LDFLAGS += -Wl,--stack,12582912
all-gdb: maybe-all-libtermcap
install-gdb: maybe-all-libtermcap

View file

@ -1,7 +1,2 @@
# The shell may not be in /bin.
SHELL = sh
# We also need to override LIBGCC2_DEBUG_CFLAGS so libgcc2 will be
# built without debugging information
LIBGCC2_DEBUG_CFLAGS=

View file

@ -48,6 +48,12 @@ _GCC_AUTOCONF_VERSION_CHECK
])
dnl Ensure we do not use a buggy M4.
m4_if(m4_index([..wi.d.], [.d.]), [-1],
[m4_fatal(m4_do([m4 with buggy strstr detected. Please install
GNU M4 1.4.16 or newer and set the M4 environment variable]))])
dnl Fix 2.64 cross compile detection for AVR and RTEMS
dnl by not trying to compile fopen.
m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.64],

View file

@ -0,0 +1,95 @@
# _GCC_PICFLAG(FLAG, DISPATCH)
# ----------------------------
# Store PIC flag corresponding to DISPATCH triplet in FLAG.
# Explit use of -fpic in CFLAGS corresponding to FLAG overrides default.
AC_DEFUN([_GCC_PICFLAG], [
case "${$2}" in
# PIC is the default on some targets or must not be used.
*-*-darwin*)
# PIC is the default on this platform
# Common symbols not allowed in MH_DYLIB files
$1=-fno-common
;;
alpha*-dec-osf5*)
# PIC is the default.
;;
hppa*64*-*-hpux*)
# PIC is the default for 64-bit PA HP-UX.
;;
i[[34567]]86-*-cygwin* | i[[34567]]86-*-mingw* | x86_64-*-mingw*)
;;
i[[34567]]86-*-interix3*)
# Interix 3.x gcc -fpic/-fPIC options generate broken code.
# Instead, we relocate shared libraries at runtime.
;;
i[[34567]]86-*-nto-qnx*)
# QNX uses GNU C++, but need to define -shared option too, otherwise
# it will coredump.
$1='-fPIC -shared'
;;
i[[34567]]86-pc-msdosdjgpp*)
# DJGPP does not support shared libraries at all.
;;
ia64*-*-hpux*)
# On IA64 HP-UX, PIC is the default but the pic flag
# sets the default TLS model and affects inlining.
$1=-fPIC
;;
mips-sgi-irix6*)
# PIC is the default.
;;
rs6000-ibm-aix* | powerpc-ibm-aix*)
# All AIX code is PIC.
;;
# Some targets support both -fPIC and -fpic, but prefer the latter.
# FIXME: Why?
i[[34567]]86-*-* | x86_64-*-*)
$1=-fpic
;;
m68k-*-*)
$1=-fpic
;;
s390*-*-*)
$1=-fpic
;;
# FIXME: Override -fPIC default in libgcc only?
sh-*-linux* | sh[[2346lbe]]*-*-linux*)
$1=-fpic
;;
# FIXME: Simplify to sh*-*-netbsd*?
sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
sh64-*-netbsd* | sh64l*-*-netbsd*)
$1=-fpic
;;
# Default to -fPIC unless specified otherwise.
*)
$1=-fPIC
;;
esac
# If the user explicitly uses -fpic/-fPIC, keep that.
case "${m4_bpatsubsts($1, PICFLAG, CFLAGS)}" in
*-fpic*)
$1=-fpic
;;
*-fPIC*)
$1=-fPIC
;;
esac
])
# GCC_PICFLAG
# -----------
# Store host PIC flag in PICFLAG.
AC_DEFUN([GCC_PICFLAG], [
AC_REQUIRE([AC_CANONICAL_HOST])
_GCC_PICFLAG([PICFLAG], [host])])
# GCC_PICFLAG_FOR_TARGET
# ----------------------
# Store target PIC flag in PICFLAG_FOR_TARGET.
AC_DEFUN([GCC_PICFLAG_FOR_TARGET], [
AC_REQUIRE([AC_CANONICAL_TARGET])
_GCC_PICFLAG([PICFLAG_FOR_TARGET], [target])])

View file

@ -1,6 +1,6 @@
# Autoconf include file defining macros related to compile-time warnings.
# Copyright 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
# Copyright 2004, 2005, 2007, 2009, 2011 Free Software Foundation, Inc.
#This file is part of GCC.
@ -28,7 +28,13 @@ AC_SUBST(acx_Var)dnl
m4_expand_once([acx_Var=
],m4_quote(acx_Var=))dnl
save_CFLAGS="$CFLAGS"
for option in $1; do
for real_option in $1; do
# Do the check with the no- prefix removed since gcc silently
# accepts any -Wno-* option on purpose
case $real_option in
-Wno-*) option=-W`expr $real_option : '-Wno-\(.*\)'` ;;
*) option=$real_option ;;
esac
AS_VAR_PUSHDEF([acx_Woption], [acx_cv_prog_cc_warning_$option])
AC_CACHE_CHECK([whether $CC supports $option], acx_Woption,
[CFLAGS="$option"
@ -37,14 +43,14 @@ for option in $1; do
[AS_VAR_SET(acx_Woption, no)])
])
AS_IF([test AS_VAR_GET(acx_Woption) = yes],
[acx_Var="$acx_Var${acx_Var:+ }$option"])
[acx_Var="$acx_Var${acx_Var:+ }$real_option"])
AS_VAR_POPDEF([acx_Woption])dnl
done
CFLAGS="$save_CFLAGS"
m4_popdef([acx_Var])dnl
])# ACX_PROG_CC_WARNING_OPTS
# ACX_PROG_CC_WARNING_ALMOST_PEDANTIC(WARNINGS, [VARIABLE = WARN_PEDANTIC)
# ACX_PROG_CC_WARNING_ALMOST_PEDANTIC(WARNINGS, [VARIABLE = WARN_PEDANTIC])
# Append to VARIABLE "-pedantic" + the argument, if the compiler is GCC
# and accepts all of those options simultaneously, otherwise to nothing.
AC_DEFUN([ACX_PROG_CC_WARNING_ALMOST_PEDANTIC],
@ -53,11 +59,14 @@ m4_pushdef([acx_Var], [m4_default([$2], [WARN_PEDANTIC])])dnl
AC_SUBST(acx_Var)dnl
m4_expand_once([acx_Var=
],m4_quote(acx_Var=))dnl
AS_VAR_PUSHDEF([acx_Pedantic], [acx_cv_prog_cc_pedantic_$1])dnl
# Do the check with the no- prefix removed from the warning options
# since gcc silently accepts any -Wno-* option on purpose
m4_pushdef([acx_Woptions], [m4_bpatsubst([$1], [-Wno-], [-W])])dnl
AS_VAR_PUSHDEF([acx_Pedantic], [acx_cv_prog_cc_pedantic_]acx_Woptions)dnl
AS_IF([test "$GCC" = yes],
[AC_CACHE_CHECK([whether $CC supports -pedantic $1], acx_Pedantic,
[AC_CACHE_CHECK([whether $CC supports -pedantic ]acx_Woptions, acx_Pedantic,
[save_CFLAGS="$CFLAGS"
CFLAGS="-pedantic $1"
CFLAGS="-pedantic acx_Woptions"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],
[AS_VAR_SET(acx_Pedantic, yes)],
[AS_VAR_SET(acx_Pedantic, no)])
@ -66,6 +75,7 @@ AS_IF([test AS_VAR_GET(acx_Pedantic) = yes],
[acx_Var="$acx_Var${acx_Var:+ }-pedantic $1"])
])
AS_VAR_POPDEF([acx_Pedantic])dnl
m4_popdef([acx_Woptions])dnl
m4_popdef([acx_Var])dnl
])# ACX_PROG_CC_WARNING_ALMOST_PEDANTIC

1933
newlib/src/configure vendored

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,3 +1,193 @@
2011-12-18 Mike Frysinger <vapier@gentoo.org>
* bfin/clear_cache_range.c: New file.
* bfin/Makefile.in (SIM_OBJS): Add clear_cache_range.o.
(BOARD_OBJS): Likewise.
(BOARD_BSP): Set to libbfinbsp.a.
(${BOARD_BSP}): New rule.
2011-12-15 Konrad Eisele <konrad@gaisler.com>
* configure.in: Add SPARC LEON support.
* configure: Regenerated.
* sparc_leon/asm-leon/amba.h, sparc_leon/asm-leon/asmmacro.h,
sparc_leon/asm-leon/clock.h, sparc_leon/asm-leon/contextswitch.h,
sparc_leon/asm-leon/elfmacro.h, sparc_leon/asm-leon/head.h,
sparc_leon/asm-leon/irq.h, sparc_leon/asm-leon/jiffies.h,
sparc_leon/asm-leon/lambapp.h, sparc_leon/asm-leon/lambapp_devs.h,
sparc_leon/asm-leon/leon.h, sparc_leon/asm-leon/leon3.h,
sparc_leon/asm-leon/leonbare_debug.h, sparc_leon/asm-leon/leonbare_kernel.h,
sparc_leon/asm-leon/leonbare_kernel_queue.h, sparc_leon/asm-leon/leoncompat.h,
sparc_leon/asm-leon/leondbg.h, sparc_leon/asm-leon/leonstack.h,
sparc_leon/asm-leon/liblocks.h, sparc_leon/asm-leon/linkage.h,
sparc_leon/asm-leon/param.h, sparc_leon/asm-leon/queue.h,
sparc_leon/asm-leon/spinlock.h, sparc_leon/asm-leon/stack.h,
sparc_leon/asm-leon/time.h, sparc_leon/asm-leon/timer.h,
sparc_leon/asm-leon/types.h, sparc_leon/asm-leon/winmacros.h:
New file.
* sparc_leon/Makefile.in, sparc_leon/_exit.c,
sparc_leon/amba.c, sparc_leon/amba_dbg.c,
sparc_leon/amba_driver.c, sparc_leon/amba_scan.c,
sparc_leon/asm-leon, sparc_leon/bdinit.S,
sparc_leon/busscan.S, sparc_leon/cacheA.S,
sparc_leon/catch_interrupt.c, sparc_leon/catch_interrupt_mvt.c,
sparc_leon/catch_interrupt_pending.c, sparc_leon/catch_interrupt_svt.c,
sparc_leon/configure.in,
sparc_leon/console.c, sparc_leon/console_dbg.c,
sparc_leon/console_init.c, sparc_leon/contextswitch.c,
sparc_leon/contextswitch_asm.S, sparc_leon/crt0.S,
sparc_leon/crti.S, sparc_leon/crtn.S,
sparc_leon/etrap.S, sparc_leon/etrap_fast.S,
sparc_leon/fpu.S, sparc_leon/gettimeofday.c,
sparc_leon/initcalls.c, sparc_leon/io.c,
sparc_leon/irqinstall.S, sparc_leon/irqtrap.S,
sparc_leon/irqtrap_fast.S, sparc_leon/jiffies.c,
sparc_leon/kernel.c, sparc_leon/kernel_context.S,
sparc_leon/kernel_debug.c, sparc_leon/kernel_debug_var.c,
sparc_leon/kernel_mm.c, sparc_leon/kernel_mutex.c,
sparc_leon/kernel_queue.c, sparc_leon/kernel_sched.c,
sparc_leon/kernel_thread.c, sparc_leon/lcpuinit.S,
sparc_leon/locore.S, sparc_leon/locore_atexit.c,
sparc_leon/locore_clean.S, sparc_leon/locore_mvt.S,
sparc_leon/locore_mvt_reset.S, sparc_leon/locore_svt.S,
sparc_leon/locore_svt_reset.S, sparc_leon/locore_svtdisp.S,
sparc_leon/locore_var.S, sparc_leon/locore_var_svt.S,
sparc_leon/mmu_asm.S, sparc_leon/mutex.c,
sparc_leon/nocache.S, sparc_leon/pnpinit.c,
sparc_leon/pnpinit_malloc.c, sparc_leon/pnpinit_simple.c,
sparc_leon/regwin.S, sparc_leon/regwin_patch.c,
sparc_leon/regwin_slow.S, sparc_leon/regwinflush.S,
sparc_leon/rtc.c, sparc_leon/rtrap.S,
sparc_leon/rtrap_fast.S, sparc_leon/stop.S,
sparc_leon/timer.c, sparc_leon/times.c:
New file
* sparc_leon/configure: Regenerate
2011-12-13 Richard Earnshaw <rearnsha@arm.com>
Thomas Klein <th.r.klein@web.de>
* arm/crt0.S: Manually set the target architecture
when compiling for Thumb1 on EABI targets.
Avoid v6-only Thumb-1 MOV instruction.
2011-11-28 DJ Delorie <dj@redhat.com>
* configure.in: Add rl78.
* configure: Regenerate.
* rl78: New directory
2011-11-08 Mike Frysinger <vapier@gentoo.org>
* libnosys/Makefile.in (install): Use INSTALL_DATA.
2011-10-07 Nick Clifton <nickc@redhat.com>
* rx/crt0.S: Initialise the PID address register.
(__pid_base): Define weakly.
2011-09-29 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
* arm/crt0.s: Support 0 heap base response from HeapInfo syscall.
2011-09-29 Bin Cheng <bin.cheng@arm.com>
* arm/arm.h (HAVE_CALL_INDIRECT): Define.
* arm/crt0.S (indirect_call): New macro. Encodes indirect
function calls. Does not use blx for pre-armv5 targets.
2011-08-19 Nick Clifton <nickc@redhat.com>
* iq2000/sim.ld (.gcc_except_table): Include .gcc_except_table.foo
sections as well.
2011-08-08 Mike Stump <mikestump@comcast.net>
* Makefile.in: Make stmp-bsp and install consistent with
subdir_do target with regards to error handling.
2011-07-13 Bin Cheng <bin.cheng@arm.com>
* arm/crt0.S: Support armv6-m processors in libgloss.
* arm/swi.h: Likewise.
* arm/trap.S: Likewise.
* arm/redboot-crt0.S: Likewise.
* arm/linux-crt0.c: Likewise.
* arm/arm.h: New.
2011-07-01 Mike Frysinger <vapier@gentoo.org>
* bfin/syscalls.c (_getpid): Call do_syscall with func argument n and
return the result.
(_fstat): Delete stub body. Add block array and assign file/st to it.
Call do_syscall with result.
(_stat): Delete stub body. Add block array and assign fname/st to
it. Call do_syscall with result.
(_link): Change func arguments to accept two strings. Add block array
and assign existing/new to it. Call do_syscall with result.
(_unlink): Change func arguments to accept a string. Call do_syscall
with new argument.
2011-07-01 Mike Frysinger <vapier@gentoo.org>
* bfin/syscalls.c (_lseek): Change 3rd arg name to whence. Increase
block array to 3 elements. Set 3rd element to whence.
2011-06-29 Jeff Johnston <jjohnstn@redhat.com>
* arm/Makefile.in: Add $CFLAGS to compile commands for specified .o targets.
2011-06-22 Mike Frysinger <vapier@gentoo.org>
* bfin/syscalls.c (do_syscall): Delete local variable definitions.
Declare result, result2, errcode local ints. Delete asm inputs
and outputs. Set output constraints to q0/result, q1/result2, and
q2/errcode. Set input constraints to qA/reason and q0/arg. Set
errno to errcode.
2011-06-21 Mike Frysinger <vapier@gentoo.org>
* bfin/syscalls.c: Trim trailing whitespace.
* bfin/crt0.S: Likewise.
2011-06-14 Joseph Myers <joseph@codesourcery.com>
* configure.in: Don't handle strongarm, ep9312 and xscale target
names.
* configure: Regenerate.
* libnosys/configure.in: Don't handle strongarm and thumb target
names.
* libnosys/configure: Regenerate.
2011-05-27 Nick Clifton <nickc@redhat.com>
* v8500/sbrk.c (_sbrk): Tidy code.
Base start of heap on the "heap_start" symbol.
2011-03-26 Mike Frysinger <vapier@gentoo.org>
* bfin/include/builtins.h (__builtin_raise): Change constraint to n.
(__builtin_excpt): Likewise.
2011-03-26 Mike Frysinger <vapier@gentoo.org>
* bfin/Makefile.in (install-sim): Exit when install fails.
(install-board): Likewise.
2011-03-24 Nick Clifton <nickc@redhat.com>
* xstormy16/crt0.s (_hwint): Fix .size directive.
* frv/crt0.S (__frv_fix_usrptrs): Fix .size directive.
2011-03-21 Kevin Buettner <kevinb@redhat.com>
* v850/sys/syscall.h (SYS_rename): Define.
2011-01-10 Mike Frysinger <vapier@gentoo.org>
* Makefile.in (stmp-bsp): Exit when subdirs fail.
(install): Likewise.
2010-12-02 Jayant Sonar jayant.sonar@kpitcummins.com
Kaushik Phatak kaushik.phatak@kpitcummins.com

View file

@ -104,7 +104,7 @@ stmp-bsp: force
for dir in .. ${SUBDIRS}; do \
if [ x$$dir != x.. ]; then \
if [ -d $$dir ]; then \
(cd $$dir; $(MAKE) $(FLAGS_TO_PASS)); \
(cd $$dir; $(MAKE) $(FLAGS_TO_PASS)) || exit $$?; \
else true; fi; \
else true; fi; \
done
@ -115,7 +115,7 @@ install: force
for dir in .. ${SUBDIRS}; do \
if [ x$$dir != x.. ]; then \
if [ -d $$dir ]; then \
(cd $$dir; $(MAKE) $(FLAGS_TO_PASS) install); \
(cd $$dir; $(MAKE) $(FLAGS_TO_PASS) install) || exit $$?; \
else true; fi; \
else true; fi; \
done

View file

@ -107,25 +107,25 @@ redboot-crt0.o: redboot-crt0.S
redboot-syscalls.o: redboot-syscalls.c $(srcdir)/../syscall.h
rdpmon-crt0.o: crt0.S
$(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) -DARM_RDP_MONITOR -o $@ -c $<
$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DARM_RDP_MONITOR -o $@ -c $<
rdimon-crt0.o: crt0.S
$(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<
$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<
rdimon-trap.o: trap.S
$(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<
$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<
rdimon-_exit.o: _exit.c
$(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<
$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<
rdimon-_kill.o: _kill.c
$(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<
$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<
rdimon-syscalls.o: syscalls.c
$(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<
$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<
rdimon-libcfunc.o: libcfunc.c
$(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<
$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<
$(LINUX_BSP): $(LINUX_OBJS)
${AR} ${ARFLAGS} $@ $^

View file

@ -0,0 +1,62 @@
/*
* 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 */

View file

@ -1,4 +1,5 @@
#include "newlib.h"
#include "arm.h"
#include "swi.h"
/* ANSI concatenation macros. */
@ -16,10 +17,34 @@
#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
#if defined(__thumb2__)
.syntax unified
#ifdef THUMB_V7_V6M
.thumb
.macro FUNC_START name
.global \name
@ -33,6 +58,16 @@
\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
@ -48,25 +83,68 @@
/* Issue Demon SWI to read stack info */
swi SWI_GetEnv /* Returns command line in r0 */
mov sp,r1 /* and the highest memory address in r1 */
ldr sl, .LC2 /* stack limit is at end of data */
add sl, sl, #256 /* allow slop for stack overflow handling */
/* and small frames */
/* 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 */
mov r0, #AngelSWI_Reason_HeapInfo
movs r0, #AngelSWI_Reason_HeapInfo
adr r1, .LC0 /* point at ptr to 4 words to receive data */
#if defined(__thumb2__)
#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 */
/* We are always in ARM mode for startup on pre armv7 archs. */
AngelSWIAsm AngelSWI_ARM
#endif
ldr r0, .LC0 /* point at values read */
ldr sp, [r0, #8]
ldr sl, [r0, #12]
add sl, sl, #256 /* allow slop for stack overflow handling */
/* and small frames */
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:
@ -85,13 +163,19 @@
#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 __thumb2__
#ifdef THUMB_V7_V6M
/* XXX Fill in stack assignments for interrupt modes. */
#else
mrs r2, CPSR
@ -134,20 +218,27 @@
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. */
mov a2, #0 /* Second arg: fill value */
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
sub a3, a3, a1 /* Third arg: length of block */
subs a3, a3, a1 /* Third arg: length of block */
#if defined(__thumb__) && !defined(__thumb2__)
#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 */
@ -167,41 +258,31 @@ __change_mode:
ldr r3, .Lhwinit
cmp r3, #0
beq .LC24
#if defined(__thumb__) || defined(__thumb2__)
blx r3
#else
mov lr, pc
mov pc, r3
#endif
indirect_call r3
.LC24:
ldr r3, .Lswinit
cmp r3, #0
beq .LC25
#if defined(__thumb__) || defined(__thumb2__)
blx r3
#else
mov lr, pc
mov pc, r3
#endif
indirect_call r3
.LC25:
mov r0, #0 /* no arguments */
mov r1, #0 /* no argv either */
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 */
mov r1, r0
movs r1, r0
#else
mov r0, #AngelSWI_Reason_GetCmdLine
movs r0, #AngelSWI_Reason_GetCmdLine
adr r1, .LC30 /* Space for command line */
AngelSWIAsm AngelSWI
ldr r1, .LC30
#endif
/* Parse string at r1 */
mov r0, #0 /* count of arguments so far */
movs r0, #0 /* count of arguments so far */
/* Push a NULL argument onto the end of the list. */
#ifdef __thumb__
push {r0}
@ -212,7 +293,7 @@ __change_mode:
/* Skip leading blanks */
#ifdef __thumb__
ldrb r3, [r1]
add r1, #1
adds r1, #1
#else
ldrb r3, [r1], #1
#endif
@ -228,12 +309,12 @@ __change_mode:
cmp r3, #'\''
bne .LC21
.LC20:
mov r2, r3
movs r2, r3
b .LC22
.LC21:
mov r2, #' ' /* terminator type */
sub r1, r1, #1 /* adjust back to point at start char */
movs r2, #' ' /* terminator type */
subs r1, r1, #1 /* adjust back to point at start char */
.LC22:
#else
cmpne r3, #'\''
@ -248,11 +329,11 @@ __change_mode:
#else
stmfd sp!, {r1}
#endif
add r0, r0, #1
adds r0, r0, #1
.LC11:
#ifdef __thumb__
ldrb r3, [r1]
add r1, #1
adds r1, #1
#else
ldrb r3, [r1], #1
#endif
@ -260,8 +341,8 @@ __change_mode:
beq .LC12
cmp r2, r3 /* reached terminator? */
bne .LC11
mov r2, #0
sub r3, r1, #1
movs r2, #0
subs r3, r1, #1
strb r2, [r3] /* terminate the arg string */
b .LC10
@ -269,24 +350,24 @@ __change_mode:
mov r1, sp /* point at stacked arg pointers */
/* We've now got the stacked args in order reverse the */
#ifdef __thumb__
mov r2, r0
lsl r2, #2
movs r2, r0
lsls r2, #2
add r2, sp
mov r3, sp
.LC15: cmp r2, r3
bls .LC14
sub r2, #4
subs r2, #4
ldr r4, [r2]
ldr r5, [r3]
str r5, [r2]
str r4, [r3]
add r3, #4
adds r3, #4
b .LC15
.LC14:
/* Ensure doubleword stack alignment. */
mov r4, sp
mov r5, #7
bic r4, r5
movs r5, #7
bics r4, r5
mov sp, r4
#else
add r2, sp, r0, LSL #2 /* End of args */
@ -307,19 +388,19 @@ __change_mode:
to create constructors and destructors, and for these
targets we need to call the _init function and arrange
for _fini to be called at program exit. */
mov r4, r0
mov r5, r1
movs r4, r0
movs r5, r1
ldr r0, .Lfini
bl FUNCTION (atexit)
bl FUNCTION (_init)
mov r0, r4
mov r1, r5
movs r0, r4
movs r1, r5
#endif
bl FUNCTION (main)
bl FUNCTION (exit) /* Should not return. */
#if defined(__thumb__) && !defined(__thumb2__)
#if defined(__thumb__) && !defined(THUMB_V7_V6M)
/* Come out of Thumb mode. This code should be redundant. */
mov a4, pc
@ -391,6 +472,8 @@ change_back:
.LC30:
.word CommandLine
.word 255
.LC31:
.word __end__
/* Workspace for Angel calls. */
.data

View file

@ -8,10 +8,11 @@
#include <stdlib.h>
#include <unistd.h>
#include "arm.h"
static int _main(int argc, char *argv[]) __attribute__((noreturn));
#if __thumb__ && !__thumb2__
#if defined(__thumb__) && !defined(THUMB_V7_V6M)
asm("\n"
".code 32\n"
".global _start\n"

View file

@ -1,3 +1,4 @@
#include "arm.h"
.file "crt0.S"
@ -11,14 +12,14 @@
#endif
.text
.syntax unified
/* Setup the assembly entry point. */
#ifdef __thumb2__
#ifdef THUMB_V7_V6M
.macro FUNC_START name
.global \name
.thumb_func
\name:
.endm
.syntax unified
.thumb
#else
.macro FUNC_START name
@ -29,11 +30,15 @@
#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. */
mov r7, #0 /* Null frame pointer for Thumb. */
#endif
movs r7, #0 /* Null frame pointer for Thumb. */
/* Enable interrupts for gdb debugging. */
#ifdef __thumb2__
#ifdef THUMB_V7_V6M
cpsie if
#else
mrs r0, cpsr
@ -41,10 +46,10 @@
msr cpsr, r0
#endif
mov a2, #0 /* Second arg: fill value. */
movs a2, #0 /* Second arg: fill value. */
ldr a1, .LC1 /* First arg: start of memory block. */
ldr a3, .LC2
sub a3, a3, a1 /* Third arg: length of block. */
subs a3, a3, a1 /* Third arg: length of block. */
#ifdef GCRT0
/* Zero out the bss without using memset.
@ -62,7 +67,8 @@
/* Nothing to left to clear. */
#endif
#if defined(__thumb__) && !defined(__thumb2__) /* Enter Thumb mode. */
#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. */
@ -76,7 +82,7 @@ __change_mode:
bl SYM_NAME(memset)
#endif
bl SYM_NAME(__get_memtop)
sub r0, r0, #32
subs r0, r0, #32
mov sp, r0
#ifdef __USES_INITFINI__
@ -89,7 +95,7 @@ __change_mode:
bl SYM_NAME (_init)
#endif
mov a1, #0
movs a1, #0
ldr a2, .LC3
mov a3, a2
bl SYM_NAME(main)

View file

@ -1,3 +1,5 @@
#include "arm.h"
/* SWI numbers for RDP (Demon) monitor. */
#define SWI_WriteC 0x0
#define SWI_Write0 0x2
@ -33,8 +35,8 @@
#else
#define AngelSWI AngelSWI_ARM
#endif
/* For Thumb-2 code use the BKPT instruction instead of SWI. */
#ifdef __thumb2__
/* For thumb only architectures use the BKPT instruction instead of SWI. */
#ifdef THUMB_V7M_V6M
#define AngelSWIInsn "bkpt"
#define AngelSWIAsm bkpt
#else

View file

@ -1,5 +1,6 @@
#include "arm.h"
/* Run-time exception support */
#if !defined(__thumb2__)
#ifndef THUMB_V7_V6M
#include "swi.h"
/* .text is used instead of .section .text so it works with arm-aout too. */

View file

@ -1,6 +1,6 @@
@%:@! /bin/sh
@%:@ Guess values for system-dependent variables and create Makefiles.
@%:@ Generated by GNU Autoconf 2.67 for libgloss LIBGLOSS_VERSION.
@%:@ Generated by GNU Autoconf 2.68 for libgloss LIBGLOSS_VERSION.
@%:@
@%:@
@%:@ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@ -89,6 +89,7 @@ fi
IFS=" "" $as_nl"
# Find who we are. Look in the path if we contain no directory separator.
as_myself=
case $0 in @%:@((
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@ -213,11 +214,18 @@ IFS=$as_save_IFS
# We cannot yet assume a decent shell, so we have to provide a
# neutralization value for shells without unset; and this also
# works around shells that cannot unset nonexistent variables.
# Preserve -v and -x to the replacement shell.
BASH_ENV=/dev/null
ENV=/dev/null
(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
export CONFIG_SHELL
exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
case $- in @%:@ ((((
*v*x* | *x*v* ) as_opts=-vx ;;
*v* ) as_opts=-v ;;
*x* ) as_opts=-x ;;
* ) as_opts= ;;
esac
exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
fi
if test x$as_have_required = xno; then :
@ -664,6 +672,7 @@ m68hc11
m68k
pa
i960
sparc_leon
sparc
wince
mips
@ -687,6 +696,7 @@ v850
xc16x
xstormy16
m32c
rl78
rx
arm
spu
@ -1096,7 +1106,7 @@ Try \`$0 --help' for more information"
$as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
$as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
: ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
: "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
;;
esac
@ -1387,7 +1397,7 @@ test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
libgloss configure LIBGLOSS_VERSION
generated by GNU Autoconf 2.67
generated by GNU Autoconf 2.68
Copyright (C) 2010 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
@ -1433,7 +1443,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
fi
eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} @%:@ ac_fn_c_try_compile
@ -1442,7 +1452,7 @@ This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by libgloss $as_me LIBGLOSS_VERSION, which was
generated by GNU Autoconf 2.67. Invocation command line was
generated by GNU Autoconf 2.68. Invocation command line was
$ $0 $@
@ -1700,7 +1710,7 @@ $as_echo "$as_me: loading site script $ac_site_file" >&6;}
|| { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "failed to load site script $ac_site_file
See \`config.log' for more details" "$LINENO" 5 ; }
See \`config.log' for more details" "$LINENO" 5; }
fi
done
@ -1776,7 +1786,7 @@ if $ac_cache_corrupted; then
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
fi
## -------------------- ##
## Main body of script. ##
@ -1821,7 +1831,7 @@ for ac_dir in $libgloss_topdir "$srcdir"/$libgloss_topdir; do
fi
done
if test -z "$ac_aux_dir"; then
as_fn_error $? "cannot find install-sh, install.sh, or shtool in $libgloss_topdir \"$srcdir\"/$libgloss_topdir" "$LINENO" 5
as_fn_error $? "cannot find install-sh, install.sh, or shtool in $libgloss_topdir \"$srcdir\"/$libgloss_topdir" "$LINENO" 5
fi
# These three variables are undocumented and unsupported,
@ -1851,7 +1861,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
$as_echo_n "checking for a BSD-compatible install... " >&6; }
if test -z "$INSTALL"; then
if test "${ac_cv_path_install+set}" = set; then :
if ${ac_cv_path_install+:} false; then :
$as_echo_n "(cached) " >&6
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@ -1930,27 +1940,27 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
# Make sure we can run config.sub.
$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
$as_echo_n "checking build system type... " >&6; }
if test "${ac_cv_build+set}" = set; then :
if ${ac_cv_build+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_build_alias=$build_alias
test "x$ac_build_alias" = x &&
ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
test "x$ac_build_alias" = x &&
as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
$as_echo "$ac_cv_build" >&6; }
case $ac_cv_build in
*-*-*) ;;
*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;;
*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
esac
build=$ac_cv_build
ac_save_IFS=$IFS; IFS='-'
@ -1968,14 +1978,14 @@ case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
$as_echo_n "checking host system type... " >&6; }
if test "${ac_cv_host+set}" = set; then :
if ${ac_cv_host+:} false; then :
$as_echo_n "(cached) " >&6
else
if test "x$host_alias" = x; then
ac_cv_host=$ac_cv_build
else
ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
fi
fi
@ -1983,7 +1993,7 @@ fi
$as_echo "$ac_cv_host" >&6; }
case $ac_cv_host in
*-*-*) ;;
*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;;
*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
esac
host=$ac_cv_host
ac_save_IFS=$IFS; IFS='-'
@ -2001,14 +2011,14 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5
$as_echo_n "checking target system type... " >&6; }
if test "${ac_cv_target+set}" = set; then :
if ${ac_cv_target+:} false; then :
$as_echo_n "(cached) " >&6
else
if test "x$target_alias" = x; then
ac_cv_target=$ac_cv_host
else
ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5
as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5
fi
fi
@ -2016,7 +2026,7 @@ fi
$as_echo "$ac_cv_target" >&6; }
case $ac_cv_target in
*-*-*) ;;
*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5 ;;
*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;;
esac
target=$ac_cv_target
ac_save_IFS=$IFS; IFS='-'
@ -2065,7 +2075,7 @@ if (
# broken ls alias from the environment. This has actually
# happened. Such a system could not be considered "sane".
as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
alias in your environment" "$LINENO" 5
alias in your environment" "$LINENO" 5
fi
test "$2" = conftest.file
@ -2075,7 +2085,7 @@ then
:
else
as_fn_error $? "newly created file is older than distributed files!
Check your system clock" "$LINENO" 5
Check your system clock" "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
@ -2141,7 +2151,7 @@ do
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_AWK+set}" = set; then :
if ${ac_cv_prog_AWK+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$AWK"; then
@ -2181,7 +2191,7 @@ done
$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
set x ${MAKE-make}
ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then :
if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
$as_echo_n "(cached) " >&6
else
cat >conftest.make <<\_ACEOF
@ -2220,7 +2230,7 @@ rmdir .tst 2>/dev/null
# test to see if srcdir already configured
if test "`cd $srcdir && pwd`" != "`pwd`" &&
test -f $srcdir/config.status; then
as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
fi
# test whether we have cygpath
@ -2266,7 +2276,7 @@ if test "$cross_compiling" != no; then
set dummy ${ac_tool_prefix}strip; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_STRIP+set}" = set; then :
if ${ac_cv_prog_STRIP+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$STRIP"; then
@ -2306,7 +2316,7 @@ if test -z "$ac_cv_prog_STRIP"; then
set dummy strip; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_STRIP"; then
@ -2411,6 +2421,10 @@ case "${target}" in
subdirs="$subdirs i960"
;;
sparc-*leon*-elf* | sparc-*leon*-none*)
subdirs="$subdirs sparc_leon"
;;
sparclet-*-aout* | sparc-*-elf* | sparc64-*-elf* | sparc86x-*-* | sparclite-*-*)
subdirs="$subdirs sparc"
@ -2502,12 +2516,16 @@ case "${target}" in
m32c-*-*)
subdirs="$subdirs m32c"
;;
rl78*-*-elf)
subdirs="$subdirs rl78"
;;
rx*-*-elf)
subdirs="$subdirs rx"
;;
strongarm-*-elf | strongarm-*-coff | arm*-*-elf | arm*-*-coff | ep9312-*-elf | ep9312-*-coff | xscale-*-elf | xscale-*-coff | *arm-*-*)
arm*-*-elf | arm*-*-coff | arm-*-*)
subdirs="$subdirs arm"
;;
@ -2603,7 +2621,7 @@ fi
set dummy gcc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_CC+set}" = set; then :
if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
@ -2641,7 +2659,7 @@ depcc="$CC" am_compiler_list=
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
$as_echo_n "checking dependency style of $depcc... " >&6; }
if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then :
if ${am_cv_CC_dependencies_compiler_type+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
@ -2751,7 +2769,7 @@ if test -z "$CC"; then
set dummy cc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_CC+set}" = set; then :
if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
@ -2801,12 +2819,12 @@ $as_echo "no" >&6; }
fi
test -z "$CC" && as_fn_error $? "no acceptable cc found in \$PATH" "$LINENO" 5
test -z "$CC" && as_fn_error $? "no acceptable cc found in \$PATH" "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using GNU C" >&5
$as_echo_n "checking whether we are using GNU C... " >&6; }
if test "${ac_cv_c_compiler_gnu+set}" = set; then :
if ${ac_cv_c_compiler_gnu+:} false; then :
$as_echo_n "(cached) " >&6
else
cat > conftest.c <<EOF
@ -2837,7 +2855,7 @@ if test $ac_cv_c_compiler_gnu = yes; then
ac_save_CFLAGS=$CFLAGS
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
$as_echo_n "checking whether $CC accepts -g... " >&6; }
if test "${ac_cv_prog_cc_g+set}" = set; then :
if ${ac_cv_prog_cc_g+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_save_c_werror_flag=$ac_c_werror_flag
@ -2931,7 +2949,7 @@ AS=${AS-as}
set dummy ar; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_AR+set}" = set; then :
if ${ac_cv_prog_AR+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$AR"; then
@ -2974,7 +2992,7 @@ if test -n "$ac_tool_prefix"; then
set dummy ${ac_tool_prefix}ranlib; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_RANLIB+set}" = set; then :
if ${ac_cv_prog_RANLIB+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$RANLIB"; then
@ -3014,7 +3032,7 @@ if test -z "$ac_cv_prog_RANLIB"; then
set dummy ranlib; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_RANLIB"; then
@ -3148,10 +3166,21 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
:end' >>confcache
if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
if test -w "$cache_file"; then
test "x$cache_file" != "x/dev/null" &&
if test "x$cache_file" != "x/dev/null"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
$as_echo "$as_me: updating cache $cache_file" >&6;}
cat confcache >$cache_file
if test ! -f "$cache_file" || test -h "$cache_file"; then
cat confcache >"$cache_file"
else
case $cache_file in #(
*/* | ?:*)
mv -f confcache "$cache_file"$$ &&
mv -f "$cache_file"$$ "$cache_file" ;; #(
*)
mv -f confcache "$cache_file" ;;
esac
fi
fi
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
@ -3220,14 +3249,14 @@ LTLIBOBJS=$ac_ltlibobjs
if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
as_fn_error $? "conditional \"AMDEP\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
: ${CONFIG_STATUS=./config.status}
: "${CONFIG_STATUS=./config.status}"
ac_write_fail=0
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
@ -3328,6 +3357,7 @@ fi
IFS=" "" $as_nl"
# Find who we are. Look in the path if we contain no directory separator.
as_myself=
case $0 in @%:@((
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@ -3635,7 +3665,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# values after options handling.
ac_log="
This file was extended by libgloss $as_me LIBGLOSS_VERSION, which was
generated by GNU Autoconf 2.67. Invocation command line was
generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@ -3692,7 +3722,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
libgloss config.status LIBGLOSS_VERSION
configured by $0, generated by GNU Autoconf 2.67,
configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"
Copyright (C) 2010 Free Software Foundation, Inc.
@ -3820,7 +3850,7 @@ do
"depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;;
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
esac
done
@ -3842,9 +3872,10 @@ fi
# after its creation but before its name has been assigned to `$tmp'.
$debug ||
{
tmp=
tmp= ac_tmp=
trap 'exit_status=$?
{ test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
: "${ac_tmp:=$tmp}"
{ test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
' 0
trap 'as_fn_exit 1' 1 2 13 15
}
@ -3852,12 +3883,13 @@ $debug ||
{
tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
test -n "$tmp" && test -d "$tmp"
test -d "$tmp"
} ||
{
tmp=./conf$$-$RANDOM
(umask 077 && mkdir "$tmp")
} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
ac_tmp=$tmp
# Set up the scripts for CONFIG_FILES section.
# No need to generate them if there are no CONFIG_FILES.
@ -3896,19 +3928,19 @@ else
ac_cs_awk_cr=$ac_cr
fi
echo 'BEGIN {' >"$tmp/subs1.awk" &&
echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
_ACEOF
# Create commands to substitute file output variables.
{
echo "cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1" &&
echo 'cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&' &&
echo 'cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&' &&
echo "$ac_subst_files" | sed 's/.*/F@<:@"&"@:>@="$&"/' &&
echo "_ACAWK" &&
echo "_ACEOF"
} >conf$$files.sh &&
. ./conf$$files.sh ||
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
rm -f conf$$files.sh
{
@ -3916,18 +3948,18 @@ rm -f conf$$files.sh
echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
echo "_ACEOF"
} >conf$$subs.sh ||
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
. ./conf$$subs.sh ||
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
if test $ac_delim_n = $ac_delim_num; then
break
elif $ac_last_try; then
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
else
ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
fi
@ -3935,7 +3967,7 @@ done
rm -f conf$$subs.sh
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
_ACEOF
sed -n '
h
@ -3983,7 +4015,7 @@ t delim
rm -f conf$$subs.awk
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
_ACAWK
cat >>"\$tmp/subs1.awk" <<_ACAWK &&
cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
for (key in S) S_is_set[key] = 1
FS = ""
\$ac_cs_awk_pipe_init
@ -4021,8 +4053,8 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
else
cat
fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
|| as_fn_error $? "could not setup config files machinery" "$LINENO" 5
fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
|| as_fn_error $? "could not setup config files machinery" "$LINENO" 5
_ACEOF
# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
@ -4061,7 +4093,7 @@ do
esac
case $ac_mode$ac_tag in
:[FHL]*:*);;
:L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;;
:L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
:[FH]-) ac_tag=-:-;;
:[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
esac
@ -4080,7 +4112,7 @@ do
for ac_f
do
case $ac_f in
-) ac_f="$tmp/stdin";;
-) ac_f="$ac_tmp/stdin";;
*) # Look for the file first in the build tree, then in the source tree
# (if the path is not absolute). The absolute path cannot be DOS-style,
# because $ac_f cannot contain `:'.
@ -4089,7 +4121,7 @@ do
[\\/$]*) false;;
*) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
esac ||
as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;;
as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
esac
case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
as_fn_append ac_file_inputs " '$ac_f'"
@ -4115,8 +4147,8 @@ $as_echo "$as_me: creating $ac_file" >&6;}
esac
case $ac_tag in
*:-:* | *:-) cat >"$tmp/stdin" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
*:-:* | *:-) cat >"$ac_tmp/stdin" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
esac
;;
esac
@ -4248,26 +4280,27 @@ $ac_datarootdir_hack
"
eval sed \"\$ac_sed_extra\" "$ac_file_inputs" |
if $ac_cs_awk_getline; then
$AWK -f "$tmp/subs.awk"
$AWK -f "$ac_tmp/subs.awk"
else
$AWK -f "$tmp/subs.awk" | $SHELL
fi >$tmp/out \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
$AWK -f "$ac_tmp/subs.awk" | $SHELL
fi \
>$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
{ ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
{ ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
{ ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
{ ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
"$ac_tmp/out"`; test -z "$ac_out"; } &&
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined. Please make sure it is defined" >&5
$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined. Please make sure it is defined" >&2;}
rm -f "$tmp/stdin"
rm -f "$ac_tmp/stdin"
case $ac_file in
-) cat "$tmp/out" && rm -f "$tmp/out";;
*) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
-) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
*) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
esac \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
;;
@ -4375,7 +4408,7 @@ _ACEOF
ac_clean_files=$ac_clean_files_save
test $ac_write_fail = 0 ||
as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
# configure is writing to config.log, and then calls config.status.
@ -4537,7 +4570,7 @@ $as_echo "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cach
# The eval makes quoting arguments work.
eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \
--cache-file=\"\$ac_sub_cache_file\" --srcdir=\"\$ac_srcdir\"" ||
as_fn_error $? "$ac_sub_configure failed for $ac_dir" "$LINENO" 5
as_fn_error $? "$ac_sub_configure failed for $ac_dir" "$LINENO" 5
fi
cd "$ac_popdir"

View file

@ -1,4 +1,4 @@
# This file was generated by Autom4te Thu Aug 5 21:29:16 UTC 2010.
# This file was generated.
# It contains the lists of macros which have been traced.
# It can be safely removed.
@ -7,58 +7,66 @@
'0',
1,
[
'/usr/share/autoconf'
'/opt/local/share/autoconf'
],
[
'/usr/share/autoconf/autoconf/autoconf.m4f',
'/opt/local/share/autoconf/autoconf/autoconf.m4f',
'aclocal.m4',
'configure.in'
],
{
'AM_PROG_F77_C_O' => 1,
'_LT_AC_TAGCONFIG' => 1,
'm4_pattern_forbid' => 1,
'AM_PROG_F77_C_O' => 1,
'AC_INIT' => 1,
'AC_CANONICAL_TARGET' => 1,
'm4_pattern_forbid' => 1,
'_AM_COND_IF' => 1,
'AC_CONFIG_LIBOBJ_DIR' => 1,
'AC_CANONICAL_TARGET' => 1,
'AC_SUBST' => 1,
'AC_CANONICAL_HOST' => 1,
'AC_CONFIG_LIBOBJ_DIR' => 1,
'AC_FC_SRCEXT' => 1,
'AC_CANONICAL_HOST' => 1,
'AC_PROG_LIBTOOL' => 1,
'AM_INIT_AUTOMAKE' => 1,
'AM_PATH_GUILE' => 1,
'AC_CONFIG_SUBDIRS' => 1,
'AM_AUTOMAKE_VERSION' => 1,
'LT_CONFIG_LTDL_DIR' => 1,
'AC_CONFIG_LINKS' => 1,
'AC_REQUIRE_AUX_FILE' => 1,
'LT_SUPPORTED_TAG' => 1,
'AC_CONFIG_LINKS' => 1,
'm4_sinclude' => 1,
'LT_SUPPORTED_TAG' => 1,
'AM_MAINTAINER_MODE' => 1,
'AM_NLS' => 1,
'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
'AM_MAKEFILE_INCLUDE' => 1,
'_m4_warn' => 1,
'AM_PROG_CXX_C_O' => 1,
'_AM_COND_ENDIF' => 1,
'_AM_MAKEFILE_INCLUDE' => 1,
'AM_ENABLE_MULTILIB' => 1,
'AM_SILENT_RULES' => 1,
'AM_PROG_MOC' => 1,
'AC_CONFIG_FILES' => 1,
'include' => 1,
'LT_INIT' => 1,
'AM_PROG_AR' => 1,
'AM_GNU_GETTEXT' => 1,
'AC_LIBSOURCE' => 1,
'AC_CANONICAL_BUILD' => 1,
'AM_PROG_FC_C_O' => 1,
'AC_CANONICAL_BUILD' => 1,
'AC_FC_FREEFORM' => 1,
'AH_OUTPUT' => 1,
'AC_CONFIG_AUX_DIR' => 1,
'_AM_SUBST_NOTMAKE' => 1,
'AC_CONFIG_AUX_DIR' => 1,
'sinclude' => 1,
'AM_PROG_CC_C_O' => 1,
'm4_pattern_allow' => 1,
'sinclude' => 1,
'AM_CONDITIONAL' => 1,
'AM_XGETTEXT_OPTION' => 1,
'AC_CANONICAL_SYSTEM' => 1,
'AM_CONDITIONAL' => 1,
'AC_CONFIG_HEADERS' => 1,
'AC_DEFINE_TRACE_LITERAL' => 1,
'AM_POT_TOOLS' => 1,
'm4_include' => 1,
'_AM_COND_ELSE' => 1,
'AC_SUBST_TRACE' => 1

View file

@ -297,210 +297,218 @@ m4trace:configure.in:58: -1- AC_CONFIG_SUBDIRS([i960])
m4trace:configure.in:58: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([i960])"])
m4trace:configure.in:58: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:58: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:61: -1- AC_CONFIG_SUBDIRS([sparc])
m4trace:configure.in:61: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([sparc])"])
m4trace:configure.in:61: -1- AC_CONFIG_SUBDIRS([sparc_leon])
m4trace:configure.in:61: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([sparc_leon])"])
m4trace:configure.in:61: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:61: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:64: -1- AC_CONFIG_SUBDIRS([wince])
m4trace:configure.in:64: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([wince])"])
m4trace:configure.in:64: -1- AC_CONFIG_SUBDIRS([sparc])
m4trace:configure.in:64: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([sparc])"])
m4trace:configure.in:64: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:64: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:67: -1- AC_CONFIG_SUBDIRS([mips])
m4trace:configure.in:67: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([mips])"])
m4trace:configure.in:67: -1- AC_CONFIG_SUBDIRS([wince])
m4trace:configure.in:67: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([wince])"])
m4trace:configure.in:67: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:67: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:70: -1- AC_CONFIG_SUBDIRS([rs6000])
m4trace:configure.in:70: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([rs6000])"])
m4trace:configure.in:70: -1- AC_CONFIG_SUBDIRS([mips])
m4trace:configure.in:70: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([mips])"])
m4trace:configure.in:70: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:70: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:73: -1- AC_CONFIG_SUBDIRS([mn10200])
m4trace:configure.in:73: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([mn10200])"])
m4trace:configure.in:73: -1- AC_CONFIG_SUBDIRS([rs6000])
m4trace:configure.in:73: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([rs6000])"])
m4trace:configure.in:73: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:73: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:76: -1- AC_CONFIG_SUBDIRS([mn10300])
m4trace:configure.in:76: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([mn10300])"])
m4trace:configure.in:76: -1- AC_CONFIG_SUBDIRS([mn10200])
m4trace:configure.in:76: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([mn10200])"])
m4trace:configure.in:76: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:76: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:79: -1- AC_CONFIG_SUBDIRS([bfin])
m4trace:configure.in:79: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([bfin])"])
m4trace:configure.in:79: -1- AC_CONFIG_SUBDIRS([mn10300])
m4trace:configure.in:79: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([mn10300])"])
m4trace:configure.in:79: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:79: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:82: -1- AC_CONFIG_SUBDIRS([cr16])
m4trace:configure.in:82: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([cr16])"])
m4trace:configure.in:82: -1- AC_CONFIG_SUBDIRS([bfin])
m4trace:configure.in:82: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([bfin])"])
m4trace:configure.in:82: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:82: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:85: -1- AC_CONFIG_SUBDIRS([cris])
m4trace:configure.in:85: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([cris])"])
m4trace:configure.in:85: -1- AC_CONFIG_SUBDIRS([cr16])
m4trace:configure.in:85: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([cr16])"])
m4trace:configure.in:85: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:85: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:88: -1- AC_CONFIG_SUBDIRS([crx])
m4trace:configure.in:88: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([crx])"])
m4trace:configure.in:88: -1- AC_CONFIG_SUBDIRS([cris])
m4trace:configure.in:88: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([cris])"])
m4trace:configure.in:88: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:88: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:91: -1- AC_CONFIG_SUBDIRS([d30v])
m4trace:configure.in:91: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([d30v])"])
m4trace:configure.in:91: -1- AC_CONFIG_SUBDIRS([crx])
m4trace:configure.in:91: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([crx])"])
m4trace:configure.in:91: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:91: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:94: -1- AC_CONFIG_SUBDIRS([fr30])
m4trace:configure.in:94: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([fr30])"])
m4trace:configure.in:94: -1- AC_CONFIG_SUBDIRS([d30v])
m4trace:configure.in:94: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([d30v])"])
m4trace:configure.in:94: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:94: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:97: -1- AC_CONFIG_SUBDIRS([frv])
m4trace:configure.in:97: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([frv])"])
m4trace:configure.in:97: -1- AC_CONFIG_SUBDIRS([fr30])
m4trace:configure.in:97: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([fr30])"])
m4trace:configure.in:97: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:97: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:100: -1- AC_CONFIG_SUBDIRS([lm32])
m4trace:configure.in:100: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([lm32])"])
m4trace:configure.in:100: -1- AC_CONFIG_SUBDIRS([frv])
m4trace:configure.in:100: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([frv])"])
m4trace:configure.in:100: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:100: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:103: -1- AC_CONFIG_SUBDIRS([mcore])
m4trace:configure.in:103: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([mcore])"])
m4trace:configure.in:103: -1- AC_CONFIG_SUBDIRS([lm32])
m4trace:configure.in:103: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([lm32])"])
m4trace:configure.in:103: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:103: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:106: -1- AC_CONFIG_SUBDIRS([mep])
m4trace:configure.in:106: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([mep])"])
m4trace:configure.in:106: -1- AC_CONFIG_SUBDIRS([mcore])
m4trace:configure.in:106: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([mcore])"])
m4trace:configure.in:106: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:106: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:109: -1- AC_CONFIG_SUBDIRS([moxie])
m4trace:configure.in:109: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([moxie])"])
m4trace:configure.in:109: -1- AC_CONFIG_SUBDIRS([mep])
m4trace:configure.in:109: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([mep])"])
m4trace:configure.in:109: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:109: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:112: -1- AC_CONFIG_SUBDIRS([microblaze])
m4trace:configure.in:112: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([microblaze])"])
m4trace:configure.in:112: -1- AC_CONFIG_SUBDIRS([moxie])
m4trace:configure.in:112: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([moxie])"])
m4trace:configure.in:112: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:112: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:115: -1- AC_CONFIG_SUBDIRS([mt])
m4trace:configure.in:115: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([mt])"])
m4trace:configure.in:115: -1- AC_CONFIG_SUBDIRS([microblaze])
m4trace:configure.in:115: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([microblaze])"])
m4trace:configure.in:115: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:115: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:118: -1- AC_CONFIG_SUBDIRS([v850])
m4trace:configure.in:118: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([v850])"])
m4trace:configure.in:118: -1- AC_CONFIG_SUBDIRS([mt])
m4trace:configure.in:118: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([mt])"])
m4trace:configure.in:118: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:118: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:121: -1- AC_CONFIG_SUBDIRS([xc16x])
m4trace:configure.in:121: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([xc16x])"])
m4trace:configure.in:121: -1- AC_CONFIG_SUBDIRS([v850])
m4trace:configure.in:121: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([v850])"])
m4trace:configure.in:121: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:121: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:124: -1- AC_CONFIG_SUBDIRS([xstormy16])
m4trace:configure.in:124: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([xstormy16])"])
m4trace:configure.in:124: -1- AC_CONFIG_SUBDIRS([xc16x])
m4trace:configure.in:124: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([xc16x])"])
m4trace:configure.in:124: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:124: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:127: -1- AC_CONFIG_SUBDIRS([m32c])
m4trace:configure.in:127: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([m32c])"])
m4trace:configure.in:127: -1- AC_CONFIG_SUBDIRS([xstormy16])
m4trace:configure.in:127: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([xstormy16])"])
m4trace:configure.in:127: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:127: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:130: -1- AC_CONFIG_SUBDIRS([rx])
m4trace:configure.in:130: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([rx])"])
m4trace:configure.in:130: -1- AC_CONFIG_SUBDIRS([m32c])
m4trace:configure.in:130: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([m32c])"])
m4trace:configure.in:130: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:130: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:133: -1- AC_CONFIG_SUBDIRS([arm])
m4trace:configure.in:133: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([arm])"])
m4trace:configure.in:133: -1- AC_CONFIG_SUBDIRS([rl78])
m4trace:configure.in:133: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([rl78])"])
m4trace:configure.in:133: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:133: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:136: -1- AC_CONFIG_SUBDIRS([spu])
m4trace:configure.in:136: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([spu])"])
m4trace:configure.in:136: -1- AC_CONFIG_SUBDIRS([rx])
m4trace:configure.in:136: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([rx])"])
m4trace:configure.in:136: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:136: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:141: -1- AC_CONFIG_SUBDIRS([tic6x])
m4trace:configure.in:141: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([tic6x])"])
m4trace:configure.in:141: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:141: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:145: -1- AC_CONFIG_SUBDIRS([iq2000])
m4trace:configure.in:145: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([iq2000])"])
m4trace:configure.in:145: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:145: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:156: -1- AC_CONFIG_SUBDIRS([libnosys])
m4trace:configure.in:156: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([libnosys])"])
m4trace:configure.in:156: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:156: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:159: -1- AC_SUBST([CC])
m4trace:configure.in:159: -1- AC_SUBST_TRACE([CC])
m4trace:configure.in:159: -1- m4_pattern_allow([^CC$])
m4trace:configure.in:159: -1- AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])
m4trace:configure.in:159: -1- AC_SUBST_TRACE([DEPDIR])
m4trace:configure.in:159: -1- m4_pattern_allow([^DEPDIR$])
m4trace:configure.in:159: -1- AC_SUBST([am__include])
m4trace:configure.in:159: -1- AC_SUBST_TRACE([am__include])
m4trace:configure.in:159: -1- m4_pattern_allow([^am__include$])
m4trace:configure.in:159: -1- AC_SUBST([am__quote])
m4trace:configure.in:159: -1- AC_SUBST_TRACE([am__quote])
m4trace:configure.in:159: -1- m4_pattern_allow([^am__quote$])
m4trace:configure.in:159: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
m4trace:configure.in:159: -1- AC_SUBST([AMDEP_TRUE])
m4trace:configure.in:159: -1- AC_SUBST_TRACE([AMDEP_TRUE])
m4trace:configure.in:159: -1- m4_pattern_allow([^AMDEP_TRUE$])
m4trace:configure.in:159: -1- AC_SUBST([AMDEP_FALSE])
m4trace:configure.in:159: -1- AC_SUBST_TRACE([AMDEP_FALSE])
m4trace:configure.in:159: -1- m4_pattern_allow([^AMDEP_FALSE$])
m4trace:configure.in:159: -1- AC_SUBST([AMDEPBACKSLASH])
m4trace:configure.in:159: -1- AC_SUBST_TRACE([AMDEPBACKSLASH])
m4trace:configure.in:159: -1- m4_pattern_allow([^AMDEPBACKSLASH$])
m4trace:configure.in:159: -1- AC_SUBST([CCDEPMODE], [depmode=$am_cv_CC_dependencies_compiler_type])
m4trace:configure.in:159: -1- AC_SUBST_TRACE([CCDEPMODE])
m4trace:configure.in:159: -1- m4_pattern_allow([^CCDEPMODE$])
m4trace:configure.in:159: -1- AM_CONDITIONAL([am__fastdepCC], [
m4trace:configure.in:139: -1- AC_CONFIG_SUBDIRS([arm])
m4trace:configure.in:139: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([arm])"])
m4trace:configure.in:139: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:139: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:142: -1- AC_CONFIG_SUBDIRS([spu])
m4trace:configure.in:142: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([spu])"])
m4trace:configure.in:142: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:142: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:147: -1- AC_CONFIG_SUBDIRS([tic6x])
m4trace:configure.in:147: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([tic6x])"])
m4trace:configure.in:147: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:147: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:151: -1- AC_CONFIG_SUBDIRS([iq2000])
m4trace:configure.in:151: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([iq2000])"])
m4trace:configure.in:151: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:151: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:162: -1- AC_CONFIG_SUBDIRS([libnosys])
m4trace:configure.in:162: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([libnosys])"])
m4trace:configure.in:162: -1- AC_SUBST_TRACE([subdirs])
m4trace:configure.in:162: -1- m4_pattern_allow([^subdirs$])
m4trace:configure.in:165: -1- AC_SUBST([CC])
m4trace:configure.in:165: -1- AC_SUBST_TRACE([CC])
m4trace:configure.in:165: -1- m4_pattern_allow([^CC$])
m4trace:configure.in:165: -1- AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])
m4trace:configure.in:165: -1- AC_SUBST_TRACE([DEPDIR])
m4trace:configure.in:165: -1- m4_pattern_allow([^DEPDIR$])
m4trace:configure.in:165: -1- AC_SUBST([am__include])
m4trace:configure.in:165: -1- AC_SUBST_TRACE([am__include])
m4trace:configure.in:165: -1- m4_pattern_allow([^am__include$])
m4trace:configure.in:165: -1- AC_SUBST([am__quote])
m4trace:configure.in:165: -1- AC_SUBST_TRACE([am__quote])
m4trace:configure.in:165: -1- m4_pattern_allow([^am__quote$])
m4trace:configure.in:165: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
m4trace:configure.in:165: -1- AC_SUBST([AMDEP_TRUE])
m4trace:configure.in:165: -1- AC_SUBST_TRACE([AMDEP_TRUE])
m4trace:configure.in:165: -1- m4_pattern_allow([^AMDEP_TRUE$])
m4trace:configure.in:165: -1- AC_SUBST([AMDEP_FALSE])
m4trace:configure.in:165: -1- AC_SUBST_TRACE([AMDEP_FALSE])
m4trace:configure.in:165: -1- m4_pattern_allow([^AMDEP_FALSE$])
m4trace:configure.in:165: -1- AC_SUBST([AMDEPBACKSLASH])
m4trace:configure.in:165: -1- AC_SUBST_TRACE([AMDEPBACKSLASH])
m4trace:configure.in:165: -1- m4_pattern_allow([^AMDEPBACKSLASH$])
m4trace:configure.in:165: -1- AC_SUBST([CCDEPMODE], [depmode=$am_cv_CC_dependencies_compiler_type])
m4trace:configure.in:165: -1- AC_SUBST_TRACE([CCDEPMODE])
m4trace:configure.in:165: -1- m4_pattern_allow([^CCDEPMODE$])
m4trace:configure.in:165: -1- AM_CONDITIONAL([am__fastdepCC], [
test "x$enable_dependency_tracking" != xno \
&& test "$am_cv_CC_dependencies_compiler_type" = gcc3])
m4trace:configure.in:159: -1- AC_SUBST([am__fastdepCC_TRUE])
m4trace:configure.in:159: -1- AC_SUBST_TRACE([am__fastdepCC_TRUE])
m4trace:configure.in:159: -1- m4_pattern_allow([^am__fastdepCC_TRUE$])
m4trace:configure.in:159: -1- AC_SUBST([am__fastdepCC_FALSE])
m4trace:configure.in:159: -1- AC_SUBST_TRACE([am__fastdepCC_FALSE])
m4trace:configure.in:159: -1- m4_pattern_allow([^am__fastdepCC_FALSE$])
m4trace:configure.in:159: -1- AC_SUBST([CC])
m4trace:configure.in:159: -1- AC_SUBST_TRACE([CC])
m4trace:configure.in:159: -1- m4_pattern_allow([^CC$])
m4trace:configure.in:159: -2- _m4_warn([obsolete], [The macro `ac_cv_prog_gcc' is obsolete.
m4trace:configure.in:165: -1- AC_SUBST([am__fastdepCC_TRUE])
m4trace:configure.in:165: -1- AC_SUBST_TRACE([am__fastdepCC_TRUE])
m4trace:configure.in:165: -1- m4_pattern_allow([^am__fastdepCC_TRUE$])
m4trace:configure.in:165: -1- AC_SUBST([am__fastdepCC_FALSE])
m4trace:configure.in:165: -1- AC_SUBST_TRACE([am__fastdepCC_FALSE])
m4trace:configure.in:165: -1- m4_pattern_allow([^am__fastdepCC_FALSE$])
m4trace:configure.in:165: -1- AC_SUBST([CC])
m4trace:configure.in:165: -1- AC_SUBST_TRACE([CC])
m4trace:configure.in:165: -1- m4_pattern_allow([^CC$])
m4trace:configure.in:165: -2- _m4_warn([obsolete], [The macro `ac_cv_prog_gcc' is obsolete.
You should run autoupdate.], [../../lib/autoconf/c.m4:436: ac_cv_prog_gcc is expanded from...
acinclude.m4:7: LIB_AC_PROG_CC_GNU is expanded from...
acinclude.m4:30: LIB_AC_PROG_CC is expanded from...
configure.in:159: the top level])
m4trace:configure.in:159: -1- _m4_warn([obsolete], [The macro `ac_cv_prog_gcc' is obsolete.
configure.in:165: the top level])
m4trace:configure.in:165: -1- _m4_warn([obsolete], [The macro `ac_cv_prog_gcc' is obsolete.
You should run autoupdate.], [../../lib/autoconf/c.m4:436: ac_cv_prog_gcc is expanded from...
../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from...
../../lib/autoconf/general.m4:2019: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:2040: AC_CACHE_CHECK is expanded from...
../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from...
../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from...
acinclude.m4:7: LIB_AC_PROG_CC_GNU is expanded from...
acinclude.m4:30: LIB_AC_PROG_CC is expanded from...
configure.in:159: the top level])
m4trace:configure.in:159: -1- _m4_warn([obsolete], [The macro `ac_cv_prog_gcc' is obsolete.
configure.in:165: the top level])
m4trace:configure.in:165: -1- _m4_warn([obsolete], [The macro `ac_cv_prog_gcc' is obsolete.
You should run autoupdate.], [../../lib/autoconf/c.m4:436: ac_cv_prog_gcc is expanded from...
../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from...
../../lib/autoconf/general.m4:2019: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:2040: AC_CACHE_CHECK is expanded from...
../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from...
../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from...
acinclude.m4:7: LIB_AC_PROG_CC_GNU is expanded from...
acinclude.m4:30: LIB_AC_PROG_CC is expanded from...
configure.in:159: the top level])
m4trace:configure.in:159: -1- _m4_warn([obsolete], [The macro `ac_cv_prog_gcc' is obsolete.
configure.in:165: the top level])
m4trace:configure.in:165: -1- _m4_warn([obsolete], [The macro `ac_cv_prog_gcc' is obsolete.
You should run autoupdate.], [../../lib/autoconf/c.m4:436: ac_cv_prog_gcc is expanded from...
acinclude.m4:30: LIB_AC_PROG_CC is expanded from...
configure.in:159: the top level])
m4trace:configure.in:161: -1- AC_SUBST([AS])
m4trace:configure.in:161: -1- AC_SUBST_TRACE([AS])
m4trace:configure.in:161: -1- m4_pattern_allow([^AS$])
m4trace:configure.in:162: -1- AC_SUBST([AR])
m4trace:configure.in:162: -1- AC_SUBST_TRACE([AR])
m4trace:configure.in:162: -1- m4_pattern_allow([^AR$])
m4trace:configure.in:164: -1- AC_SUBST([AR])
m4trace:configure.in:164: -1- AC_SUBST_TRACE([AR])
m4trace:configure.in:164: -1- m4_pattern_allow([^AR$])
m4trace:configure.in:166: -1- AC_SUBST([LD])
m4trace:configure.in:166: -1- AC_SUBST_TRACE([LD])
m4trace:configure.in:166: -1- m4_pattern_allow([^LD$])
m4trace:configure.in:167: -1- AC_SUBST([RANLIB])
m4trace:configure.in:167: -1- AC_SUBST_TRACE([RANLIB])
m4trace:configure.in:167: -1- m4_pattern_allow([^RANLIB$])
m4trace:configure.in:168: -1- AC_SUBST([CCAS])
m4trace:configure.in:168: -1- AC_SUBST_TRACE([CCAS])
m4trace:configure.in:168: -1- m4_pattern_allow([^CCAS$])
m4trace:configure.in:168: -1- AC_SUBST([CCASFLAGS])
m4trace:configure.in:168: -1- AC_SUBST_TRACE([CCASFLAGS])
m4trace:configure.in:168: -1- m4_pattern_allow([^CCASFLAGS$])
m4trace:configure.in:177: -1- AC_SUBST([host_makefile_frag_path])
m4trace:configure.in:177: -1- AC_SUBST_TRACE([host_makefile_frag_path])
m4trace:configure.in:177: -1- m4_pattern_allow([^host_makefile_frag_path$])
m4trace:configure.in:178: -1- m4_pattern_allow([^host_makefile_frag$])
m4trace:configure.in:187: -1- AC_CONFIG_FILES([Makefile], [if test -n "$CONFIG_FILES"; then
configure.in:165: the top level])
m4trace:configure.in:167: -1- AC_SUBST([AS])
m4trace:configure.in:167: -1- AC_SUBST_TRACE([AS])
m4trace:configure.in:167: -1- m4_pattern_allow([^AS$])
m4trace:configure.in:168: -1- AC_SUBST([AR])
m4trace:configure.in:168: -1- AC_SUBST_TRACE([AR])
m4trace:configure.in:168: -1- m4_pattern_allow([^AR$])
m4trace:configure.in:170: -1- AC_SUBST([AR])
m4trace:configure.in:170: -1- AC_SUBST_TRACE([AR])
m4trace:configure.in:170: -1- m4_pattern_allow([^AR$])
m4trace:configure.in:172: -1- AC_SUBST([LD])
m4trace:configure.in:172: -1- AC_SUBST_TRACE([LD])
m4trace:configure.in:172: -1- m4_pattern_allow([^LD$])
m4trace:configure.in:173: -1- AC_SUBST([RANLIB])
m4trace:configure.in:173: -1- AC_SUBST_TRACE([RANLIB])
m4trace:configure.in:173: -1- m4_pattern_allow([^RANLIB$])
m4trace:configure.in:174: -1- AC_SUBST([CCAS])
m4trace:configure.in:174: -1- AC_SUBST_TRACE([CCAS])
m4trace:configure.in:174: -1- m4_pattern_allow([^CCAS$])
m4trace:configure.in:174: -1- AC_SUBST([CCASFLAGS])
m4trace:configure.in:174: -1- AC_SUBST_TRACE([CCASFLAGS])
m4trace:configure.in:174: -1- m4_pattern_allow([^CCASFLAGS$])
m4trace:configure.in:183: -1- AC_SUBST([host_makefile_frag_path])
m4trace:configure.in:183: -1- AC_SUBST_TRACE([host_makefile_frag_path])
m4trace:configure.in:183: -1- m4_pattern_allow([^host_makefile_frag_path$])
m4trace:configure.in:184: -1- m4_pattern_allow([^host_makefile_frag$])
m4trace:configure.in:193: -1- AC_CONFIG_FILES([Makefile], [if test -n "$CONFIG_FILES"; then
unset ac_file
. ${libgloss_topdir}/config-ml.in
fi], [srcdir=${srcdir}
@ -512,19 +520,19 @@ libgloss_topdir=${libgloss_topdir}
CC="${CC}"
LDFLAGS=${LDFLAGS}
])
m4trace:configure.in:201: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs])
m4trace:configure.in:201: -1- AC_SUBST_TRACE([LIB@&t@OBJS])
m4trace:configure.in:201: -1- m4_pattern_allow([^LIB@&t@OBJS$])
m4trace:configure.in:201: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
m4trace:configure.in:201: -1- AC_SUBST_TRACE([LTLIBOBJS])
m4trace:configure.in:201: -1- m4_pattern_allow([^LTLIBOBJS$])
m4trace:configure.in:201: -1- AC_SUBST_TRACE([top_builddir])
m4trace:configure.in:201: -1- AC_SUBST_TRACE([top_build_prefix])
m4trace:configure.in:201: -1- AC_SUBST_TRACE([srcdir])
m4trace:configure.in:201: -1- AC_SUBST_TRACE([abs_srcdir])
m4trace:configure.in:201: -1- AC_SUBST_TRACE([top_srcdir])
m4trace:configure.in:201: -1- AC_SUBST_TRACE([abs_top_srcdir])
m4trace:configure.in:201: -1- AC_SUBST_TRACE([builddir])
m4trace:configure.in:201: -1- AC_SUBST_TRACE([abs_builddir])
m4trace:configure.in:201: -1- AC_SUBST_TRACE([abs_top_builddir])
m4trace:configure.in:201: -1- AC_SUBST_TRACE([INSTALL])
m4trace:configure.in:207: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs])
m4trace:configure.in:207: -1- AC_SUBST_TRACE([LIB@&t@OBJS])
m4trace:configure.in:207: -1- m4_pattern_allow([^LIB@&t@OBJS$])
m4trace:configure.in:207: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
m4trace:configure.in:207: -1- AC_SUBST_TRACE([LTLIBOBJS])
m4trace:configure.in:207: -1- m4_pattern_allow([^LTLIBOBJS$])
m4trace:configure.in:207: -1- AC_SUBST_TRACE([top_builddir])
m4trace:configure.in:207: -1- AC_SUBST_TRACE([top_build_prefix])
m4trace:configure.in:207: -1- AC_SUBST_TRACE([srcdir])
m4trace:configure.in:207: -1- AC_SUBST_TRACE([abs_srcdir])
m4trace:configure.in:207: -1- AC_SUBST_TRACE([top_srcdir])
m4trace:configure.in:207: -1- AC_SUBST_TRACE([abs_top_srcdir])
m4trace:configure.in:207: -1- AC_SUBST_TRACE([builddir])
m4trace:configure.in:207: -1- AC_SUBST_TRACE([abs_builddir])
m4trace:configure.in:207: -1- AC_SUBST_TRACE([abs_top_builddir])
m4trace:configure.in:207: -1- AC_SUBST_TRACE([INSTALL])

View file

@ -55,7 +55,7 @@ SIM_SCRIPTS =
SIM_LDFLAGS =
SIM_BSP = libsim.a
SIM_CRT0 = crt0.o
SIM_OBJS = syscalls.o
SIM_OBJS = syscalls.o clear_cache_range.o
SIM_TEST = sim-test
SIM_INSTALL = install-sim
@ -71,10 +71,10 @@ BOARD_SCRIPTS = bfin-common-sc.ld bfin-common-mc.ld \
bf561.ld bf561a.ld bf561b.ld bf561m.ld \
bf592.ld
BOARD_LDFLAGS =
BOARD_BSP = # We actually use libnosys.a
BOARD_BSP = libbfinbsp.a
BOARD_CRT0S = basiccrt.o basiccrts.o
BOARD_CRT0S += basiccrt561.o basiccrt561s.o basiccrt561b.o
BOARD_OBJS =
BOARD_OBJS = clear_cache_range.o
BOARD_TEST =
BOARD_INSTALL = install-board
@ -91,6 +91,10 @@ 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}
@ -146,12 +150,12 @@ 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; \
${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; \
${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x || exit $$?; \
done
-if [ -z "${MULTISUBDIR}" ]; then \
for x in ${BOARD_SCRIPTS}; do \

View file

@ -0,0 +1,33 @@
/*
* C library support files for the Blackfin processor
*
* Copyright (C) 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.
*/
/* This is a callback which gcc itself wants to flush jump tables.
Map it into L1 Text because of anomalies 05-00-0312 and 05-00-0419. */
__attribute__ ((l1_text))
void __clear_cache_range (char *beg, char *end)
{
char *ptr = beg;
do {
__asm__ __volatile__ ("FLUSH [%0++];" : "+a" (ptr) : : "memory");
} while (ptr <= end);
ptr = beg;
__asm__ __volatile__ ("SSYNC;");
do {
__asm__ __volatile__ ("IFLUSH [%0++];" : "+a" (ptr) : : "memory");
} while (ptr <= end);
}

View file

@ -45,15 +45,15 @@ L$L$clear_bss:
/* Parse string at r1 */
p0.l = __init;
p0.h = __init;
P3 = P4;
p0.h = __init;
P3 = P4;
call (p0)
p0.l = _atexit;
p0.h = _atexit;
#ifdef __BFIN_FDPIC__
r0 = [P4 + __fini@FUNCDESC_GOT17M4] ;
P3 = P4;
r0 = [P4 + __fini@FUNCDESC_GOT17M4];
P3 = P4;
#else
r0.l = __fini;
r0.h = __fini;
@ -61,12 +61,12 @@ L$L$clear_bss:
call (p0)
p0.l = ___setup_argv_and_call_main;
p0.h = ___setup_argv_and_call_main;
P3 = P4;
p0.h = ___setup_argv_and_call_main;
P3 = P4;
call (p0)
p0.l = _exit;
p0.h = _exit;
P3 = P4;
p0.h = _exit;
P3 = P4;
jump (p0) /* Should not return. */
nop;

View file

@ -34,8 +34,8 @@ extern "C" {
#define __builtin_cli() ({ unsigned int __rval; __asm__ __volatile__ ("cli %0;" : "=r"(__rval)); __rval; })
#define __builtin_sti(x) __asm__ __volatile__ ("sti %0;" : : "r"(x))
#define __builtin_idle() __asm__ __volatile__ ("IDLE;")
#define __builtin_raise(x) __asm__ __volatile__ ("raise %0;" : : "r"(x))
#define __builtin_excpt(x) __asm__ __volatile__ ("excpt %0;" : : "r"(x))
#define __builtin_raise(x) __asm__ __volatile__ ("raise %0;" : : "n"(x))
#define __builtin_excpt(x) __asm__ __volatile__ ("excpt %0;" : : "n"(x))
#define __builtin_prefetch(x) __asm__ __volatile__ ("PREFETCH[%0];" : : "p"(x))
#define __builtin_prefetchmodup(x) ({ void *__p = &(x); __asm__ __volatile__ ("PREFETCH[%0++];" : "+p"(__p)); __p; })
#define __builtin_flushinv(x) __asm__ __volatile__ ("FLUSHINV[%0];" : : "p"(x))

View file

@ -32,10 +32,15 @@ register char *stack_ptr asm ("SP");
static inline int
do_syscall (int reason, void *arg)
{
register int r asm ("P0") = reason;
register void *a asm ("R0") = arg;
register int result asm ("R0");
asm volatile ("excpt 0;" : "=r" (result) : "a" (r), "r" (a) : "memory", "CC");
int result, result2, errcode;
asm volatile ("excpt 0;"
: "=q0" (result),
"=q1" (result2),
"=q2" (errcode)
: "qA" (reason),
"q0" (arg)
: "memory", "CC");
errno = errcode;
return result;
}
@ -47,17 +52,18 @@ _read (int file, char *ptr, int len)
block[0] = file;
block[1] = (int) ptr;
block[2] = len;
return do_syscall (SYS_read, block);
}
int
_lseek (int file, int ptr, int dir)
_lseek (int file, int ptr, int whence)
{
int block[2];
int block[3];
block[0] = file;
block[1] = ptr;
block[2] = whence;
return do_syscall (SYS_lseek, block);
}
@ -66,11 +72,11 @@ int
_write (int file, char *ptr, int len)
{
int block[3];
block[0] = file;
block[1] = (int) ptr;
block[2] = len;
return do_syscall (SYS_write, block);
}
@ -111,7 +117,7 @@ _kill (int n, int m)
int
_getpid (int n)
{
return 1;
return do_syscall (SYS_getpid, &n);
}
caddr_t
@ -123,9 +129,9 @@ _sbrk (int incr)
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
@ -134,14 +140,14 @@ _sbrk (int incr)
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;
@ -150,40 +156,41 @@ _sbrk (int incr)
extern void memset (struct stat *, int, unsigned int);
int
_fstat (int file, struct stat * st)
_fstat (int file, struct stat *st)
{
memset (st, 0, sizeof (* st));
st->st_mode = S_IFCHR;
st->st_blksize = 1024;
return 0;
int block[2];
block[0] = file;
block[1] = (int) st;
return do_syscall (SYS_fstat, block);
}
int _stat (const char *fname, struct stat *st)
{
int file;
int block[2];
/* The best we can do is try to open the file readonly. If it exists,
then we can guess a few things about it. */
if ((file = _open (fname, O_RDONLY)) < 0)
return -1;
block[0] = (int) fname;
block[1] = (int) st;
memset (st, 0, sizeof (* st));
st->st_mode = S_IFREG | S_IREAD;
st->st_blksize = 1024;
_close (file); /* Not interested in the error. */
return 0;
return do_syscall (SYS_stat, block);
}
int
_link (void)
_link (const char *existing, const char *new)
{
return -1;
int block[2];
block[0] = (int) existing;
block[1] = (int) new;
return do_syscall (SYS_link, block);
}
int
_unlink (void)
_unlink (const char *path)
{
return -1;
return do_syscall (SYS_unlink, path);
}
void
@ -201,7 +208,7 @@ _gettimeofday (struct timeval *tv, void *tz)
}
/* Return a clock that ticks at 100Hz. */
clock_t
clock_t
_times (struct tms * tp)
{
return -1;

View file

@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.67 for libgloss LIBGLOSS_VERSION.
# Generated by GNU Autoconf 2.68 for libgloss LIBGLOSS_VERSION.
#
#
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@ -89,6 +89,7 @@ fi
IFS=" "" $as_nl"
# Find who we are. Look in the path if we contain no directory separator.
as_myself=
case $0 in #((
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@ -213,11 +214,18 @@ IFS=$as_save_IFS
# We cannot yet assume a decent shell, so we have to provide a
# neutralization value for shells without unset; and this also
# works around shells that cannot unset nonexistent variables.
# Preserve -v and -x to the replacement shell.
BASH_ENV=/dev/null
ENV=/dev/null
(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
export CONFIG_SHELL
exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
case $- in # ((((
*v*x* | *x*v* ) as_opts=-vx ;;
*v* ) as_opts=-v ;;
*x* ) as_opts=-x ;;
* ) as_opts= ;;
esac
exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
fi
if test x$as_have_required = xno; then :
@ -664,6 +672,7 @@ m68hc11
m68k
pa
i960
sparc_leon
sparc
wince
mips
@ -687,6 +696,7 @@ v850
xc16x
xstormy16
m32c
rl78
rx
arm
spu
@ -1096,7 +1106,7 @@ Try \`$0 --help' for more information"
$as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
$as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
: ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
: "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
;;
esac
@ -1387,7 +1397,7 @@ test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
libgloss configure LIBGLOSS_VERSION
generated by GNU Autoconf 2.67
generated by GNU Autoconf 2.68
Copyright (C) 2010 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
@ -1433,7 +1443,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
fi
eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_try_compile
@ -1442,7 +1452,7 @@ This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by libgloss $as_me LIBGLOSS_VERSION, which was
generated by GNU Autoconf 2.67. Invocation command line was
generated by GNU Autoconf 2.68. Invocation command line was
$ $0 $@
@ -1700,7 +1710,7 @@ $as_echo "$as_me: loading site script $ac_site_file" >&6;}
|| { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "failed to load site script $ac_site_file
See \`config.log' for more details" "$LINENO" 5 ; }
See \`config.log' for more details" "$LINENO" 5; }
fi
done
@ -1851,7 +1861,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
$as_echo_n "checking for a BSD-compatible install... " >&6; }
if test -z "$INSTALL"; then
if test "${ac_cv_path_install+set}" = set; then :
if ${ac_cv_path_install+:} false; then :
$as_echo_n "(cached) " >&6
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@ -1934,7 +1944,7 @@ $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
$as_echo_n "checking build system type... " >&6; }
if test "${ac_cv_build+set}" = set; then :
if ${ac_cv_build+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_build_alias=$build_alias
@ -1950,7 +1960,7 @@ fi
$as_echo "$ac_cv_build" >&6; }
case $ac_cv_build in
*-*-*) ;;
*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;;
*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
esac
build=$ac_cv_build
ac_save_IFS=$IFS; IFS='-'
@ -1968,7 +1978,7 @@ case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
$as_echo_n "checking host system type... " >&6; }
if test "${ac_cv_host+set}" = set; then :
if ${ac_cv_host+:} false; then :
$as_echo_n "(cached) " >&6
else
if test "x$host_alias" = x; then
@ -1983,7 +1993,7 @@ fi
$as_echo "$ac_cv_host" >&6; }
case $ac_cv_host in
*-*-*) ;;
*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;;
*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
esac
host=$ac_cv_host
ac_save_IFS=$IFS; IFS='-'
@ -2001,7 +2011,7 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5
$as_echo_n "checking target system type... " >&6; }
if test "${ac_cv_target+set}" = set; then :
if ${ac_cv_target+:} false; then :
$as_echo_n "(cached) " >&6
else
if test "x$target_alias" = x; then
@ -2016,7 +2026,7 @@ fi
$as_echo "$ac_cv_target" >&6; }
case $ac_cv_target in
*-*-*) ;;
*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5 ;;
*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;;
esac
target=$ac_cv_target
ac_save_IFS=$IFS; IFS='-'
@ -2141,7 +2151,7 @@ do
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_AWK+set}" = set; then :
if ${ac_cv_prog_AWK+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$AWK"; then
@ -2181,7 +2191,7 @@ done
$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
set x ${MAKE-make}
ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then :
if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
$as_echo_n "(cached) " >&6
else
cat >conftest.make <<\_ACEOF
@ -2266,7 +2276,7 @@ if test "$cross_compiling" != no; then
set dummy ${ac_tool_prefix}strip; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_STRIP+set}" = set; then :
if ${ac_cv_prog_STRIP+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$STRIP"; then
@ -2306,7 +2316,7 @@ if test -z "$ac_cv_prog_STRIP"; then
set dummy strip; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_STRIP"; then
@ -2410,6 +2420,10 @@ case "${target}" in
i960-*-coff)
subdirs="$subdirs i960"
;;
sparc-*leon*-elf* | sparc-*leon*-none*)
subdirs="$subdirs sparc_leon"
;;
sparclet-*-aout* | sparc-*-elf* | sparc64-*-elf* | sparc86x-*-* | sparclite-*-*)
subdirs="$subdirs sparc"
@ -2502,12 +2516,16 @@ case "${target}" in
m32c-*-*)
subdirs="$subdirs m32c"
;;
rl78*-*-elf)
subdirs="$subdirs rl78"
;;
rx*-*-elf)
subdirs="$subdirs rx"
;;
strongarm-*-elf | strongarm-*-coff | arm*-*-elf | arm*-*-coff | ep9312-*-elf | ep9312-*-coff | xscale-*-elf | xscale-*-coff | *arm-*-*)
arm*-*-elf | arm*-*-coff | arm-*-*)
subdirs="$subdirs arm"
;;
@ -2603,7 +2621,7 @@ fi
set dummy gcc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_CC+set}" = set; then :
if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
@ -2641,7 +2659,7 @@ depcc="$CC" am_compiler_list=
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
$as_echo_n "checking dependency style of $depcc... " >&6; }
if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then :
if ${am_cv_CC_dependencies_compiler_type+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
@ -2751,7 +2769,7 @@ if test -z "$CC"; then
set dummy cc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_CC+set}" = set; then :
if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
@ -2806,7 +2824,7 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using GNU C" >&5
$as_echo_n "checking whether we are using GNU C... " >&6; }
if test "${ac_cv_c_compiler_gnu+set}" = set; then :
if ${ac_cv_c_compiler_gnu+:} false; then :
$as_echo_n "(cached) " >&6
else
cat > conftest.c <<EOF
@ -2837,7 +2855,7 @@ if test $ac_cv_c_compiler_gnu = yes; then
ac_save_CFLAGS=$CFLAGS
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
$as_echo_n "checking whether $CC accepts -g... " >&6; }
if test "${ac_cv_prog_cc_g+set}" = set; then :
if ${ac_cv_prog_cc_g+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_save_c_werror_flag=$ac_c_werror_flag
@ -2931,7 +2949,7 @@ AS=${AS-as}
set dummy ar; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_AR+set}" = set; then :
if ${ac_cv_prog_AR+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$AR"; then
@ -2974,7 +2992,7 @@ if test -n "$ac_tool_prefix"; then
set dummy ${ac_tool_prefix}ranlib; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_RANLIB+set}" = set; then :
if ${ac_cv_prog_RANLIB+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$RANLIB"; then
@ -3014,7 +3032,7 @@ if test -z "$ac_cv_prog_RANLIB"; then
set dummy ranlib; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_RANLIB"; then
@ -3148,10 +3166,21 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
:end' >>confcache
if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
if test -w "$cache_file"; then
test "x$cache_file" != "x/dev/null" &&
if test "x$cache_file" != "x/dev/null"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
$as_echo "$as_me: updating cache $cache_file" >&6;}
cat confcache >$cache_file
if test ! -f "$cache_file" || test -h "$cache_file"; then
cat confcache >"$cache_file"
else
case $cache_file in #(
*/* | ?:*)
mv -f confcache "$cache_file"$$ &&
mv -f "$cache_file"$$ "$cache_file" ;; #(
*)
mv -f confcache "$cache_file" ;;
esac
fi
fi
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
@ -3227,7 +3256,7 @@ if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
: ${CONFIG_STATUS=./config.status}
: "${CONFIG_STATUS=./config.status}"
ac_write_fail=0
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
@ -3328,6 +3357,7 @@ fi
IFS=" "" $as_nl"
# Find who we are. Look in the path if we contain no directory separator.
as_myself=
case $0 in #((
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@ -3635,7 +3665,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# values after options handling.
ac_log="
This file was extended by libgloss $as_me LIBGLOSS_VERSION, which was
generated by GNU Autoconf 2.67. Invocation command line was
generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@ -3692,7 +3722,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
libgloss config.status LIBGLOSS_VERSION
configured by $0, generated by GNU Autoconf 2.67,
configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"
Copyright (C) 2010 Free Software Foundation, Inc.
@ -3820,7 +3850,7 @@ do
"depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;;
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
esac
done
@ -3842,9 +3872,10 @@ fi
# after its creation but before its name has been assigned to `$tmp'.
$debug ||
{
tmp=
tmp= ac_tmp=
trap 'exit_status=$?
{ test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
: "${ac_tmp:=$tmp}"
{ test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
' 0
trap 'as_fn_exit 1' 1 2 13 15
}
@ -3852,12 +3883,13 @@ $debug ||
{
tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
test -n "$tmp" && test -d "$tmp"
test -d "$tmp"
} ||
{
tmp=./conf$$-$RANDOM
(umask 077 && mkdir "$tmp")
} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
ac_tmp=$tmp
# Set up the scripts for CONFIG_FILES section.
# No need to generate them if there are no CONFIG_FILES.
@ -3896,13 +3928,13 @@ else
ac_cs_awk_cr=$ac_cr
fi
echo 'BEGIN {' >"$tmp/subs1.awk" &&
echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
_ACEOF
# Create commands to substitute file output variables.
{
echo "cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1" &&
echo 'cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&' &&
echo 'cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&' &&
echo "$ac_subst_files" | sed 's/.*/F["&"]="$&"/' &&
echo "_ACAWK" &&
echo "_ACEOF"
@ -3935,7 +3967,7 @@ done
rm -f conf$$subs.sh
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
_ACEOF
sed -n '
h
@ -3983,7 +4015,7 @@ t delim
rm -f conf$$subs.awk
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
_ACAWK
cat >>"\$tmp/subs1.awk" <<_ACAWK &&
cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
for (key in S) S_is_set[key] = 1
FS = ""
\$ac_cs_awk_pipe_init
@ -4021,7 +4053,7 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
else
cat
fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
|| as_fn_error $? "could not setup config files machinery" "$LINENO" 5
_ACEOF
@ -4061,7 +4093,7 @@ do
esac
case $ac_mode$ac_tag in
:[FHL]*:*);;
:L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;;
:L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
:[FH]-) ac_tag=-:-;;
:[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
esac
@ -4080,7 +4112,7 @@ do
for ac_f
do
case $ac_f in
-) ac_f="$tmp/stdin";;
-) ac_f="$ac_tmp/stdin";;
*) # Look for the file first in the build tree, then in the source tree
# (if the path is not absolute). The absolute path cannot be DOS-style,
# because $ac_f cannot contain `:'.
@ -4089,7 +4121,7 @@ do
[\\/$]*) false;;
*) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
esac ||
as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;;
as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
esac
case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
as_fn_append ac_file_inputs " '$ac_f'"
@ -4115,8 +4147,8 @@ $as_echo "$as_me: creating $ac_file" >&6;}
esac
case $ac_tag in
*:-:* | *:-) cat >"$tmp/stdin" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
*:-:* | *:-) cat >"$ac_tmp/stdin" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
esac
;;
esac
@ -4248,24 +4280,25 @@ $ac_datarootdir_hack
"
eval sed \"\$ac_sed_extra\" "$ac_file_inputs" |
if $ac_cs_awk_getline; then
$AWK -f "$tmp/subs.awk"
$AWK -f "$ac_tmp/subs.awk"
else
$AWK -f "$tmp/subs.awk" | $SHELL
fi >$tmp/out \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
$AWK -f "$ac_tmp/subs.awk" | $SHELL
fi \
>$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
{ ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
{ ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
{ ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
{ ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
"$ac_tmp/out"`; test -z "$ac_out"; } &&
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined. Please make sure it is defined" >&5
$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined. Please make sure it is defined" >&2;}
rm -f "$tmp/stdin"
rm -f "$ac_tmp/stdin"
case $ac_file in
-) cat "$tmp/out" && rm -f "$tmp/out";;
*) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
-) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
*) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
esac \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
;;

View file

@ -57,6 +57,9 @@ case "${target}" in
i960-*-coff)
AC_CONFIG_SUBDIRS([i960])
;;
sparc-*leon*-elf* | sparc-*leon*-none*)
AC_CONFIG_SUBDIRS([sparc_leon])
;;
sparclet-*-aout* | sparc-*-elf* | sparc64-*-elf* | sparc86x-*-* | sparclite-*-*)
AC_CONFIG_SUBDIRS([sparc])
;;
@ -126,10 +129,13 @@ case "${target}" in
m32c-*-*)
AC_CONFIG_SUBDIRS([m32c])
;;
rl78*-*-elf)
AC_CONFIG_SUBDIRS([rl78])
;;
rx*-*-elf)
AC_CONFIG_SUBDIRS([rx])
;;
strongarm-*-elf | strongarm-*-coff | arm*-*-elf | arm*-*-coff | ep9312-*-elf | ep9312-*-coff | xscale-*-elf | xscale-*-coff | *arm-*-*)
arm*-*-elf | arm*-*-coff | arm-*-*)
AC_CONFIG_SUBDIRS([arm])
;;
spu-*-elf)

View file

@ -267,7 +267,7 @@ EXT(__frv_fix_usrptrs):
.Lret3: ret
.Lend3:
.size EXT(__frv_fix_usrptrs),.Lend2-EXT(__frv_fix_usrptrs)
.size EXT(__frv_fix_usrptrs),.Lend3-EXT(__frv_fix_usrptrs)
.section .data
.global __dso_handle

View file

@ -156,7 +156,7 @@ SECTIONS
LONG (0);
PROVIDE (__eh_frame_end = .);
}
.gcc_except_table : { *(.gcc_except_table) }
.gcc_except_table : { *(.gcc_except_table) *(.gcc_except_table.*) }
.hash : { *(.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }

View file

@ -132,7 +132,7 @@ distclean maintainer-clean realclean: clean
install:
@for outputs in ${OUTPUTS}; do\
mkdir -p $(DESTDIR)$(tooldir)/lib${MULTISUBDIR}; \
$(INSTALL_PROGRAM) $${outputs} $(DESTDIR)$(tooldir)/lib${MULTISUBDIR}; \
$(INSTALL_DATA) $${outputs} $(DESTDIR)$(tooldir)/lib${MULTISUBDIR}; \
done
info:

View file

@ -2050,8 +2050,6 @@ case "${target}" in
;;
arm-*-*)
;;
strongarm-*-*)
;;
bfin-*-*)
;;
cris-*-* | crisv32-*-*)
@ -2078,10 +2076,6 @@ case "${target}" in
;;
sparc64-*-*)
;;
thumb-*-pe)
;;
thumb-*-*)
;;
v850*-*-*)
;;
w65-*-*)

View file

@ -49,8 +49,6 @@ case "${target}" in
;;
arm-*-*)
;;
strongarm-*-*)
;;
bfin-*-*)
;;
cris-*-* | crisv32-*-*)
@ -77,10 +75,6 @@ case "${target}" in
;;
sparc64-*-*)
;;
thumb-*-pe)
;;
thumb-*-*)
;;
v850*-*-*)
;;
w65-*-*)

View file

@ -0,0 +1,160 @@
# Copyright (c) 2008, 2009, 2011 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.
# Makefile for libgloss/rl78.
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)
# Multilib support variables.
# TOP is used instead of MULTI{BUILD,SRC}TOP.
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 = rc
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`
SCRIPTS = $(srcdir)/rl78.ld $(srcdir)/rl78-sim.ld
CRT = gcrt0.o crt0.o crtn.o
SIM_BSP = libsim.a
LIBNOSYS = ../libnosys/libnosys.a
SIM_OBJS = \
sbrk.o \
exit.o \
open.o \
close.o \
read.o \
write.o \
lseek.o \
unlink.o \
getpid.o \
kill.o \
fstat.o \
argvlen.o \
argv.o \
chdir.o \
stat.o \
chmod.o \
utime.o \
time.o \
gettimeofday.o \
times.o \
link.o \
isatty.o \
abort.o \
mcount.o
#### Host specific Makefile fragment comes in here.
@host_makefile_frag@
# Override .S.o rule to pass assembler debugging flags
.S.o:
$(CC) -Wa,-gdwarf2 -Wa,-I$(srcdir) $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -c $<
all: $(CRT) $(SIM_BSP) copy_scripts_to_objdir
$(SIM_BSP): $(SIM_OBJS)
$(AR) $(ARFLAGS) $@ $?
$(RANLIB) $@
copy_scripts_to_objdir: $(SCRIPTS)
cp $(SCRIPTS) $(objdir)
# Dependencies
SDEPS = $(srcdir)/rl78-sys.h $(srcdir)/../syscall.h
abort.o : $(SDEPS)
argv.o : $(SDEPS)
argvlen.o : $(SDEPS)
chdir.o : $(SDEPS)
chmod.o : $(SDEPS)
close.o : $(SDEPS)
exit.o : $(SDEPS)
fstat.o : $(SDEPS)
getpid.o : $(SDEPS)
gettimeofday.o : $(SDEPS)
gcrt0.o: gcrt0.S crt0.S
kill.o : $(SDEPS)
link.o : $(SDEPS)
lseek.o : $(SDEPS)
mcount.o : $(SDEPS)
open.o : $(SDEPS)
read.o : $(SDEPS)
sigprocmask.o : $(SDEPS)
sleep.o : $(SDEPS)
stat.o : $(SDEPS)
time.o : $(SDEPS)
times.o : $(SDEPS)
unlink.o : $(SDEPS)
utime.o : $(SDEPS)
write.o : $(SDEPS)
install: $(CRT) $(SIM_BSP) $(SCRIPTS)
for c in $(CRT) $(SIM_BSP); do \
$(INSTALL_DATA) $$c $(tooldir)/lib${MULTISUBDIR}/$$c ;\
done
for c in $(SCRIPTS); do \
b=`basename $$c`; \
$(INSTALL_DATA) $$c $(tooldir)/lib${MULTISUBDIR}/$$b ;\
done
clean mostlyclean:
rm -f *.o *.a
distclean maintainer-clean realclean: clean
rm -f Makefile config.cache config.log config.status
.PHONY: info dvi doc install-info clean-info
info doc dvi:
install-info:
clean-info:
Makefile: Makefile.in config.status @host_makefile_frag_path@
$(SHELL) config.status
config.status: configure
$(SHELL) config.status --recheck

View file

@ -0,0 +1,50 @@
/*
Copyright (c) 2011 Red Hat Incorporated.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
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.
The name of Red Hat Incorporated may not be used to endorse
or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 RED HAT INCORPORATED 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 "rl78-sys.h"
.global _abort
.type _abort, @function
_abort:
/* This is for debuggers. The simulator stops here too. */
brk
movw ax, #42
push ax
SYSCALL(SYS_kill)
pop ax
/* Else, exit. */
call !!__exit
.size _abort, . - _abort

View file

@ -0,0 +1,35 @@
/*
Copyright (c) 2011 Red Hat Incorporated.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
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.
The name of Red Hat Incorporated may not be used to endorse
or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 RED HAT INCORPORATED 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 "rl78-sys.h"
ERR(argv)

View file

@ -0,0 +1,35 @@
/*
Copyright (c) 2011 Red Hat Incorporated.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
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.
The name of Red Hat Incorporated may not be used to endorse
or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 RED HAT INCORPORATED 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 "rl78-sys.h"
ERR(argvlen)

View file

@ -0,0 +1,35 @@
/*
Copyright (c) 2011 Red Hat Incorporated.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
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.
The name of Red Hat Incorporated may not be used to endorse
or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 RED HAT INCORPORATED 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 "rl78-sys.h"
ERR(chdir)

View file

@ -0,0 +1,35 @@
/*
Copyright (c) 2011 Red Hat Incorporated.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
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.
The name of Red Hat Incorporated may not be used to endorse
or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 RED HAT INCORPORATED 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 "rl78-sys.h"
ERR(chmod)

View file

@ -0,0 +1,35 @@
/*
Copyright (c) 2011 Red Hat Incorporated.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
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.
The name of Red Hat Incorporated may not be used to endorse
or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 RED HAT INCORPORATED 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 "rl78-sys.h"
OK(close)

3815
newlib/src/libgloss/rl78/configure vendored Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,55 @@
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.59)
AC_INIT(crt0.S)
if test "${enable_shared}" = "yes" ; then
echo "Shared libraries not supported for cross compiling, ignored"
fi
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

View file

@ -0,0 +1,327 @@
/* Copyright (c) 2011 Red Hat Incorporated.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
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.
The name of Red Hat Incorporated may not be used to endorse
or promote products derived from this software without specific
prior written permission.
This software is provided by the copyright holders and contributors
"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 Red Hat
incorporated 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 "rl78-sys.h"
.section ".vec","a"
.short _start
.section ".ivec","a"
#define IV(x) .weak _##x##_handler | .short _##x##_handler
#define IVx() .short 0
/* To use a vector, simply define a global function named foo_handler()
for any IV(foo) listed below (i.e. tm05_handler) */
.global _interrupt_vector_table
_interrupt_vector_table:
IV(wdti)
IV(lvi)
IV(p0)
IV(p1)
IV(p2)
IV(p3)
IV(p4)
IV(p5)
IV(st2)
IV(sr2)
IV(sre2)
IV(dma0)
IV(dma1)
IV(st0)
IV(sr0)
IV(tm01h)
IV(st1)
IV(sr1)
IV(sre1)
IV(iica0)
IV(tm00)
IV(tm01)
IV(tm02)
IV(tm03)
IV(ad)
IV(rtc)
IV(it)
IV(kr)
IV(st3)
IV(sr3)
IV(tm13)
IV(tm04)
IV(tm05)
IV(tm06)
IV(tm07)
IV(p6)
IV(p7)
IV(p8)
IV(p9)
IV(p10)
IV(p11)
IV(tm10)
IV(tm12)
IV(sre3)
IV(tm13h)
IV(md)
IV(iica1)
IV(fl)
IV(dma2)
IV(dma3)
IV(tm14)
IV(tm15)
IV(tm16)
IV(tm17)
IVx()
IVx()
IVx()
IVx()
IVx()
IVx()
IVx()
IV(brk)
/* Note: 126 vectors */
.section ".csstart", "ax"
.global __csstart
__csstart:
br !!_start
.weak __rl78_option_byte_0
.weak __rl78_option_byte_1
.weak __rl78_option_byte_2
.weak __rl78_option_byte_3
__rl78_option_byte_0 = 0x6e
__rl78_option_byte_1 = 0xff
__rl78_option_byte_2 = 0xe8
__rl78_option_byte_3 = 0x85
.section ".opt", "a"
.byte __rl78_option_byte_0
.byte __rl78_option_byte_1
.byte __rl78_option_byte_2
.byte __rl78_option_byte_3
.text
.global _start
.type _start, @function
_start:
movw sp, #__stack
;; block move to initialize .data
;; we're copying from 00:[_romdatastart] to 0F:[_datastart]
;; and our data is not in the mirrored area.
mov es, #0
sel rb0 ; bank 0
movw hl, #__datastart
movw de, #__romdatastart
sel rb1 ; bank 1
movw ax, #__romdatacopysize
shrw ax,1
1:
cmpw ax, #0
bz $1f
decw ax
sel rb0 ; bank 0
movw ax, es:[de]
movw [hl], ax
incw de
incw de
incw hl
incw hl
sel rb1
br $1b
1:
sel rb0 ; bank 0
;; block fill to .bss
sel rb0 ; bank 0
movw hl, #__bssstart
movw ax, #0
sel rb1 ; bank 1
movw ax, #__bsssize
shrw ax,1
1:
cmpw ax, #0
bz $1f
decw ax
sel rb0 ; bank 0
movw [hl], ax
incw hl
incw hl
sel rb1
br $1b
1:
sel rb0 ; bank 0
call !!__rl78_init
#ifdef PROFILE_SUPPORT /* Defined in gcrt0.S. */
movw ax, # _start
push ax
movw ax, # _etext
push ax
call !!__monstartup
#endif
movw ax, #0
push ax /* envp */
push ax /* argv */
push ax /* argc */
call !!_main
.LFE2:
movw ax, r8 ; Save return code.
push ax
#ifdef PROFILE_SUPPORT
call !!__mcleanup
#endif
call !!_exit
.size _start, . - _start
.global _rl78_run_preinit_array
.type _rl78_run_preinit_array,@function
_rl78_run_preinit_array:
movw hl, #__preinit_array_start
movw de, #__preinit_array_end
movw bc, #-2
br $_rl78_run_inilist
.global _rl78_run_init_array
.type _rl78_run_init_array,@function
_rl78_run_init_array:
movw hl, #__init_array_start
movw de, #__init_array_end
movw bc, #2
br $_rl78_run_inilist
.global _rl78_run_fini_array
.type _rl78_run_fini_array,@function
_rl78_run_fini_array:
movw hl, #__fini_array_start
movw de, #__fini_array_end
movw bc, #-2
/* fall through */
;; HL = start of list
;; DE = end of list
;; BC = step direction (+2 or -2)
_rl78_run_inilist:
next_inilist:
movw ax, hl
cmpw ax, de
bz $done_inilist
movw ax, [hl]
cmpw ax, #-1
bz $skip_inilist
cmpw ax, #0
bz $skip_inilist
push ax
push bc
push de
push hl
call ax
pop hl
pop de
pop bc
pop ax
skip_inilist:
movw ax, hl
addw ax, bc
movw hl, ax
br $next_inilist
done_inilist:
ret
.section .init,"ax"
.global __rl78_init
__rl78_init:
.section .fini,"ax"
.global __rl78_fini
__rl78_fini:
call !!_rl78_run_fini_array
.section .data
.global ___dso_handle
.weak ___dso_handle
___dso_handle:
.long 0
;;; Provide Dwarf unwinding information that will help GDB stop
;;; backtraces at the right place. This is stolen from assembly
;;; code generated by GCC with -dA.
.section .debug_frame,"",@progbits
.Lframe0:
.4byte .LECIE0-.LSCIE0 ; Length of Common Information Entry
.LSCIE0:
.4byte 0xffffffff ; CIE Identifier Tag
.byte 0x1 ; CIE Version
.ascii "\0" ; CIE Augmentation
.uleb128 0x1 ; CIE Code Alignment Factor
.sleb128 -1 ; CIE Data Alignment Factor
.byte 0xd ; CIE RA Column
.byte 0xc ; DW_CFA_def_cfa
.uleb128 0xc
.uleb128 0x3
.byte 0x8d ; DW_CFA_offset, column 0xd
.uleb128 0x3
.p2align 2
.LECIE0:
.LSFDE0:
.4byte .LEFDE0-.LASFDE0 ; FDE Length
.LASFDE0:
.4byte .Lframe0 ; FDE CIE offset
.4byte _start ; FDE initial location
.4byte .LFE2 - _start ; FDE address range
.byte 0xf ; DW_CFA_def_cfa_expression
.uleb128 1 ; length of expression
.byte 0x30 ; DW_OP_lit0
.p2align 2
.LEFDE0:
.text

View file

@ -0,0 +1,47 @@
/*
Copyright (c) 2005,2011 Red Hat Incorporated.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
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.
The name of Red Hat Incorporated may not be used to endorse
or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 RED HAT INCORPORATED 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.
*/
.section .init,"ax"
call !!_rl78_run_preinit_array
call !!_rl78_run_init_array
ret
.global __rl78_init_end
__rl78_init_end:
.section .fini,"ax"
ret
.global __rl78_fini_end
__rl78_fini_end:
.text

View file

@ -0,0 +1,43 @@
/*
Copyright (c) 2011 Red Hat Incorporated.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
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.
The name of Red Hat Incorporated may not be used to endorse
or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 RED HAT INCORPORATED 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 "rl78-sys.h"
.global __exit
.type __exit, @function
__exit:
call !!__rl78_fini
mov a, [sp+4]
halt
SYSCALL(SYS_exit)
.size __exit, . - __exit

View file

@ -0,0 +1,35 @@
/*
Copyright (c) 2011 Red Hat Incorporated.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
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.
The name of Red Hat Incorporated may not be used to endorse
or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 RED HAT INCORPORATED 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 "rl78-sys.h"
ERR(fstat)

View file

@ -0,0 +1,58 @@
/* Copyright (c) 2011 Red Hat Incorporated.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
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.
The name of Red Hat Incorporated may not be used to endorse
or promote products derived from this software without specific
prior written permission.
This software is provided by the copyright holders and contributors
"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 Red Hat
incorporated 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. */
#define PROFILE_SUPPORT 1
#include "crt0.S"
.global __mcount
.type __mcount, @function
__mcount:
;; When a function is compiled for profiling, gcc creates code
;; like this at the start of each profiled function:
;;
;; .global <func_name>
;; <func_name>:
;; bsr __mcount
;; <...function's prologue...>
;; <...function's body...>
;;
;; We must save all of the argument registers, extract the
;; address of <func_name>, call _mcount_internal to do the
;; real work and then restore the argument registers before
;; returning.
movw ax, [sp]
push ax
call !!__mcount_internal
pop ax
ret
.size __mcount, . - __mcount

View file

@ -0,0 +1,36 @@
/*
Copyright (c) 2011 Red Hat Incorporated.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
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.
The name of Red Hat Incorporated may not be used to endorse
or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 RED HAT INCORPORATED 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 "rl78-sys.h"
RET(getpid,42)

View file

@ -0,0 +1,35 @@
/*
Copyright (c) 2011 Red Hat Incorporated.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
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.
The name of Red Hat Incorporated may not be used to endorse
or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 RED HAT INCORPORATED 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 "rl78-sys.h"
ERR(gettimeofday)

View file

@ -0,0 +1,36 @@
/* Copyright (c) 2011 Red Hat Incorporated.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
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.
The name of Red Hat Incorporated may not be used to endorse
or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 RED HAT INCORPORATED 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 "rl78-sys.h"
.global _isatty
.weak _isatty
_isatty:
RET(_isatty,1)

View file

@ -0,0 +1,35 @@
/*
Copyright (c) 2011 Red Hat Incorporated.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
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.
The name of Red Hat Incorporated may not be used to endorse
or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 RED HAT INCORPORATED 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 "rl78-sys.h"
ERR(kill)

View file

@ -0,0 +1,35 @@
/*
Copyright (c) 2011 Red Hat Incorporated.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
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.
The name of Red Hat Incorporated may not be used to endorse
or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 RED HAT INCORPORATED 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 "rl78-sys.h"
ERR(link)

View file

@ -0,0 +1,35 @@
/*
Copyright (c) 2011 Red Hat Incorporated.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
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.
The name of Red Hat Incorporated may not be used to endorse
or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 RED HAT INCORPORATED 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 "rl78-sys.h"
ERR(lseek)

View file

@ -0,0 +1,422 @@
/*-
* Copyright (c) 1983, 1992, 1993
* The Regents of the University of California. 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.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 THE REGENTS OR CONTRIBUTORS 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.
*/
/* This file implements a subset of the profiling support functions.
It has been copied and adapted from mcount.c, gmon.c and gmon.h in
the glibc sources.
Since we do not have access to a timer interrupt in the simulator
the histogram and basic block information is not generated. */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
/* Fraction of text space to allocate for histogram counters here, 1/2. */
#define HISTFRACTION 2
/* Fraction of text space to allocate for from hash buckets.
The value of HASHFRACTION is based on the minimum number of bytes
of separation between two subroutine call points in the object code.
Given MIN_SUBR_SEPARATION bytes of separation the value of
HASHFRACTION is calculated as:
HASHFRACTION = MIN_SUBR_SEPARATION / (2 * sizeof (short) - 1);
For example, on the VAX, the shortest two call sequence is:
calls $0,(r0)
calls $0,(r0)
which is separated by only three bytes, thus HASHFRACTION is
calculated as:
HASHFRACTION = 3 / (2 * 2 - 1) = 1
Note that the division above rounds down, thus if MIN_SUBR_FRACTION
is less than three, this algorithm will not work!
In practice, however, call instructions are rarely at a minimal
distance. Hence, we will define HASHFRACTION to be 2 across all
architectures. This saves a reasonable amount of space for
profiling data structures without (in practice) sacrificing
any granularity. */
#define HASHFRACTION 2
/* Percent of text space to allocate for tostructs.
This is a heuristic; we will fail with a warning when profiling
programs with a very large number of very small functions, but
that's normally OK.
2 is probably still a good value for normal programs.
Profiling a test case with 64000 small functions will work if
you raise this value to 3 and link statically (which bloats the
text size, thus raising the number of arcs expected by the heuristic). */
#define ARCDENSITY 3
/* Always allocate at least this many tostructs. This hides the
inadequacy of the ARCDENSITY heuristic, at least for small programs. */
#define MINARCS 50
/* Maximum number of arcs we want to allow.
Used to be max representable value of ARCINDEX minus 2, but now
that ARCINDEX is a long, that's too large; we don't really want
to allow a 48 gigabyte table.
The old value of 1<<16 wasn't high enough in practice for large C++
programs; will 1<<20 be adequate for long? FIXME */
#define MAXARCS (1L << 20)
#define SCALE_1_TO_1 0x10000L
#define GMON_MAGIC "gmon" /* Magic cookie. */
#define GMON_VERSION 1 /* Version number. */
/* General rounding functions. */
#define ROUNDDOWN(x ,y) (((x) / (y)) * (y))
#define ROUNDUP(x, y) ((((x) + (y) - 1) / (y)) * (y))
struct tostruct
{
unsigned long selfpc;
unsigned long count;
unsigned long link;
};
/* Possible states of profiling. */
enum profiling_state
{
GMON_PROF_OFF,
GMON_PROF_ON,
GMON_PROF_BUSY,
GMON_PROF_ERROR
};
/* The profiling data structures are housed in this structure. */
struct gmonparam
{
enum profiling_state state;
unsigned short * kcount;
unsigned long kcountsize;
unsigned long * froms;
unsigned long fromssize;
struct tostruct * tos;
unsigned long tossize;
long tolimit;
unsigned long lowpc;
unsigned long highpc;
unsigned long textsize;
unsigned long hashfraction;
long log_hashfraction;
};
/* Raw header as it appears in the gmon.out file (without padding).
This header always comes first and is then followed by a series
records defined below. */
struct gmon_hdr
{
char cookie[4];
char version[4];
char spare[3 * 4];
};
/* Types of records in this file. */
typedef enum
{
GMON_TAG_TIME_HIST = 0,
GMON_TAG_CG_ARC = 1,
} GMON_Record_Tag;
struct gmon_cg_arc_record
{
char tag; /* Set to GMON_TAG_CG_ARC. */
char from_pc[sizeof (char *)]; /* Address within caller's body. */
char self_pc[sizeof (char *)]; /* Address within callee's body. */
char count[4]; /* Number of arc traversals. */
};
/* Forward declarations. */
void _mcount_internal (unsigned long);
void _monstartup (unsigned long, unsigned long);
void _mcleanup (void);
static struct gmonparam _gmonparam;
void
_mcount_internal (unsigned long frompc)
{
unsigned long selfpc = frompc;
unsigned long * frompcindex;
struct tostruct * top;
struct tostruct * prevtop;
struct gmonparam * p;
unsigned long toindex;
int i;
p = & _gmonparam;
/* Check that we are profiling and that we aren't recursively invoked.
NB/ This version is not thread-safe. */
if (p->state != GMON_PROF_ON)
return;
p->state = GMON_PROF_BUSY;
/* Check that frompcindex is a reasonable pc value.
For example: signal catchers get called from the stack,
not from text space. Too bad. */
frompc -= p->lowpc;
if (frompc > p->textsize)
goto done;
i = frompc >> p->log_hashfraction;
frompcindex = p->froms + i;
toindex = * frompcindex;
if (toindex == 0)
{
/* First time traversing this arc. */
toindex = ++ p->tos[0].link;
if (toindex >= p->tolimit)
/* Halt further profiling. */
goto overflow;
* frompcindex = toindex;
top = p->tos + toindex;
top->selfpc = selfpc;
top->count = 1;
top->link = 0;
goto done;
}
top = p->tos + toindex;
if (top->selfpc == selfpc)
{
/* Arc at front of chain: usual case. */
top->count ++;
goto done;
}
/* Have to go looking down chain for it.
Top points to what we are looking at,
prevtop points to previous top.
We know it is not at the head of the chain. */
for (;;)
{
if (top->link == 0)
{
/* Top is end of the chain and none of the chain
had top->selfpc == selfpc. So we allocate a
new tostruct and link it to the head of the
chain. */
toindex = ++ p->tos[0].link;
if (toindex >= p->tolimit)
goto overflow;
top = p->tos + toindex;
top->selfpc = selfpc;
top->count = 1;
top->link = * frompcindex;
* frompcindex = toindex;
goto done;
}
/* Otherwise, check the next arc on the chain. */
prevtop = top;
top = p->tos + top->link;
if (top->selfpc == selfpc)
{
/* There it is. Increment its count
move it to the head of the chain. */
top->count ++;
toindex = prevtop->link;
prevtop->link = top->link;
top->link = * frompcindex;
* frompcindex = toindex;
goto done;
}
}
done:
p->state = GMON_PROF_ON;
return;
overflow:
p->state = GMON_PROF_ERROR;
return;
}
void
_monstartup (unsigned long lowpc, unsigned long highpc)
{
char * cp;
struct gmonparam * p = & _gmonparam;
/* If the calloc() function has been instrumented we must make sure
that it is not profiled until we are ready. */
p->state = GMON_PROF_BUSY;
/* Round lowpc and highpc to multiples of the density we're using
so the rest of the scaling (here and in gprof) stays in ints. */
p->lowpc = ROUNDDOWN (lowpc, HISTFRACTION * sizeof (* p->kcount));
p->highpc = ROUNDUP (highpc, HISTFRACTION * sizeof (* p->kcount));
p->textsize = p->highpc - p->lowpc;
p->kcountsize = ROUNDUP (p->textsize / HISTFRACTION, sizeof (*p->froms));
p->hashfraction = HASHFRACTION;
p->log_hashfraction = -1;
p->log_hashfraction = ffs (p->hashfraction * sizeof (*p->froms)) - 1;
p->fromssize = p->textsize / HASHFRACTION;
p->tolimit = p->textsize * ARCDENSITY / 100;
if (p->tolimit < MINARCS)
p->tolimit = MINARCS;
else if (p->tolimit > MAXARCS)
p->tolimit = MAXARCS;
p->tossize = p->tolimit * sizeof (struct tostruct);
cp = calloc (p->kcountsize + p->fromssize + p->tossize, 1);
if (cp == NULL)
{
write (2, "monstartup: out of memory\n", 26);
p->tos = NULL;
p->state = GMON_PROF_ERROR;
return;
}
p->tos = (struct tostruct *) cp;
cp += p->tossize;
p->kcount = (unsigned short *) cp;
cp += p->kcountsize;
p->froms = (unsigned long *) cp;
p->tos[0].link = 0;
p->state = GMON_PROF_ON;
}
static void
write_call_graph (int fd)
{
#define NARCS_PER_WRITE 32
struct gmon_cg_arc_record raw_arc[NARCS_PER_WRITE]
__attribute__ ((aligned (__alignof__ (char *))));
unsigned long from_index;
unsigned long to_index;
unsigned long from_len;
unsigned long frompc;
int nfilled;
for (nfilled = 0; nfilled < NARCS_PER_WRITE; ++ nfilled)
raw_arc[nfilled].tag = GMON_TAG_CG_ARC;
nfilled = 0;
from_len = _gmonparam.fromssize / sizeof (*_gmonparam.froms);
for (from_index = 0; from_index < from_len; ++from_index)
{
if (_gmonparam.froms[from_index] == 0)
continue;
frompc = _gmonparam.lowpc;
frompc += (from_index * _gmonparam.hashfraction
* sizeof (*_gmonparam.froms));
for (to_index = _gmonparam.froms[from_index];
to_index != 0;
to_index = _gmonparam.tos[to_index].link)
{
struct gmon_cg_arc_record * arc = raw_arc + nfilled;
memcpy (arc->from_pc, & frompc, sizeof (arc->from_pc));
memcpy (arc->self_pc, & _gmonparam.tos[to_index].selfpc, sizeof (arc->self_pc));
memcpy (arc->count, & _gmonparam.tos[to_index].count, sizeof (arc->count));
if (++ nfilled == NARCS_PER_WRITE)
{
write (fd, raw_arc, sizeof raw_arc);
nfilled = 0;
}
}
}
if (nfilled > 0)
write (fd, raw_arc, nfilled * sizeof (raw_arc[0]));
}
#include <errno.h>
static void
write_gmon (void)
{
struct gmon_hdr ghdr __attribute__ ((aligned (__alignof__ (int))));
int fd;
fd = open ("gmon.out", O_CREAT|O_TRUNC|O_WRONLY, 0666);
if (fd < 0)
{
write (2, "_mcleanup: could not create gmon.out\n", 37);
return;
}
/* Write gmon.out header: */
memset (& ghdr, '\0', sizeof (ghdr));
memcpy (ghdr.cookie, GMON_MAGIC, sizeof (ghdr.cookie));
* (unsigned long *) ghdr.version = GMON_VERSION;
write (fd, & ghdr, sizeof (ghdr));
/* We do not have histogram or basic block information,
so we do not generate these parts of the gmon.out file. */
/* Write call-graph. */
write_call_graph (fd);
close (fd);
}
void
_mcleanup (void)
{
if (_gmonparam.state != GMON_PROF_ERROR)
{
_gmonparam.state = GMON_PROF_OFF;
write_gmon ();
}
/* Free the memory. */
if (_gmonparam.tos != NULL)
{
free (_gmonparam.tos);
_gmonparam.tos = NULL;
}
}

View file

@ -0,0 +1,35 @@
/*
Copyright (c) 2011 Red Hat Incorporated.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
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.
The name of Red Hat Incorporated may not be used to endorse
or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 RED HAT INCORPORATED 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 "rl78-sys.h"
ERR(open)

View file

@ -0,0 +1,35 @@
/*
Copyright (c) 2011 Red Hat Incorporated.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
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.
The name of Red Hat Incorporated may not be used to endorse
or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 RED HAT INCORPORATED 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 "rl78-sys.h"
ERR(read)

View file

@ -0,0 +1,224 @@
/*
Copyright (c) 2005,2008,2009,2011 Red Hat Incorporated.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
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.
The name of Red Hat Incorporated may not be used to endorse
or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 RED HAT INCORPORATED 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.
*/
/* Default linker script, for normal executables */
OUTPUT_ARCH(rl78)
ENTRY(_start)
/* Do we need any of these for elf?
__DYNAMIC = 0; */
/* This is for the simulator - 512k flash, 32k ram, no data flash */
MEMORY {
VEC (r) : ORIGIN = 0x00000, LENGTH = 0x00002
IVEC (r) : ORIGIN = 0x00004, LENGTH = 0x0007c
OPT (r) : ORIGIN = 0x000c0, LENGTH = 0x00004
ROM (r) : ORIGIN = 0x000d8, LENGTH = 0x7ff28
RAM (w) : ORIGIN = 0xf8000, LENGTH = 0x07ee0
STACK (w) : ORIGIN = 0xffee0, LENGTH = 0x00002
}
SECTIONS
{
.vec :
{
*(.vec)
} > VEC
.ivec :
{
*(.ivec)
} > IVEC
.opt :
{
*(.opt)
} > OPT
/* CubeSuite always starts at 0xd8. */
.csstart : {
*(.csstart)
} > ROM
/* For code that must be in the first 64k, or could fill unused
space below .rodata. */
.lowtext : {
*(.plt)
*(.lowtext)
} > ROM
.data : {
. = ALIGN(2);
PROVIDE (__datastart = .);
KEEP (*(.jcr))
*(.data.rel.ro.local) *(.data.rel.ro*)
*(.dynamic)
*(.data D .data.* .gnu.linkonce.d.*)
KEEP (*(.gnu.linkonce.d.*personality*))
SORT(CONSTRUCTORS)
*(.data1)
*(.got.plt) *(.got)
/* 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. */
. = ALIGN(2);
*(.sdata .sdata.* .gnu.linkonce.s.* D_2 D_1)
. = ALIGN(2);
_edata = .;
PROVIDE (edata = .);
PROVIDE (__dataend = .);
} > RAM AT> ROM
/* Note that crt0 assumes this is a multiple of two; all the
start/stop symbols are also assumed word-aligned. */
PROVIDE(__romdatastart = LOADADDR(.data));
PROVIDE (__romdatacopysize = SIZEOF(.data));
.bss : {
. = ALIGN(2);
PROVIDE (__bssstart = .);
*(.dynbss)
*(.sbss .sbss.*)
*(.bss B B_2 B_1 .bss.* .gnu.linkonce.b.*)
. = ALIGN(2);
*(COMMON)
. = ALIGN(2);
PROVIDE (__bssend = .);
_end = .;
PROVIDE (end = .);
} > RAM
PROVIDE (__bsssize = SIZEOF(.bss));
.stack (ORIGIN (STACK)) :
{
PROVIDE (__stack = .);
*(.stack)
}
.rodata (MAX(__romdatastart + __romdatacopysize, 0x1000)) : {
. = ALIGN(2);
*(.plt)
*(.rodata C C_2 C_1 .rodata.* .gnu.linkonce.r.*)
*(.rodata1)
*(.eh_frame_hdr)
KEEP (*(.eh_frame))
KEEP (*(.gcc_except_table)) *(.gcc_except_table.*)
PROVIDE (__preinit_array_start = .);
KEEP (*(.preinit_array))
PROVIDE (__preinit_array_end = .);
PROVIDE (__init_array_start = .);
KEEP (*(SORT(.init_array.*)))
KEEP (*(.init_array))
PROVIDE (__init_array_end = .);
PROVIDE (__fini_array_start = .);
KEEP (*(.fini_array))
KEEP (*(SORT(.fini_array.*)))
PROVIDE (__fini_array_end = .);
LONG(0); /* Sentinel. */
/* 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))
KEEP (*crtbegin*.o(.dtors))
KEEP (*(EXCLUDE_FILE (*crtend*.o ) .dtors))
KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors))
} > ROM
.text :
{
PROVIDE (_start = .);
*(.text P .stub .text.* .gnu.linkonce.t.*)
KEEP (*(.text.*personality*))
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
*(.interp .hash .dynsym .dynstr .gnu.version*)
PROVIDE (__etext = .);
PROVIDE (_etext = .);
PROVIDE (etext = .);
. = ALIGN(2);
KEEP (*(.init))
KEEP (*(.fini))
} > ROM
/* The rest are all not normally part of the runtime image. */
/* 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 .gnu.linkonce.wi.*) }
.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) }
/* 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) }
/DISCARD/ : { *(.note.GNU-stack) }
}

View file

@ -0,0 +1,84 @@
/*
Copyright (c) 2011 Red Hat Incorporated.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
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.
The name of Red Hat Incorporated may not be used to endorse
or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 RED HAT INCORPORATED 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 "syscall.h"
r8 = 0xffef0
r9 = 0xffef1
r10 = 0xffef2
r11 = 0xffef3
r12 = 0xffef4
r13 = 0xffef5
r14 = 0xffef6
r15 = 0xffef7
r16 = 0xffee8
r17 = 0xffee9
r18 = 0xffeea
r19 = 0xffeeb
r20 = 0xffeec
r21 = 0xffeed
r22 = 0xffeee
r23 = 0xffeef
#define SYS__exit SYS_exit
.macro syscall_body number
/* The RL78 doesn't really have an "interrupt" upcode, just
BRK, which we emulate exactly. We use the STOP opcode,
which is a breakpoint in the simulator. */
mov A, #\number
stop
ret
.endm
.macro do_syscall name number
__\name:
.global __\name
_\name:
.weak _\name
syscall_body \number
.endm
.macro syscall_returns name number
__\name:
.global __\name
_\name:
.weak _\name
mov r8, #\number
ret
.endm
#define S(name) do_syscall name, SYS_##name
#define SYSCALL(number) syscall_body number
#define ERR(name) syscall_returns name, -1
#define OK(name) syscall_returns name, 0
#define RET(name,val) syscall_returns name, val

View file

@ -0,0 +1,224 @@
/*
Copyright (c) 2005,2008,2009,2011 Red Hat Incorporated.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
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.
The name of Red Hat Incorporated may not be used to endorse
or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 RED HAT INCORPORATED 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.
*/
/* Default linker script, for normal executables */
OUTPUT_ARCH(rl78)
ENTRY(_start)
/* Do we need any of these for elf?
__DYNAMIC = 0; */
/* This is for an RL78/G13, 64k flash, 4k ram */
MEMORY {
VEC (r) : ORIGIN = 0x00000, LENGTH = 0x00002
IVEC (r) : ORIGIN = 0x00004, LENGTH = 0x0007c
OPT (r) : ORIGIN = 0x000c0, LENGTH = 0x00004
ROM (r) : ORIGIN = 0x000d8, LENGTH = 0x0ff28
RAM (w) : ORIGIN = 0xfef00, LENGTH = 0x00fe0
STACK (w) : ORIGIN = 0xffee0, LENGTH = 0x00002
}
SECTIONS
{
.vec :
{
*(.vec)
} > VEC
.ivec :
{
*(.ivec)
} > IVEC
.opt :
{
*(.opt)
} > OPT
/* CubeSuite always starts at 0xd8. */
.csstart : {
*(.csstart)
} > ROM
/* For code that must be in the first 64k, or could fill unused
space below .rodata. */
.lowtext : {
*(.plt)
*(.lowtext)
} > ROM
.data : {
. = ALIGN(2);
PROVIDE (__datastart = .);
KEEP (*(.jcr))
*(.data.rel.ro.local) *(.data.rel.ro*)
*(.dynamic)
*(.data D .data.* .gnu.linkonce.d.*)
KEEP (*(.gnu.linkonce.d.*personality*))
SORT(CONSTRUCTORS)
*(.data1)
*(.got.plt) *(.got)
/* 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. */
. = ALIGN(2);
*(.sdata .sdata.* .gnu.linkonce.s.* D_2 D_1)
. = ALIGN(2);
_edata = .;
PROVIDE (edata = .);
PROVIDE (__dataend = .);
} > RAM AT> ROM
/* Note that crt0 assumes this is a multiple of two; all the
start/stop symbols are also assumed word-aligned. */
PROVIDE(__romdatastart = LOADADDR(.data));
PROVIDE (__romdatacopysize = SIZEOF(.data));
.bss : {
. = ALIGN(2);
PROVIDE (__bssstart = .);
*(.dynbss)
*(.sbss .sbss.*)
*(.bss B B_2 B_1 .bss.* .gnu.linkonce.b.*)
. = ALIGN(2);
*(COMMON)
. = ALIGN(2);
PROVIDE (__bssend = .);
_end = .;
PROVIDE (end = .);
} > RAM
PROVIDE (__bsssize = SIZEOF(.bss));
.stack (ORIGIN (STACK)) :
{
PROVIDE (__stack = .);
*(.stack)
}
.rodata (MAX(__romdatastart + __romdatacopysize, 0x2000)) : {
. = ALIGN(2);
*(.plt)
*(.rodata C C_2 C_1 .rodata.* .gnu.linkonce.r.*)
*(.rodata1)
*(.eh_frame_hdr)
KEEP (*(.eh_frame))
KEEP (*(.gcc_except_table)) *(.gcc_except_table.*)
PROVIDE (__preinit_array_start = .);
KEEP (*(.preinit_array))
PROVIDE (__preinit_array_end = .);
PROVIDE (__init_array_start = .);
KEEP (*(SORT(.init_array.*)))
KEEP (*(.init_array))
PROVIDE (__init_array_end = .);
PROVIDE (__fini_array_start = .);
KEEP (*(.fini_array))
KEEP (*(SORT(.fini_array.*)))
PROVIDE (__fini_array_end = .);
LONG(0); /* Sentinel. */
/* 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))
KEEP (*crtbegin*.o(.dtors))
KEEP (*(EXCLUDE_FILE (*crtend*.o ) .dtors))
KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors))
} > ROM
.text :
{
PROVIDE (_start = .);
*(.text P .stub .text.* .gnu.linkonce.t.*)
KEEP (*(.text.*personality*))
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
*(.interp .hash .dynsym .dynstr .gnu.version*)
PROVIDE (__etext = .);
PROVIDE (_etext = .);
PROVIDE (etext = .);
. = ALIGN(2);
KEEP (*(.init))
KEEP (*(.fini))
} > ROM
/* The rest are all not normally part of the runtime image. */
/* 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 .gnu.linkonce.wi.*) }
.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) }
/* 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) }
/DISCARD/ : { *(.note.GNU-stack) }
}

View file

@ -0,0 +1,57 @@
/*
Copyright (c) 2005, 2009 Red Hat Incorporated.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
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.
The name of Red Hat Incorporated may not be used to endorse
or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 RED HAT INCORPORATED 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 <errno.h>
char *
_sbrk (int adj)
{
extern char end;
static char * heap = & end;
char * rv = heap;
char * heaptop = (char *) &adj;
heap += adj;
/* The allocated chunk spans our stack? */
if (rv < heaptop && heap > heaptop
/* The allocated chunk spans our address space? */
|| heap < rv)
{
errno = ENOMEM;
return (char *) -1;
}
return rv;
}
char * sbrk (int) __attribute__((weak, alias ("_sbrk")));

View file

@ -0,0 +1,35 @@
/*
Copyright (c) 2011 Red Hat Incorporated.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
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.
The name of Red Hat Incorporated may not be used to endorse
or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 RED HAT INCORPORATED 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 "rl78-sys.h"
ERR(stat)

View file

@ -0,0 +1,35 @@
/*
Copyright (c) 2011 Red Hat Incorporated.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
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.
The name of Red Hat Incorporated may not be used to endorse
or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 RED HAT INCORPORATED 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 "rl78-sys.h"
ERR(time)

View file

@ -0,0 +1,35 @@
/*
Copyright (c) 2011 Red Hat Incorporated.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
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.
The name of Red Hat Incorporated may not be used to endorse
or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 RED HAT INCORPORATED 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 "rl78-sys.h"
ERR(times)

View file

@ -0,0 +1,35 @@
/*
Copyright (c) 2011 Red Hat Incorporated.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
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.
The name of Red Hat Incorporated may not be used to endorse
or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 RED HAT INCORPORATED 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 "rl78-sys.h"
ERR(unlink)

View file

@ -0,0 +1,35 @@
/*
Copyright (c) 2011 Red Hat Incorporated.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
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.
The name of Red Hat Incorporated may not be used to endorse
or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 RED HAT INCORPORATED 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 "rl78-sys.h"
ERR(utime)

View file

@ -0,0 +1,107 @@
/*
Copyright (c) 2010 Red Hat Incorporated.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
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.
The name of Red Hat Incorporated may not be used to endorse
or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 RED HAT INCORPORATED 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.
*/
/* These definitions are for the RL78/G13, which the simulator
simulates. */
typedef unsigned char UQI __attribute__((mode(QI)));
typedef unsigned int UHI __attribute__((mode(HI)));
#define s8(x) (*(volatile UQI *)(x))
#define s16(x) (*(volatile UHI *)(x))
#define P(x) s8(0xfff00+(x))
#define PM(x) s8(0xfff20+(x))
#define PER0 s8(0xf00f0)
#define SSR00 s16(0xf0100)
#define SMR00 s16(0xf0110)
#define SCR00 s16(0xf0118)
#define SS0 s16(0xf0122)
#define SPS0 s16(0xf0126)
#define SO0 s16(0xf0128)
#define SOE0 s16(0xf012a)
#define SOL0 s16(0xf0134)
#define SDR00 s16(0xfff10)
static int initted = 0;
static void
init_uart0 ()
{
initted = 1;
PER0 = 0xff;
SPS0 = 0x0011; /* 16 MHz */
SMR00 = 0x0022; /* uart mode */
SCR00 = 0x8097; /* 8-N-1 */
SDR00 = 0x8a00; /* baud in MSB - 115200 */
SOL0 = 0x0000; /* not inverted */
SO0 = 0x000f; /* initial value */
SOE0 = 0x0001; /* enable TxD0 */
P(1) |= 0b00000100;
PM(1) &= 0b11111011;
SS0 = 0x0001;
}
static void
tputc (char c)
{
/* Wait for transmit buffer to be empty. */
while (SSR00 & 0x0020)
asm("");
/* Transmit that byte. */
SDR00 = c;
}
int
_write(int fd, char *ptr, int len)
{
int rv = len;
if (!initted)
init_uart0 ();
while (len != 0)
{
if (*ptr == '\n')
tputc ('\r');
tputc (*ptr);
ptr ++;
len --;
}
return rv;
}
char * write (int) __attribute__((weak, alias ("_write")));

View file

@ -1,4 +1,4 @@
/* Copyright (c) 2008, 2009 Red Hat Incorporated.
/* Copyright (c) 2008, 2009, 2011 Red Hat Incorporated.
All rights reserved.
Redistribution and use in source and binary forms, with or without
@ -50,11 +50,20 @@ _start:
mov #__bsssize, r3
sstr.l
/* Initialise the small data area pointer.
The register used here must agree with the definition of
GP_BASE_REGNUM in gcc/config/rx/rx.h. */
/* Initialize data pointer register(s).
Note: The registers used here should agree with the definition of
GP_BASE_REGNUM in gcc/config/rx/rx.h.
Note: We are assuming that -mint-register has not been used when
compiling the application. */
#ifdef _RX_PID
/* Initialise the constant data pointer and small data pointers. */
mov #__pid_base, r13
mov #__gp, r12
#else
/* Initialise the small data area pointer. */
mov #__gp, r13
#endif
bsr.a __rx_init
#ifdef PROFILE_SUPPORT /* Defined in gcrt0.S. */
@ -129,6 +138,12 @@ __rx_init:
__rx_fini:
bsr.a _rx_run_fini_array
.section .rodata
.balign 4
.global __pid_base
.weak __pid_base
__pid_base:
.section .sdata
.balign 4
.global __gp

View file

@ -0,0 +1,161 @@
# Makefile for libgloss/sparc_leon. This is the board support
# code for the various sparc leon targets.
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)
mkinstalldirs = $(SHELL) $(srcroot)/mkinstalldirs
# Multilib support variables.
# TOP is used instead of MULTI{BUILD,SRC}TOP.
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 = qrv
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`
LEON_BSP = libleonbare.a
LEON_OBJS = etrap.o rtrap.o etrap_fast.o rtrap_fast.o irqinstall.o regwin.o \
regwinflush.o fpu.o bdinit.o contextswitch.o \
busscan.o irqtrap_fast.o catch_interrupt.o catch_interrupt_svt.o \
catch_interrupt_mvt.o catch_interrupt_pending.o gettimeofday.o \
times.o rtc.o lcpuinit.o console_init.o console.o console_dbg.o \
contextswitch.o contextswitch_asm.o _exit.o amba.o amba_dbg.o \
amba_scan.o amba_driver.o timer.o mutex.o locore.o locore_clean.o \
locore_var.o locore_var_svt.o jiffies.o \
mmu_asm.o locore_svtdisp.o locore_mvt_reset.o locore_svt_reset.o stop.o initcalls.o \
regwin_patch.o cacheA.o nocache.o
LEONBARE_THREADS = liblbthread.a
LEONBARE_THREADS_OBJS = kernel.o kernel_debug.o kernel_debug_var.o kernel_context.o \
kernel_mutex.o kernel_thread.o kernel_sched.o kernel_queue.o \
kernel_mm.o
LOCOREATEXIT = locore_atexit.o
LEON_SMALLC = libsmall.a
PNP=pnpinit.o
PNP_S=pnpinit_simple.o
LEON_ALL = $(LEON_BSP) $(LEON_SMALLC) $(LEONBARE_THREADS) $(PNP) $(PNP_S) crti.o crtn.o
LOCORESVT = locore_svt.o
LOCOREMVT = locore_mvt.o
CRT0 = crt0.o
OBJS = close.o fstat.o getpid.o isatty.o kill.o \
lseek.o open.o print.o putnum.o read.o sbrk.o stat.o \
unlink.o write.o io.o kernel.o kernel_debug.o kernel_debug_var.o kernel_context.o
#link.o
#### Host specific Makefile fragment comes in here.
@host_makefile_frag@
all: stmp-targ-include $(CRT0) $(LOCOREMVT) $(LOCORESVT) $(LEON_ALL)
$(CRT0): $(srcdir)/crt0.S
$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -o $@ -c $(srcdir)/crt0.S
$(LEON_BSP): $(OBJS) $(LEON_OBJS)
@rm -f $@
${AR} ${AR_FLAGS} $@ $(OBJS) $(LEON_OBJS)
${RANLIB} $@
$(LEON_SMALLC): $(LOCOREATEXIT)
@rm -f $@
${AR} ${AR_FLAGS} $@ $(LOCOREATEXIT)
${RANLIB} $@
$(LEONBARE_THREADS): $(LEONBARE_THREADS_OBJS)
@rm -f $@
${AR} ${AR_FLAGS} $@ $(LEONBARE_THREADS_OBJS)
${RANLIB} $@
install:
$(INSTALL_DATA) $(CRT0) $(DESTDIR)$(tooldir)/lib${MULTISUBDIR}/$(CRT0)
$(INSTALL_DATA) $(LOCORESVT) $(DESTDIR)$(tooldir)/lib${MULTISUBDIR}/$(LOCORESVT)
$(INSTALL_DATA) $(LOCOREMVT) $(DESTDIR)$(tooldir)/lib${MULTISUBDIR}/$(LOCOREMVT)
$(INSTALL_DATA) $(PNP) $(DESTDIR)$(tooldir)/lib${MULTISUBDIR}/$(PNP)
$(INSTALL_DATA) $(PNP_S) $(DESTDIR)$(tooldir)/lib${MULTISUBDIR}/$(PNP_S)
$(INSTALL_DATA) $(LEON_BSP) $(DESTDIR)$(tooldir)/lib${MULTISUBDIR}/$(LEON_BSP)
$(INSTALL_DATA) $(LEON_SMALLC) $(DESTDIR)$(tooldir)/lib${MULTISUBDIR}/$(LEON_SMALLC)
$(INSTALL_DATA) $(LEONBARE_THREADS) $(DESTDIR)$(tooldir)/lib${MULTISUBDIR}/$(LEONBARE_THREADS)
if [ -z "$(MULTISUBDIR)" ]; then \
$(mkinstalldirs) $(DESTDIR)$(tooldir)/include/asm-leon; \
for i in $(srcdir)/asm-leon/*.h; do \
if [ -f $$i ]; then \
$(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/include/asm-leon/`basename $$i` || exit $$?; \
else true; fi ; \
done; \
else true; fi
stmp-targ-include: $(srcdir)/asm-leon/*
if [ -d ${objroot}/newlib/targ-include/asm-leon ]; then \
rm -rf ${objroot}/newlib/targ-include/asm-leon; \
else true; fi ; \
if [ -d ${objroot}/newlib/targ-include ]; then \
cp -r $(srcdir)/asm-leon ${objroot}/newlib/targ-include/asm-leon; \
else true; fi ; \
touch $@
all-recursive: stmp-targ-include
# Make a simple test case to test the linker script, startup code, and
# I/O code
#
test:
@echo Done...
# target specific makefile fragment comes in here.
# @target_makefile_frag@
clean mostlyclean:
rm -f *.o *.a *.map *.x
distclean maintainer-clean realclean: clean
rm -f Makefile config.cache config.log config.status
.PHONY: info dvi doc install-info clean-info
info doc dvi:
install-info:
clean-info:
# target specific makefile fragment comes in here.
@target_makefile_frag@
Makefile: Makefile.in config.status @host_makefile_frag_path@ @target_makefile_frag_path@
$(SHELL) config.status
config.status: configure
$(SHELL) config.status --recheck

View file

@ -0,0 +1,30 @@
/*
* Copyright (c) 2011 Aeroflex Gaisler
*
* BSD license:
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
void
_exit (int status)
{
asm ("mov 1, %g1; ta 0;\n");
}

View file

@ -0,0 +1,404 @@
# 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])

View file

@ -0,0 +1,152 @@
/*
* Copyright (c) 2011 Aeroflex Gaisler
*
* BSD license:
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include <asm-leon/leon.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*#define DEBUG_CONFIG*/
/* Structure containing address to devices found on the Amba Plug&Play bus */
amba_confarea_type amba_conf;
/* Pointers to Interrupt Controller configuration registers */
volatile LEON3_IrqCtrl_Regs_Map *LEON3_IrqCtrl_Regs = 0;
volatile LEON3_GpTimer_Regs_Map *LEON3_GpTimer_Regs = 0;
unsigned long LEON3_GpTimer_Irq = 0;
unsigned long
amba_find_apbslv_addr (unsigned long vendor, unsigned long device,
unsigned long *irq)
{
unsigned int i, conf, iobar;
for (i = 0; i < amba_conf.apbslv.devnr; i++)
{
conf = amba_get_confword (amba_conf.apbslv, i, 0);
if ((amba_vendor (conf) == vendor) && (amba_device (conf) == device))
{
if (irq)
{
*irq = amba_irq (conf);
}
iobar = amba_apb_get_membar (amba_conf.apbslv, i);
return amba_iobar_start (amba_conf.apbslv.apbmst[i], iobar);
}
}
return 0;
}
#define amba_insert_device(tab, address) do { \
if (LEON3_BYPASS_LOAD_PA(address)) { \
(tab)->addr[(tab)->devnr] = (address); \
(tab)->devnr ++; \
} \
} while(0)
#define amba_insert_apb_device(tab, address, apbmst, idx) do { \
if (*(address)) { \
(tab)->addr[(tab)->devnr] = (address); \
(tab)->apbmst[(tab)->devnr] = (apbmst); \
(tab)->apbmstidx[(tab)->devnr] = (idx); \
(tab)->devnr ++; \
} \
} while(0)
/*
* Used to scan system bus. Probes for AHB masters, AHB slaves and
* APB slaves. Addresses to configuration areas of the AHB masters,
* AHB slaves, APB slaves and APB master are storeds in
* amba_ahb_masters, amba_ahb_slaves and amba.
*/
int amba_init_done = 0;
void
amba_init (void)
{
unsigned int *cfg_area; /* address to configuration area */
unsigned int mbar, conf, apbmst;
int i, j, idx = 0;
if (amba_init_done)
{
return;
}
amba_init_done = 1;
memset (&amba_conf, 0, sizeof (amba_conf));
/*amba_conf.ahbmst.devnr = 0; amba_conf.ahbslv.devnr = 0; amba_conf.apbslv.devnr = 0; */
cfg_area = (unsigned int *) (LEON3_IO_AREA | LEON3_CONF_AREA);
for (i = 0; i < LEON3_AHB_MASTERS; i++)
{
amba_insert_device (&amba_conf.ahbmst, cfg_area);
cfg_area += LEON3_AHB_CONF_WORDS;
}
cfg_area =
(unsigned int *) (LEON3_IO_AREA | LEON3_CONF_AREA |
LEON3_AHB_SLAVE_CONF_AREA);
for (i = 0; i < LEON3_AHB_SLAVES; i++)
{
amba_insert_device (&amba_conf.ahbslv, cfg_area);
cfg_area += LEON3_AHB_CONF_WORDS;
}
for (i = 0; i < amba_conf.ahbslv.devnr; i++)
{
conf = amba_get_confword (amba_conf.ahbslv, i, 0);
mbar = amba_ahb_get_membar (amba_conf.ahbslv, i, 0);
if ((amba_vendor (conf) == VENDOR_GAISLER)
&& (amba_device (conf) == GAISLER_APBMST))
{
int k;
/*amba_conf.apbmst = */ apbmst = amba_membar_start (mbar);
cfg_area = (unsigned int *) (apbmst | LEON3_CONF_AREA);
for (j = amba_conf.apbslv.devnr, k = 0;
j < AMBA_MAXAPB_DEVS && k < AMBA_MAXAPB_DEVS_PERBUS; j++, k++)
{
amba_insert_apb_device (&amba_conf.apbslv, cfg_area, apbmst,
idx);
cfg_area += LEON3_APB_CONF_WORDS;
}
idx++;
}
}
/* Find LEON3 Interrupt controler */
LEON3_IrqCtrl_Regs = (volatile LEON3_IrqCtrl_Regs_Map *)
amba_find_apbslv_addr (VENDOR_GAISLER, GAISLER_IRQMP, 0);
LEON3_GpTimer_Regs = (volatile LEON3_GpTimer_Regs_Map *)
amba_find_apbslv_addr (VENDOR_GAISLER, GAISLER_GPTIMER,
&LEON3_GpTimer_Irq);
if (LEON3_IrqCtrl_Regs)
{
LEON3_BYPASS_STORE_PA (&(LEON3_IrqCtrl_Regs->mask[0]), 0);
}
}

View file

@ -0,0 +1,147 @@
/*
* Copyright (c) 2011 Aeroflex Gaisler
*
* BSD license:
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include <asm-leon/leon.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*#define DEBUG_CONFIG*/
/* Structure containing address to devices found on the Amba Plug&Play bus */
extern amba_confarea_type amba_conf;
#ifdef DEBUG_CONFIG
#define printk(fmt,arg...) \
{ char c[1024]; \
sprintf(c,fmt,##arg); \
DEBUG_puts(c); \
}
#else
#define printk(fmt,arg...)
#endif
static void
vendor_dev_string (unsigned long conf, char *vendorbuf, char *devbuf)
{
int vendor = amba_vendor (conf);
int dev = amba_device (conf);
char *devstr;
char *vendorstr;
#ifdef DEBUG_CONFIG
sprintf (vendorbuf, "Unknown vendor %2x", vendor);
sprintf (devbuf, "Unknown device %2x", dev);
vendorstr = vendor_id2str (vendor);
if (vendorstr)
{
sprintf (vendorbuf, "%s", vendorstr);
}
devstr = device_id2str (vendor, dev);
if (devstr)
{
sprintf (devbuf, "%s", devstr);
}
#else
vendorbuf[0] = 0;
devbuf[0] = 0;
#endif
}
void
amba_prinf_config (void)
{
char devbuf[128];
char vendorbuf[128];
unsigned int conf;
int i = 0;
int j = 0;
unsigned int addr;
unsigned int m;
printk (" Vendors Slaves\n");
printk ("Ahb masters:\n");
i = 0;
while (i < amba_conf.ahbmst.devnr)
{
conf = amba_get_confword (amba_conf.ahbmst, i, 0);
vendor_dev_string (conf, vendorbuf, devbuf);
printk ("%2i(%2x:%3x|%2i): %16s %16s \n", i, amba_vendor (conf),
amba_device (conf), amba_irq (conf), vendorbuf, devbuf);
for (j = 0; j < 4; j++)
{
m = amba_ahb_get_membar (amba_conf.ahbmst, i, j);
if (m)
{
addr = amba_membar_start (m);
printk (" +%i: 0x%x \n", j, addr);
}
}
i++;
}
printk ("Ahb slaves:\n");
i = 0;
while (i < amba_conf.ahbslv.devnr)
{
conf = amba_get_confword (amba_conf.ahbslv, i, 0);
vendor_dev_string (conf, vendorbuf, devbuf);
printk ("%2i(%2x:%3x|%2i): %16s %16s \n", i, amba_vendor (conf),
amba_device (conf), amba_irq (conf), vendorbuf, devbuf);
for (j = 0; j < 4; j++)
{
m = amba_ahb_get_membar (amba_conf.ahbslv, i, j);
if (m)
{
addr = amba_membar_start (m);
if (amba_membar_type (m) == AMBA_TYPE_AHBIO)
{
addr = AMBA_TYPE_AHBIO_ADDR (addr);
}
else if (amba_membar_type (m) == AMBA_TYPE_APBIO)
{
printk ("Warning: apbio membar\n");
}
printk (" +%i: 0x%x (raw:0x%x)\n", j, addr, m);
}
}
i++;
}
printk ("Apb slaves:\n");
i = 0;
while (i < amba_conf.apbslv.devnr)
{
conf = amba_get_confword (amba_conf.apbslv, i, 0);
vendor_dev_string (conf, vendorbuf, devbuf);
printk ("%2i(%2x:%3x|%2i): %16s %16s \n", i, amba_vendor (conf),
amba_device (conf), amba_irq (conf), vendorbuf, devbuf);
m = amba_apb_get_membar (amba_conf.apbslv, i);
addr = amba_iobar_start (amba_conf.apbslv.apbmst[i], m);
printk (" +%2i: 0x%x (raw:0x%x) \n", 0, addr, m);
i++;
}
}

View file

@ -0,0 +1,119 @@
/*
* Copyright (c) 2011 Aeroflex Gaisler
*
* BSD license:
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include <asm-leon/leon.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*#define DEBUG_CONFIG*/
/* Structure containing address to devices found on the Amba Plug&Play bus */
extern amba_confarea_type amba_conf;
/*collect apb slaves*/
int
amba_get_free_apbslv_devices (int vendor, int device, amba_apb_device * dev,
int nr)
{
unsigned int i, conf, iobar, j = 0;
#ifdef DEBUG_CONFIG
printf ("Apbslv: search for apdslv devices\n");
#endif
for (i = 0; i < amba_conf.apbslv.devnr && j < nr; i++)
{
conf = amba_get_confword (amba_conf.apbslv, i, 0);
#ifdef DEBUG_CONFIG
printf ("Apbslv: check(%x:%x)==(%x:%x)\n", vendor, device,
amba_vendor (conf), amba_device (conf));
#endif
if ((amba_vendor (conf) == vendor) && (amba_device (conf) == device))
{
if (!(amba_conf.apbslv.allocbits[i / 32] & (1 << (i & (32 - 1)))))
{
#ifdef DEBUG_CONFIG
printf ("Apbslv: alloc device idx %i (%x:%x)\n",
j, vendor, device);
#endif
amba_conf.apbslv.allocbits[i / 32] |= (1 << (i & (32 - 1)));
dev[j].irq = amba_irq (conf);
iobar = amba_apb_get_membar (amba_conf.apbslv, i);
dev[j].start =
amba_iobar_start (amba_conf.apbslv.apbmst[i], iobar);
#ifdef DEBUG_CONFIG
printf (" +bar: 0x%x \n", k, dev[j].start);
#endif
j++;
}
}
}
return j;
}
/*collect ahb slaves*/
int
amba_get_free_ahbslv_devices (int vendor, int device, amba_ahb_device * dev,
int nr)
{
unsigned int addr, i, conf, iobar, j = 0, k;
#ifdef DEBUG_CONFIG
printf ("Ahbslv: search for ahdslv devices\n");
#endif
for (i = 0; i < amba_conf.ahbslv.devnr && j < nr; i++)
{
conf = amba_get_confword (amba_conf.ahbslv, i, 0);
#ifdef DEBUG_CONFIG
printf ("Ahbslv: check(%x:%x)==(%x:%x)\n", vendor, device,
amba_vendor (conf), amba_device (conf));
#endif
if ((amba_vendor (conf) == vendor) && (amba_device (conf) == device))
{
if (!(amba_conf.ahbslv.allocbits[i / 32] & (1 << (i & (32 - 1)))))
{
#ifdef DEBUG_CONFIG
printf ("Ahbslv: alloc device idx %i (%x:%x)\n",
j, vendor, device);
#endif
amba_conf.ahbslv.allocbits[i / 32] |= (1 << (i & (32 - 1)));
dev[j].irq = amba_irq (conf);
for (k = 0; k < 4; k++)
{
iobar = amba_ahb_get_membar (amba_conf.ahbslv, i, k);
addr = amba_membar_start (iobar);
if (amba_membar_type (iobar) == AMBA_TYPE_AHBIO)
{
addr = AMBA_TYPE_AHBIO_ADDR (addr);
}
dev[j].start[k] = addr;
#ifdef DEBUG_CONFIG
printf (" +%i: 0x%x \n", k, dev[j].start[k]);
#endif
}
j++;
}
}
}
return j;
}

View file

@ -0,0 +1,96 @@
/*
* Copyright (c) 2011 Aeroflex Gaisler
*
* BSD license:
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include <asm-leon/leon.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
unsigned int
leon3_ahbslv_scan (register unsigned int vendor, register unsigned int driver)
{
register unsigned int conf, i, *confp;
register unsigned int cfg_area =
(unsigned int) (LEON3_IO_AREA | LEON3_CONF_AREA |
LEON3_AHB_SLAVE_CONF_AREA);
for (i = 0; i < LEON3_AHB_SLAVES; i++)
{
confp = (unsigned int *) (cfg_area + (i * LEON3_AHB_CONF_WORDS * 4));
conf = *confp;
if ((amba_vendor (conf) == vendor) && (amba_device (conf) == driver))
{
return (unsigned int) confp;
}
}
return 0;
}
unsigned int
leon3_getbase (register unsigned int *mbar, register unsigned int iobase,
int *irq)
{
register unsigned int conf = mbar[1];
return (unsigned int) (((iobase & 0xfff00000) |
((conf & 0xfff00000) >> 12)) & (((conf & 0x0000fff0)
<< 4) |
0xfff00000));
}
unsigned int
leon3_apbslv_scan (register unsigned int base,
register unsigned int vendor,
register unsigned int driver,
amba_apb_device * apbdevs, int c)
{
register unsigned int conf, i, *confp;
int j = 0;
for (i = 0; i < LEON3_APB_SLAVES; i++)
{
confp = (unsigned int *) (base + (i * LEON3_APB_CONF_WORDS * 4));
conf = *confp;
if ((amba_vendor (conf) == vendor) && (amba_device (conf) == driver))
{
if (j < c)
{
apbdevs[j].start = leon3_getbase (confp, base, 0);
apbdevs[j].irq = amba_irq (conf);
j++;
}
}
}
return j;
}
unsigned int
leon3_getapbbase (register unsigned int vendor,
register unsigned int driver,
amba_apb_device * apbdevs, int c)
{
unsigned int apb = leon3_ahbslv_scan (VENDOR_GAISLER, GAISLER_APBMST);
apb = (*(unsigned int *) (apb + 16)) & LEON3_IO_AREA;
apb |= LEON3_CONF_AREA;
return leon3_apbslv_scan (apb, vendor, driver, apbdevs, c);
}

View file

@ -0,0 +1,429 @@
/*
* Copyright (c) 2011 Aeroflex Gaisler
*
* BSD license:
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef _LEON3_AMBA_H__
#define _LEON3_AMBA_H__
#define LEON3_IO_AREA 0xfff00000
#define LEON3_CONF_AREA 0xff000
#define LEON3_AHB_SLAVE_CONF_AREA (1 << 11)
#define LEON3_AHB_CONF_WORDS 8
#define LEON3_APB_CONF_WORDS 2
#define LEON3_AHB_MASTERS 8
#define LEON3_AHB_SLAVES 8
#define LEON3_APB_SLAVES 16
#define LEON3_APBUARTS 8
/* Vendor codes */
#define VENDOR_GAISLER 1
#define VENDOR_PENDER 2
#define VENDOR_ESA 4
#define VENDOR_OPENCORES 8
/* Gaisler Research device id's */
#define GAISLER_LEON3 0x003
#define GAISLER_LEON3DSU 0x004
#define GAISLER_ETHAHB 0x005
#define GAISLER_APBMST 0x006
#define GAISLER_AHBUART 0x007
#define GAISLER_SRCTRL 0x008
#define GAISLER_SDCTRL 0x009
#define GAISLER_APBUART 0x00c
#define GAISLER_IRQMP 0x00d
#define GAISLER_AHBRAM 0x00e
#define GAISLER_GPTIMER 0x011
#define GAISLER_PCITRG 0x012
#define GAISLER_PCISBRG 0x013
#define GAISLER_PCIFBRG 0x014
#define GAISLER_PCITRACE 0x015
#define GAISLER_PCIDMA 0x016
#define GAISLER_AHBTRACE 0x017
#define GAISLER_ETHDSU 0x018
#define GAISLER_PIOPORT 0x01A
#define GAISLER_SPACEWIRE 0x01f
#define GAISLER_ETHMAC 0x01d
#define GAISLER_EHCI 0x026
#define GAISLER_UHCI 0x027
#define GAISLER_L2TIME 0xffd /* internal device: leon2 timer */
#define GAISLER_L2C 0xffe /* internal device: leon2compat */
#define GAISLER_PLUGPLAY 0xfff /* internal device: plug & play configarea */
#ifndef __ASSEMBLER__
extern inline char *
gaisler_device_str (int id)
{
switch (id)
{
case GAISLER_LEON3:
return "GAISLER_LEON3";
case GAISLER_LEON3DSU:
return "GAISLER_LEON3DSU";
case GAISLER_ETHAHB:
return "GAISLER_ETHAHB";
case GAISLER_APBMST:
return "GAISLER_APBMST";
case GAISLER_AHBUART:
return "GAISLER_AHBUART";
case GAISLER_SRCTRL:
return "GAISLER_SRCTRL";
case GAISLER_SDCTRL:
return "GAISLER_SDCTRL";
case GAISLER_APBUART:
return "GAISLER_APBUART";
case GAISLER_IRQMP:
return "GAISLER_IRQMP";
case GAISLER_AHBRAM:
return "GAISLER_AHBRAM";
case GAISLER_GPTIMER:
return "GAISLER_GPTIMER";
case GAISLER_PCITRG:
return "GAISLER_PCITRG";
case GAISLER_PCISBRG:
return "GAISLER_PCISBRG";
case GAISLER_PCIFBRG:
return "GAISLER_PCIFBRG";
case GAISLER_PCITRACE:
return "GAISLER_PCITRACE";
case GAISLER_AHBTRACE:
return "GAISLER_AHBTRACE";
case GAISLER_ETHDSU:
return "GAISLER_ETHDSU";
case GAISLER_PIOPORT:
return "GAISLER_PIOPORT";
case GAISLER_SPACEWIRE:
return "GAISLER_SPACEWIRE";
case GAISLER_L2TIME:
return "GAISLER_L2TIME";
case GAISLER_L2C:
return "GAISLER_L2C";
case GAISLER_PLUGPLAY:
return "GAISLER_PLUGPLAY";
default:
break;
}
return 0;
}
#endif
/* European Space Agency device id's */
#define ESA_LEON2 0x002
#define ESA_MCTRL 0x00f
#ifndef __ASSEMBLER__
extern inline char *
esa_device_str (int id)
{
switch (id)
{
case ESA_LEON2:
return "ESA_LEON2";
case ESA_MCTRL:
return "ESA_MCTRL";
default:
break;
}
return 0;
}
#endif
/* Opencores device id's */
#define OPENCORES_PCIBR 0x4
#define OPENCORES_ETHMAC 0x5
#ifndef __ASSEMBLER__
extern inline char *
opencores_device_str (int id)
{
switch (id)
{
case OPENCORES_PCIBR:
return "OPENCORES_PCIBR";
case OPENCORES_ETHMAC:
return "OPENCORES_ETHMAC";
default:
break;
}
return 0;
}
extern inline char *
device_id2str (int vendor, int id)
{
switch (vendor)
{
case VENDOR_GAISLER:
return gaisler_device_str (id);
case VENDOR_ESA:
return esa_device_str (id);
case VENDOR_OPENCORES:
return opencores_device_str (id);
case VENDOR_PENDER:
default:
break;
}
return 0;
}
extern inline char *
vendor_id2str (int vendor)
{
switch (vendor)
{
case VENDOR_GAISLER:
return "VENDOR_GAISLER";
case VENDOR_ESA:
return "VENDOR_ESA";
case VENDOR_OPENCORES:
return "VENDOR_OPENCORES";
case VENDOR_PENDER:
return "VENDOR_PENDER";
default:
break;
}
return 0;
}
#endif
/* Vendor codes */
/*
*
* Macros for manipulating Configuration registers
*
*/
#define LEON3_BYPASS_LOAD_PA(x) (*((unsigned long*)x))
#define LEON3_BYPASS_STORE_PA(x,v) (*((unsigned long*)x) = (v))
#define amba_get_confword(tab, index, word) (*((tab).addr[(index)]+(word)))
#define amba_vendor(x) (((x) >> 24) & 0xff)
#define amba_device(x) (((x) >> 12) & 0xfff)
#define amba_ahb_get_membar(tab, index, nr) (*((tab).addr[(index)]+4+(nr)))
#define amba_apb_get_membar(tab, index) (*((tab).addr[(index)]+1))
#define amba_membar_start(mbar) (((mbar) & 0xfff00000) & (((mbar) & 0xfff0) << 16))
#define amba_iobar_start(base, iobar) ((base) | ((((iobar) & 0xfff00000)>>12) & (((iobar) & 0xfff0)<<4)) )
#define amba_irq(conf) ((conf) & 0xf)
#define amba_membar_type(mbar) ((mbar) & 0xf)
#define AMBA_TYPE_APBIO 0x1
#define AMBA_TYPE_MEM 0x2
#define AMBA_TYPE_AHBIO 0x3
#define AMBA_TYPE_AHBIO_ADDR(addr) (LEON3_IO_AREA | ((addr) >> 12))
#ifndef __ASSEMBLER__
/*
* The following defines the bits in the LEON UART Status Registers.
*/
#define LEON_REG_UART_STATUS_DR 0x00000001 /* Data Ready */
#define LEON_REG_UART_STATUS_TSE 0x00000002 /* TX Send Register Empty */
#define LEON_REG_UART_STATUS_THE 0x00000004 /* TX Hold Register Empty */
#define LEON_REG_UART_STATUS_BR 0x00000008 /* Break Error */
#define LEON_REG_UART_STATUS_OE 0x00000010 /* RX Overrun Error */
#define LEON_REG_UART_STATUS_PE 0x00000020 /* RX Parity Error */
#define LEON_REG_UART_STATUS_FE 0x00000040 /* RX Framing Error */
#define LEON_REG_UART_STATUS_ERR 0x00000078 /* Error Mask */
/*
* The following defines the bits in the LEON UART Ctrl Registers.
*/
#define LEON_REG_UART_CTRL_RE 0x00000001 /* Receiver enable */
#define LEON_REG_UART_CTRL_TE 0x00000002 /* Transmitter enable */
#define LEON_REG_UART_CTRL_RI 0x00000004 /* Receiver interrupt enable */
#define LEON_REG_UART_CTRL_TI 0x00000008 /* Transmitter interrupt enable */
#define LEON_REG_UART_CTRL_PS 0x00000010 /* Parity select */
#define LEON_REG_UART_CTRL_PE 0x00000020 /* Parity enable */
#define LEON_REG_UART_CTRL_FL 0x00000040 /* Flow control enable */
#define LEON_REG_UART_CTRL_LB 0x00000080 /* Loop Back enable */
#define LEON3_GPTIMER_EN 1
#define LEON3_GPTIMER_RL 2
#define LEON3_GPTIMER_LD 4
#define LEON3_GPTIMER_IRQEN 8
#define LEON3_GPTIMER_IP 0x10
#define LEON3_GPTIMER_CONFIG_TIMERMASK 0x7
#define LEON3_GPTIMER_CONFIG_SEPERATE (1<<8)
typedef struct
{
volatile unsigned int ilevel;
volatile unsigned int ipend;
volatile unsigned int iforce;
volatile unsigned int iclear;
volatile unsigned int notused00;
volatile unsigned int notused01;
volatile unsigned int notused02;
volatile unsigned int notused03;
volatile unsigned int notused10;
volatile unsigned int notused11;
volatile unsigned int notused12;
volatile unsigned int notused13;
volatile unsigned int notused20;
volatile unsigned int notused21;
volatile unsigned int notused22;
volatile unsigned int notused23;
volatile unsigned int mask[16];
} LEON3_IrqCtrl_Regs_Map;
extern volatile LEON3_IrqCtrl_Regs_Map *LEON3_IrqCtrl_Regs; /* in amba.c */
typedef struct
{
volatile unsigned int data;
volatile unsigned int status;
volatile unsigned int ctrl;
volatile unsigned int scaler;
} LEON23_APBUART_Regs_Map;
extern volatile LEON23_APBUART_Regs_Map *leon23_uarts[2]; /* in console.c */
extern unsigned int leon23_irqs[2]; /* in console.c */
typedef struct
{
volatile unsigned int val;
volatile unsigned int rld;
volatile unsigned int ctrl;
volatile unsigned int unused;
} LEON3_GpTimerElem_Regs_Map;
typedef struct
{
volatile unsigned int scalar;
volatile unsigned int scalar_reload;
volatile unsigned int config;
volatile unsigned int unused;
volatile LEON3_GpTimerElem_Regs_Map e[8];
} LEON3_GpTimer_Regs_Map;
#define LEON3_GPTIMER_CONFIG_NRTIMERS(c) ((c)->config & 0x7)
int Timer_getTimer1 (unsigned int **count, unsigned int **reload, unsigned int **ctrl); /* in timer.c */
int Timer_getTimer2 (unsigned int **count, unsigned int **reload, unsigned int **ctrl); /* in timer.c */
extern volatile LEON3_GpTimer_Regs_Map *LEON3_GpTimer_Regs;
extern unsigned long LEON3_GpTimer_Irq;
typedef struct
{
volatile unsigned int iodata;
volatile unsigned int ioout;
volatile unsigned int iodir;
volatile unsigned int irqmask;
volatile unsigned int irqpol;
volatile unsigned int irqedge;
} LEON3_IOPORT_Regs_Map;
/*
* Types and structure used for AMBA Plug & Play bus scanning
*/
extern int amba_init_done;
#define AMBA_MAXAPB_DEVS 64
#define AMBA_MAXAPB_DEVS_PERBUS 16
typedef struct amba_device_table
{
int devnr; /* numbrer of devices on AHB or APB bus */
unsigned int *addr[16]; /* addresses to the devices configuration tables */
unsigned int allocbits[1]; /* 0=unallocated, 1=allocated driver */
} amba_device_table;
typedef struct amba_apbslv_device_table
{
int devnr; /* number of devices on AHB or APB bus */
unsigned int *addr[AMBA_MAXAPB_DEVS]; /* addresses to the devices configuration tables */
unsigned int apbmst[AMBA_MAXAPB_DEVS]; /* apb master if a entry is a apb slave */
unsigned int apbmstidx[AMBA_MAXAPB_DEVS]; /* apb master idx if a entry is a apb slave */
unsigned int allocbits[4]; /* 0=unallocated, 1=allocated driver */
} amba_apbslv_device_table;
typedef struct amba_confarea_type
{
amba_device_table ahbmst;
amba_device_table ahbslv;
amba_apbslv_device_table apbslv;
/*unsigned int apbmst; */
} amba_confarea_type;
extern unsigned long amba_find_apbslv_addr (unsigned long vendor,
unsigned long device,
unsigned long *irq);
// collect apb slaves
typedef struct amba_apb_device
{
unsigned int start, irq;
} amba_apb_device;
extern int amba_get_free_apbslv_devices (int vendor, int device,
amba_apb_device * dev, int nr);
// collect ahb slaves
typedef struct amba_ahb_device
{
unsigned int start[4], irq;
} amba_ahb_device;
extern int amba_get_free_ahbslv_devices (int vendor, int device,
amba_ahb_device * dev, int nr);
/*amba_scan.c*/
unsigned int leon3_getapbbase (register unsigned int vendor,
register unsigned int driver,
amba_apb_device * apbdevs, int c);
#endif //!__ASSEMBLER__
#endif

View file

@ -0,0 +1,54 @@
/*
* Copyright (c) 2011 Aeroflex Gaisler
*
* BSD license:
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef _INCLUDE_LEON_ASMMACRO_h
#define _INCLUDE_LEON_ASMMACRO_h
#include <asm-leon/leonstack.h>
/* All trap entry points _must_ begin with this macro or else you
* lose. It makes sure the kernel has a proper window so that
* c-code can be called.
*/
#define SAVE_ALL_HEAD \
sethi %hi(leonbare_trapsetup), %l4; \
jmpl %l4 + %lo(leonbare_trapsetup), %l6;
#define SAVE_ALL \
SAVE_ALL_HEAD \
nop;
#define SAVE_ALL_FAST(l) \
set l-8, %l6; \
sethi %hi(leonbare_trapsetup_fast), %l4; \
jmpl %l4 + %lo(leonbare_trapsetup_fast), %g0; \
nop;
/* All traps low-level code here must end with this macro. */
#define RESTORE_ALL b leonbare_trapreturn; clr %l6;
#define RESTORE_ALL_FAST b leonbare_trapreturn_fast; clr %l6;
#define WRITE_PAUSE nop; nop; nop;
#endif /* !_INCLUDE_LEON_STACK_h */

View file

@ -0,0 +1,45 @@
/*
* Copyright (c) 2011 Aeroflex Gaisler
*
* BSD license:
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef _ASMSPARC_CLOCK_PARAM_H
#define _ASMSPARC_CLOCK_PARAM_H
#include <_ansi.h>
#include <asm-leon/param.h>
#ifndef __ASSEMBLER__
int _EXFUN (gettimeofday, (struct timeval * __p, void *__tz));
int _EXFUN (settimeofday, (const struct timeval *, const struct timezone *));
void do_gettimeofday (struct timeval *tv);
#endif
#define USEC_PER_SEC (1000000L)
#define NSEC_PER_SEC (1000000000L)
#define NSEC_PER_USEC (1000L)
extern unsigned long tick_nsec;
extern unsigned long tick_usec;
#endif

View file

@ -0,0 +1,58 @@
/*
* Copyright (c) 2011 Aeroflex Gaisler
*
* BSD license:
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef H_LEONBARE_CONTEXTSWITCH_H
#define H_LEONBARE_CONTEXTSWITCH_H
/*
* for this version, the index of THREAD_JB_SP must be even !!!
* This way, we can speed up the context switch (using std).
*/
#define THREAD_JB_SP 0 /* aligned */
#define THREAD_JB_PC 1
#define THREAD_JB_SVMASK 3
#define THREAD_JB_MASK 4
#define THREAD_JB_FP 5
#define THREAD_JB_I7 6
#define THREAD_JB_PSR 8 /* aligned */
#define THREAD_JB_WIM 9
#define THREAD_JB_FPUCTX 10
#ifndef __ASSEMBLER__
extern unsigned long fpustate_current;
typedef int threadctx_t[14 + 2] __attribute__ ((aligned (8)));
int thread_setjmp (threadctx_t env, int val);
void thread_longjmp (threadctx_t env, int val);
void _switch_to (threadctx_t env, int val);
#endif /* __ASSEMBLER__ */
#endif

View file

@ -0,0 +1,79 @@
/*
* Copyright (c) 2011 Aeroflex Gaisler
*
* BSD license:
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef _INCLUDE_LEON_ELFMACRO_h
#define _INCLUDE_LEON_ELFMACRO_h
#ifdef __ASSEMBLER__
#define _TEXT_SEG_ALIGN 4
#define _LIBLEONBARE_TEXT_SEG_START \
.text ; .balign _TEXT_SEG_ALIGN
#define FUNC_BEGIN(func) func:
#define FUNC_END(func) .size func, . - func
#define GTEXT(sym) sym ; .type sym,@function
#define GDATA(sym) sym ; .type sym,@object
#define FUNC_EXPORT(func) .globl GTEXT(func)
#define DATA_EXPORT(var) .globl GDATA(var)
#define FUNC_IMPORT(func) .extern FUNC(func)
#define DATA_IMPORT(var) .extern var
#endif
#ifndef weak_alias
/* Define ALIASNAME as a weak alias for NAME. */
# define weak_alias(name, aliasname) _weak_alias (name, aliasname)
# define _weak_alias(name, aliasname) \
extern __typeof (name) aliasname __attribute__ ((weak, alias (#name)));
#endif
#ifndef strong_alias
/* Define ALIASNAME as a strong alias for NAME. */
# define strong_alias(name, aliasname) _strong_alias(name, aliasname)
# define _strong_alias(name, aliasname) \
extern __typeof (name) aliasname __attribute__ ((alias (#name)));
#endif
#ifndef __ASSEMBLER__
typedef int (*initcall_t) (void);
extern initcall_t __leonbare_initcall_start;
extern initcall_t __leonbare_initcall_end;
#endif
#if __GNUC_MINOR__ >= 3
# define __attribute_used__ __attribute__((__used__))
#else
# define __attribute_used__ __attribute__((__unused__))
#endif
#define __define_initcall(level,fn) \
static initcall_t __initcall_##fn __attribute_used__ \
__attribute__((__section__(".initcall" level ".init"))) = fn
#define libc_initcall(fn) __define_initcall("1",fn)
#endif /* !_INCLUDE_LEON_STACK_h */

View file

@ -0,0 +1,39 @@
/*
* Copyright (c) 2011 Aeroflex Gaisler
*
* BSD license:
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef __LEONBARE_HEAD_H
#define __LEONBARE_HEAD_H
/* This is for hard interrupts from level 1-14, 15 is non-maskable (nmi) and
* gets handled with another macro.
*/
#define TRAP_ENTRY_INTERRUPT(int_level) \
mov int_level, %l7; rd %psr, %l0; b leonbare_irq_entry; rd %wim, %l3;
#define TRAP_ENTRY(H) \
rd %psr, %l0; b H; rd %wim, %l3; nop;
#endif /* __SPARC_HEAD_H */

View file

@ -0,0 +1,101 @@
/*
* Copyright (c) 2011 Aeroflex Gaisler
*
* BSD license:
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef _LEON_CATCHIRQ_HANDLER_H_
#define _LEON_CATCHIRQ_HANDLER_H_
#include <asm-leon/leon.h>
#include <asm-leon/queue.h>
/*#include <sys/fsu_pthread_queue.h>*/
#include <asm-leon/leoncompat.h>
#include <asm-leon/leonstack.h>
#ifndef __ASSEMBLER__
struct pt_regs;
typedef int (*irqhandler) (int, void *, struct leonbare_pt_regs *);
struct irqaction
{
irqhandler handler;
unsigned long flags;
void *dev_id;
struct irqaction *next;
};
#define INIT_IRQACTION { 0,0,0,0 }
struct irqmp_type
{
int *addr;
int eirq;
};
extern void chained_catch_interrupt (int irq, struct irqaction *a);
extern int catch_interrupt (int func, int irq);
typedef int (*schedulehandler) (struct leonbare_pt_regs *);
extern schedulehandler schedule_callback;
typedef int (*tickerhandler) (struct leonbare_pt_regs *);
extern tickerhandler ticker_callback;
extern int leonbare_hz;
extern int nestcount;
extern int no_inirq_check;
extern unsigned long force_noalarm;
extern void (*handler_irq_pre) (void);
extern void (*handler_irq_post) (void);
extern void leonbare_enable_traps (unsigned long old_flags);
extern unsigned long leonbare_disable_traps ();
extern void leonbare_flush_windows ();
static inline void
leonbare_enable_irq (int irq)
{
unsigned int old, irqmask = 1 << irq;
old = leonbare_disable_traps ();
//---------------------
switch (LEONCOMPAT_VERSION)
{
case 3:
default:
LEON3_IrqCtrl_Regs->mask[0] = LEON3_IrqCtrl_Regs->mask[0] | irqmask;
break;
}
//---------------------
leonbare_enable_traps (old);
}
typedef int (*pendinghandler) (void *);
struct pendingaction
{
TAILQ_ENTRY (pendingaction) next;
pendinghandler handler;
void *arg;
};
#endif
#endif

View file

@ -0,0 +1,104 @@
/*
* Copyright (c) 2011 Aeroflex Gaisler
*
* BSD license:
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef _LINUX_JIFFIES_H
#define _LINUX_JIFFIES_H
#include <asm-leon/types.h>
#include <asm-leon/clock.h>
#include <asm-leon/linkage.h>
/* Suppose we want to devide two numbers NOM and DEN: NOM/DEN, the we can
* improve accuracy by shifting LSH bits, hence calculating:
* (NOM << LSH) / DEN
* This however means trouble for large NOM, because (NOM << LSH) may no
* longer fit in 32 bits. The following way of calculating this gives us
* some slack, under the following conditions:
* - (NOM / DEN) fits in (32 - LSH) bits.
* - (NOM % DEN) fits in (32 - LSH) bits.
*/
#define SH_DIV(NOM,DEN,LSH) ( ((NOM / DEN) << LSH) \
+ (((NOM % DEN) << LSH) + DEN / 2) / DEN)
/* TICK_NSEC is the time between ticks in nsec assuming real ACTHZ */
#define TICK_NSEC (SH_DIV (1000000UL * 1000, (HZ<<8), 8))
/*
* The 64-bit value is not volatile - you MUST NOT read it
* without sampling the sequence number in xtime_lock.
*/
extern u64 jiffies_64;
extern struct timespec xtime __attribute__ ((aligned (16)));
#define jiffies (*((unsigned long *)(((unsigned long)(&jiffies_64))+4)))
/*
* These inlines deal with timer wrapping correctly. You are
* strongly encouraged to use them
* 1. Because people otherwise forget
* 2. Because if the timer wrap changes in future you won't have to
* alter your driver code.
*
* time_after(a,b) returns true if the time a is after time b.
*
* Do this with "<0" and ">=0" to only test the sign of the result. A
* good compiler would generate better code (and a really good compiler
* wouldn't care). Gcc is currently neither.
*/
#define time_after(a,b) \
(typecheck(unsigned long, a) && \
typecheck(unsigned long, b) && \
((long)(b) - (long)(a) < 0))
#define time_before(a,b) time_after(b,a)
#define time_after_eq(a,b) \
(typecheck(unsigned long, a) && \
typecheck(unsigned long, b) && \
((long)(a) - (long)(b) >= 0))
#define time_before_eq(a,b) time_after_eq(b,a)
/*
* Have the 32 bit jiffies value wrap 5 minutes after boot
* so jiffies wrap bugs show up earlier.
*/
#define INITIAL_JIFFIES ((unsigned long)(unsigned int) (-300*HZ))
static inline void
set_normalized_timespec (struct timespec *ts, time_t sec, long nsec)
{
while (nsec > NSEC_PER_SEC)
{
nsec -= NSEC_PER_SEC;
++sec;
}
while (nsec < 0)
{
nsec += NSEC_PER_SEC;
--sec;
}
ts->tv_sec = sec;
ts->tv_nsec = nsec;
}
#endif

View file

@ -0,0 +1,177 @@
/*
* Copyright (c) 2011 Aeroflex Gaisler
*
* BSD license:
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef _LAMBAPP_H
#define _LAMBAPP_H
/* Include VENDOR and DEVICE definitions */
#include "lambapp_devs.h"
#ifdef __cplusplus
extern "C"
{
#endif
struct ambapp_dev_hdr;
struct ambapp_apb_info;
struct ambapp_ahb_info;
struct ambapp_dev_hdr
{
struct ambapp_dev_hdr *next; /* Next */
struct ambapp_dev_hdr *prev; /* Previous Device. If (this == prev->child) prev is bus bridge */
struct ambapp_dev_hdr *children; /* Points to first device on sub-bus */
void *owner; /* Owner of this AMBA device */
unsigned char dev_type; /* AHB MST, AHB SLV or APB SLV */
unsigned char vendor; /* Vendor ID */
unsigned short device; /* Device ID */
void *devinfo; /* Device info (APB or AHB depending on type) */
};
#define AMBAPP_FLAG_FFACT_DIR 0x100 /* Frequency factor direction, 0=down, 1=up */
#define AMBAPP_FLAG_FFACT 0x0f0 /* Frequency factor against top bus */
#define AMBAPP_FLAG_MBUS 0x00c
#define AMBAPP_FLAG_SBUS 0x003
struct ambapp_apb_info
{
/* COMMON */
unsigned char irq;
unsigned char ver;
/* APB SPECIFIC */
unsigned int start;
unsigned int mask;
};
struct ambapp_ahb_info
{
/* COMMON */
unsigned char irq;
unsigned char ver;
/* AHB SPECIFIC */
unsigned int start[4];
unsigned int mask[4];
char type[4]; /* type[N] Determine type of start[N]-mask[N], 2=AHB Memory Space, 3=AHB I/O Space */
unsigned int custom[3];
};
/* Describes a complete AMBA Core. Each device may consist of 3 interfaces */
struct ambapp_dev_info
{
char irq; /* irq=-1 indicate no IRQ */
unsigned char vendor;
unsigned short device;
int index; /* Core index if multiple "subcores" in one */
struct ambapp_ahb_info *ahb_mst;
struct ambapp_ahb_info *ahb_slv;
struct ambapp_apb_info *apb_slv;
};
struct ambapp_mmap
{
unsigned int size;
unsigned int local_adr;
unsigned int remote_adr;
};
/* Complete AMBA PnP information */
struct ambapp_bus
{
struct ambapp_mmap *mmaps;
struct ambapp_dev_hdr *root;
};
/*
* Return values
* 0 - continue
* 1 - stop scanning
*/
typedef int (*ambapp_func_t) (struct ambapp_dev_hdr * dev, int index,
int maxdepth, void *arg);
#define DEV_IS_FREE(dev) (dev->owner == NULL)
#define DEV_IS_ALLOCATED(dev) (dev->owner != NULL)
/* Options to ambapp_for_each */
#define OPTIONS_AHB_MSTS 0x00000001
#define OPTIONS_AHB_SLVS 0x00000002
#define OPTIONS_APB_SLVS 0x00000004
#define OPTIONS_ALL_DEVS (OPTIONS_AHB_MSTS|OPTIONS_AHB_SLVS|OPTIONS_APB_SLVS)
#define OPTIONS_FREE 0x00000010
#define OPTIONS_ALLOCATED 0x00000020
#define OPTIONS_ALL (OPTIONS_FREE|OPTIONS_ALLOCATED)
/* Depth first search, Defualt is breth first search. */
#define OPTIONS_DEPTH_FIRST 0x00000100
#define DEV_AHB_NONE 0
#define DEV_AHB_MST 1
#define DEV_AHB_SLV 2
#define DEV_APB_SLV 3
/* Structures used to access Plug&Play information directly */
struct ambapp_pnp_ahb
{
const unsigned int id; /* VENDOR, DEVICE, VER, IRQ, */
const unsigned int custom[3];
const unsigned int mbar[4]; /* MASK, ADDRESS, TYPE, CACHABLE/PREFETCHABLE */
};
struct ambapp_pnp_apb
{
const unsigned int id; /* VENDOR, DEVICE, VER, IRQ, */
const unsigned int iobar; /* MASK, ADDRESS, TYPE, CACHABLE/PREFETCHABLE */
};
#define ambapp_pnp_vendor(id) (((id) >> 24) & 0xff)
#define ambapp_pnp_device(id) (((id) >> 12) & 0xfff)
#define ambapp_pnp_ver(id) (((id)>>5) & 0x1f)
#define ambapp_pnp_irq(id) ((id) & 0x1f)
#define ambapp_pnp_start(mbar) (((mbar) & 0xfff00000) & (((mbar) & 0xfff0) << 16))
#define ambapp_pnp_mbar_mask(mbar) (((mbar)>>4) & 0xfff)
#define ambapp_pnp_mbar_type(mbar) ((mbar) & 0xf)
#define ambapp_pnp_apb_start(iobar, base) ((base) | ((((iobar) & 0xfff00000)>>12) & (((iobar) & 0xfff0)<<4)) )
#define ambapp_pnp_apb_mask(iobar) ((~(ambapp_pnp_mbar_mask(iobar)<<8) & 0x000fffff) + 1)
#define AMBA_TYPE_AHBIO_ADDR(addr,base_ioarea) ((unsigned int)(base_ioarea) | ((addr) >> 12))
#define AMBA_TYPE_APBIO 0x1
#define AMBA_TYPE_MEM 0x2
#define AMBA_TYPE_AHBIO 0x3
extern int find_apbslv (int vendor, int device,
struct ambapp_apb_info *dev);
#ifdef __cplusplus
}
#endif
#endif

View file

@ -0,0 +1,242 @@
/*
* Copyright (c) 2011 Aeroflex Gaisler
*
* BSD license:
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef __AMBAPP_DEVS_H__
#define __AMBAPP_DEVS_H__
/* Vendor codes */
#define VENDOR_GAISLER 1
#define VENDOR_PENDER 2
#define VENDOR_ESA 4
#define VENDOR_ASTRIUM 6
#define VENDOR_OPENCHIP 7
#define VENDOR_OPENCORES 8
#define VENDOR_CONTRIB 9
#define VENDOR_EONIC 11
#define VENDOR_RADIONOR 15
#define VENDOR_GLEICHMANN 16
#define VENDOR_MENTA 17
#define VENDOR_SUN 19
#define VENDOR_MOVIDIA 20
#define VENDOR_ORBITA 23
#define VENDOR_SYNOPSYS 33
#define VENDOR_NASA 34
#define VENDOR_ACTEL 172
#define VENDOR_CAL 202
#define VENDOR_EMBEDDIT 234
#define VENDOR_CETON 203
/* Gaisler Research device id's */
#define GAISLER_LEON2DSU 0x002
#define GAISLER_LEON3 0x003
#define GAISLER_LEON3DSU 0x004
#define GAISLER_ETHAHB 0x005
#define GAISLER_APBMST 0x006
#define GAISLER_AHBUART 0x007
#define GAISLER_SRCTRL 0x008
#define GAISLER_SDCTRL 0x009
#define GAISLER_SSRCTRL 0x00a
#define GAISLER_APBUART 0x00c
#define GAISLER_IRQMP 0x00d
#define GAISLER_AHBRAM 0x00e
#define GAISLER_AHBDPRAM 0x00f
#define GAISLER_GPTIMER 0x011
#define GAISLER_PCITRG 0x012
#define GAISLER_PCISBRG 0x013
#define GAISLER_PCIFBRG 0x014
#define GAISLER_PCITRACE 0x015
#define GAISLER_DMACTRL 0x016
#define GAISLER_AHBTRACE 0x017
#define GAISLER_DSUCTRL 0x018
#define GAISLER_CANAHB 0x019
#define GAISLER_GPIO 0x01a
#define GAISLER_AHBROM 0x01b
#define GAISLER_AHBJTAG 0x01c
#define GAISLER_ETHMAC 0x01d
#define GAISLER_SWNODE 0x01e
#define GAISLER_SPW 0x01f
#define GAISLER_AHB2AHB 0x020
#define GAISLER_USBDC 0x021
#define GAISLER_USB_DCL 0x022
#define GAISLER_DDRMP 0x023
#define GAISLER_ATACTRL 0x024
#define GAISLER_DDRSP 0x025
#define GAISLER_EHCI 0x026
#define GAISLER_UHCI 0x027
#define GAISLER_I2CMST 0x028
#define GAISLER_SPW2 0x029
#define GAISLER_AHBDMA 0x02a
#define GAISLER_NUHOSP3 0x02b
#define GAISLER_CLKGATE 0x02c
#define GAISLER_SPICTRL 0x02d
#define GAISLER_DDR2SP 0x02e
#define GAISLER_SLINK 0x02f
#define GAISLER_GRTM 0x030
#define GAISLER_GRTC 0x031
#define GAISLER_GRPW 0x032
#define GAISLER_GRCTM 0x033
#define GAISLER_GRHCAN 0x034
#define GAISLER_GRFIFO 0x035
#define GAISLER_GRADCDAC 0x036
#define GAISLER_GRPULSE 0x037
#define GAISLER_GRTIMER 0x038
#define GAISLER_AHB2PP 0x039
#define GAISLER_GRVERSION 0x03a
#define GAISLER_APB2PW 0x03b
#define GAISLER_PW2APB 0x03c
#define GAISLER_GRCAN 0x03d
#define GAISLER_I2CSLV 0x03e
#define GAISLER_U16550 0x03f
#define GAISLER_AHBMST_EM 0x040
#define GAISLER_AHBSLV_EM 0x041
#define GAISLER_GRTESTMOD 0x042
#define GAISLER_ASCS 0x043
#define GAISLER_IPMVBCTRL 0x044
#define GAISLER_SPIMCTRL 0x045
#define GAISLER_LEON4 0x048
#define GAISLER_LEON4DSU 0x049
#define GAISLER_GRPWM 0x04A
#define GAISLER_FTAHBRAM 0x050
#define GAISLER_FTSRCTRL 0x051
#define GAISLER_AHBSTAT 0x052
#define GAISLER_LEON3FT 0x053
#define GAISLER_FTMCTRL 0x054
#define GAISLER_FTSDCTRL 0x055
#define GAISLER_FTSRCTRL8 0x056
#define GAISLER_APBPS2 0x060
#define GAISLER_VGACTRL 0x061
#define GAISLER_LOGAN 0x062
#define GAISLER_SVGACTRL 0x063
#define GAISLER_T1AHB 0x064
#define GAISLER_MP7WRAP 0x065
#define GAISLER_GRSYSMON 0x066
#define GAISLER_GRACECTRL 0x067
#define GAISLER_B1553BC 0x070
#define GAISLER_B1553RT 0x071
#define GAISLER_B1553BRM 0x072
#define GAISLER_SATCAN 0x080
#define GAISLER_CANMUX 0x081
#define GAISLER_GRTMRX 0x082
#define GAISLER_GRTCTX 0x083
#define GAISLER_GRTMDESC 0x084
#define GAISLER_GRTMVC 0x085
#define GAISLER_GEFFE 0x086
#define GAISLER_AES 0x073
#define GAISLER_ECC 0x074
#define GAISLER_PCIF 0x075
#define GAISLER_CLKMOD 0x076
#define GAISLER_HAPSTRAK 0x077
#define GAISLER_TEST_1X2 0x078
#define GAISLER_WILD2AHB 0x079
#define GAISLER_BIO1 0x07a
#define GAISLER_PIPEWRAPPER 0xffa
#define GAISLER_L2TIME 0xffd /* internal device: leon2 timer */
#define GAISLER_L2C 0xffe /* internal device: leon2compat */
#define GAISLER_PLUGPLAY 0xfff /* internal device: plug & play configarea */
/* European Space Agency device id's */
#define ESA_LEON2 0x002
#define ESA_LEON2APB 0x003
#define ESA_IRQ 0x005
#define ESA_TIMER 0x006
#define ESA_UART 0x007
#define ESA_CFG 0x008
#define ESA_IO 0x009
#define ESA_MCTRL 0x00f
#define ESA_PCIARB 0x010
#define ESA_HURRICANE 0x011
#define ESA_SPW_RMAP 0x012
#define ESA_SPW2 0x012
#define ESA_AHBUART 0x013
#define ESA_SPWA 0x014
#define ESA_BOSCHCAN 0x015
#define ESA_IRQ2 0x016
#define ESA_AHBSTAT 0x017
#define ESA_WPROT 0x018
#define ESA_WPROT2 0x019
#define ESA_PDEC3AMBA 0x020
#define ESA_PTME3AMBA 0x021
#define OPENCHIP_APBGPIO 0x001
#define OPENCHIP_APBI2C 0x002
#define OPENCHIP_APBSPI 0x003
#define OPENCHIP_APBCHARLCD 0x004
#define OPENCHIP_APBPWM 0x005
#define OPENCHIP_APBPS2 0x006
#define OPENCHIP_APBMMCSD 0x007
#define OPENCHIP_APBNAND 0x008
#define OPENCHIP_APBLPC 0x009
#define OPENCHIP_APBCF 0x00a
#define OPENCHIP_APBSYSACE 0x00b
#define OPENCHIP_APB1WIRE 0x00c
#define OPENCHIP_APBJTAG 0x00d
#define OPENCHIP_APBSUI 0x00e
#define CONTRIB_CORE1 0x001
#define CONTRIB_CORE2 0x002
#define GLEICHMANN_CUSTOM 0x001
#define GLEICHMANN_GEOLCD01 0x002
#define GLEICHMANN_DAC 0x003
#define GLEICHMANN_HPI 0x004
#define GLEICHMANN_SPI 0x005
#define GLEICHMANN_HIFC 0x006
#define GLEICHMANN_ADCDAC 0x007
#define GLEICHMANN_SPIOC 0x008
#define GLEICHMANN_AC97 0x009
#define SUN_T1 0x001
#define SUN_S1 0x011
#define ORBITA_1553B 0x001
#define ORBITA_429 0x002
#define ORBITA_SPI 0x003
#define ORBITA_I2C 0x004
#define ORBITA_SMARTCARD 0x064
#define ORBITA_SDCARD 0x065
#define ORBITA_UART16550 0x066
#define ORBITA_CRYPTO 0x067
#define ORBITA_SYSIF 0x068
#define ORBITA_PIO 0x069
#define ORBITA_RTC 0x0c8
#define ORBITA_COLORLCD 0x12c
#define ORBITA_PCI 0x190
#define ORBITA_DSP 0x1f4
#define ORBITA_USBHOST 0x258
#define ORBITA_USBDEV 0x2bc
#define NASA_EP32 0x001
#define CAL_DDRCTRL 0x188
#define ACTEL_COREMP7 0x001
/* Opencores device id's */
#define OPENCORES_PCIBR 0x4
#define OPENCORES_ETHMAC 0x5
#endif

View file

@ -0,0 +1,370 @@
/*
* Copyright (c) 2011 Aeroflex Gaisler
*
* BSD license:
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef _INCLUDE_LEON_h
#define _INCLUDE_LEON_h
#include <asm-leon/leon3.h>
#include <asm-leon/amba.h>
#ifdef __cplusplus
extern "C"
{
#endif
/* psr defines */
#define SPARC_PSR_WIN_MASK 0x0000001f /* bit 0-4 */
#define SPARC_PSR_ET_MASK 0x00000020 /* bit 5 */
#define SPARC_PSR_PS_MASK 0x00000040 /* bit 6 */
#define SPARC_PSR_S_MASK 0x00000080 /* bit 7 */
#define SPARC_PSR_PIL_MASK 0x00000F00 /* bits 8 - 11 */
#define SPARC_PSR_EF_MASK 0x00001000 /* bit 12 */
#define SPARC_PSR_EC_MASK 0x00002000 /* bit 13 */
#define SPARC_PSR_ICC_MASK 0x00F00000 /* bits 20 - 23 */
#define SPARC_PSR_VER_MASK 0x0F000000 /* bits 24 - 27 */
#define SPARC_PSR_IMPL_MASK 0xF0000000 /* bits 28 - 31 */
#define SPARC_PSR_PIL_SHIFT 8
#define SPARC_NUM_REGWIN _nwindows
#ifndef __ASSEMBLER__
extern int _nwindows;
extern int _leon_version;
#endif
#define LEON_VERSION _leon_version
/*
* Interrupt Sources
*
* The interrupt source numbers directly map to the trap type and to
* the bits used in the Interrupt Clear, Interrupt Force, Interrupt Mask,
* and the Interrupt Pending Registers.
*/
#define LEON_INTERRUPT_CORRECTABLE_MEMORY_ERROR 1
#define LEON2_INTERRUPT_UART_2_RX_TX 2
#define LEON2_INTERRUPT_UART_1_RX_TX 3
#define LEON23_INTERRUPT_UART_2_RX_TX leon23_irqs[1] /*console.c */
#define LEON23_INTERRUPT_UART_1_RX_TX leon23_irqs[0] /*console.c */
#define LEON_INTERRUPT_EXTERNAL_0 4
#define LEON_INTERRUPT_EXTERNAL_1 5
#define LEON_INTERRUPT_EXTERNAL_2 6
#define LEON_INTERRUPT_EXTERNAL_3 7
#define LEON2_INTERRUPT_TIMER1 8
#define LEON2_INTERRUPT_TIMER2 9
#define LEON23_INTERRUPT_TIMER1 leon23_timerirqs[0] /* timer.c */
#define LEON23_INTERRUPT_TIMER2 leon23_timerirqs[1] /* timer.c */
#define LEON_INTERRUPT_EMPTY1 10
#define LEON_INTERRUPT_EMPTY2 11
#define LEON_INTERRUPT_EMPTY3 12
#define LEON_INTERRUPT_EMPTY4 13
#define LEON_INTERRUPT_EMPTY5 14
#define LEON_INTERRUPT_EMPTY6 15
#ifndef __ASSEMBLER__
/*
* Trap Types for on-chip peripherals
*
* Source: Table 8 - Interrupt Trap Type and Default Priority Assignments
*
* NOTE: The priority level for each source corresponds to the least
* significant nibble of the trap type.
*/
#define LEON_TRAP_TYPE( _source ) SPARC_ASYNCHRONOUS_TRAP((_source) + 0x10)
#define LEON_TRAP_SOURCE( _trap ) ((_trap) - 0x10)
#define LEON_INT_TRAP( _trap ) \
( (_trap) >= LEON_TRAP_TYPE( LEON_INTERRUPT_CORRECTABLE_MEMORY_ERROR ) && \
(_trap) <= LEON_TRAP_TYPE( LEON_INTERRUPT_EMPTY6 ) )
#endif
/*
* The following defines the bits in Memory Configuration Register 1.
*/
#define LEON_MEMORY_CONFIGURATION_PROM_SIZE_MASK 0x0003C000
/*
* The following defines the bits in Memory Configuration Register 1.
*/
#define LEON_MEMORY_CONFIGURATION_RAM_SIZE_MASK 0x00001E00
/*
* The following defines the bits in the Timer Control Register.
*/
#define LEON_REG_TIMER_CONTROL_EN 0x00000001 /* 1 = enable counting */
/* 0 = hold scalar and counter */
#define LEON_REG_TIMER_CONTROL_RL 0x00000002 /* 1 = reload at 0 */
/* 0 = stop at 0 */
#define LEON_REG_TIMER_CONTROL_LD 0x00000004 /* 1 = load counter */
/* 0 = no function */
/*
* The following defines the bits in the UART Control Registers.
*
*/
#define LEON_REG_UART_CONTROL_RTD 0x000000FF /* RX/TX data */
/*
* The following defines the bits in the LEON UART Status Registers.
*/
#define LEON_REG_UART_STATUS_DR 0x00000001 /* Data Ready */
#define LEON_REG_UART_STATUS_TSE 0x00000002 /* TX Send Register Empty */
#define LEON_REG_UART_STATUS_THE 0x00000004 /* TX Hold Register Empty */
#define LEON_REG_UART_STATUS_BR 0x00000008 /* Break Error */
#define LEON_REG_UART_STATUS_OE 0x00000010 /* RX Overrun Error */
#define LEON_REG_UART_STATUS_PE 0x00000020 /* RX Parity Error */
#define LEON_REG_UART_STATUS_FE 0x00000040 /* RX Framing Error */
#define LEON_REG_UART_STATUS_ERR 0x00000078 /* Error Mask */
/*
* The following defines the bits in the LEON UART Status Registers.
*/
#define LEON_REG_UART_CTRL_RE 0x00000001 /* Receiver enable */
#define LEON_REG_UART_CTRL_TE 0x00000002 /* Transmitter enable */
#define LEON_REG_UART_CTRL_RI 0x00000004 /* Receiver interrupt enable */
#define LEON_REG_UART_CTRL_TI 0x00000008 /* Transmitter interrupt enable */
#define LEON_REG_UART_CTRL_PS 0x00000010 /* Parity select */
#define LEON_REG_UART_CTRL_PE 0x00000020 /* Parity enable */
#define LEON_REG_UART_CTRL_FL 0x00000040 /* Flow control enable */
#define LEON_REG_UART_CTRL_LB 0x00000080 /* Loop Back enable */
/* leon2 asis */
#define ASI_LEON2_IFLUSH 0x05
#define ASI_LEON2_DFLUSH 0x06
#define ASI_LEON2_CACHEMISS 1
/* leon3 asis */
#define ASI_LEON3_IFLUSH 0x10
#define ASI_LEON3_DFLUSH 0x11
#define ASI_LEON3_CACHEMISS 1
#define ASI_LEON3_SYSCTRL 0x02
#define ASI_LEON23_ITAG 0x0c
#define ASI_LEON23_DTAG 0x0e
#ifndef __ASSEMBLER__
unsigned int leonbare_leon23_loadnocache (unsigned int addr);
unsigned int leonbare_leon23_loadnocache16 (unsigned int addr);
unsigned int leonbare_leon23_loadnocache8 (unsigned int addr);
unsigned int leonbare_leon23_storenocache (unsigned int addr,
unsigned int value);
unsigned int leonbare_leon23_storenocache16 (unsigned int addr,
unsigned int value);
unsigned int leonbare_leon23_storenocache8 (unsigned int addr,
unsigned int value);
unsigned int leonbare_leon3_loadnocache (unsigned int addr);
unsigned int leonbare_leon3_loadnocache16 (unsigned int addr);
unsigned int leonbare_leon3_loadnocache8 (unsigned int addr);
/*
* This is used to manipulate the on-chip registers.
*
* The following symbol must be defined in the linkcmds file and point
* to the correct location.
*/
extern unsigned long *LEON23_IRQ_mask_addr; /* in peripherals.h */
extern unsigned long *LEON23_IRQ_force_addr; /* in peripherals.h */
extern unsigned long *LEON23_IRQ_pending_addr; /* in peripherals.h */
extern unsigned long *LEON23_IRQ_clear_addr; /* in peripherals.h */
/*
* Macros to manipulate the Interrupt Clear, Interrupt Force, Interrupt Mask,
* and the Interrupt Pending Registers.
*
* NOTE: For operations which are not atomic, this code disables interrupts
* to guarantee there are no intervening accesses to the same register.
* The operations which read the register, modify the value and then
* store the result back are vulnerable.
*/
#define LEON_Clear_interrupt( _source ) \
do { \
(*LEON23_IRQ_clear_addr) = (1 << (_source)); \
} while (0)
#define LEON_Force_interrupt( _source ) \
do { \
(*LEON23_IRQ_force_addr) = (1 << (_source)); \
} while (0)
#define LEON_Is_interrupt_masked( _source ) \
((*LEON23_IRQ_mask_addr) & (1 << (_source)))
#define LEON_Mask_interrupt( _source ) \
do { \
unsigned32 _level; \
\
_level = sparc_disable_interrupts(); \
(*LEON23_IRQ_mask_addr) &= ~(1 << (_source)); \
sparc_enable_interrupts( _level ); \
} while (0)
#define LEON_Unmask_interrupt( _source ) \
do { \
unsigned32 _level; \
\
_level = sparc_disable_interrupts(); \
(*LEON23_IRQ_mask_addr) |= (1 << (_source)); \
sparc_enable_interrupts( _level ); \
} while (0)
#define LEON_Disable_interrupt( _source, _previous ) \
do { \
unsigned32 _level; \
unsigned32 _mask = 1 << (_source); \
\
_level = sparc_disable_interrupts(); \
(_previous) = (*LEON23_IRQ_mask_addr); \
(*LEON23_IRQ_mask_addr) = _previous & ~_mask; \
sparc_enable_interrupts( _level ); \
(_previous) &= _mask; \
} while (0)
#define LEON_Restore_interrupt( _source, _previous ) \
do { \
unsigned32 _level; \
unsigned32 _mask = 1 << (_source); \
\
_level = sparc_disable_interrupts(); \
(*LEON23_IRQ_mask_addr) = \
((*LEON23_IRQ_mask_addr) & ~_mask) | (_previous); \
sparc_enable_interrupts( _level ); \
} while (0)
/*
* Each timer control register is organized as follows:
*
* D0 - Enable
* 1 = enable counting
* 0 = hold scaler and counter
*
* D1 - Counter Reload
* 1 = reload counter at zero and restart
* 0 = stop counter at zero
*
* D2 - Counter Load
* 1 = load counter with preset value
* 0 = no function
*
*/
#define LEON_REG_TIMER_COUNTER_IRQEN 0x00000008
#define LEON_REG_TIMER_COUNTER_RELOAD_AT_ZERO 0x00000002
#define LEON_REG_TIMER_COUNTER_STOP_AT_ZERO 0x00000000
#define LEON_REG_TIMER_COUNTER_LOAD_COUNTER 0x00000004
#define LEON_REG_TIMER_COUNTER_ENABLE_COUNTING 0x00000001
#define LEON_REG_TIMER_COUNTER_DISABLE_COUNTING 0x00000000
#define LEON_REG_TIMER_COUNTER_RELOAD_MASK 0x00000002
#define LEON_REG_TIMER_COUNTER_ENABLE_MASK 0x00000001
#define LEON_REG_TIMER_COUNTER_DEFINED_MASK 0x00000003
#define LEON_REG_TIMER_COUNTER_CURRENT_MODE_MASK 0x00000003
/* console.c */
int lo_sprintf (char *buf, const char *fmt, ...);
/* do a virtual address read without cache */
static __inline__ unsigned long leon23_getpsr ()
{
unsigned long retval;
__asm__ __volatile__ ("mov %%psr, %0\n\t":"=r" (retval):);
return retval;
}
extern __inline__ void sparc_leon2_dcache_flush (void)
{
__asm__
__volatile__ ("sta %%g0, [%%g0] %0\n\t"::"i"
(ASI_LEON2_IFLUSH):"memory");
__asm__
__volatile__ ("sta %%g0, [%%g0] %0\n\t"::"i"
(ASI_LEON2_DFLUSH):"memory");
};
extern __inline__ void sparc_leon_dcache_flush (void)
{
switch (sparc_leon23_get_psr_version ())
{
case 0:
case 2:
sparc_leon2_dcache_flush ();
break;
default:
sparc_leon3_dcache_flush ();
break;
}
}
extern int lolevelirqinstall (int irqnr, void (*handler) ());
extern unsigned long locore_readtbr ();
extern void _leonbase_Stop ();
extern void uninstall_winoverflow_hook ();
extern int install_winoverflow_hook (void (*func) (void));
extern void sparc_leon23_icache_flush ();
extern void sparc_leon23_dcache_flush ();
#endif /* ! __ASSEMBLER__ */
#ifdef __cplusplus
}
#endif
#define TACODE_IRQCALL 2
#define TACODE_IRQCALL_FLUSH 6
#define TACODE_FLUSH 3
#define TACODE_IRQCALLDIS 5
#endif /* !_INCLUDE_LEON_h */
/* end of include file */

View file

@ -0,0 +1,107 @@
/*
* Copyright (c) 2011 Aeroflex Gaisler
*
* BSD license:
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef _INCLUDE_LEON3_h
#define _INCLUDE_LEON3_h
#ifndef __ASSEMBLER__
#ifdef __cplusplus
extern "C"
{
#endif
#define ASI_LEON3_CACHEMISS 1
#define ASI_LEON3_SYSCTRL 0x02
#define ASI_LEON3_DFLUSH 0x11
#define ASI_LEON3_SYSCTRL_ICFG 0x08
#define ASI_LEON3_SYSCTRL_DCFG 0x0c
#define ASI_LEON3_SYSCTRL_CFG_SNOOPING (1<<27)
#define ASI_LEON3_SYSCTRL_CFG_SSIZE(c) (1<<((c>>20)&0xf))
extern __inline__ unsigned long sparc_leon23_get_psr (void)
{
unsigned int retval;
__asm__ __volatile__ ("rd %%psr, %0\n\t":"=r" (retval):);
return (retval);
}
extern __inline__ unsigned long sparc_leon23_get_psr_version (void)
{
unsigned int psr = sparc_leon23_get_psr ();
return (psr >> 24) & 0xf;
}
#define LEON_ISLEON2 (sparc_leon23_get_psr_version() == 2 || sparc_leon23_get_psr_version() == 0)
#define LEON_ISLEON3 (sparc_leon23_get_psr_version() == 3)
extern __inline__ unsigned long sparc_leon3_get_dcachecfg (void)
{
unsigned int retval;
__asm__
__volatile__ ("lda [%1] %2, %0\n\t":"=r" (retval):"r"
(ASI_LEON3_SYSCTRL_DCFG), "i" (ASI_LEON3_SYSCTRL));
return (retval);
}
extern __inline__ void sparc_leon3_enable_snooping (void)
{
/*enable snooping */
__asm__ volatile ("lda [%%g0] 2, %%l1\n\t"
"set 0x800000, %%l2\n\t"
"or %%l2, %%l1, %%l2\n\t"
"sta %%l2, [%%g0] 2\n\t":::"l1", "l2");
};
extern __inline__ void sparc_leon3_disable_cache (void)
{
/*asi 2 */
__asm__ volatile ("lda [%%g0] 2, %%l1\n\t"
"set 0x00000f, %%l2\n\t"
"andn %%l2, %%l1, %%l2\n\t"
"sta %%l2, [%%g0] 2\n\t":::"l1", "l2");
};
extern __inline__ void sparc_leon3_dcache_flush (void)
{
__asm__ __volatile__ (" flush "); //iflush
__asm__
__volatile__ ("sta %%g0, [%%g0] %0\n\t"::"i"
(ASI_LEON3_DFLUSH):"memory");
};
#ifdef __cplusplus
}
#endif
#endif /* !ASM */
#endif /* !_INCLUDE_LEON3_h */
/* end of include file */

View file

@ -0,0 +1,125 @@
/*
* Copyright (c) 2011 Aeroflex Gaisler
*
* BSD license:
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef __LEONBARE_KERNEL_DEBUG_H__
#define __LEONBARE_KERNEL_DEBUG_H__
#include <asm-leon/leondbg.h>
/*
#define LBDEBUG_DO_DEBUG
#define LBDEBUG_DO_ASSERT
*/
#define LBDEBUG_ALWAYS_NR (1<<0)
#define LBDEBUG_ASSERT_NR (1<<1)
#define LBDEBUG_FNCALL_NR (1<<2)
#define LBDEBUG_FNEXIT_NR (1<<3)
#define LBDEBUG_SCHED_NR (1<<4)
#define LBDEBUG_QUEUE_NR (1<<5)
#define LBDEBUG_THREAD_NR (1<<6)
#define LBDEBUG_PRINTF dbgleon_printf /*leonbare_debug_printf */
#ifdef LBDEBUG_DO_DEBUG
#ifndef __ASSEMBLER__
extern int leonbare_debug;
#endif
# define PDEBUG_FLAGS_CHECK(c) ((c)&leonbare_debug)
# define PDEBUG_FLAGS_SET(c) leonbare_debug |= c
#else
# define PDEBUG_FLAGS_CHECK(c) 0
# define PDEBUG_FLAGS_SET(c)
#endif
#ifdef LBDEBUG_DO_DEBUG
# define LBDEBUG(x, fmt, args...) do { if (PDEBUG_FLAGS_CHECK(x)) { LBDEBUG_PRINTF(fmt,args); } } while(0)
#else
# define LBDEBUG(x, fmt, args...)
#endif
#ifdef LBDEBUG_DO_ASSERT
# define LBPASSERT(x, fmt, args...) if (!(x)) { LBDEBUG_PRINTF(fmt,args); while(1); }
#else
# define LBPASSERT(x, fmt, args...)
#endif
#ifndef LBDEBUG___FUNCTION__
#define LBDEBUG___FUNCTION__ __FUNCTION__
#endif
#ifndef LBDEBUG___FUNCTION_WIDTH__
#define LBDEBUG___FUNCTION_WIDTH__ "28"
#endif
#ifdef LBDEBUG_DO_FILE
#ifndef LBDEBUG___FILE__
#define LBDEBUG___FILE__ __FILE__
#endif
#ifndef LBDEBUG___FILE_WIDTH__
#define LBDEBUG___FILE_WIDTH__ "28"
#endif
#define LBDEBUG___FILE_APPEND ,__FILE__
#define LBDEBUG___FILE_FMT_APPEND ":%" LBDEBUG___FILE_WIDTH__ "s"
#else
#define LBDEBUG___FILE_APPEND
#define LBDEBUG___FILE_FMT_APPEND
#endif
#ifdef LBDEBUG_DO_DEBUG
# define LBDEBUG_HEADER(code) \
if (PDEBUG_FLAGS_CHECK(code)) { \
register unsigned int _GETSP asm("sp"); \
LBDEBUG_PRINTF("[sp:%08x self(%08x):", _GETSP, LEONBARE_KR_CURRENT); \
LBDEBUG_PRINTF("%10s",LEONBARE_TH_NAME_DBG(LEONBARE_KR_CURRENT)); \
LBDEBUG_PRINTF(" %03d @ %" LBDEBUG___FUNCTION_WIDTH__ "s()" LBDEBUG___FILE_FMT_APPEND "]:" , __LINE__,LBDEBUG___FUNCTION__ LBDEBUG___FILE_APPEND); \
}
# define LBDEBUG_HEADER_PRINTF(code,fmt,args...) \
if (PDEBUG_FLAGS_CHECK(code)) { \
LBDEBUG_HEADER(code); \
LBDEBUG_PRINTF(fmt,args); \
}
# define LBDEBUG_CODE_PRINTF(code,fmt,args...) \
if (PDEBUG_FLAGS_CHECK(code)) { \
LBDEBUG_PRINTF(fmt,args); \
}
#else
# define LBDEBUG_HEADER(code)
# define LBDEBUG_HEADER_PRINTF(code,fmt,args...)
# define LBDEBUG_CODE_PRINTF(code,fmt,args...)
#endif
#define LBDEBUG_FNCALL LBDEBUG_HEADER_PRINTF(LBDEBUG_FNCALL_NR,"enter\n",0)
#define LBDEBUG_FNEXIT LBDEBUG_HEADER_PRINTF(LBDEBUG_FNEXIT_NR,"exit\n",0)
#ifndef __ASSEMBLER__
int leonbare_debug_printf (const char *fmt, ...);
#endif
#endif

Some files were not shown because too many files have changed in this diff Show more