From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id B14473858016; Wed, 28 Sep 2022 18:40:07 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B14473858016 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1664390407; bh=sp+U+ODTaTilx1wN/RcShjZ+w5+kv8CXeIevYyQIu0o=; h=From:To:Subject:Date:In-Reply-To:References:From; b=prWgBJ3l0l6XNaJFntl6NxC4IPWfpVFbCM8IT4GO9N3lbspcya56evqAYoqGAwfca KKNPUh1i4Ns7A07bpJkLU6DncDF7oCSbxP8SfsbmgF5j4AC5QkS4l1sGT1eo0EPyAx PQDLFGXa1A0KeJvZEZ5RIqwxl/H/HbqvYFjXzATg= From: "burnus at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug bootstrap/107059] [13 regression] bootstrap failure after r13-2887-gb04208895fed34 Date: Wed, 28 Sep 2022 18:40:07 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: bootstrap X-Bugzilla-Version: 13.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: burnus at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D107059 --- Comment #23 from Tobias Burnus --- Regarding the $BUILD/gcc/include-fixed and xgcc -B $BUILD/gcc: In gcc.cc's driver_handle_option: add_prefix (&include_prefixes, arg, NULL, PREFIX_PRIORITY_B_OPT, 0, 0); Adds "$BUILD/gcc/" to the prefix list in include_prefix.plist (priority =3D PREFIX_PRIORITY_B_OPT, require_machine_suffix =3D os_multilib =3D 0) the include_prefixes.name is "include". This is later processed in do_spec_1 as: info.option =3D "-isystem"; info.append =3D "include"; ... for_each_path (&include_prefixes, false, info.append_len, spec_path, &info); ... info.append =3D "include-fixed"; for_each_path (&include_prefixes, false, info.append_len, spec_path, &info); which in turn runs with ( =3D "$BUILD/gcc/"): /x86_64-pc-linux-gnu/13.0.0/ /x86_64-linux-gnu/ It also sets -iprefix $BUILD/gcc/../lib/gcc/x86_64-pc-linux-gnu/13.0.0/ -isystem $BUILD/gcc/{include,include-fixed} Without -B, include_prefix.plist is NULL and also no -iprefix is set. Thus,= cc1 has to find the paths itself. =E2=80=93 The iprefix does not really matter,= except that with the installed compiler, the include-fixed can be found at /include-fixed which is $INSTALL/lib/gcc/$target/13.0.0/include-fixed and is part of the 'cpp_include_defaults' array. With the in-build compiler, $BUILD/lib/gcc/$target/13.0.0/include-fixed is checked for - but does not exist. The additionally specified -isystem is processed - but not under the multia= rch processing.=20 * * * Thus, one possibility that should work as well is to create the include-fix= ed not under gcc/ but under lib/gcc/$target/$version/include-fixed Or to change the for_each_path + spec_path such that it puts "include-fix= ed' between plist->name and the multiarch and then uses "" as suffix (alias info.append= )=