; GNU/Linux-specific options for the CRIS port of the compiler.

; Copyright (C) 2005 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 2, 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 COPYING.  If not, write to the Free
; Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
; 02110-1301, USA.

; Provide a legacy -mlinux option.
mlinux
Target Report RejectNegative Undocumented

mno-gotplt
Target Report RejectNegative Mask(AVOID_GOTPLT) MaskExists
Together with -fpic and -fPIC, do not use GOTPLT references

; There's a small added setup cost with using GOTPLT references
; for the first (resolving) call, but should in total be a win
; both in code-size and execution-time.
mgotplt
Target Report RejectNegative InverseMask(AVOID_GOTPLT) Undocumented
