Why would my include/c++/14.2.0/iostream not be found ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




    This is just a strange situation that I know I have seen before and
really can not recall how to fix it. For that matter, I do not recall
what the problem really is. Let it be said that I have done a bootstrap
before a few times and I just _know_ this has happened before. With that
said I apologize if this is a "dummy you did that to yourself" question.

    After doing a bootstrap and test report with the new binutils 2.44
and then GCC 14.2.0 on an IBM POWER9 machine and an x86_64 Xeon machine
I get strange behavior. However only on the x86_64 machine. Here is what
happens :

triton$ uname -a
Linux triton 6.1.128-genunix #1 SMP Sun Mar 9 19:44:14 UTC 2025 x86_64 GNU/Linux
triton$
triton$ which gas
/opt/bw/bin/gas
triton$ gas --version
GNU assembler (GENUNIX Mon Mar 10 16:45:34 UTC 2025) 2.44
Copyright (C) 2025 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or later.
This program has absolutely no warranty.
This assembler was configured for a target of `x86_64-pc-linux-gnu'.
triton$
triton$ which g++
/opt/bw/gcc14/bin/g++
triton$ g++ --version
g++ (GENUNIX Mon Mar 10 18:16:45 UTC 2025) 14.2.0
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

 * * *  looks to be a good compiler  * * *
see https://gcc.gnu.org/pipermail/gcc-testresults/2025-March/840512.html


triton$ echo $CXXFLAGS
-std=c++11 -m64 -g -O0 -march=k8 -mtune=k8 -fno-builtin -fno-fast-math -mpreferred-stack-boundary=8 -Wl,-rpath=/opt/bw/lib,--enable-new-dtags
triton$
triton$ echo $CPPFLAGS
-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
triton$
triton$ cat nothing.cpp

#include <iostream>

/* This test rejects OSF 5.1 Compaq C++ in its default pre-standard iostream
   mode, since that mode puts cout in the global namespace, not "std".  */
void someoutput (void) { std::cout << 123; }

int main (void) { return 0; }
triton$
triton$ /opt/bw/gcc14/bin/g++ $CXXFLAGS $CPPFLAGS -c -o nothing.o nothing.cpp
nothing.cpp:2:10: fatal error: iostream: No such file or directory
    2 | #include <iostream>
      |          ^~~~~~~~~~
compilation terminated.
triton$

I pulled those few lines of code out of the libgmp config tests.

Meanwhile I went through the same process as I usually do with
an IBM POWER9 server and everything "just works".  See here :


dax$
dax$ uname -a
Linux dax 6.1.127-mrw1 #1 SMP Fri Jan 31 14:38:26 PST 2025 ppc64le GNU/Linux
dax$
dax$ which gas
/opt/bw/bin/gas
dax$ gas --version
GNU assembler (GNU Binutils) 2.44
Copyright (C) 2025 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or later.
This program has absolutely no warranty.
This assembler was configured for a target of `powerpc64le-unknown-linux-gnu'.
dax$
dax$ which g++
/opt/bw/gcc14/bin/g++
dax$ g++ --version
g++ (GENUNIX Sat Mar  8 19:10:41 UTC 2025) 14.2.0
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

   * * *  also a good looking compiler  * * *
https://gcc.gnu.org/pipermail/gcc-testresults/2025-March/840371.html


dax$
dax$ echo $CXXFLAGS
-std=c++11 -g -O0 -mcpu=power9 -fno-builtin -m64 -fno-unsafe-math-optimizations -Wl,-rpath=/opt/bw/lib,--enable-new-dtags
dax$
dax$ echo $CPPFLAGS
-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
dax$
dax$ cat nothing.cpp

#include <iostream>

/* This test rejects OSF 5.1 Compaq C++ in its default pre-standard iostream
   mode, since that mode puts cout in the global namespace, not "std".  */
void someoutput (void) { std::cout << 123; }

int main (void) { return 0; }
dax$
dax$ /opt/bw/gcc14/bin/g++ $CXXFLAGS $CPPFLAGS -c -o nothing.o nothing.cpp
dax$

I tossed in the -H flag and sure enough the first line of output looks just fine to me :

dax$
dax$ /opt/bw/gcc14/bin/g++ $CXXFLAGS -H $CPPFLAGS -c -o nothing.o nothing.cpp
. /opt/bw/gcc14/include/c++/14.2.0/iostream
.. /opt/bw/gcc14/include/c++/14.2.0/bits/requires_hosted.h
.
.
. etc etc


However the x86_64 result seems to not find that file at all and yes it does exist :

triton$ ls -l /opt/bw/gcc14/include/c++/14.2.0/iostream
-rw-r--r-- 1 root root 3074 Mar 10 19:58 /opt/bw/gcc14/include/c++/14.2.0/iostream
triton$

Not sure what I did wrong here. Any clues ?

--
--
Dennis Clarke
RISC-V/SPARC/PPC/ARM/CISC
UNIX and Linux spoken



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux