From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 7856) id 152703857C40; Mon, 23 Oct 2023 07:31:41 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 152703857C40 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1698046301; bh=rV4+sJeVn0EEYOXuDWLk3iPabMlQZOw9TUDdYRokzqA=; h=From:To:Subject:Date:From; b=Uh/uQYBQx3Po6HfV3/b1HIKQ/HHnduPqA4pYwxjTmB8RRHDc6EK6ug8cjM3lqL7jD +SpPJ0LgaHGw9plnM6PxBR6dRTH05Gcs43/ezzrW4IEyLXJND/U/ya510qor/p/udC ppD+nsiHVD6AMd008eqaFuERRHJWa3YwNSbeM8oE= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Xi Ruoyao To: gcc-cvs@gcc.gnu.org Subject: [gcc r14-4852] LoongArch: Document -mexplicit-relocs={auto, none, always} X-Act-Checkin: gcc X-Git-Author: Xi Ruoyao X-Git-Refname: refs/heads/master X-Git-Oldrev: 83e24e8c1e5eb3366e35d5b8494a4cd9a2395b59 X-Git-Newrev: e1b1cba141aa1c7dadd0d4ac5ff93e3015fdffc0 Message-Id: <20231023073141.152703857C40@sourceware.org> Date: Mon, 23 Oct 2023 07:31:41 +0000 (GMT) List-Id: https://gcc.gnu.org/g:e1b1cba141aa1c7dadd0d4ac5ff93e3015fdffc0 commit r14-4852-ge1b1cba141aa1c7dadd0d4ac5ff93e3015fdffc0 Author: Xi Ruoyao Date: Thu Oct 19 21:45:30 2023 +0800 LoongArch: Document -mexplicit-relocs={auto,none,always} gcc/ChangeLog: * doc/invoke.texi (-mexplicit-relocs=style): Document. (-mexplicit-relocs): Document as an alias of -mexplicit-relocs=always. (-mno-explicit-relocs): Document as an alias of -mexplicit-relocs=none. (-mcmodel=extreme): Mention -mexplicit-relocs=always instead of -mexplicit-relocs. Diff: --- gcc/doc/invoke.texi | 37 +++++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index b972695e5d98..5a9284d635cc 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -1042,7 +1042,7 @@ Objective-C and Objective-C++ Dialects}. -mcond-move-float -mno-cond-move-float -memcpy -mno-memcpy -mstrict-align -mno-strict-align -mmax-inline-memcpy-size=@var{n} --mexplicit-relocs -mno-explicit-relocs +-mexplicit-relocs=@var{style} -mexplicit-relocs -mno-explicit-relocs -mdirect-extern-access -mno-direct-extern-access -mcmodel=@var{code-model}} @@ -26310,26 +26310,39 @@ The text segment and data segment must be within 2GB addressing space. @item extreme This mode does not limit the size of the code segment and data segment. -The @option{-mcmodel=extreme} option is incompatible with @option{-fplt} and -@option{-mno-explicit-relocs}. +The @option{-mcmodel=extreme} option is incompatible with @option{-fplt}, +and it requires @option{-mexplicit-relocs=always}. @end table The default code model is @code{normal}. -@opindex mexplicit-relocs -@opindex mno-explicit-relocs -@item -mexplicit-relocs -@itemx -mno-explicit-relocs -Use or do not use assembler relocation operators when dealing with symbolic +@item -mexplicit-relocs=@var{style} +Set when to use assembler relocation operators when dealing with symbolic addresses. The alternative is to use assembler macros instead, which may -limit instruction scheduling but allow linker relaxation. The default +limit instruction scheduling but allow linker relaxation. +with @option{-mexplicit-relocs=none} the assembler macros are always used, +with @option{-mexplicit-relocs=always} the assembler relocation operators +are always used, with @option{-mexplicit-relocs=auto} the compiler will +use the relocation operators where the linker relaxation is impossible to +improve the code quality, and macros elsewhere. The default value for the option is determined during GCC build-time by detecting corresponding assembler support: -@code{-mno-explicit-relocs} if the assembler supports relaxation or it -does not support relocation operators at all, -@code{-mexplicit-relocs} otherwise. This option is mostly useful for +@option{-mexplicit-relocs=none} if the assembler does not support +relocation operators at all, +@option{-mexplicit-relocs=always} if the assembler supports relocation +operators but does not support relaxation, +@option{-mexplicit-relocs=auto} if the assembler supports both relocation +operators and relaxation. This option is mostly useful for debugging, or interoperation with assemblers different from the build-time one. +@opindex mexplicit-relocs +@item -mexplicit-relocs +An alias of @option{-mexplicit-relocs=always} for backward compatibility. + +@opindex mno-explicit-relocs +@item -mno-explicit-relocs +An alias of @option{-mexplicit-relocs=none} for backward compatibility. + @opindex mdirect-extern-access @item -mdirect-extern-access @itemx -mno-direct-extern-access