* mips/crt0_cfe.S: New file.
        * mips/cfe_mem.c: New file.
        * mips/cfe_prestart.S: Remove.
        * mips/cfe.ld: Adjust to use crt0_cfe.o as the startup file, and
        and use _start as the entry point.  Align BSS to 32-byte boundary.
        * mips/cfe.c: Reimplement to fit on top of a crt0_cfe.o file.
        * mips/cfe_api.h (__libcfe_stack_size, __libcfe_mem_limit)
        (__libcfe_meminit, __libcfe_stack_top): New prototypes.
        * mips/Makefile.in (CFEOBJS): Replace cfe_prestart.o with cfe_mem.o.
        (cfe.o, cfe_api.o, cfe_mem.o, crt0_cfe.o): New targets.
        * mips/configure.in: Build and install crt0_cfe.o when CFE support
        is built.
        * mips/configure: Regenerate.
		
	
		
			
				
	
	
		
			158 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			158 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000, 2002 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.
 | 
						|
#
 | 
						|
# Process this file with autoconf to produce a configure script.
 | 
						|
#
 | 
						|
AC_PREREQ(2.5)dnl
 | 
						|
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
 | 
						|
 | 
						|
# 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 building a library that must be included in all links, so we
 | 
						|
# can't link an executable until this lib is built.
 | 
						|
# autoconf should provide a way to do this.
 | 
						|
 | 
						|
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
 | 
						|
 | 
						|
crt0=crt0.o
 | 
						|
pcrt0=pcrt0.o
 | 
						|
 | 
						|
case "${target}" in
 | 
						|
  mips*-tx39*-*|mipstx39*-*-*)
 | 
						|
        part_specific_obj=
 | 
						|
	part_specific_defines=
 | 
						|
        script_list="dve idt jmr3904app jmr3904dram jmr3904dram-java jmr3904app-java"
 | 
						|
        bsp_list="libdve.a libidt.a libjmr3904.a"
 | 
						|
        ;;
 | 
						|
  mipsisa32-*-* | mipsisa32el-*-* | \
 | 
						|
  mipsisa32r2-*-* | mipsisa32r2el-*-*)
 | 
						|
	crt0="crt0_cfe.o crt0_cygmon.o crt0.o"
 | 
						|
	pcrt0="pcrt0.o"
 | 
						|
	part_specific_obj=
 | 
						|
	part_specific_defines=
 | 
						|
	script_list="idt32 idt64 cfe"
 | 
						|
	bsp_list="libcygmon.a libidt.a libcfe.a"
 | 
						|
	;;
 | 
						|
  mips*-lsi*-*)
 | 
						|
	part_specific_obj=entry.o
 | 
						|
	part_specific_defines=
 | 
						|
        script_list="lsi"
 | 
						|
        bsp_list=liblsi.a
 | 
						|
	;;
 | 
						|
  mips64vr5*-*-*)
 | 
						|
	part_specific_obj="vr5xxx.o cma101.o"
 | 
						|
	part_specific_defines=-DR5000
 | 
						|
        script_list="idt pmon ddb ddb-kseg0 lsi idtecoff nullmon"
 | 
						|
        bsp_list="libidt.a libpmon.a liblsi.a libnullmon.a"
 | 
						|
	;;
 | 
						|
  mips64vr-*-* | mips64vrel-*-*)
 | 
						|
	part_specific_obj="vr5xxx.o cma101.o"
 | 
						|
	script_list="ddb ddb-kseg0 nullmon"
 | 
						|
	bsp_list="libpmon.a libnullmon.a"
 | 
						|
	;;
 | 
						|
  *)
 | 
						|
	crt0="crt0_cfe.o crt0.o"
 | 
						|
        part_specific_obj="vr4300.o cma101.o"
 | 
						|
	part_specific_defines=
 | 
						|
        script_list="idt pmon ddb ddb-kseg0 lsi cfe idtecoff nullmon"
 | 
						|
        bsp_list="libidt.a libpmon.a liblsi.a libcfe.a libnullmon.a"
 | 
						|
        ;;
 | 
						|
esac
 | 
						|
 | 
						|
host_makefile_frag=${srcdir}/../config/default.mh
 | 
						|
target_makefile_frag=${srcdir}/../config/mips.mt
 | 
						|
 | 
						|
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)
 | 
						|
target_makefile_frag_path=$target_makefile_frag
 | 
						|
AC_SUBST(target_makefile_frag_path)
 | 
						|
AC_SUBST_FILE(target_makefile_frag)
 | 
						|
AC_SUBST(part_specific_obj)
 | 
						|
AC_SUBST(part_specific_defines)
 | 
						|
AC_SUBST(script_list)
 | 
						|
AC_SUBST(bsp_list)
 | 
						|
AC_SUBST(crt0)
 | 
						|
AC_SUBST(pcrt0)
 | 
						|
 | 
						|
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}
 | 
						|
)
 |