From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 2EEEC3858C5F; Tue, 11 Jun 2024 09:10:30 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2EEEC3858C5F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1718097030; bh=BtEKoh1LBKZx0xN0DlrZ4w1/3FdEqvVheOR3WuovXQQ=; h=From:To:Subject:Date:In-Reply-To:References:From; b=A9TOYIyveaEotQjKAEoBHufQrFaYXCOD8yizrFUnp0HniEG20RXdn+RRybGVusFQl JNAzBdTNtSmG5gESxl+p1RSDQgDSROu3lqSEvdWrXahcYvb9J+TA5aBK5QvPgEje3P tsjeH1ISeIEWae0GE9YshpJdlV0LHpWTiDBGCL/0= From: "syq at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug bootstrap/115416] [13/14/15 regression] Setting --includedir to a nonexistent directory causes a build error since r13-5490-g59e4c98173a79f Date: Tue, 11 Jun 2024 09:10:29 +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: unknown X-Bugzilla-Keywords: build X-Bugzilla-Severity: normal X-Bugzilla-Who: syq 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=3D115416 --- Comment #7 from YunQiang Su --- Maybe this patch is better --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -560,11 +560,7 @@ LINKER_PLUGIN_API_H =3D $(srcdir)/../include/plugin-ap= i.h # Default native SYSTEM_HEADER_DIR, to be overridden by targets. NATIVE_SYSTEM_HEADER_DIR =3D @NATIVE_SYSTEM_HEADER_DIR@ # Default cross SYSTEM_HEADER_DIR, to be overridden by targets. -ifeq (@includedir@,$(prefix)/include) - CROSS_SYSTEM_HEADER_DIR =3D @CROSS_SYSTEM_HEADER_DIR@ -else - CROSS_SYSTEM_HEADER_DIR =3D @includedir@ -endif +CROSS_SYSTEM_HEADER_DIR =3D @CROSS_SYSTEM_HEADER_DIR@ # autoconf sets SYSTEM_HEADER_DIR to one of the above. # Purge it of unnecessary internal relative paths @@ -581,7 +577,10 @@ BUILD_SYSTEM_HEADER_DIR =3D `echo @BUILD_SYSTEM_HEADER= _DIR@ | sed -e :a -e 's,[^/] STMP_FIXINC =3D @STMP_FIXINC@ # Test to see whether exists in the system header files. -LIMITS_H_TEST =3D [ -f $(BUILD_SYSTEM_HEADER_DIR)/limits.h ] +LIMITS_H_TEST =3D headdir=3D$(BUILD_SYSTEM_HEADER_DIR) && \ + headdir_sys=3D`echo $$headdir | grep '/sys-include$$'` && \ + headdir_nosys=3D`echo $$headdir | sed 's/sys-include/includ= e/'` && \ + [ -f $$headdir/limits.h -o -n $$headdir_sys -a -f "$$headdir_nosys/limits.h" ] # Directory for prefix to system directories, for # each of $(system_prefix)/usr/include, $(system_prefix)/usr/lib, etc. Background: For cross/no-with-sysroot, the BUILD_SYSTEM_HEADER_DIR value wi= ll be `$(gcc_tooldir)/sys-include`. Here, `sys-include` is used by `--with-headers` option. So let's detect $(gcc_tooldir)/include too.=