Here is a gist containing the output of attempting to compile the program after installing the clang package on each platform I mentioned:

https://gist.github.com/TylerBrock/9771402

-Tyler


On Tue, Mar 25, 2014 at 4:54 PM, Tyler Brock <tyler.brock@gmail.com> wrote:
To my knowledge it was originally based on CentOS but it has since diverged.

It may be useful to mention that this same issue affects multiple Red Hat derivatives (including RHEL 6.4 itself) and not just Amazon Linux. I attempted the same process on Red Hat 6.4, Fedora 20, and Amazon Linux 2013.09, and it fails on all three of these distributions with the same errors. In fact, the only distribution on which I have been able to get it to work is CentOS 6.4.

-Tyler


On Tue, Mar 25, 2014 at 1:46 AM, Dave Johansen <davejohansen@gmail.com> wrote:
On Mon, Mar 24, 2014 at 6:38 PM, Tyler Brock <tyler.brock@gmail.com> wrote:
Hey Everyone,

I've been trying to use clang package on Amazon linux via EPEL and have installed version 3.4-9.el6 yet am unable to compile even the simplest of programs:
    #include <iostream>

    int main(){
        std::cout << "Hello World" << std::endl;
    }

Saving the above into a file named test.cpp and compiling with "clang++ test.cpp" produces the following error:

    test.cpp:1:10: fatal error: 'iostream' file not found
    #include <iostream>
                 ^
1 error generated.

When attempting the same with gcc (g++) it works as expected so It seems like the clang compiler cannot find the required C++ headers and library files. 

I have contacted Amazon AWS support and they verified that the issue is reproducible by them running the latest version of Amazon Linux with updated packages from EPEL.

I've tried installing devel headers for clang and multiple versions of libstd++ which seem to be placed in /usr/include/c++/<gcc-version> but which, when used by gcc, do not require the path to them be specified at all. It just works.

I have a feeling the clang package is not built to work properly with Amazon Linux as C++ headers and library files (for either for libc++ or libstdc++) such as iostream should be found by default. Any help in resolving the matter would be greatly appreciated.

It may also be worth noting that on CentOS the clang package seems to work fine.

I'm the maintainer of clang in the EPEL, but honestly I know nothing about Amazon Linux. Is it an "EL variant" or claim any sort of compatibility with EL? A known issue even on EL/CentOS with clang is that much of the C++11/14 support won't work because of the old version of the standard library that is available on EL. It sounds like this isn't your issue, but if C++11/14 support is desired, then the devtoolset ( http://rhn.redhat.com/errata/RHEA-2013-1226.html ) is the best route to follow.

_______________________________________________
epel-devel mailing list
epel-devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/epel-devel