summary refs log tree commit diff
path: root/sysdeps/mips/preconfigure
blob: c118592b272ffba0f67917534a5ff6d1a0803105 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
case "$machine" in
mips*)
	abiflag=`$CC $CFLAGS $CPPFLAGS -E -dM -xc /dev/null | sed -n 's/^#define _MIPS_SIM \(.*\)/\1/p'`
	mips16flag=`$CC $CFLAGS $CPPFLAGS -E -dM -xc /dev/null | sed -n 's/^#define __mips16 \(.*\)/\1/p'`

	base_machine=mips
	if test "$abiflag" = "_ABIO32" ; then
		if test "$mips16flag" = "1" ; then
			machine=mips/mips32/mips16
		else
			machine=mips/mips32
		fi
	elif test "$abiflag" = "_ABIN32" ; then
		machine=mips/mips64/n32
	elif test "$abiflag" = "_ABI64" ; then
		machine=mips/mips64/n64
	else
		as_fn_error $? "Unable to determine ABI." "$LINENO" 5
	fi
	# $config_machine is not really needed here but the slash after
	# $machine is needed by the case statement in
	# sysdeps/unix/sysv/linux/mips/configure.ac.
	machine=$machine/$config_machine

	if test "$abiflag" != "_ABIO32" -a "$mips16flag" = "1"; then
		as_fn_error $? "MIPS16 is only supported with the o32 ABI." "$LINENO" 5
	fi
	;;
esac