This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Update to -z nodynamic-undefined-weak


On Thu, Feb 25, 2016 at 7:53 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
> ---
>  ld/emulparams/dynamic_undefined_weak.sh | 14 +++++++-------
>  ld/ld.texinfo                           |  9 +++++----
>  ld/ldmain.c                             |  1 +
>  3 files changed, 13 insertions(+), 11 deletions(-)
>
> diff --git a/ld/emulparams/dynamic_undefined_weak.sh b/ld/emulparams/dynamic_undefined_weak.sh
> index c6d9905..82d88d6 100644
> --- a/ld/emulparams/dynamic_undefined_weak.sh
> +++ b/ld/emulparams/dynamic_undefined_weak.sh
> @@ -1,12 +1,12 @@
> -PARSE_AND_LIST_OPTIONS_DYNAMIC_UNDEFINED_WEAK='
> +PARSE_AND_LIST_OPTIONS_NODYNAMIC_UNDEFINED_WEAK='
>    fprintf (file, _("\
> -  -z dynamic-undefined-weak   Treat undefined weak symbol as dynamic\n"));
> +  -z nodynamic-undefined-weak Do not treat undefined weak symbol as dynamic\n"));
>  '
>
> -PARSE_AND_LIST_ARGS_CASE_Z_DYNAMIC_UNDEFINED_WEAK='
> -      else if (strcmp (optarg, "dynamic-undefined-weak") == 0)
> -       link_info.dynamic_undefined_weak = TRUE;
> +PARSE_AND_LIST_ARGS_CASE_Z_NODYNAMIC_UNDEFINED_WEAK='
> +      else if (strcmp (optarg, "nodynamic-undefined-weak") == 0)
> +       link_info.dynamic_undefined_weak = FALSE;
>  '
>
> -PARSE_AND_LIST_OPTIONS="$PARSE_AND_LIST_OPTIONS $PARSE_AND_LIST_OPTIONS_DYNAMIC_UNDEFINED_WEAK"
> -PARSE_AND_LIST_ARGS_CASE_Z="$PARSE_AND_LIST_ARGS_CASE_Z $PARSE_AND_LIST_ARGS_CASE_Z_DYNAMIC_UNDEFINED_WEAK"
> +PARSE_AND_LIST_OPTIONS="$PARSE_AND_LIST_OPTIONS $PARSE_AND_LIST_OPTIONS_NODYNAMIC_UNDEFINED_WEAK"
> +PARSE_AND_LIST_ARGS_CASE_Z="$PARSE_AND_LIST_ARGS_CASE_Z $PARSE_AND_LIST_ARGS_CASE_Z_NODYNAMIC_UNDEFINED_WEAK"
> diff --git a/ld/ld.texinfo b/ld/ld.texinfo
> index b53c436..ee462c5 100644
> --- a/ld/ld.texinfo
> +++ b/ld/ld.texinfo
> @@ -1199,10 +1199,11 @@ generated by compiler.  Updates on protected data symbols by another
>  module aren't visible to the resulting shared library.  Supported for
>  i386 and x86-64.
>
> -@item dynamic-undefined-weak
> -Treat undefined weak symbols as dynamic when building executable.  This
> -option generates dynamic relocations against undefined weak symbols if
> -all relocations aginst it are GOT or PLT relocations.
> +@item nodynamic-undefined-weak
> +Don't treat undefined weak symbols as dynamic when building executable.
> +This option overrides linker backend default.  It can be used to avoid
> +dynamic relocations against undefined weak symbols in executable.
> +Supported for i386 and x86-64.
>
>  @item call-nop=prefix-addr
>  @itemx call-nop=prefix-nop
> diff --git a/ld/ldmain.c b/ld/ldmain.c
> index 7425da0..21133ab 100644
> --- a/ld/ldmain.c
> +++ b/ld/ldmain.c
> @@ -278,6 +278,7 @@ main (int argc, char **argv)
>    link_info.fini_function = "_fini";
>    link_info.relax_pass = 1;
>    link_info.extern_protected_data = -1;
> +  link_info.dynamic_undefined_weak = -1;
>    link_info.pei386_auto_import = -1;
>    link_info.spare_dynamic_tags = 5;
>    link_info.path_separator = ':';

Please ignore this.


-- 
H.J.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]