On Sat, Mar 18, 2017 at 04:17:30PM +0100, Mark Kettenis wrote:
> Diff below adds support for -Wl,-znodlopen.  This fixes the
> libexec/ld.so/df_1_noopen regression test.
> 
> ok?

Seems easy enough, looks good to me.

> 
> 
> Index: gnu/llvm/tools/lld/ELF/Config.h
> ===================================================================
> RCS file: /cvs/src/gnu/llvm/tools/lld/ELF/Config.h,v
> retrieving revision 1.2
> diff -u -p -r1.2 Config.h
> --- gnu/llvm/tools/lld/ELF/Config.h   24 Jan 2017 10:20:27 -0000      1.2
> +++ gnu/llvm/tools/lld/ELF/Config.h   18 Mar 2017 15:14:56 -0000
> @@ -135,6 +135,7 @@ struct Configuration {
>    bool ZCombreloc;
>    bool ZExecstack;
>    bool ZNodelete;
> +  bool ZNodlopen;
>    bool ZNow;
>    bool ZOrigin;
>    bool ZRelro;
> Index: gnu/llvm/tools/lld/ELF/Driver.cpp
> ===================================================================
> RCS file: /cvs/src/gnu/llvm/tools/lld/ELF/Driver.cpp,v
> retrieving revision 1.4
> diff -u -p -r1.4 Driver.cpp
> --- gnu/llvm/tools/lld/ELF/Driver.cpp 14 Mar 2017 08:11:34 -0000      1.4
> +++ gnu/llvm/tools/lld/ELF/Driver.cpp 18 Mar 2017 15:14:56 -0000
> @@ -537,6 +537,7 @@ void LinkerDriver::readConfigs(opt::Inpu
>    Config->ZCombreloc = !hasZOption(Args, "nocombreloc");
>    Config->ZExecstack = hasZOption(Args, "execstack");
>    Config->ZNodelete = hasZOption(Args, "nodelete");
> +  Config->ZNodlopen = hasZOption(Args, "nodlopen");
>    Config->ZNow = hasZOption(Args, "now");
>    Config->ZOrigin = hasZOption(Args, "origin");
>    Config->ZRelro = !hasZOption(Args, "norelro");
> Index: gnu/llvm/tools/lld/ELF/SyntheticSections.cpp
> ===================================================================
> RCS file: /cvs/src/gnu/llvm/tools/lld/ELF/SyntheticSections.cpp,v
> retrieving revision 1.3
> diff -u -p -r1.3 SyntheticSections.cpp
> --- gnu/llvm/tools/lld/ELF/SyntheticSections.cpp      14 Mar 2017 08:11:34 
> -0000      1.3
> +++ gnu/llvm/tools/lld/ELF/SyntheticSections.cpp      18 Mar 2017 15:14:56 
> -0000
> @@ -816,6 +816,8 @@ template <class ELFT> void DynamicSectio
>      DtFlags |= DF_SYMBOLIC;
>    if (Config->ZNodelete)
>      DtFlags1 |= DF_1_NODELETE;
> +  if (Config->ZNodlopen)
> +    DtFlags1 |= DF_1_NOOPEN;
>    if (Config->ZNow) {
>      DtFlags |= DF_BIND_NOW;
>      DtFlags1 |= DF_1_NOW;
> 

Reply via email to