From 532460c098d7417a7477f7f54e790133880e8d26 Mon Sep 17 00:00:00 2001 From: Carlo Cabrera <30379873+carlocab@users.noreply.github.com> Date: Tue, 2 Aug 2022 13:29:14 +0800 Subject: [PATCH] keg_relocate: fix new GCC lib directory Also add comment explaining what this line does, along with a TODO suggesting a replacement once we've shipped the GCC PR. --- Library/Homebrew/extend/os/linux/keg_relocate.rb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/extend/os/linux/keg_relocate.rb b/Library/Homebrew/extend/os/linux/keg_relocate.rb index 69061c1199..11a33e3cf5 100644 --- a/Library/Homebrew/extend/os/linux/keg_relocate.rb +++ b/Library/Homebrew/extend/os/linux/keg_relocate.rb @@ -32,7 +32,13 @@ class Keg lib_path = "#{new_prefix}/lib" rpath << lib_path unless rpath.include? lib_path - rpath.prepend HOMEBREW_PREFIX/"opt/gcc/lib/current" if rpath.any? { |rp| rp.match?(%r{lib/gcc/\d+$}) } + + # Add GCC's lib directory (as of GCC 12+) to RPATH when there is existing linkage. + # This fixes linkage for newly-poured bottles. + # TODO: Replace with + # rpath.map! { |path| path = path.sub(%r{lib/gcc/\d+$}, "lib/gcc/current") } + # when Homebrew/homebrew-core#106755 is merged. + rpath.prepend HOMEBREW_PREFIX/"opt/gcc/lib/gcc/current" if rpath.any? { |rp| rp.match?(%r{lib/gcc/\d+$}) } rpath.join(":") end