MULTILIB_OPTIONS     = mthumb
MULTILIB_DIRNAMES    = thumb
MULTILIB_EXCEPTIONS  =
MULTILIB_MATCHES     =
MULTILIB_ALIASES     =

MULTILIB_OPTIONS      += march=armv7/march=armv5te/march=armv6-m
MULTILIB_DIRNAMES     += v7 v5te v6-m
MULTILIB_EXCEPTIONS   += march=armv7*
MULTILIB_MATCHES      += march?armv7=march?armv7-a
MULTILIB_MATCHES      += march?armv7=march?armv7-r
MULTILIB_MATCHES      += march?armv7=march?armv7-m
MULTILIB_MATCHES      += march?armv7=march?armv7e-m
MULTILIB_MATCHES      += march?armv7=mcpu?cortex-a9
MULTILIB_MATCHES      += march?armv7=mcpu?cortex-a8
MULTILIB_MATCHES      += march?armv7=mcpu?cortex-a5
MULTILIB_MATCHES      += march?armv7=mcpu?cortex-r4
MULTILIB_MATCHES      += march?armv7=mcpu?cortex-r4f
MULTILIB_MATCHES      += march?armv7=mcpu?cortex-r5
MULTILIB_MATCHES      += march?armv7=mcpu?cortex-m4
MULTILIB_MATCHES      += march?armv7=mcpu?cortex-m3

MULTILIB_EXCEPTIONS   += march=armv6-m
MULTILIB_MATCHES      += march?armv6-m=mcpu?cortex-m1
MULTILIB_MATCHES      += march?armv6-m=mcpu?cortex-m0
MULTILIB_MATCHES      += march?armv6-m=march=armv6s-m

MULTILIB_MATCHES      += march?armv5te=march?armv6
MULTILIB_MATCHES      += march?armv5te=march?armv6j
MULTILIB_MATCHES      += march?armv5te=march?armv6k
MULTILIB_MATCHES      += march?armv5te=march?armv6z
MULTILIB_MATCHES      += march?armv5te=march?armv6zk
MULTILIB_MATCHES      += march?armv5te=march?armv6t2
MULTILIB_MATCHES      += march?armv5te=march?iwmmxt
MULTILIB_MATCHES      += march?armv5te=march?iwmmxt2
MULTILIB_MATCHES      += march?armv5te=mcpu?arm9e
MULTILIB_MATCHES      += march?armv5te=mcpu?arm946e-s
MULTILIB_MATCHES      += march?armv5te=mcpu?arm966e-s
MULTILIB_MATCHES      += march?armv5te=mcpu?arm968e-s
MULTILIB_MATCHES      += march?armv5te=mcpu?arm10e
MULTILIB_MATCHES      += march?armv5te=mcpu?arm1020e
MULTILIB_MATCHES      += march?armv5te=mcpu?arm1022e
MULTILIB_MATCHES      += march?armv5te=mcpu?xscale
MULTILIB_MATCHES      += march?armv5te=mcpu?iwmmxt
MULTILIB_MATCHES      += march?armv5te=mcpu?iwmmxt2
MULTILIB_MATCHES      += march?armv5te=mcpu?marvell-f
MULTILIB_MATCHES      += march?armv5te=mcpu?arm926ej-s
MULTILIB_MATCHES      += march?armv5te=mcpu?arm1026ej-s
MULTILIB_MATCHES      += march?armv5te=mcpu?arm1136j-s
MULTILIB_MATCHES      += march?armv5te=mcpu?arm1136jf-s
MULTILIB_MATCHES      += march?armv5te=mcpu?arm1176jz-s
MULTILIB_MATCHES      += march?armv5te=mcpu?arm1176jzf-s
MULTILIB_MATCHES      += march?armv5te=mcpu?mpcorenovfp
MULTILIB_MATCHES      += march?armv5te=mcpu?mpcore
MULTILIB_MATCHES      += march?armv5te=mcpu?arm1156t2-s

# FIXME: We need a sane way of doing this.
# This isn't really a multilib, it's a hack to add an extra option
# to the v7-m multilib.
MULTILIB_OPTIONS      += mfix-cortex-m3-ldrd
MULTILIB_DIRNAMES     += broken_ldrd

MULTILIB_EXCEPTIONS   += mfix-cortex-m3-ldrd
MULTILIB_EXCEPTIONS   += mthumb/mfix-cortex-m3-ldrd
MULTILIB_EXCEPTIONS   += *march=armv6-m*mfix-cortex-m3-ldrd
MULTILIB_EXCEPTIONS   += *march=armv5te*mfix-cortex-m3-ldrd

MULTILIB_ALIASES      += mthumb=mthumb/march?armv5te
MULTILIB_ALIASES      += mthumb/march?armv7/mfix-cortex-m3-ldrd=mthumb/march?armv7

# As of at least 4.2, gcc passes the wrong -L options if some multilibs are
# omitted from MULTILIB_OSDIRNAMES
MULTILIB_OSDIRNAMES    = mthumb=!thumb
MULTILIB_OSDIRNAMES   += mthumb/march.armv7/mfix-cortex-m3-ldrd=!thumb2
MULTILIB_OSDIRNAMES   += march.armv5te=!armv5te mthumb/march.armv6-m=!armv6-m
