On Thu, 27 Feb 2025 19:43:30 +0800, Kito Cheng wrote: > Hi Jin Ma: > > I realized multilib os dir is not correctly set as you described, but > I think that info should just come from multilib_select rather than > creating a new hook to do that, anyway I just wrote a fix...because we > hit that issue last week...
I agree with your perspective; this might be more reasonable :) Best regards, Jin Ma > Hi Jeff: > > Here is another approach to fix that - without introducing new hook, > just using existing info, also come with more simple step to reproduce > and verify: > > https://gcc.gnu.org/pipermail/gcc-patches/2025-February/676540.html > > On Sat, Feb 22, 2025 at 10:51 PM Jeff Law <jeffreya...@gmail.com> wrote: > > > > > > > > On 2/22/25 7:31 AM, Palmer Dabbelt wrote: > > > On Sat, 22 Feb 2025 02:19:03 PST (-0800), ji...@linux.alibaba.com wrote: > > >> On Fri, 14 Feb 2025 21:03:46 +0800, Jin Ma wrote: > > >>> Create a new hook to let target could override the multi-lib-os result. > > >>> > > >>> The motivation for this change arises from the fact that using > > >>> TARGET_COMPUTE_MULTILIB to override the original multilib_dir can lead > > >>> to unexpected behavior with multilib_os_dir. > > >>> > > >>> In our build scripts, we establish a connection between multilib_os_dir > > >>> and multilib_dir. For example, in gcc/config/riscv/t-linux, we set > > >>> multilib_os_dir to be the parent directory of multilib_dir. However, > > >>> when TARGET_COMPUTE_MULTILIB overrides multilib_dir and returns a reused > > >>> result for multilib_dir, multilib_os_dir ends up being identical to > > >>> multilib_dir. This discrepancy is clearly inconsistent with our > > >>> expectations. > > >>> > > >>> gcc/ChangeLog: > > >>> > > >>> * common/common-target.def (compute_multilib_os): New. > > >>> * common/common-targhooks.cc (default_compute_multilib_os): New. > > >>> * common/common-targhooks.h (default_compute_multilib_os): New. > > >>> * doc/tm.texi (TARGET_COMPUTE_MULTILIB_OS): New. > > >>> * doc/tm.texi.in: Regen. > > >>> * gcc.cc (set_multilib_dir): Call targetm_common.compute_multilib_os. > > >>> --- > > >>> gcc/common/common-target.def | 14 ++++++++++++++ > > >>> gcc/common/common-targhooks.cc | 9 +++++++++ > > >>> gcc/common/common-targhooks.h | 5 +++++ > > >>> gcc/doc/tm.texi | 10 ++++++++++ > > >>> gcc/doc/tm.texi.in | 1 + > > >>> gcc/gcc.cc | 4 ++++ > > >>> 6 files changed, 43 insertions(+) > > >> > > >> Ping again :) > > >> > > >> Is there any comment on this patches? > > > > > > Not yet, I've got them open but I haven't had time to figure out the > > > paths yet. I know we screwed this up the first time and need to do > > > something, I'm just not really quite sure what the right answer is yet. > > And I'm deeply concerned about adding another overriding target hook in > > here. It feels like we're papering over a bigger problem elsewhere, but > > I haven't had the time to really dive in to either articulate my > > concerns more clearly or alleviate them. > > > > jeff > >