On Mon, 28 Mar 2022, Tom de Vries wrote:

> Hi,
> 
> When building an nvptx offloading configuration on openSUSE Leap 15.3, the
> site script /usr/share/site/x86_64-unknown-linux-gnu is activated, setting
> libexecdir to ${exec_prefix}/lib rather than ${exec_prefix}/libexec:
> ...
> | # If user did not specify libexecdir, set the correct target:
> | # Nor FHS nor openSUSE allow prefix/libexec. Let's default to prefix/lib.
> |
> | if test "$libexecdir" = '${exec_prefix}/libexec' ; then
> |       libexecdir='${exec_prefix}/lib'
> | fi
> ...
> 
> However, in libgomp libgomp/plugin/configfrag.ac we hardcode libexec:
> ...
>     # Configure additional search paths.
>     if test x"$tgt_dir" != x; then
>       offload_additional_options="$offload_additional_options \
>         -B$tgt_dir/libexec/gcc/\$(target_alias)/\$(gcc_version) \
>       -B$tgt_dir/bin"
> ...
> 
> Fix this by using /$(libexecdir:\$(exec_prefix)/%=%)/ instead of /libexec/.
> 
> Tested on x86_64-linux with nvptx accelerator.
> 
> OK for trunk?

OK in principle, but I have no idea on how portable

$(libexecdir:\$(exec_prefix)/%=%)

is going to be?  We should aim for POSIX shell compatibility here,
whatever that exactly is.

Richard.

> Thanks,
> - Tom
> 
> [libgomp, testsuite] Fix hardcoded libexec in plugin/configfrag.ac
> 
> libgomp/ChangeLog:
> 
> 2022-03-28  Tom de Vries  <tdevr...@suse.de>
> 
>       * plugin/configfrag.ac: Use /$(libexecdir:\$(exec_prefix)/%=%)/
>       instead of /libexec/.
>       * configure: Regenerate.
> 
> ---
>  libgomp/configure            | 2 +-
>  libgomp/plugin/configfrag.ac | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/libgomp/configure b/libgomp/configure
> index a73a6d44003..bdbe3d142d1 100755
> --- a/libgomp/configure
> +++ b/libgomp/configure
> @@ -15419,7 +15419,7 @@ rm -f core conftest.err conftest.$ac_objext \
>      fi
>      # Configure additional search paths.
>      if test x"$tgt_dir" != x; then
> -      offload_additional_options="$offload_additional_options 
> -B$tgt_dir/libexec/gcc/\$(target_alias)/\$(gcc_version) -B$tgt_dir/bin"
> +      offload_additional_options="$offload_additional_options 
> -B$tgt_dir/\$(libexecdir:\$(exec_prefix)/%=%)/gcc/\$(target_alias)/\$(gcc_version)
>  -B$tgt_dir/bin"
>        
> offload_additional_lib_paths="$offload_additional_lib_paths:$tgt_dir/lib64:$tgt_dir/lib:$tgt_dir/lib32"
>      else
>        offload_additional_options="$offload_additional_options 
> -B\$(libexecdir)/gcc/\$(target_alias)/\$(gcc_version) -B\$(bindir)"
> diff --git a/libgomp/plugin/configfrag.ac b/libgomp/plugin/configfrag.ac
> index da573bd8387..9f9d0a7f08c 100644
> --- a/libgomp/plugin/configfrag.ac
> +++ b/libgomp/plugin/configfrag.ac
> @@ -254,7 +254,7 @@ if test x"$enable_offload_targets" != x; then
>      fi
>      # Configure additional search paths.
>      if test x"$tgt_dir" != x; then
> -      offload_additional_options="$offload_additional_options 
> -B$tgt_dir/libexec/gcc/\$(target_alias)/\$(gcc_version) -B$tgt_dir/bin"
> +      offload_additional_options="$offload_additional_options 
> -B$tgt_dir/\$(libexecdir:\$(exec_prefix)/%=%)/gcc/\$(target_alias)/\$(gcc_version)
>  -B$tgt_dir/bin"
>        
> offload_additional_lib_paths="$offload_additional_lib_paths:$tgt_dir/lib64:$tgt_dir/lib:$tgt_dir/lib32"
>      else
>        offload_additional_options="$offload_additional_options 
> -B\$(libexecdir)/gcc/\$(target_alias)/\$(gcc_version) -B\$(bindir)"
> 

-- 
Richard Biener <rguent...@suse.de>
SUSE Software Solutions Germany GmbH, Maxfeldstrasse 5, 90409 Nuernberg,
Germany; GF: Ivo Totev; HRB 36809 (AG Nuernberg)

Reply via email to