Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

# Copyright (C) 2012-2020 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/>.

# The default build is mips32r2, hard-float big-endian.  Add mips32,
# soft-float, and little-endian variations.

MULTILIB_OPTIONS = mips32/mips64/mips64r2 mips16/mmicromips mabi=64 EL msoft-float mnan=2008
MULTILIB_DIRNAMES = mips32 mips64 mips64r2 mips16 micromips 64 el sof nan2008
MULTILIB_MATCHES = EL=mel EB=meb mips32r2=mips32r3 mips32r2=mips32r5 mips64r2=mips64r3 mips64r2=mips64r5

MULTILIB_REQUIRED    =
MULTILIB_OSDIRNAMES  = .=mips-r2-hard/lib
MULTILIB_REQUIRED   += mips64r2
MULTILIB_OSDIRNAMES += mips64r2=!mips-r2-hard/lib32
MULTILIB_REQUIRED   += mips64r2/mabi=64
MULTILIB_OSDIRNAMES += mips64r2/mabi.64=!mips-r2-hard/lib64

MULTILIB_REQUIRED   += mnan=2008
MULTILIB_OSDIRNAMES += mnan.2008=!mips-r2-hard-nan2008/lib
MULTILIB_REQUIRED   += mips64r2/mnan=2008
MULTILIB_OSDIRNAMES += mips64r2/mnan.2008=!mips-r2-hard-nan2008/lib32
MULTILIB_REQUIRED   += mips64r2/mabi=64/mnan=2008
MULTILIB_OSDIRNAMES += mips64r2/mabi.64/mnan.2008=!mips-r2-hard-nan2008/lib64

MULTILIB_REQUIRED   += msoft-float
MULTILIB_OSDIRNAMES += msoft-float=!mips-r2-soft/lib
MULTILIB_REQUIRED   += mips64r2/msoft-float
MULTILIB_OSDIRNAMES += mips64r2/msoft-float=!mips-r2-soft/lib32
MULTILIB_REQUIRED   += mips64r2/mabi=64/msoft-float
MULTILIB_OSDIRNAMES += mips64r2/mabi.64/msoft-float=!mips-r2-soft/lib64

#MULTILIB_REQUIRED   += msoft-float/mnan=2008
#MULTILIB_OSDIRNAMES += msoft-float/mnan.2008=!mips-r2-soft-nan2008/lib
#MULTILIB_REQUIRED   += mips64r2/msoft-float/mnan=2008
#MULTILIB_OSDIRNAMES += mips64r2/msoft-float/mnan.2008=!mips-r2-soft-nan2008/lib32
#MULTILIB_REQUIRED   += mips64r2/mabi=64/msoft-float/mnan=2008
#MULTILIB_OSDIRNAMES += mips64r2/mabi.64/msoft-float/mnan.2008=!mips-r2-soft-nan2008/lib64

MULTILIB_REQUIRED   += EL
MULTILIB_OSDIRNAMES += EL=!mipsel-r2-hard/lib
MULTILIB_REQUIRED   += mips64r2/EL
MULTILIB_OSDIRNAMES += mips64r2/EL=!mipsel-r2-hard/lib32
MULTILIB_REQUIRED   += mips64r2/mabi=64/EL
MULTILIB_OSDIRNAMES += mips64r2/mabi.64/EL=!mipsel-r2-hard/lib64

MULTILIB_REQUIRED   += EL/mnan=2008
MULTILIB_OSDIRNAMES += EL/mnan.2008=!mipsel-r2-hard-nan2008/lib
MULTILIB_REQUIRED   += mips64r2/EL/mnan=2008
MULTILIB_OSDIRNAMES += mips64r2/EL/mnan.2008=!mipsel-r2-hard-nan2008/lib32
MULTILIB_REQUIRED   += mips64r2/mabi=64/EL/mnan=2008
MULTILIB_OSDIRNAMES += mips64r2/mabi.64/EL/mnan.2008=!mipsel-r2-hard-nan2008/lib64

MULTILIB_REQUIRED   += EL/msoft-float
MULTILIB_OSDIRNAMES += EL/msoft-float=!mipsel-r2-soft/lib
MULTILIB_REQUIRED   += mips64r2/EL/msoft-float
MULTILIB_OSDIRNAMES += mips64r2/EL/msoft-float=!mipsel-r2-soft/lib32
MULTILIB_REQUIRED   += mips64r2/mabi=64/EL/msoft-float
MULTILIB_OSDIRNAMES += mips64r2/mabi.64/EL/msoft-float=!mipsel-r2-soft/lib64

#MULTILIB_REQUIRED   += EL/msoft-float/mnan=2008
#MULTILIB_OSDIRNAMES += EL/msoft-float/mnan.2008=!mipsel-r2-soft-nan2008/lib
#MULTILIB_REQUIRED   += mips64r2/EL/msoft-float/mnan=2008
#MULTILIB_OSDIRNAMES += mips64r2/EL/msoft-float/mnan.2008=!mipsel-r2-soft-nan2008/lib32
#MULTILIB_REQUIRED   += mips64r2/mabi=64/EL/msoft-float/mnan=2008
#MULTILIB_OSDIRNAMES += mips64r2/mabi.64/EL/msoft-float/mnan.2008=!mipsel-r2-soft-nan2008/lib64

# We will not include any 64 bit mips16 combinations.
MULTILIB_REQUIRED   += mips16
MULTILIB_OSDIRNAMES += mips16=!mips-r2-mips16-hard/lib
MULTILIB_REQUIRED   += mips16/mnan=2008
MULTILIB_OSDIRNAMES += mips16/mnan.2008=!mips-r2-mips16-hard-nan2008/lib
MULTILIB_REQUIRED   += mips16/msoft-float
MULTILIB_OSDIRNAMES += mips16/msoft-float=!mips-r2-mips16-soft/lib
#MULTILIB_REQUIRED   += mips16/msoft-float/mnan=2008
#MULTILIB_OSDIRNAMES += mips16/msoft-float/mnan.2008=!mips-r2-mips16-soft-nan2008/lib

MULTILIB_REQUIRED   += mips16/EL
MULTILIB_OSDIRNAMES += mips16/EL=!mipsel-r2-mips16-hard/lib
MULTILIB_REQUIRED   += mips16/EL/mnan=2008
MULTILIB_OSDIRNAMES += mips16/EL/mnan.2008=!mipsel-r2-mips16-hard-nan2008/lib
MULTILIB_REQUIRED   += mips16/EL/msoft-float
MULTILIB_OSDIRNAMES += mips16/EL/msoft-float=!mipsel-r2-mips16-soft/lib
#MULTILIB_REQUIRED   += mips16/EL/msoft-float/mnan=2008
#MULTILIB_OSDIRNAMES += mips16/EL/msoft-float/mnan.2008=!mipsel-r2-mips16-soft-nan2008/lib

MULTILIB_REQUIRED   += mmicromips
MULTILIB_OSDIRNAMES += mmicromips=!micromips-r2-hard/lib
MULTILIB_REQUIRED   += mmicromips/mnan=2008
MULTILIB_OSDIRNAMES += mmicromips/mnan.2008=!micromips-r2-hard-nan2008/lib
MULTILIB_REQUIRED   += mmicromips/msoft-float
MULTILIB_OSDIRNAMES += mmicromips/msoft-float=!micromips-r2-soft/lib
#MULTILIB_REQUIRED   += mmicromips/msoft-float/mnan=2008
#MULTILIB_OSDIRNAMES += mmicromips/msoft-float/mnan.2008=!micromips-r2-soft-nan2008/lib

MULTILIB_REQUIRED   += mmicromips/EL
MULTILIB_OSDIRNAMES += mmicromips/EL=!micromipsel-r2-hard/lib
MULTILIB_REQUIRED   += mmicromips/EL/mnan=2008
MULTILIB_OSDIRNAMES += mmicromips/EL/mnan.2008=!micromipsel-r2-hard-nan2008/lib
MULTILIB_REQUIRED   += mmicromips/EL/msoft-float
MULTILIB_OSDIRNAMES += mmicromips/EL/msoft-float=!micromipsel-r2-soft/lib
#MULTILIB_REQUIRED   += mmicromips/EL/msoft-float/mnan=2008
#MULTILIB_OSDIRNAMES += mmicromips/EL/msoft-float/mnan.2008=!micromipsel-r2-soft-nan2008/lib

# Version 1 multilibs

MULTILIB_REQUIRED   += mips32
MULTILIB_OSDIRNAMES += mips32=!mips-r1-hard/lib
MULTILIB_REQUIRED   += mips64
MULTILIB_OSDIRNAMES += mips64=!mips-r1-hard/lib32
MULTILIB_REQUIRED   += mips64/mabi=64
MULTILIB_OSDIRNAMES += mips64/mabi.64=!mips-r1-hard/lib64

MULTILIB_REQUIRED   += mips32/msoft-float
MULTILIB_OSDIRNAMES += mips32/msoft-float=!mips-r1-soft/lib
MULTILIB_REQUIRED   += mips64/msoft-float
MULTILIB_OSDIRNAMES += mips64/msoft-float=!mips-r1-soft/lib32
MULTILIB_REQUIRED   += mips64/mabi=64/msoft-float
MULTILIB_OSDIRNAMES += mips64/mabi.64/msoft-float=!mips-r1-soft/lib64

MULTILIB_REQUIRED   += mips32/EL
MULTILIB_OSDIRNAMES += mips32/EL=!mipsel-r1-hard/lib
MULTILIB_REQUIRED   += mips64/EL
MULTILIB_OSDIRNAMES += mips64/EL=!mipsel-r1-hard/lib32
MULTILIB_REQUIRED   += mips64/mabi=64/EL
MULTILIB_OSDIRNAMES += mips64/mabi.64/EL=!mipsel-r1-hard/lib64

MULTILIB_REQUIRED   += mips32/EL/msoft-float
MULTILIB_OSDIRNAMES += mips32/EL/msoft-float=!mipsel-r1-soft/lib
MULTILIB_REQUIRED   += mips64/EL/msoft-float
MULTILIB_OSDIRNAMES += mips64/EL/msoft-float=!mipsel-r1-soft/lib32
MULTILIB_REQUIRED   += mips64/mabi=64/EL/msoft-float
MULTILIB_OSDIRNAMES += mips64/mabi.64/EL/msoft-float=!mipsel-r1-soft/lib64

# We will not include any 64 bit mips16 combinations.
MULTILIB_REQUIRED   += mips32/mips16
MULTILIB_OSDIRNAMES += mips32/mips16=!mips-r1-mips16-hard/lib
MULTILIB_REQUIRED   += mips32/mips16/msoft-float
MULTILIB_OSDIRNAMES += mips32/mips16/msoft-float=!mips-r1-mips16-soft/lib

MULTILIB_REQUIRED   += mips32/mips16/EL
MULTILIB_OSDIRNAMES += mips32/mips16/EL=!mipsel-r1-mips16-hard/lib
MULTILIB_REQUIRED   += mips32/mips16/EL/msoft-float
MULTILIB_OSDIRNAMES += mips32/mips16/EL/msoft-float=!mipsel-r1-mips16-soft/lib