X-Recipient: archive-cygwin AT delorie DOT com DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DFF60385C8B1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com; s=default; t=1688598585; bh=4Z3rTefjgZcJ4lTdYBnhGaNbz1b6fnAYWBaS8eSxeZ0=; h=Date:Subject:To:References:In-Reply-To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=tsbJP6xcBWX/z0cholEbQAc8BvMezTlKd+TEWkVP5j/Jt4xsxRKE6uWLFEwNNX1Dy qFo4Hmho0GLZOGYT6WXJmjBQh1EzHZb6VEmg0ef9TVJJbRGXcsFG54tVTko/OOWStl N77cTrhD0I4igTYGzc3mzE/IIh/QenYSLwejwxq0= X-Original-To: cygwin AT cygwin DOT com Delivered-To: cygwin AT cygwin DOT com DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org AE034385B524 X-Authority-Analysis: v=2.4 cv=e5oV9Il/ c=1 sm=1 tr=0 ts=64a5f7f2 a=DxHlV3/gbUaP7LOF0QAmaA==:117 a=DxHlV3/gbUaP7LOF0QAmaA==:17 a=IkcTkHD0fZMA:10 a=vhO4oviV-iCFD92YM7oA:9 a=QEXdDO2ut3YA:10 Message-ID: Date: Wed, 5 Jul 2023 17:08:34 -0600 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: Re: iostream doesn't work (clang++) Content-Language: en-CA To: cygwin AT cygwin DOT com References: <7e07e251-2ec6-b7a5-62da-8578eb638993 AT gmail DOT com> <47f9e50d-763b-e6a9-b2b0-8d3cc311a63b AT maxrnd DOT com> <3c02f650-248e-9e03-94a8-d508c857474e AT gmail DOT com> Organization: Inglis In-Reply-To: <3c02f650-248e-9e03-94a8-d508c857474e@gmail.com> X-CMAE-Envelope: MS4xfJvfIQ9Uv1/E6d1SK/XUnMktLMaKECTacuYalEKWy0XsOVektu59bKTyIyMxwTYao7w+kpAZGGHQ1zxVyFs//5KAORJvUykeaj4fSucbhypDuwmKaIrn CYJlN61tET3P3IyfglqbanIdCF9LAGngal+2KLeMxw+7dvsW8H8iWuxAdeSfZO99kZIi3bksH1MRDpC8ZKVN3atqQHC/3b7VvnU= X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, BODY_8BITS, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, NICE_REPLY_A, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: cygwin AT cygwin DOT com X-Mailman-Version: 2.1.29 Precedence: list List-Id: General Cygwin discussions and problem reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Brian Inglis via Cygwin Reply-To: cygwin AT cygwin DOT com Cc: Brian Inglis , ggl329 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: cygwin-bounces+archive-cygwin=delorie DOT com AT cygwin DOT com Sender: "Cygwin" Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by delorie.com id 365NAAnr001886 On 2023-07-05 09:54, ggl329 via Cygwin wrote: > Hi Mark, > > On 2023/07/05 12:06, Mark Geisert via Cygwin wrote: >> My previous reply addressed the specific error reported by your testcase. >> But I am unable to make progress on the root cause because I can't reproduce >> your report. > > Hm, it seems to be difficult to track down the root cause... > >> On my system I try the compilation and see: >> ~ clang++ sample.cc >> sample.cc:1:10: fatal error: 'iostream' file not found >> #include >>           ^~~~~~~~~~ >> 1 error generated. > > I tried with clang++ --verbose, and the log showed search paths for #include. > iostream is at /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/iostream. > Can you find it? It comes from gcc-g++. > Or the search path includes /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++? Package clang pulls in headers and libraries from libc++-devel libclang8 libunwind-devel gcc-g++ libstdc++6 gcc-core cygwin-devel so the primary include paths should be from: libc++-devel /usr/include/c++/v1/ for most language and library definitions and libraries, libclang8 /usr/lib/clang/8.0.1/include/ for clang intrinsics and builtins, libunwind-devel /usr/include/ for exception handling definitions and libraries, gcc-g++ /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/{x86_64-pc-cygwin/,} and libstdc++6 for C++ system dependent and low level definitions and libraries, gcc-core /usr/lib/gcc/x86_64-pc-cygwin/11/include/ for system dependent and low level intrinsics and interfaces, and cygwin-devel /usr/include/{*/,} for system dependent and low level definitions and libraries. Everything clang should be prioritized over anything gcc to prevent such issues, so cygcheck -c clang llvm libc++-devel libclang8 libunwind-devel gcc-g++ libstdc++6 gcc-core cygwin-devel to ensure eveything has been installed properly. Unfortunately clang{,++,-cpp} -print-search-dirs does *NOT* show include paths, but -v and -### complain about nonexistent /usr/include/c++/11 where /usr/include/c++/v1 exists! It appears the search list ignores the directories populated in libc++-devel: ... -resource-dir /usr/lib/clang/8.0.1 -internal-isystem /usr/x86_64-pc-cygwin/include/c++ -internal-isystem /usr/x86_64-pc-cygwin/include/c++/x86_64-pc-cygwin -internal-isystem /usr/x86_64-pc-cygwin/include/c++/backward -internal-isystem /usr/x86_64-pc-cygwin/include/c++/11 -internal-isystem /usr/x86_64-pc-cygwin/include/c++/11/x86_64-pc-cygwin -internal-isystem /usr/x86_64-pc-cygwin/include/c++/11/backward -internal-isystem /usr/include/c++/11 -internal-isystem /usr/include/c++/11/x86_64-pc-cygwin -internal-isystem /usr/include/c++/11/backward -internal-isystem /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++ -internal-isystem /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/x86_64-pc-cygwin -internal-isystem /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/backward -internal-isystem /usr/lib/clang/8.0.1/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/clang/8.0.1/include -internal-isystem /usr/x86_64-pc-cygwin/include -internal-isystem /usr/include -internal-isystem /usr/include/w32api ... ignoring nonexistent directory "/usr/x86_64-pc-cygwin/include/c++" ignoring nonexistent directory "/usr/x86_64-pc-cygwin/include/c++/x86_64-pc-cygwin" ignoring nonexistent directory "/usr/x86_64-pc-cygwin/include/c++/backward" ignoring nonexistent directory "/usr/x86_64-pc-cygwin/include/c++/11" ignoring nonexistent directory "/usr/x86_64-pc-cygwin/include/c++/11/x86_64-pc-cygwin" ignoring nonexistent directory "/usr/x86_64-pc-cygwin/include/c++/11/backward" ignoring nonexistent directory "/usr/include/c++/11" ignoring nonexistent directory "/usr/include/c++/11/x86_64-pc-cygwin" ignoring nonexistent directory "/usr/include/c++/11/backward" ignoring nonexistent directory "/usr/x86_64-pc-cygwin/include" ignoring duplicate directory "/usr/lib/clang/8.0.1/include" #include "..." search starts here: #include <...> search starts here: /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++ /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/x86_64-pc-cygwin /usr/lib/gcc/x86_64-pc-cygwin/11/include/c++/backward /usr/lib/clang/8.0.1/include /usr/local/include /usr/include /usr/include/w32api End of search list. You may want to try to override the built in includes from -internal-isystem with those mentioned above but not built in. I have no idea why both compilers would include w32api headers as if they were building Mingw cross compilers! -- Take care. Thanks, Brian Inglis Calgary, Alberta, Canada La perfection est atteinte Perfection is achieved non pas lorsqu'il n'y a plus rien à ajouter not when there is no more to add mais lorsqu'il n'y a plus rien à retirer but when there is no more to cut -- Antoine de Saint-Exupéry -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple