[PATCH] S390: Always enable static PIE if build with lld.

Adhemerval Zanella Netto adhemerval.zanella@linaro.org
Tue Feb 20 14:49:35 GMT 2024



On 19/02/24 12:49, Stefan Liebler wrote:
> LLVM ld.lld now	also supports s390x and avoids unnecessary TPOFF
> relocations for position independent executables.  Both recent
> commits were also cherry-picked to LLVM 18.

What about old lld that does not have the cherry-picked commits? Should
we follow other practice and check this with a proper test instead?

> 
> This patch just enables static PIE if build with lld.
> ---
>  sysdeps/s390/s390-64/configure    | 10 ++++++++--
>  sysdeps/s390/s390-64/configure.ac | 10 ++++++++--
>  2 files changed, 16 insertions(+), 4 deletions(-)
> 
> diff --git a/sysdeps/s390/s390-64/configure b/sysdeps/s390/s390-64/configure
> index 824ae9c129..c26785f32f 100644
> --- a/sysdeps/s390/s390-64/configure
> +++ b/sysdeps/s390/s390-64/configure
> @@ -12,8 +12,14 @@ case $($LD --version) in
>      libc_cv_s390x_staticpie_req_version=no
>      ;;
>    "LLD"*)
> -    # As of 2023-08-07, there is no lld which supports s390x.
> -    libc_cv_s390x_staticpie_req_version=no
> +    # The required lld patches are available with LLVM 18:
> +    # - [lld] Add target support for SystemZ (s390x) #75643
> +    # https://github.com/llvm/llvm-project/pull/75643
> +    # 2024-02-13: https://github.com/llvm/llvm-project/commit/fe3406e349884e4ef61480dd0607f1e237102c74
> +    # - [lld/ELF] Avoid unnecessary TPOFF relocations in GOT for -pie #81739
> +    # https://github.com/llvm/llvm-project/pull/81739
> +    # 2024-02-14: https://github.com/llvm/llvm-project/commit/6f907733e65d24edad65f763fb14402464bd578b
> +    libc_cv_s390x_staticpie_req_version=yes
>      ;;
>    *)
>      # The required binutils patches are available with bintuils 2.39
> diff --git a/sysdeps/s390/s390-64/configure.ac b/sysdeps/s390/s390-64/configure.ac
> index 4657de0d37..2b5bffc107 100644
> --- a/sysdeps/s390/s390-64/configure.ac
> +++ b/sysdeps/s390/s390-64/configure.ac
> @@ -12,8 +12,14 @@ case $($LD --version) in
>      libc_cv_s390x_staticpie_req_version=no
>      ;;
>    "LLD"*)
> -    # As of 2023-08-07, there is no lld which supports s390x.
> -    libc_cv_s390x_staticpie_req_version=no
> +    # The required lld patches are available with LLVM 18:
> +    # - [lld] Add target support for SystemZ (s390x) #75643
> +    # https://github.com/llvm/llvm-project/pull/75643
> +    # 2024-02-13: https://github.com/llvm/llvm-project/commit/fe3406e349884e4ef61480dd0607f1e237102c74
> +    # - [lld/ELF] Avoid unnecessary TPOFF relocations in GOT for -pie #81739
> +    # https://github.com/llvm/llvm-project/pull/81739
> +    # 2024-02-14: https://github.com/llvm/llvm-project/commit/6f907733e65d24edad65f763fb14402464bd578b
> +    libc_cv_s390x_staticpie_req_version=yes
>      ;;
>    *)
>      # The required binutils patches are available with bintuils 2.39


More information about the Libc-alpha mailing list