summaryrefslogtreecommitdiff
path: root/ports/sysdeps/arm/preconfigure.ac
blob: 39c86218aab34cf811765426522f86f38de1fc81 (plain)
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
# Local preconfigure fragment for sysdeps/arm

case "$machine" in
arm*)
  case $config_os in
  linux-gnueabi*)
    # If the compiler enables unwind tables by default, this causes
    # problems with undefined symbols in -nostdlib link tests.  To
    # avoid this, add -fno-unwind-tables here and remove it in
    # sysdeps/unix/sysv/linux/arm/configure.ac after those tests have
    # been run.
    if test "${CFLAGS+set}" != "set"; then
      CFLAGS="-g -O2"
    fi
    CFLAGS="$CFLAGS -fno-unwind-tables"
    ;;
  linux*)
    AC_MSG_ERROR([Old ABI no longer supported])
    ;;
  esac

  base_machine=arm
  # Lets ask the compiler which ARM family we've got
  # Unfortunately it doesn't define any flags for implementations
  # that you might pass to -mcpu or -mtune
  # Note if you add patterns here you must ensure that
  # an appropriate directory exists in sysdeps/arm
  archcppflag=`$CC $CFLAGS $CPPFLAGS -E -dM -xc /dev/null |
    sed -n 's/^#define \(__ARM_ARCH_[0-9].*__\) .*$/\1/p'`

  case "x$archcppflag" in
  x__ARM_ARCH_[89]*__)
    machine=armv7
    AC_MSG_NOTICE([Found compiler is configured for something newer than v7 - using v7])
    ;;

  x__ARM_ARCH_7A__)
    machine=armv7
    AC_MSG_NOTICE([Found compiler is configured for $machine])
    ;;

  x__ARM_ARCH_6T2__)
    machine=armv6t2
    AC_MSG_NOTICE([Found compiler is configured for $machine])
    ;;
  x__ARM_ARCH_6*__)
    machine=armv6
    AC_MSG_NOTICE([Found compiler is configured for $machine])
    ;;
  *)
    machine=arm
    AC_MSG_WARN([arm/preconfigure: Did not find ARM architecture type; using default])
    ;;
  esac

  machine=arm/$machine
esac