Add support for bottling Portable Ruby for ARM64 Linux
This commit is contained in:
parent
4d3fedfd63
commit
a818b25a8b
@ -46,8 +46,8 @@ module Superenv
|
|||||||
|
|
||||||
def homebrew_extra_isystem_paths
|
def homebrew_extra_isystem_paths
|
||||||
paths = []
|
paths = []
|
||||||
# Add paths for GCC headers when building against glibc@2.13 because we have to use -nostdinc.
|
# Add paths for GCC headers when building against versioned glibc because we have to use -nostdinc.
|
||||||
if deps.any? { |d| d.name == "glibc@2.13" }
|
if deps.any? { |d| d.name.match?(/^glibc@.+$/) }
|
||||||
gcc_include_dir = Utils.safe_popen_read(cc, "--print-file-name=include").chomp
|
gcc_include_dir = Utils.safe_popen_read(cc, "--print-file-name=include").chomp
|
||||||
gcc_include_fixed_dir = Utils.safe_popen_read(cc, "--print-file-name=include-fixed").chomp
|
gcc_include_fixed_dir = Utils.safe_popen_read(cc, "--print-file-name=include-fixed").chomp
|
||||||
paths << gcc_include_dir << gcc_include_fixed_dir
|
paths << gcc_include_dir << gcc_include_fixed_dir
|
||||||
|
|||||||
@ -326,8 +326,8 @@ class Cmd
|
|||||||
def cppflags
|
def cppflags
|
||||||
args = []
|
args = []
|
||||||
args += path_flags("-isystem", isystem_paths) + path_flags("-I", include_paths)
|
args += path_flags("-isystem", isystem_paths) + path_flags("-I", include_paths)
|
||||||
# Add -nostdinc when building against glibc@2.13 to avoid mixing system and brewed glibc headers.
|
# Add -nostdinc when building against versioned glibc to avoid mixing system and brewed glibc headers.
|
||||||
args << "-nostdinc" if @deps.include?("glibc@2.13")
|
args << "-nostdinc" if @deps.any? { |dep| dep.match?(/^glibc@.+$/) }
|
||||||
# Ideally this would be -ffile-prefix-map, but that requires a minimum of GCC 8, LLVM Clang 10 or Apple Clang 12
|
# Ideally this would be -ffile-prefix-map, but that requires a minimum of GCC 8, LLVM Clang 10 or Apple Clang 12
|
||||||
# and detecting the version dynamically based on what `HOMEBREW_CC` may have been rewritten to point to is awkward
|
# and detecting the version dynamically based on what `HOMEBREW_CC` may have been rewritten to point to is awkward
|
||||||
args << "-fdebug-prefix-map=#{formula_buildpath}=." if formula_buildpath && !debug_symbols?
|
args << "-fdebug-prefix-map=#{formula_buildpath}=." if formula_buildpath && !debug_symbols?
|
||||||
@ -353,19 +353,20 @@ class Cmd
|
|||||||
end
|
end
|
||||||
|
|
||||||
def ldflags_linux(args)
|
def ldflags_linux(args)
|
||||||
|
versioned_glibc_dep = @deps.find { |dep| dep.match?(/^glibc@.+$/) }
|
||||||
unless mode == :ld
|
unless mode == :ld
|
||||||
wl = "-Wl,"
|
wl = "-Wl,"
|
||||||
if @deps.include?("glibc@2.13")
|
if versioned_glibc_dep
|
||||||
args << "-B#{@opt}/glibc@2.13/lib"
|
args << "-B#{@opt}/#{versioned_glibc_dep}/lib"
|
||||||
else
|
else
|
||||||
args << "-B#{@opt}/glibc/lib"
|
args << "-B#{@opt}/glibc/lib"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
args += rpath_flags("#{wl}-rpath=", rpath_paths)
|
args += rpath_flags("#{wl}-rpath=", rpath_paths)
|
||||||
args += ["#{wl}--dynamic-linker=#{dynamic_linker_path}"] if dynamic_linker_path
|
args += ["#{wl}--dynamic-linker=#{dynamic_linker_path}"] if dynamic_linker_path
|
||||||
# Use -rpath-link to make sure linker uses glibc@2.13 rather than the system glibc for indirect
|
# Use -rpath-link to make sure linker uses versioned glibc rather than the system glibc for indirect
|
||||||
# dependencies because -L will only handle direct dependencies.
|
# dependencies because -L will only handle direct dependencies.
|
||||||
args << "#{wl}-rpath-link=#{@opt}/glibc@2.13/lib" if @deps.include?("glibc@2.13")
|
args << "#{wl}-rpath-link=#{@opt}/#{versioned_glibc_dep}/lib" if versioned_glibc_dep
|
||||||
args
|
args
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user