[PATCH] gas, x86: add -mno-plt32 option to disable PLT32 relocations
H.J. Lu
hjl.tools@gmail.com
Fri Dec 10 15:29:37 GMT 2021
More information about the Binutils mailing list
Fri Dec 10 15:29:37 GMT 2021
- Previous message (by thread): [PATCH] gas, x86: add -mno-plt32 option to disable PLT32 relocations
- Next message (by thread): [PATCH] gas, x86: add -mno-plt32 option to disable PLT32 relocations
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Wed, Oct 20, 2021 at 2:59 AM Todor Buyukliev via Binutils <binutils@sourceware.org> wrote: > > hi all, > > here’s a patch that we need. it’s against 2.34. can it be merged to master? > > regards, > todor 1. Need an entry in NEWS. 2. Need document change. 3. -mno-plt32 option name is misleading. It doesn't disable PLT32 for call foo@PLT It just avoids PLT32 for call foo > > [PATCH] gas, x86: add -mno-plt32 option to disable PLT32 relocations > > --- > gas/ChangeLog | 9 +++++++++ > gas/config/tc-i386.c | 15 +++++++++++++++ > 2 files changed, 24 insertions(+) > > diff --git a/gas/ChangeLog b/gas/ChangeLog > index ac92d076ef9..f70c8d45db9 100644 > --- a/gas/ChangeLog > +++ b/gas/ChangeLog > @@ -1,3 +1,12 @@ > +2021-05-28 Todor Buyukliev <tbuyukliev@vmware.com> > + > + * config/t-i386.c (disable_plt32): New declaration. > + (md_show_usage): Add -mno-plt32. > + (need_plt32_p): Return false if disable_plt32 is set. > + (OPTION_MNO_PLT32): New define. > + (md_longopts): Support mno-plt32 option. > + (md_parse_option): Likewise. > + > 2020-02-10 H.J. Lu <hongjiu.lu@intel.com> > PR gas/25516 > diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c > index 3f1d4cab7e5..1af97c0d149 100644 > --- a/gas/config/tc-i386.c > +++ b/gas/config/tc-i386.c > @@ -592,6 +592,9 @@ static int use_big_obj = 0; > #if defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF) > /* 1 if generating code for a shared library. */ > static int shared = 0; > + > +/* Non-zero to disable PLT32 relocations. */ > +static int disable_plt32 = 0; > #endif > /* 1 for intel syntax, > @@ -7991,6 +7994,10 @@ need_plt32_p (symbolS *s) > return FALSE; > #endif > + /* Don't emit PLT32 relocation if asked to. */ > + if (disable_plt32) > + return FALSE; > + > /* Since there is no need to prepare for PLT branch on x86-64, we > can generate R_X86_64_PLT32, instead of R_X86_64_PC32, which can > be used as a marker for 32-bit PC-relative branches. */ > @@ -12051,6 +12058,7 @@ const char *md_shortopts = "qnO::"; > #define OPTION_MALIGN_BRANCH_PREFIX_SIZE (OPTION_MD_BASE + 28) > #define OPTION_MALIGN_BRANCH (OPTION_MD_BASE + 29) > #define OPTION_MBRANCHES_WITH_32B_BOUNDARIES (OPTION_MD_BASE + 30) > +#define OPTION_MNO_PLT32 (OPTION_MD_BASE + 31) > struct option md_longopts[] = > { > @@ -12063,6 +12071,7 @@ struct option md_longopts[] = > {"x32", no_argument, NULL, OPTION_X32}, > {"mshared", no_argument, NULL, OPTION_MSHARED}, > {"mx86-used-note", required_argument, NULL, OPTION_X86_USED_NOTE}, > + {"mno-plt32", no_argument, NULL, OPTION_MNO_PLT32}, > #endif > {"divide", no_argument, NULL, OPTION_DIVIDE}, > {"march", required_argument, NULL, OPTION_MARCH}, > @@ -12193,6 +12202,10 @@ md_parse_option (int c, const char *arg) > else > as_fatal (_("32bit x86_64 is only supported for ELF")); > break; > + > + case OPTION_MNO_PLT32: > + disable_plt32 = 1; > + break; > #endif > case OPTION_32: > @@ -12791,6 +12804,8 @@ md_show_usage (FILE *stream) > fprintf (stream, _("(default: no)\n")); > fprintf (stream, _("\ > generate x86 used ISA and feature properties\n")); > + fprintf (stream, _("\ > + -mno-plt32 don't generate PLT32 relocations\n")); > #endif > #if defined (TE_PE) || defined (TE_PEP) > fprintf (stream, _("\ > -- > -- H.J.
- Previous message (by thread): [PATCH] gas, x86: add -mno-plt32 option to disable PLT32 relocations
- Next message (by thread): [PATCH] gas, x86: add -mno-plt32 option to disable PLT32 relocations
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list