# Custom multilibs for RTEMS
#
# Copyright (C) 2003-2021 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
# GCC is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
#
# GCC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GCC; see the file COPYING3.  If not see
# <http://www.gnu.org/licenses/>.

# default is mips1 EB hard-float
MULTILIB_OPTIONS = mips1/mips3/mips32 EB/EL msoft-float
MULTILIB_DIRNAMES = mips1 mips3 mips32 eb el soft-float
MULTILIB_MATCHES = EL=mel EB=meb

MULTILIB_EXCEPTIONS =

# Big endian only
MULTILIB_EXCEPTIONS += EL*
MULTILIB_EXCEPTIONS += mips32/EL*

# Little endian only
MULTILIB_EXCEPTIONS += mips3
MULTILIB_EXCEPTIONS += mips3/msoft-float
