about summary refs log tree commit diff
path: root/sysdeps/mips/preconfigure.ac
blob: 038920265b97d5a75305afe32e6ab4cd70eb4545 (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
30
31
32
33
34
GLIBC_PROVIDES[]dnl See aclocal.m4 in the top level source directory.
# Local preconfigure fragment for sysdeps/mips

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
		AC_MSG_ERROR([Unable to determine ABI.], [1])
	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
		AC_MSG_ERROR([MIPS16 is only supported with the o32 ABI.], [1])
	fi

	with_fp_cond="defined __mips_hard_float"
	;;
esac