Bug 109131 - cc1plus: error: unrecognized command line option "-std=c++11"
Summary: cc1plus: error: unrecognized command line option "-std=c++11"
Status: NEW
Alias: None
Product: Mesa
Classification: Unclassified
Component: Mesa core (show other bugs)
Version: git
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: mesa-dev
QA Contact: mesa-dev
URL:
Whiteboard:
Keywords: bisected, regression
Depends on:
Blocks:
 
Reported: 2018-12-22 07:12 UTC by Vinson Lee
Modified: 2019-02-28 18:59 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vinson Lee 2018-12-22 07:12:23 UTC
CXX    gallivm/lp_bld_debug.lo
cc1plus: error: unrecognized command line option "-std=c++11"

commit 12187550f9c248e72ed8848e96da8f29f1e3a713
Author: Emil Velikov <emil.velikov@collabora.com>
Date:   Thu Dec 13 11:56:40 2018 +0000

    configure: add CXX11_CXXFLAGS to LLVM_CXXFLAGS
    
    Seemingly with LLVM7 and GCC 5.0, the former won't properly advertise
    -std=c++11 and the latter will choke.
    
    dd this temporary workaround, otherwise we'll get errors like:
    
    In file included from /usr/include/c++/5/type_traits:35:0,
                     from /usr/lib/llvm-7/include/llvm/Support/type_traits.h:18,
                     from /usr/lib/llvm-7/include/llvm/ADT/Optional.h:22,
                     from /usr/lib/llvm-7/include/llvm/ADT/STLExtras.h:20,
                     from /usr/lib/llvm-7/include/llvm/ADT/StringRef.h:13,
                     from /usr/lib/llvm-7/include/llvm/Target/TargetMachine.h:17,
                     from ../../../src/amd/common/ac_llvm_helper.cpp:36:
    /usr/include/c++/5/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
    
    Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
    Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Comment 1 Dylan Baker 2018-12-22 21:03:18 UTC
what compiler and what version? It wouldn't surprise me if old versions of gcc (Say 4.2) doesn't actually support C++11.
Comment 2 Dylan Baker 2018-12-22 21:25:13 UTC
Actually, it looks like std=c++11 was added in GCC 4.7, and before that you had to use std=c++0x. Clang added support for std=c++11 it looks like.

https://gcc.gnu.org/projects/cxx-status.html#cxx11
https://clang.llvm.org/cxx_status.html
Comment 3 Gert Wollny 2018-12-23 08:30:22 UTC
Given the patch in question explicitly adds CXX11_CXXFLAGS in a section that is only taken into account when llvm is enabled the llvm version would also be relevant. 

AFAIR the last version before llvm-7 that didn't advertise -std=c++11 was  something like llvm-3.9, and there was a patch proposed by Emil that would bump the minimum required version to 5.0 (it didn't land yet, I guess because there was some andorid WIP patch in the series). With that support for -std=c++11 would become a requirement for builds that enable llvm.
Comment 4 Emil Velikov 2019-01-11 12:07:54 UTC
AFAICT we probe if the compiler supports -std... before using it.
If somehow that's not the case we ought to fix that, or fallback to one that owrks.

Patches welcome :-)
Comment 5 Dylan Baker 2019-02-28 18:59:27 UTC
I haven't seen any other reports of this, so I'm going to remove it rom the 19.0 blocker. I don't think it's worth it to block the release.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.