[Bug #20800] Locate executable binary file under "libexec" directly

"libexec" means the directory for executable or binary files already.
This commit is contained in:
Nobuyoshi Nakada 2024-11-08 18:43:18 +09:00
parent e83eca01a1
commit 303a52c201
No known key found for this signature in database
GPG Key ID: 3582D74E1FEE4465
Notes: git 2024-11-09 12:50:58 +00:00
3 changed files with 7 additions and 6 deletions

View File

@ -3592,6 +3592,7 @@ AS_CASE("$enable_shared", [yes], [
])
])
relative_libprefix="/../${multiarch+../}${libdir_basename}"
AS_CASE(["$target_os"],
[sunos4*], [
LIBRUBY_ALIASES='$(LIBRUBY_SONAME) lib$(RUBY_SO_NAME).$(SOEXT)'
@ -3600,7 +3601,7 @@ AS_CASE("$enable_shared", [yes], [
RUBY_APPEND_OPTIONS(LIBRUBY_DLDFLAGS, ['-Wl,-soname,$(LIBRUBY_SONAME)' "$LDFLAGS_OPTDIR"])
LIBRUBY_ALIASES='$(LIBRUBY_SONAME) lib$(RUBY_SO_NAME).$(SOEXT)'
AS_IF([test "$load_relative" = yes], [
libprefix="'\$\${ORIGIN}/../${multiarch+../../}${libdir_basename}'"
libprefix="'\$\${ORIGIN}${relative_libprefix}'"
LIBRUBY_RPATHFLAGS="-Wl,-rpath,${libprefix}"
LIBRUBY_RELATIVE=yes
])
@ -3612,7 +3613,7 @@ AS_CASE("$enable_shared", [yes], [
LIBRUBY_SO="$LIBRUBY_SO.\$(TEENY)"
LIBRUBY_ALIASES=''
], [test "$load_relative" = yes], [
libprefix="'\$\$ORIGIN/../${multiarch+../../}${libdir_basename}'"
libprefix="'\$\$ORIGIN${relative_libprefix}'"
LIBRUBY_RPATHFLAGS="-Wl,-rpath,${libprefix}"
LIBRUBY_RELATIVE=yes
])
@ -3636,7 +3637,7 @@ AS_CASE("$enable_shared", [yes], [
LIBRUBY_ALIASES='$(LIBRUBY_SONAME) lib$(RUBY_SO_NAME).$(SOEXT)'
RUBY_APPEND_OPTIONS(LIBRUBY_DLDFLAGS, ["${linker_flag}-h${linker_flag:+,}"'$(@F)'])
AS_IF([test "$load_relative" = yes], [
libprefix="'\$\$ORIGIN/../${multiarch+../../}${libdir_basename}'"
libprefix="'\$\$ORIGIN${relative_libprefix}'"
LIBRUBY_RPATHFLAGS="-R${libprefix}"
LIBRUBY_RELATIVE=yes
], [
@ -3653,7 +3654,7 @@ AS_CASE("$enable_shared", [yes], [
LIBRUBY_SONAME='$(LIBRUBY_SO)'
LIBRUBY_ALIASES='lib$(RUBY_INSTALL_NAME).$(SOEXT)'
AS_IF([test "$load_relative" = yes], [
libprefix="@executable_path/../${multiarch+../../}${libdir_basename}"
libprefix="@executable_path${relative_libprefix}"
LIBRUBY_RELATIVE=yes
])
LIBRUBY_DLDFLAGS="$LIBRUBY_DLDFLAGS -install_name ${libprefix}"'/$(LIBRUBY_SONAME)'

View File

@ -34,7 +34,7 @@ vendordir = config["vendordir"]
rubylibdir = config["rubylibdir"]
rubyarchdir = config["rubyarchdir"]
archdir = "#{extout}/#{arch}"
exedir = libdirname == "archlibdir" ? "#{config["libexecdir"]}/#{arch}/bin" : bindir
exedir = libdirname == "archlibdir" ? "#{config["libexecdir"]}/#{arch}" : bindir
[exedir, libdir, archdir].uniq.each do |dir|
File.directory?(dir) or mkdir_p(dir)
end

View File

@ -371,7 +371,7 @@ if CONFIG["libdirname"] == "archlibdir"
unless libexecdir.sub!(/\$\(lib\K(?=dir\))/) {"exec"}
libexecdir = "$(libexecdir)/$(arch)"
end
archbindir = RbConfig.expand(libexecdir) + "/bin"
archbindir = RbConfig.expand(libexecdir)
end
libdir = CONFIG[CONFIG.fetch("libdirname", "libdir"), true]
rubyhdrdir = CONFIG["rubyhdrdir", true]