This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Patch to clean up multilibs for tx39



OK to push?

                          -gavin...


This cleans up the multilibs for tx39.

	* mips/t-r3900: New - same as t-ecoff but eliminate 
	multilibs: mips1 and mips3.
	* configure.in (tx39*): Use new mips/t-r3900.
 	* configure: Rebuild.
	* mips/r3900.h (MULTILIB_DEFAULTS): Eliminate mips1.

New file: gcc/config/mips/t-r3900
================================================
CONFIG2_H	= $(srcdir)/config/mips/ecoff.h

# We have a premade insn-attrtab.c to save the hour it takes to run genattrtab.
# PREMADE_ATTRTAB = $(srcdir)/config/mips/mips-at.c
# PREMADE_ATTRTAB_MD = $(srcdir)/config/mips/mips-at.md

# Suppress building libgcc1.a, since the MIPS compiler port is complete
# and does not need anything from libgcc1.a.
LIBGCC1 =

# When building a cross compiler, put the mips16 support functions in
# libgcc1.a.
CROSS_LIBGCC1 = libgcc1-asm.a
LIB1ASMSRC = mips/mips16.S
LIB1ASMFUNCS = _m16addsf3 _m16subsf3 _m16mulsf3 _m16divsf3 \
	_m16eqsf2 _m16nesf2 _m16gtsf2 _m16gesf2 _m16lesf2 _m16ltsf2 \
	_m16fltsisf _m16fixsfsi \
	_m16adddf3 _m16subdf3 _m16muldf3 _m16divdf3 \
	_m16extsfdf2 _m16trdfsf2 \
	_m16eqdf2 _m16nedf2 _m16gtdf2 _m16gedf2 _m16ledf2 _m16ltdf2 \
	_m16fltsidf _m16fixdfsi \
	_m16retsf _m16retdf \
	_m16stub1 _m16stub2 _m16stub5 _m16stub6 _m16stub9 _m16stub10 \
	_m16stubsf0 _m16stubsf1 _m16stubsf2 _m16stubsf5 _m16stubsf6 \
	_m16stubsf9 _m16stubsf10 \
	_m16stubdf0 _m16stubdf1 _m16stubdf2 _m16stubdf5 _m16stubdf6 \
	_m16stubdf9 _m16stubdf10

# We must build libgcc2.a with -G 0, in case the user wants to link
# without the $gp register.
TARGET_LIBGCC2_CFLAGS = -G 0

# fp-bit and dp-bit are really part of libgcc1, but this will cause
# them to be built correctly, so... [taken from t-sparclite]
LIB2FUNCS_EXTRA = fp-bit.c dp-bit.c

dp-bit.c: $(srcdir)/config/fp-bit.c
	echo '#ifdef __MIPSEL__' > dp-bit.c
	echo '#define FLOAT_BIT_ORDER_MISMATCH' >> dp-bit.c
	echo '#endif' >> dp-bit.c
	echo '#define US_SOFTWARE_GOFAST' >> dp-bit.c
	cat $(srcdir)/config/fp-bit.c >> dp-bit.c

fp-bit.c: $(srcdir)/config/fp-bit.c
	echo '#define FLOAT' > fp-bit.c
	echo '#ifdef __MIPSEL__' >> fp-bit.c
	echo '#define FLOAT_BIT_ORDER_MISMATCH' >> fp-bit.c
	echo '#endif' >> fp-bit.c
	echo '#define US_SOFTWARE_GOFAST' >> fp-bit.c
	cat $(srcdir)/config/fp-bit.c >> fp-bit.c

# Build the libraries for both hard and soft floating point

MULTILIB_OPTIONS = msoft-float/msingle-float EL/EB
MULTILIB_DIRNAMES = soft-float single el eb

LIBGCC = stmp-multilib
INSTALL_LIBGCC = install-multilib

# Add additional dependencies to recompile selected modules whenever the
# tm.h file changes.  The files compiled are:
#
#	gcc.c		(*_SPEC changes)
#	toplev.c	(new switches + assembly output changes)
#	sdbout.c	(debug format changes)
#	dbxout.c	(debug format changes)
#	dwarfout.c	(debug format changes)
#	final.c		(assembly output changes)
#	varasm.c	(assembly output changes)
#	cse.c		(cost functions)
#	insn-output.c	(possible ifdef changes in tm.h)
#	regclass.c	(fixed/call used register changes)
#	cccp.c		(new preprocessor macros, -v version #)
#	explow.c	(GO_IF_LEGITIMATE_ADDRESS)
#	recog.c		(GO_IF_LEGITIMATE_ADDRESS)
#	reload.c	(GO_IF_LEGITIMATE_ADDRESS)

gcc.o: $(CONFIG2_H)
toplev.o: $(CONFIG2_H)
sdbout.o: $(CONFIG2_H)
dbxout.o: $(CONFIG2_H)
dwarfout.o: $(CONFIG2_H)
final.o: $(CONFIG2_H)
varasm.o: $(CONFIG2_H)
cse.o: $(CONFIG2_H)
insn-output.o: $(CONFIG2_H)
regclass.o: $(CONFIG2_H)
cccp.o: $(CONFIG2_H)
explow.o: $(CONFIG2_H)
recog.o: $(CONFIG2_H)
reload.o: $(CONFIG2_H)
Index: gcc/configure.in
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/configure.in,v
retrieving revision 1.57
diff -c -3 -p -r1.57 configure.in
*** configure.in	1998/02/01 00:48:05	1.57
--- configure.in	1998/02/06 19:41:21
*************** for machine in $build $host $target; do
*** 1992,2002 ****
  		;;
  	mipstx39el-*-elf*)
  		tm_file="mips/r3900.h mips/elfl.h mips/abi64.h libgloss.h"
! 		tmake_file=mips/t-ecoff
  		;;
  	mipstx39-*-elf*)
  		tm_file="mips/r3900.h mips/elf.h mips/abi64.h libgloss.h"
! 		tmake_file=mips/t-ecoff
  		;;
  	mips-*-*)				# Default MIPS RISC-OS 4.0.
  		if [[ x$stabs = xyes ]]; then
--- 1992,2002 ----
  		;;
  	mipstx39el-*-elf*)
  		tm_file="mips/r3900.h mips/elfl.h mips/abi64.h libgloss.h"
! 		tmake_file=mips/t-r3900
  		;;
  	mipstx39-*-elf*)
  		tm_file="mips/r3900.h mips/elf.h mips/abi64.h libgloss.h"
! 		tmake_file=mips/t-r3900
  		;;
  	mips-*-*)				# Default MIPS RISC-OS 4.0.
  		if [[ x$stabs = xyes ]]; then
Index: gcc/config/mips/r3900.h
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/config/mips/r3900.h,v
retrieving revision 1.1.1.1
diff -c -3 -p -r1.1.1.1 r3900.h
*** r3900.h	1997/11/02 08:44:55	1.1.1.1
--- r3900.h	1998/02/06 19:41:26
*************** Boston, MA 02111-1307, USA.  */
*** 46,52 ****
  #define MIPS_CPU_STRING_DEFAULT "R3900"
  #define MIPS_ISA_DEFAULT 1
  
! #define MULTILIB_DEFAULTS { "EB", "mips1", "msoft-float" }
  
  /* We use the MIPS EABI by default.  */
  #define MIPS_ABI_DEFAULT ABI_EABI
--- 46,52 ----
  #define MIPS_CPU_STRING_DEFAULT "R3900"
  #define MIPS_ISA_DEFAULT 1
  
! #define MULTILIB_DEFAULTS { "EB", "msoft-float" }
  
  /* We use the MIPS EABI by default.  */
  #define MIPS_ABI_DEFAULT ABI_EABI




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]