Add -mno-shared to x86 assembler
authorH.J. Lu <hjl.tools@gmail.com>
Fri, 8 May 2015 12:04:12 +0000 (05:04 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Fri, 8 May 2015 12:05:49 +0000 (05:05 -0700)
commit573cc2e57db66165b390044338d3a4ad51f36bf8
treed504be11ff656471087dfa0e9eae6808c2b90b3d
parent422349a385c2ccfc1e66f5c65560e5bd5fc97953
Add -mno-shared to x86 assembler

On ELF target, the assembler normally generates code which can go into a
shared library where non-weak symbols can be preempted.  The -mno-shared
option tells the assembler to generate code not for a shared library,
where non-weak symbols won't be preempted.  The resulting code is slightly
smaller.  This option mainly affects the handling of branch instructions.

gas/

* config/tc-i386.c (no_shared): New.
(OPTION_MNO_SHARED): Likewise.
(elf_symbol_resolved_in_segment_p): Check no_shared.
(md_longopts): Add mno-shared.
(md_parse_option): Handle OPTION_MNO_SHARED.
(md_show_usage): Add -mno-shared.
* doc/c-i386.texi: Document -mno-shared.

gas/testsuite/

* gas/i386/i386.exp: Run relax-4 and x86-64-relax-3.
* gas/i386/relax-4.d: New file.
* gas/i386/x86-64-relax-3.d: Likewise.
gas/ChangeLog
gas/config/tc-i386.c
gas/doc/c-i386.texi
gas/testsuite/ChangeLog
gas/testsuite/gas/i386/i386.exp
gas/testsuite/gas/i386/relax-4.d [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-relax-3.d [new file with mode: 0644]