Bug 2148193

Summary: cross-gcc on EPEL9 expects libstdc++ 12, but CentOS Stream 9 uses libstdc++11
Product: [Fedora] Fedora EPEL Reporter: Harry Mallon <harry.mallon>
Component: cross-gccAssignee: Lubomir Rintel <lkundrak>
Status: NEW --- QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: epel9CC: dan, dhowells, epel-packagers-sig, lkundrak
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Harry Mallon 2022-11-24 14:51:29 UTC
Description of problem:
cross-gcc aarch64 on x86_64 host. It expects to find the C++ headers in gcc folders with a 12 in them. However the libstdc++-devel that is available for aarch64 CentOS 9 uses version 11, so it cannot find C++ headers without extra include paths.

Version-Release number of selected component (if applicable):
gcc-c++-aarch64-linux-gnu 12.1.1-1.el9
libstdc++-devel 11.3.1-2.1.el9

How reproducible:
Every time

Steps to Reproduce:
1. Install gcc-c++-aarch64-linux-gnu on x86_64 host
2. Try to compile a simple C++ file
3. You will get include errors as the default includes are wrong

Actual results:

```
# /usr/bin/aarch64-linux-gnu-c++ -v test.cpp 
 ... snip
ignoring nonexistent directory "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/c++/12"
ignoring nonexistent directory "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/c++/12/aarch64-linux-gnu"
ignoring nonexistent directory "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/c++/12/backward"
ignoring nonexistent directory "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc/aarch64-linux-gnu/12/include
 /usr/aarch64-linux-gnu/sys-root/usr/local/include
 /usr/lib/gcc/aarch64-linux-gnu/12/include-fixed
 /usr/aarch64-linux-gnu/sys-root/usr/include
End of search list.
GNU C++17 (GCC) version 12.1.1 20220507 (Red Hat Cross 12.1.1-1) (aarch64-linux-gnu)
        compiled by GNU C version 11.2.1 20220127 (Red Hat 11.2.1-9), GMP version 6.2.0, MPFR version 4.1.0-p9, MPC version 1.2.1, isl version none
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: ee1d63ceabfbcd15639b63b507165dcf
test.cpp:1:10: fatal error: string: No such file or directory
    1 | #include <string>
      |          ^~~~~~~~
compilation terminated.
```

Expected results:
I expect libstc++-devel from CentOS 9 repo to be fully compatible with cross-gcc from EPEL 9.

Additional info: