This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug bootstrap/51705] FreeBSD uses unsupported C++11 features when __cplusplus == 201103L
- From: "sgk at troutmask dot apl.washington.edu" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 30 Dec 2011 17:26:30 +0000
- Subject: [Bug bootstrap/51705] FreeBSD uses unsupported C++11 features when __cplusplus == 201103L
- Auto-submitted: auto-generated
- References: <bug-51705-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51705
--- Comment #20 from Steve Kargl <sgk at troutmask dot apl.washington.edu> 2011-12-30 17:26:30 UTC ---
On Fri, Dec 30, 2011 at 10:45:38AM +0000, andreast at gcc dot gnu.org wrote:
> With the below 'hack' I'm able to bootstrap on x86_64-*-freebsd10.0.
> I'm not sure why my system does not like the original four escape backslashes
> in the select and sed line.
>
> The diff between the sys/cdefs.h and the fixed sys/cdefs.h looks like this:
>
> -#define _Noreturn [[noreturn]]
> +#define _Noreturn __dead2
>
> + * g++ -std=c++11 defines __cplusplus to 201103L, which lies about
> + * the level of support g++ has for the C++11 standard.
> + */
> +fix = {
> + hackname = cdef_cplusplus;
> + mach = "*-*-freebsd10.*";
> + files = sys/cdefs.h;
> + select = "\\[\\[noreturn\\]\\]";
> + sed = "s/\\[\\[noreturn\\]\\]/__dead2/";
Are you using bash and GNU sed instead of FreeBSD's sh
and sed? When I used the above patterns, the changed
file contained
#define _Noreturn [[noreturn__dead2]