Add ARM support
This commit is contained in:
parent
4a08cbfefb
commit
62a25ce17c
|
@ -1,3 +1,19 @@
|
||||||
|
2002-01-07 Mark Salter <msalter@redhat.com>
|
||||||
|
|
||||||
|
* configure.in: Add support for arm, strongarm, and xscale.
|
||||||
|
* configure: Regenerated.
|
||||||
|
* arm/coff-iq80310.specs: New file.
|
||||||
|
* arm/coff-redboot.ld: New file.
|
||||||
|
* arm/coff-redboot.specs: New file.
|
||||||
|
* arm/configure: New file.
|
||||||
|
* arm/configure.in: New file.
|
||||||
|
* arm/elf-iq80310.specs: New file.
|
||||||
|
* arm/elf-redboot.ld: New file.
|
||||||
|
* arm/elf-redboot.specs: New file.
|
||||||
|
* arm/Makefile.in: New file.
|
||||||
|
* arm/redboot-crt0.S: New file.
|
||||||
|
* arm/redboot-syscalls.c: New file.
|
||||||
|
|
||||||
2001-12-22 Geoffrey Keating <geoffk@redhat.com>
|
2001-12-22 Geoffrey Keating <geoffk@redhat.com>
|
||||||
Mark Salter <msalter@redhat.com>
|
Mark Salter <msalter@redhat.com>
|
||||||
Catherine Moore <clm@redhat.com>
|
Catherine Moore <clm@redhat.com>
|
||||||
|
|
|
@ -0,0 +1,105 @@
|
||||||
|
#
|
||||||
|
#
|
||||||
|
VPATH = @srcdir@ @srcdir@/..
|
||||||
|
srcdir = @srcdir@
|
||||||
|
objdir = .
|
||||||
|
srcroot = $(srcdir)/../..
|
||||||
|
objroot = $(objdir)/../..
|
||||||
|
|
||||||
|
prefix = @prefix@
|
||||||
|
exec_prefix = @exec_prefix@
|
||||||
|
|
||||||
|
host_alias = @host_alias@
|
||||||
|
target_alias = @target_alias@
|
||||||
|
|
||||||
|
bindir = @bindir@
|
||||||
|
libdir = @libdir@
|
||||||
|
tooldir = $(exec_prefix)/$(target_alias)
|
||||||
|
|
||||||
|
objtype = @objtype@
|
||||||
|
|
||||||
|
INSTALL = @INSTALL@
|
||||||
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
|
||||||
|
# Multilib support variables.
|
||||||
|
# TOP is used instead of MULTI{BUILD,SRC}TOP.
|
||||||
|
MULTISRCTOP =
|
||||||
|
MULTIBUILDTOP =
|
||||||
|
MULTIDIRS =
|
||||||
|
MULTISUBDIR =
|
||||||
|
MULTIDO = true
|
||||||
|
MULTICLEAN = true
|
||||||
|
|
||||||
|
SHELL = /bin/sh
|
||||||
|
|
||||||
|
CC = @CC@
|
||||||
|
|
||||||
|
AS = @AS@
|
||||||
|
AR = @AR@
|
||||||
|
LD = @LD@
|
||||||
|
RANLIB = @RANLIB@
|
||||||
|
|
||||||
|
OBJDUMP = `if [ -f ${objroot}/../binutils/objdump ] ; \
|
||||||
|
then echo ${objroot}/../binutils/objdump ; \
|
||||||
|
else t='$(program_transform_name)'; echo objdump | sed -e $$t ; fi`
|
||||||
|
OBJCOPY = `if [ -f ${objroot}/../binutils/objcopy ] ; \
|
||||||
|
then echo ${objroot}/../binutils/objcopy ; \
|
||||||
|
else t='$(program_transform_name)'; echo objcopy | sed -e $$t ; fi`
|
||||||
|
|
||||||
|
REDBOOT_OBJS = redboot-crt0.o redboot-syscalls.o
|
||||||
|
REDBOOT_SCRIPTS = redboot.ld redboot.specs
|
||||||
|
REDBOOT_INSTALL = install-redboot
|
||||||
|
CFLAGS = -g
|
||||||
|
|
||||||
|
# Here is specific eval board stuff
|
||||||
|
IQ80310_SCRIPTS = iq80310.specs
|
||||||
|
IQ80310_INSTALL = install-iq80310
|
||||||
|
|
||||||
|
# Host specific makefile fragment comes in here.
|
||||||
|
@host_makefile_frag@
|
||||||
|
|
||||||
|
#
|
||||||
|
# build a test program for each target board. Just trying to get
|
||||||
|
# it to link is a good test, so we ignore all the errors for now.
|
||||||
|
#
|
||||||
|
all: ${REDBOOT_OBJS}
|
||||||
|
|
||||||
|
#
|
||||||
|
# here's where we build the test programs for each target
|
||||||
|
#
|
||||||
|
.PHONY: test
|
||||||
|
test:
|
||||||
|
|
||||||
|
#
|
||||||
|
redboot-crt0.o: redboot-crt0.S
|
||||||
|
redboot-syscalls.o: redboot-syscalls.c $(srcdir)/../syscall.h
|
||||||
|
|
||||||
|
clean mostlyclean:
|
||||||
|
rm -f a.out core *.i *.o *-test *.srec *.dis *.x $(SIM_BSP) $(IQ80310_BSP)
|
||||||
|
|
||||||
|
distclean maintainer-clean realclean: clean
|
||||||
|
rm -f Makefile config.status *~
|
||||||
|
|
||||||
|
.PHONY: install info install-info clean-info
|
||||||
|
install: ${REDBOOT_INSTALL} ${IQ80310_INSTALL}
|
||||||
|
|
||||||
|
|
||||||
|
install-redboot:
|
||||||
|
set -e; for x in ${REDBOOT_OBJS}; do ${INSTALL_DATA} $$x ${tooldir}/lib${MULTISUBDIR}/$$x; done
|
||||||
|
set -e; for x in ${REDBOOT_SCRIPTS}; do ${INSTALL_DATA} ${srcdir}/${objtype}$$x ${tooldir}/lib${MULTISUBDIR}/$$x; done
|
||||||
|
|
||||||
|
install-iq80310:
|
||||||
|
set -e; for x in ${IQ80310_SCRIPTS}; do ${INSTALL_DATA} ${srcdir}/${objtype}$$x ${tooldir}/lib${MULTISUBDIR}/$$x; done
|
||||||
|
|
||||||
|
|
||||||
|
doc:
|
||||||
|
info:
|
||||||
|
install-info:
|
||||||
|
clean-info:
|
||||||
|
|
||||||
|
Makefile: Makefile.in config.status @host_makefile_frag_path@
|
||||||
|
$(SHELL) config.status
|
||||||
|
|
||||||
|
config.status: configure
|
||||||
|
$(SHELL) config.status --recheck
|
|
@ -0,0 +1,8 @@
|
||||||
|
%rename link old_link
|
||||||
|
|
||||||
|
*link:
|
||||||
|
-T redboot.ld%s -Ttext 0xA0020000 %(old_link)
|
||||||
|
|
||||||
|
*startfile:
|
||||||
|
redboot-crt0%O%s redboot-syscalls%O%s
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
OUTPUT_FORMAT("coff-arm-little", "coff-arm-big", "coff-arm-little")
|
||||||
|
SEARCH_DIR(/toolbin/xscale-coff/lib);
|
||||||
|
ENTRY(_start)
|
||||||
|
SECTIONS
|
||||||
|
{
|
||||||
|
/* We start at 0x8000 because gdb assumes it (see FRAME_CHAIN).
|
||||||
|
This is an artifact of the ARM Demon monitor using the bottom 32k
|
||||||
|
as workspace (shared with the FP instruction emulator if
|
||||||
|
present): */
|
||||||
|
.text 0x8000 : {
|
||||||
|
*(.init)
|
||||||
|
*(.text)
|
||||||
|
*(.glue_7t)
|
||||||
|
*(.glue_7)
|
||||||
|
*(.rdata)
|
||||||
|
___CTOR_LIST__ = .; __CTOR_LIST__ = . ;
|
||||||
|
LONG (-1); *(.ctors); *(.ctor); LONG (0);
|
||||||
|
___DTOR_LIST__ = .; __DTOR_LIST__ = . ;
|
||||||
|
LONG (-1); *(.dtors); *(.dtor); LONG (0);
|
||||||
|
*(.fini)
|
||||||
|
etext = .;
|
||||||
|
_etext = .;
|
||||||
|
}
|
||||||
|
.data 0x40000 + (. & 0xfffc0fff) : {
|
||||||
|
__data_start__ = . ;
|
||||||
|
*(.data)
|
||||||
|
__data_end__ = . ;
|
||||||
|
edata = .;
|
||||||
|
_edata = .;
|
||||||
|
}
|
||||||
|
.bss SIZEOF(.data) + ADDR(.data) :
|
||||||
|
{
|
||||||
|
__bss_start__ = . ;
|
||||||
|
*(.bss)
|
||||||
|
*(COMMON)
|
||||||
|
__bss_end__ = . ;
|
||||||
|
}
|
||||||
|
end = .;
|
||||||
|
_end = .;
|
||||||
|
__end__ = .;
|
||||||
|
.stab 0 (NOLOAD) :
|
||||||
|
{
|
||||||
|
[ .stab ]
|
||||||
|
}
|
||||||
|
.stabstr 0 (NOLOAD) :
|
||||||
|
{
|
||||||
|
[ .stabstr ]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
%rename link old_link
|
||||||
|
|
||||||
|
*link:
|
||||||
|
-T redboot.ld%s -Ttext 0x20000 %(old_link)
|
||||||
|
|
||||||
|
*startfile:
|
||||||
|
redboot-crt0%O%s redboot-syscalls%O%s
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,97 @@
|
||||||
|
dnl Process this file with autoconf to produce a configure script.
|
||||||
|
AC_PREREQ(2.5)dnl
|
||||||
|
AC_INIT(redboot-crt0.S)
|
||||||
|
|
||||||
|
if test "$srcdir" = "." ; then
|
||||||
|
if test "${with_target_subdir}" != "." ; then
|
||||||
|
libgloss_topdir="${srcdir}/${with_multisrctop}../../.."
|
||||||
|
else
|
||||||
|
libgloss_topdir="${srcdir}/${with_multisrctop}../.."
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
libgloss_topdir="${srcdir}/../.."
|
||||||
|
fi
|
||||||
|
AC_CONFIG_AUX_DIR($libgloss_topdir)
|
||||||
|
|
||||||
|
AC_CANONICAL_SYSTEM
|
||||||
|
AC_ARG_PROGRAM
|
||||||
|
|
||||||
|
AC_PROG_INSTALL
|
||||||
|
|
||||||
|
# FIXME: We temporarily define our own version of AC_PROG_CC. This is
|
||||||
|
# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We
|
||||||
|
# are probably using a cross compiler, which will not be able to fully
|
||||||
|
# link an executable. This should really be fixed in autoconf
|
||||||
|
# itself.
|
||||||
|
|
||||||
|
AC_DEFUN(LIB_AC_PROG_CC,
|
||||||
|
[AC_BEFORE([$0], [AC_PROG_CPP])dnl
|
||||||
|
AC_CHECK_PROG(CC, gcc, gcc)
|
||||||
|
if test -z "$CC"; then
|
||||||
|
AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc)
|
||||||
|
test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_PROG_CC_GNU
|
||||||
|
|
||||||
|
if test $ac_cv_prog_gcc = yes; then
|
||||||
|
GCC=yes
|
||||||
|
dnl Check whether -g works, even if CFLAGS is set, in case the package
|
||||||
|
dnl plays around with CFLAGS (such as to build both debugging and
|
||||||
|
dnl normal versions of a library), tasteless as that idea is.
|
||||||
|
ac_test_CFLAGS="${CFLAGS+set}"
|
||||||
|
ac_save_CFLAGS="$CFLAGS"
|
||||||
|
CFLAGS=
|
||||||
|
AC_PROG_CC_G
|
||||||
|
if test "$ac_test_CFLAGS" = set; then
|
||||||
|
CFLAGS="$ac_save_CFLAGS"
|
||||||
|
elif test $ac_cv_prog_cc_g = yes; then
|
||||||
|
CFLAGS="-g -O2"
|
||||||
|
else
|
||||||
|
CFLAGS="-O2"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
GCC=
|
||||||
|
test "${CFLAGS+set}" = set || CFLAGS="-g"
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
case "${target}" in
|
||||||
|
*-*-elf)
|
||||||
|
objtype=elf-
|
||||||
|
;;
|
||||||
|
*-*-coff)
|
||||||
|
objtype=coff-
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
AC_SUBST(objtype)
|
||||||
|
|
||||||
|
host_makefile_frag=${srcdir}/../config/default.mh
|
||||||
|
|
||||||
|
dnl We have to assign the same value to other variables because autoconf
|
||||||
|
dnl doesn't provide a mechanism to substitute a replacement keyword with
|
||||||
|
dnl arbitrary data or pathnames.
|
||||||
|
dnl
|
||||||
|
host_makefile_frag_path=$host_makefile_frag
|
||||||
|
AC_SUBST(host_makefile_frag_path)
|
||||||
|
AC_SUBST_FILE(host_makefile_frag)
|
||||||
|
|
||||||
|
AC_OUTPUT(Makefile,
|
||||||
|
. ${libgloss_topdir}/config-ml.in,
|
||||||
|
srcdir=${srcdir}
|
||||||
|
target=${target}
|
||||||
|
ac_configure_args="${ac_configure_args} --enable-multilib"
|
||||||
|
CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
|
||||||
|
libgloss_topdir=${libgloss_topdir}
|
||||||
|
)
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
%rename link old_link
|
||||||
|
|
||||||
|
*link:
|
||||||
|
-T redboot.ld%s -Ttext 0xA0020000 %(old_link)
|
||||||
|
|
||||||
|
*startfile:
|
||||||
|
crtbegin%O%s redboot-crt0%O%s redboot-syscalls%O%s
|
||||||
|
|
|
@ -0,0 +1,217 @@
|
||||||
|
OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm",
|
||||||
|
"elf32-littlearm")
|
||||||
|
OUTPUT_ARCH(arm)
|
||||||
|
ENTRY(_start)
|
||||||
|
/* Do we need any of these for elf?
|
||||||
|
__DYNAMIC = 0; */
|
||||||
|
SECTIONS
|
||||||
|
{
|
||||||
|
/* Read-only sections, merged into text segment: */
|
||||||
|
. = 0x00020000;
|
||||||
|
.interp : { *(.interp) }
|
||||||
|
.hash : { *(.hash) }
|
||||||
|
.dynsym : { *(.dynsym) }
|
||||||
|
.dynstr : { *(.dynstr) }
|
||||||
|
.gnu.version : { *(.gnu.version) }
|
||||||
|
.gnu.version_d : { *(.gnu.version_d) }
|
||||||
|
.gnu.version_r : { *(.gnu.version_r) }
|
||||||
|
.rel.init : { *(.rel.init) }
|
||||||
|
.rela.init : { *(.rela.init) }
|
||||||
|
.rel.text :
|
||||||
|
{
|
||||||
|
*(.rel.text)
|
||||||
|
*(.rel.text.*)
|
||||||
|
*(.rel.gnu.linkonce.t*)
|
||||||
|
}
|
||||||
|
.rela.text :
|
||||||
|
{
|
||||||
|
*(.rela.text)
|
||||||
|
*(.rela.text.*)
|
||||||
|
*(.rela.gnu.linkonce.t*)
|
||||||
|
}
|
||||||
|
.rel.fini : { *(.rel.fini) }
|
||||||
|
.rela.fini : { *(.rela.fini) }
|
||||||
|
.rel.rodata :
|
||||||
|
{
|
||||||
|
*(.rel.rodata)
|
||||||
|
*(.rel.rodata.*)
|
||||||
|
*(.rel.gnu.linkonce.r*)
|
||||||
|
}
|
||||||
|
.rela.rodata :
|
||||||
|
{
|
||||||
|
*(.rela.rodata)
|
||||||
|
*(.rela.rodata.*)
|
||||||
|
*(.rela.gnu.linkonce.r*)
|
||||||
|
}
|
||||||
|
.rel.data :
|
||||||
|
{
|
||||||
|
*(.rel.data)
|
||||||
|
*(.rel.data.*)
|
||||||
|
*(.rel.gnu.linkonce.d*)
|
||||||
|
}
|
||||||
|
.rela.data :
|
||||||
|
{
|
||||||
|
*(.rela.data)
|
||||||
|
*(.rela.data.*)
|
||||||
|
*(.rela.gnu.linkonce.d*)
|
||||||
|
}
|
||||||
|
.rel.ctors : { *(.rel.ctors) }
|
||||||
|
.rela.ctors : { *(.rela.ctors) }
|
||||||
|
.rel.dtors : { *(.rel.dtors) }
|
||||||
|
.rela.dtors : { *(.rela.dtors) }
|
||||||
|
.rel.got : { *(.rel.got) }
|
||||||
|
.rela.got : { *(.rela.got) }
|
||||||
|
.rel.sdata :
|
||||||
|
{
|
||||||
|
*(.rel.sdata)
|
||||||
|
*(.rel.sdata.*)
|
||||||
|
*(.rel.gnu.linkonce.s*)
|
||||||
|
}
|
||||||
|
.rela.sdata :
|
||||||
|
{
|
||||||
|
*(.rela.sdata)
|
||||||
|
*(.rela.sdata.*)
|
||||||
|
*(.rela.gnu.linkonce.s*)
|
||||||
|
}
|
||||||
|
.rel.sbss : { *(.rel.sbss) }
|
||||||
|
.rela.sbss : { *(.rela.sbss) }
|
||||||
|
.rel.bss : { *(.rel.bss) }
|
||||||
|
.rela.bss : { *(.rela.bss) }
|
||||||
|
.rel.plt : { *(.rel.plt) }
|
||||||
|
.rela.plt : { *(.rela.plt) }
|
||||||
|
.plt : { *(.plt) }
|
||||||
|
.text :
|
||||||
|
{
|
||||||
|
*(.text)
|
||||||
|
*(.text.*)
|
||||||
|
*(.stub)
|
||||||
|
/* .gnu.warning sections are handled specially by elf32.em. */
|
||||||
|
*(.gnu.warning)
|
||||||
|
*(.gnu.linkonce.t*)
|
||||||
|
*(.glue_7t) *(.glue_7)
|
||||||
|
} =0
|
||||||
|
.init :
|
||||||
|
{
|
||||||
|
KEEP (*(.init))
|
||||||
|
} =0
|
||||||
|
_etext = .;
|
||||||
|
PROVIDE (etext = .);
|
||||||
|
.fini :
|
||||||
|
{
|
||||||
|
KEEP (*(.fini))
|
||||||
|
} =0
|
||||||
|
.rodata : { *(.rodata) *(.rodata.*) *(.gnu.linkonce.r*) }
|
||||||
|
.rodata1 : { *(.rodata1) }
|
||||||
|
/* Adjust the address for the data segment. We want to adjust up to
|
||||||
|
the same address within the page on the next page up. */
|
||||||
|
. = ALIGN(256) + (. & (256 - 1));
|
||||||
|
.data :
|
||||||
|
{
|
||||||
|
*(.data)
|
||||||
|
*(.data.*)
|
||||||
|
*(.gnu.linkonce.d*)
|
||||||
|
SORT(CONSTRUCTORS)
|
||||||
|
}
|
||||||
|
.data1 : { *(.data1) }
|
||||||
|
.eh_frame : { *(.eh_frame) }
|
||||||
|
.gcc_except_table : { *(.gcc_except_table) }
|
||||||
|
.ctors :
|
||||||
|
{
|
||||||
|
/* gcc uses crtbegin.o to find the start of
|
||||||
|
the constructors, so we make sure it is
|
||||||
|
first. Because this is a wildcard, it
|
||||||
|
doesn't matter if the user does not
|
||||||
|
actually link against crtbegin.o; the
|
||||||
|
linker won't look for a file to match a
|
||||||
|
wildcard. The wildcard also means that it
|
||||||
|
doesn't matter which directory crtbegin.o
|
||||||
|
is in. */
|
||||||
|
KEEP (*crtbegin.o(.ctors))
|
||||||
|
/* We don't want to include the .ctor section from
|
||||||
|
from the crtend.o file until after the sorted ctors.
|
||||||
|
The .ctor section from the crtend file contains the
|
||||||
|
end of ctors marker and it must be last */
|
||||||
|
KEEP (*(EXCLUDE_FILE (*crtend.o ) .ctors))
|
||||||
|
KEEP (*(SORT(.ctors.*)))
|
||||||
|
KEEP (*(.ctors))
|
||||||
|
}
|
||||||
|
.dtors :
|
||||||
|
{
|
||||||
|
KEEP (*crtbegin.o(.dtors))
|
||||||
|
KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors))
|
||||||
|
KEEP (*(SORT(.dtors.*)))
|
||||||
|
KEEP (*(.dtors))
|
||||||
|
}
|
||||||
|
.got : { *(.got.plt) *(.got) }
|
||||||
|
.dynamic : { *(.dynamic) }
|
||||||
|
/* We want the small data sections together, so single-instruction offsets
|
||||||
|
can access them all, and initialized data all before uninitialized, so
|
||||||
|
we can shorten the on-disk segment size. */
|
||||||
|
.sdata :
|
||||||
|
{
|
||||||
|
*(.sdata)
|
||||||
|
*(.sdata.*)
|
||||||
|
*(.gnu.linkonce.s.*)
|
||||||
|
}
|
||||||
|
_edata = .;
|
||||||
|
PROVIDE (edata = .);
|
||||||
|
__bss_start = .;
|
||||||
|
__bss_start__ = .;
|
||||||
|
.sbss :
|
||||||
|
{
|
||||||
|
*(.dynsbss)
|
||||||
|
*(.sbss)
|
||||||
|
*(.sbss.*)
|
||||||
|
*(.scommon)
|
||||||
|
}
|
||||||
|
.bss :
|
||||||
|
{
|
||||||
|
*(.dynbss)
|
||||||
|
*(.bss)
|
||||||
|
*(.bss.*)
|
||||||
|
*(COMMON)
|
||||||
|
/* Align here to ensure that the .bss section occupies space up to
|
||||||
|
_end. Align after .bss to ensure correct alignment even if the
|
||||||
|
.bss section disappears because there are no input sections. */
|
||||||
|
. = ALIGN(32 / 8);
|
||||||
|
}
|
||||||
|
. = ALIGN(32 / 8);
|
||||||
|
_end = .;
|
||||||
|
_bss_end__ = . ; __bss_end__ = . ; __end__ = . ;
|
||||||
|
PROVIDE (end = .);
|
||||||
|
/* Stabs debugging sections. */
|
||||||
|
.stab 0 : { *(.stab) }
|
||||||
|
.stabstr 0 : { *(.stabstr) }
|
||||||
|
.stab.excl 0 : { *(.stab.excl) }
|
||||||
|
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||||
|
.stab.index 0 : { *(.stab.index) }
|
||||||
|
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||||
|
.comment 0 : { *(.comment) }
|
||||||
|
/* DWARF debug sections.
|
||||||
|
Symbols in the DWARF debugging sections are relative to the beginning
|
||||||
|
of the section so we begin them at 0. */
|
||||||
|
/* DWARF 1 */
|
||||||
|
.debug 0 : { *(.debug) }
|
||||||
|
.line 0 : { *(.line) }
|
||||||
|
/* GNU DWARF 1 extensions */
|
||||||
|
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||||
|
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||||
|
/* DWARF 1.1 and DWARF 2 */
|
||||||
|
.debug_aranges 0 : { *(.debug_aranges) }
|
||||||
|
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||||
|
/* DWARF 2 */
|
||||||
|
.debug_info 0 : { *(.debug_info) }
|
||||||
|
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||||
|
.debug_line 0 : { *(.debug_line) }
|
||||||
|
.debug_frame 0 : { *(.debug_frame) }
|
||||||
|
.debug_str 0 : { *(.debug_str) }
|
||||||
|
.debug_loc 0 : { *(.debug_loc) }
|
||||||
|
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||||
|
/* SGI/MIPS DWARF 2 extensions */
|
||||||
|
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||||
|
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||||
|
.debug_typenames 0 : { *(.debug_typenames) }
|
||||||
|
.debug_varnames 0 : { *(.debug_varnames) }
|
||||||
|
.stack 0x80000 : { _stack = .; *(.stack) }
|
||||||
|
/* These must appear regardless of . */
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
%rename link old_link
|
||||||
|
|
||||||
|
*link:
|
||||||
|
-T redboot.ld%s -Ttext 0x20000 %(old_link)
|
||||||
|
|
||||||
|
*startfile:
|
||||||
|
crtbegin%O%s redboot-crt0%O%s redboot-syscalls%O%s
|
||||||
|
|
|
@ -0,0 +1,79 @@
|
||||||
|
|
||||||
|
|
||||||
|
.file "crt0.S"
|
||||||
|
|
||||||
|
#define XGLUE(a,b) a##b
|
||||||
|
#define GLUE(a,b) XGLUE(a,b)
|
||||||
|
|
||||||
|
#ifdef __USER_LABEL_PREFIX__
|
||||||
|
#define SYM_NAME( name ) GLUE (__USER_LABEL_PREFIX__, name)
|
||||||
|
#else
|
||||||
|
#error __USER_LABEL_PREFIX is not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
.text
|
||||||
|
/*
|
||||||
|
* Setup the assembly entry point.
|
||||||
|
*/
|
||||||
|
.code 32
|
||||||
|
.globl SYM_NAME(start)
|
||||||
|
.globl SYM_NAME(_start)
|
||||||
|
SYM_NAME(start):
|
||||||
|
SYM_NAME(_start):
|
||||||
|
mov fp, #0 /* Null frame pointer */
|
||||||
|
mov r7, #0 /* Null frame pointer for Thumb */
|
||||||
|
|
||||||
|
/* enable interrupts for gdb debugging */
|
||||||
|
mrs r0, cpsr
|
||||||
|
bic r0, r0, #0xC0
|
||||||
|
msr cpsr, r0
|
||||||
|
|
||||||
|
mov 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 */
|
||||||
|
|
||||||
|
#ifdef __thumb__ /* Enter Thumb mode.... */
|
||||||
|
add a4, pc, #1 /* Get the address of the Thumb block */
|
||||||
|
bx a4 /* Go there and start Thumb decoding */
|
||||||
|
|
||||||
|
.code 16
|
||||||
|
.global __change_mode
|
||||||
|
.thumb_func
|
||||||
|
__change_mode:
|
||||||
|
#endif
|
||||||
|
|
||||||
|
bl SYM_NAME(memset)
|
||||||
|
|
||||||
|
mov a1, #0
|
||||||
|
ldr a2, .LC3
|
||||||
|
mov a3, a2
|
||||||
|
bl SYM_NAME(main)
|
||||||
|
1: bl SYM_NAME(exit)
|
||||||
|
b 1b
|
||||||
|
.LC1:
|
||||||
|
.word __bss_start__
|
||||||
|
.LC2:
|
||||||
|
.word __bss_end__
|
||||||
|
.LC3:
|
||||||
|
.word 0
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
#ifdef __thumb__
|
||||||
|
.code 16
|
||||||
|
#endif
|
||||||
|
.global SYM_NAME(__syscall)
|
||||||
|
#ifdef __thumb__
|
||||||
|
.thumb_func
|
||||||
|
#else
|
||||||
|
.align 4
|
||||||
|
#endif
|
||||||
|
SYM_NAME(__syscall):
|
||||||
|
mov r12, lr
|
||||||
|
#ifdef __thumb__
|
||||||
|
swi 0x18
|
||||||
|
#else
|
||||||
|
swi 0x180001
|
||||||
|
#endif
|
||||||
|
mov pc, r12
|
||||||
|
#endif
|
|
@ -0,0 +1,203 @@
|
||||||
|
/*
|
||||||
|
* redboot-syscalls.c -- provide system call support for RedBoot
|
||||||
|
*
|
||||||
|
* Copyright (c) 1997, 2001 Cygnus Support
|
||||||
|
*
|
||||||
|
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||||
|
* and license this software and its documentation for any purpose, provided
|
||||||
|
* that existing copyright notices are retained in all copies and that this
|
||||||
|
* notice is included verbatim in any distributions. No written agreement,
|
||||||
|
* license, or royalty fee is required for any of the authorized uses.
|
||||||
|
* Modifications to this software may be copyrighted by their authors
|
||||||
|
* and need not follow the licensing terms described here, provided that
|
||||||
|
* the new terms are clearly indicated on the first page of each file where
|
||||||
|
* they apply.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <sys/times.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#include "syscall.h"
|
||||||
|
|
||||||
|
// Use "naked" attribute to suppress C prologue/epilogue
|
||||||
|
static int __attribute__ ((naked)) __syscall(int func_no, ...)
|
||||||
|
{
|
||||||
|
asm ("mov r12, lr\n");
|
||||||
|
#ifdef __thumb__
|
||||||
|
asm ("swi 0x18\n");
|
||||||
|
#else
|
||||||
|
asm ("swi 0x180001\n");
|
||||||
|
#endif
|
||||||
|
asm ("mov pc, r12\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
_close(int fd)
|
||||||
|
{
|
||||||
|
int err;
|
||||||
|
err = __syscall(SYS_close, fd);
|
||||||
|
if (err)
|
||||||
|
errno = err;
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
_exit(int stat)
|
||||||
|
{
|
||||||
|
while (1)
|
||||||
|
__syscall(SYS_exit, stat);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
_fstat (int file, struct stat *st)
|
||||||
|
{
|
||||||
|
st->st_mode = S_IFCHR;
|
||||||
|
st->st_blksize = 4096;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
_getpid(void)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
_gettimeofday (void * tp, void * tzp)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
isatty(int fd)
|
||||||
|
{
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
_kill(int pid, int sig)
|
||||||
|
{
|
||||||
|
if(pid == 1)
|
||||||
|
_exit(sig);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
off_t
|
||||||
|
_lseek(int fd, off_t offset, int whence)
|
||||||
|
{
|
||||||
|
int err;
|
||||||
|
err = __syscall(SYS_lseek, fd, offset, whence);
|
||||||
|
if (err)
|
||||||
|
errno = err;
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
_open(const char *buf, int flags, int mode)
|
||||||
|
{
|
||||||
|
int err ;
|
||||||
|
err = __syscall(SYS_open, buf, flags, mode);
|
||||||
|
if (err)
|
||||||
|
errno = err;
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
_write(int fd, const char *buf, int nbytes)
|
||||||
|
{
|
||||||
|
int err;
|
||||||
|
|
||||||
|
err = __syscall(SYS_write, fd, buf, nbytes);
|
||||||
|
if (err)
|
||||||
|
errno = err;
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
print(char *ptr)
|
||||||
|
{
|
||||||
|
char *p = ptr;
|
||||||
|
|
||||||
|
while (*p != '\0')
|
||||||
|
p++;
|
||||||
|
|
||||||
|
_write (1, ptr, p-ptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
_raise (void)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
_read(int fd, char *buf, int nbytes)
|
||||||
|
{
|
||||||
|
int err;
|
||||||
|
err = __syscall(SYS_read, fd, buf, nbytes);
|
||||||
|
if (err)
|
||||||
|
errno = err;
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
extern char end[]; /* end is set in the linker command file */
|
||||||
|
|
||||||
|
char *heap_ptr;
|
||||||
|
|
||||||
|
char *
|
||||||
|
_sbrk (int nbytes)
|
||||||
|
{
|
||||||
|
char *base;
|
||||||
|
|
||||||
|
if (!heap_ptr)
|
||||||
|
heap_ptr = (char *)&end;
|
||||||
|
base = heap_ptr;
|
||||||
|
heap_ptr += nbytes;
|
||||||
|
|
||||||
|
return base;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
clock_t
|
||||||
|
_times(struct tms * tp)
|
||||||
|
{
|
||||||
|
clock_t utime;
|
||||||
|
#ifdef HAVE_BSP_CLOCK
|
||||||
|
int err;
|
||||||
|
err = __syscall(SYS_utime, &utime);
|
||||||
|
if (err)
|
||||||
|
utime = 0;
|
||||||
|
#else
|
||||||
|
utime = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (tp) {
|
||||||
|
tp->tms_utime = utime;
|
||||||
|
tp->tms_stime = 0;
|
||||||
|
tp->tms_cutime = 0;
|
||||||
|
tp->tms_cstime = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return utime;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
_unlink (const char *pathname)
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
|
@ -28,7 +28,6 @@ program_suffix=NONE
|
||||||
program_transform_name=s,x,x,
|
program_transform_name=s,x,x,
|
||||||
silent=
|
silent=
|
||||||
site=
|
site=
|
||||||
sitefile=
|
|
||||||
srcdir=
|
srcdir=
|
||||||
target=NONE
|
target=NONE
|
||||||
verbose=
|
verbose=
|
||||||
|
@ -143,7 +142,6 @@ Configuration:
|
||||||
--help print this message
|
--help print this message
|
||||||
--no-create do not create output files
|
--no-create do not create output files
|
||||||
--quiet, --silent do not print \`checking...' messages
|
--quiet, --silent do not print \`checking...' messages
|
||||||
--site-file=FILE use FILE as the site file
|
|
||||||
--version print the version of autoconf that created configure
|
--version print the version of autoconf that created configure
|
||||||
Directory and file names:
|
Directory and file names:
|
||||||
--prefix=PREFIX install architecture-independent files in PREFIX
|
--prefix=PREFIX install architecture-independent files in PREFIX
|
||||||
|
@ -314,11 +312,6 @@ EOF
|
||||||
-site=* | --site=* | --sit=*)
|
-site=* | --site=* | --sit=*)
|
||||||
site="$ac_optarg" ;;
|
site="$ac_optarg" ;;
|
||||||
|
|
||||||
-site-file | --site-file | --site-fil | --site-fi | --site-f)
|
|
||||||
ac_prev=sitefile ;;
|
|
||||||
-site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*)
|
|
||||||
sitefile="$ac_optarg" ;;
|
|
||||||
|
|
||||||
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
|
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
|
||||||
ac_prev=srcdir ;;
|
ac_prev=srcdir ;;
|
||||||
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
|
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
|
||||||
|
@ -484,16 +477,12 @@ fi
|
||||||
srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
|
srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
|
||||||
|
|
||||||
# Prefer explicitly selected file to automatically selected ones.
|
# Prefer explicitly selected file to automatically selected ones.
|
||||||
if test -z "$sitefile"; then
|
if test -z "$CONFIG_SITE"; then
|
||||||
if test -z "$CONFIG_SITE"; then
|
if test "x$prefix" != xNONE; then
|
||||||
if test "x$prefix" != xNONE; then
|
CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
|
||||||
CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
|
else
|
||||||
else
|
CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
|
||||||
CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
else
|
|
||||||
CONFIG_SITE="$sitefile"
|
|
||||||
fi
|
fi
|
||||||
for ac_site_file in $CONFIG_SITE; do
|
for ac_site_file in $CONFIG_SITE; do
|
||||||
if test -r "$ac_site_file"; then
|
if test -r "$ac_site_file"; then
|
||||||
|
@ -578,7 +567,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
|
||||||
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
|
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
|
||||||
# ./install, which can be erroneously created by make from ./install.sh.
|
# ./install, which can be erroneously created by make from ./install.sh.
|
||||||
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
|
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
|
||||||
echo "configure:582: checking for a BSD compatible install" >&5
|
echo "configure:571: checking for a BSD compatible install" >&5
|
||||||
if test -z "$INSTALL"; then
|
if test -z "$INSTALL"; then
|
||||||
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
|
@ -659,7 +648,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo $ac_n "checking host system type""... $ac_c" 1>&6
|
echo $ac_n "checking host system type""... $ac_c" 1>&6
|
||||||
echo "configure:663: checking host system type" >&5
|
echo "configure:652: checking host system type" >&5
|
||||||
|
|
||||||
host_alias=$host
|
host_alias=$host
|
||||||
case "$host_alias" in
|
case "$host_alias" in
|
||||||
|
@ -680,7 +669,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
|
||||||
echo "$ac_t""$host" 1>&6
|
echo "$ac_t""$host" 1>&6
|
||||||
|
|
||||||
echo $ac_n "checking target system type""... $ac_c" 1>&6
|
echo $ac_n "checking target system type""... $ac_c" 1>&6
|
||||||
echo "configure:684: checking target system type" >&5
|
echo "configure:673: checking target system type" >&5
|
||||||
|
|
||||||
target_alias=$target
|
target_alias=$target
|
||||||
case "$target_alias" in
|
case "$target_alias" in
|
||||||
|
@ -698,7 +687,7 @@ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
|
||||||
echo "$ac_t""$target" 1>&6
|
echo "$ac_t""$target" 1>&6
|
||||||
|
|
||||||
echo $ac_n "checking build system type""... $ac_c" 1>&6
|
echo $ac_n "checking build system type""... $ac_c" 1>&6
|
||||||
echo "configure:702: checking build system type" >&5
|
echo "configure:691: checking build system type" >&5
|
||||||
|
|
||||||
build_alias=$build
|
build_alias=$build
|
||||||
case "$build_alias" in
|
case "$build_alias" in
|
||||||
|
@ -791,6 +780,16 @@ case "${target}" in
|
||||||
xstormy16-*-*)
|
xstormy16-*-*)
|
||||||
configdirs="${configdirs} xstormy16 testsuite"
|
configdirs="${configdirs} xstormy16 testsuite"
|
||||||
;;
|
;;
|
||||||
|
strongarm-*-*)
|
||||||
|
configdirs="${configdirs} arm testsuite";
|
||||||
|
;;
|
||||||
|
arm*-*-*)
|
||||||
|
configdirs="${configdirs} arm testsuite";
|
||||||
|
;;
|
||||||
|
xscale-*-*)
|
||||||
|
configdirs="${configdirs} arm testsuite";
|
||||||
|
;;
|
||||||
|
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# temporarily strip out testsuite
|
# temporarily strip out testsuite
|
||||||
|
@ -810,7 +809,7 @@ subdirs="$configdirs"
|
||||||
# Extract the first word of "gcc", so it can be a program name with args.
|
# Extract the first word of "gcc", so it can be a program name with args.
|
||||||
set dummy gcc; ac_word=$2
|
set dummy gcc; ac_word=$2
|
||||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||||
echo "configure:814: checking for $ac_word" >&5
|
echo "configure:813: checking for $ac_word" >&5
|
||||||
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
|
@ -840,7 +839,7 @@ if test -z "$CC"; then
|
||||||
# Extract the first word of "cc", so it can be a program name with args.
|
# Extract the first word of "cc", so it can be a program name with args.
|
||||||
set dummy cc; ac_word=$2
|
set dummy cc; ac_word=$2
|
||||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||||
echo "configure:844: checking for $ac_word" >&5
|
echo "configure:843: checking for $ac_word" >&5
|
||||||
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
|
@ -889,7 +888,7 @@ fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
|
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
|
||||||
echo "configure:893: checking whether we are using GNU C" >&5
|
echo "configure:892: checking whether we are using GNU C" >&5
|
||||||
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
|
@ -898,7 +897,7 @@ else
|
||||||
yes;
|
yes;
|
||||||
#endif
|
#endif
|
||||||
EOF
|
EOF
|
||||||
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:902: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
|
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:901: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
|
||||||
ac_cv_prog_gcc=yes
|
ac_cv_prog_gcc=yes
|
||||||
else
|
else
|
||||||
ac_cv_prog_gcc=no
|
ac_cv_prog_gcc=no
|
||||||
|
@ -913,7 +912,7 @@ if test $ac_cv_prog_gcc = yes; then
|
||||||
ac_save_CFLAGS="$CFLAGS"
|
ac_save_CFLAGS="$CFLAGS"
|
||||||
CFLAGS=
|
CFLAGS=
|
||||||
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
|
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
|
||||||
echo "configure:917: checking whether ${CC-cc} accepts -g" >&5
|
echo "configure:916: checking whether ${CC-cc} accepts -g" >&5
|
||||||
if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
|
@ -945,7 +944,7 @@ AS=${AS-as}
|
||||||
# Extract the first word of "ar", so it can be a program name with args.
|
# Extract the first word of "ar", so it can be a program name with args.
|
||||||
set dummy ar; ac_word=$2
|
set dummy ar; ac_word=$2
|
||||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||||
echo "configure:949: checking for $ac_word" >&5
|
echo "configure:948: checking for $ac_word" >&5
|
||||||
if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
|
@ -979,7 +978,7 @@ LD=${LD-ld}
|
||||||
# Extract the first word of "ranlib", so it can be a program name with args.
|
# Extract the first word of "ranlib", so it can be a program name with args.
|
||||||
set dummy ranlib; ac_word=$2
|
set dummy ranlib; ac_word=$2
|
||||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||||
echo "configure:983: checking for $ac_word" >&5
|
echo "configure:982: checking for $ac_word" >&5
|
||||||
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
|
|
|
@ -91,6 +91,16 @@ case "${target}" in
|
||||||
xstormy16-*-*)
|
xstormy16-*-*)
|
||||||
configdirs="${configdirs} xstormy16 testsuite"
|
configdirs="${configdirs} xstormy16 testsuite"
|
||||||
;;
|
;;
|
||||||
|
strongarm-*-*)
|
||||||
|
configdirs="${configdirs} arm testsuite";
|
||||||
|
;;
|
||||||
|
arm*-*-*)
|
||||||
|
configdirs="${configdirs} arm testsuite";
|
||||||
|
;;
|
||||||
|
xscale-*-*)
|
||||||
|
configdirs="${configdirs} arm testsuite";
|
||||||
|
;;
|
||||||
|
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# temporarily strip out testsuite
|
# temporarily strip out testsuite
|
||||||
|
|
Loading…
Reference in New Issue