Re: svn commit: r228955 - head/include

2012-01-01 Thread Ed Schouten
David,

* David Schultz d...@freebsd.org, 20120101 03:54:
 I'm out of town and don't remember the details of this, but is there a
 reason we couldn't simply have an appropriate #ifdef that uses
 __attribute((__noreturn__)) instead of [[noreturn]]?  We have plenty
 of ifdefs in the tree already to work around deficiencies in various
 compilers.  Saying it's the compiler's fault and we're not going to
 work around it is a significant departure from historical precedent,
 and it punishes the wrong people.  Easier than arguing with the GNU
 folks about fixing it, too...

Right now GCC 4.7 is still an unreleased piece of software. If GCC 4.7
was a released piece of software, I would of course agree that we should
add the workaround.

The problem isn't that GCC 4.7 doesn't support [[noreturn]]. The problem
is that GCC only implements parts of C++11, yet it forces the compiler
into C++11 mode while bootstrapping. Even if we add a workaround for
this in sys/cdefs.h, we can likely never ever get rid of it. Because if
someone wants to install GCC 4.7 on a FreeBSD 14.0 box in 2020 to build
an old piece of software, he still needs the workaround.

But there's nothing serious going on here. The issue is already
discussed in GCC Bugzilla and there is a patch that fixes the build.
Let's just wait to see what happens.

-- 
 Ed Schouten e...@80386.nl
 WWW: http://80386.nl/


pgpboXRFImVs0.pgp
Description: PGP signature


Re: svn commit: r228955 - head/include

2012-01-01 Thread David Schultz
On Sun, Jan 01, 2012, Ed Schouten wrote:
 David,
 
 * David Schultz d...@freebsd.org, 20120101 03:54:
  I'm out of town and don't remember the details of this, but is there a
  reason we couldn't simply have an appropriate #ifdef that uses
  __attribute((__noreturn__)) instead of [[noreturn]]?  We have plenty
  of ifdefs in the tree already to work around deficiencies in various
  compilers.  Saying it's the compiler's fault and we're not going to
  work around it is a significant departure from historical precedent,
  and it punishes the wrong people.  Easier than arguing with the GNU
  folks about fixing it, too...
 
 Right now GCC 4.7 is still an unreleased piece of software. If GCC 4.7
 was a released piece of software, I would of course agree that we should
 add the workaround.
 
 The problem isn't that GCC 4.7 doesn't support [[noreturn]]. The problem
 is that GCC only implements parts of C++11, yet it forces the compiler
 into C++11 mode while bootstrapping. Even if we add a workaround for
 this in sys/cdefs.h, we can likely never ever get rid of it. Because if
 someone wants to install GCC 4.7 on a FreeBSD 14.0 box in 2020 to build
 an old piece of software, he still needs the workaround.
 
 But there's nothing serious going on here. The issue is already
 discussed in GCC Bugzilla and there is a patch that fixes the build.
 Let's just wait to see what happens.

Since we're talking about a development version of gcc, I agree.
We should wait and see if they fix it.

It wouldn't surprise me if we wind up needing some workarounds.  After
all, after well over a decade, we still have workarounds for gcc's
(and clang's) lack of complete C99 support.  I doubt the gcc
developers are going to agree that they need to dot every i and
cross every t before they declare C++11 support and define
__cplusplus to be 201103.
___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org


Re: svn commit: r228955 - head/include

2011-12-31 Thread David Schultz
On Thu, Dec 29, 2011, Ed Schouten wrote:
 Hi Steve,
 
 * Steve Kargl s...@troutmask.apl.washington.edu, 20111229 19:49:
  Are you going to submit a bug report to GCC?  Because, as of now,
  you've broken my ability to do development work on bleeding edge
  freebsd and bleeding edge gcc.
 
 Here you go:
 
   http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51705
 
 In the future, could you write such bug reports yourself? I am really
 not that interested in GCC's development process.

I'm out of town and don't remember the details of this, but is there a
reason we couldn't simply have an appropriate #ifdef that uses
__attribute((__noreturn__)) instead of [[noreturn]]?  We have plenty
of ifdefs in the tree already to work around deficiencies in various
compilers.  Saying it's the compiler's fault and we're not going to
work around it is a significant departure from historical precedent,
and it punishes the wrong people.  Easier than arguing with the GNU
folks about fixing it, too...
___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org


Re: svn commit: r228955 - head/include

2011-12-31 Thread Steve Kargl
On Sat, Dec 31, 2011 at 09:54:22PM -0500, David Schultz wrote:
 On Thu, Dec 29, 2011, Ed Schouten wrote:
  Hi Steve,
  
  * Steve Kargl s...@troutmask.apl.washington.edu, 20111229 19:49:
   Are you going to submit a bug report to GCC?  Because, as of now,
   you've broken my ability to do development work on bleeding edge
   freebsd and bleeding edge gcc.
  
  Here you go:
  
  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51705
  
  In the future, could you write such bug reports yourself? I am really
  not that interested in GCC's development process.
 
 I'm out of town and don't remember the details of this, but is there a
 reason we couldn't simply have an appropriate #ifdef that uses
 __attribute((__noreturn__)) instead of [[noreturn]]?  We have plenty
 of ifdefs in the tree already to work around deficiencies in various
 compilers.  Saying it's the compiler's fault and we're not going to
 work around it is a significant departure from historical precedent,
 and it punishes the wrong people.  Easier than arguing with the GNU
 folks about fixing it, too...

I've already sent a patch to GCC to work around the problem.
FreeBSD is still considered to be a primary platform for GCC, 
so problem is a P1 issue in bugzilla.  Unfortunately, I think
that there are no active FreeBSD gcc maintainer.  This means
the patch may linger in bugzilla for awhile.

-- 
Steve
___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org


Re: svn commit: r228955 - head/include

2011-12-29 Thread Steve Kargl
On Thu, Dec 29, 2011 at 07:32:13PM +0100, Ed Schouten wrote:
 Hi Andreas,
 
 * Andreas Tobler andre...@freebsd.org, 20111229 18:43:
  Thank you Ed! gcc-4.6 bootstrap successful.
 
 But it seems GCC 4.7 is still broken. I am not planning to fix that,
 because it's a shortcoming of GCC. As soon as the GNU folks implement
 C++11 [[noreturn]], it should work again.
 

Are you going to submit a bug report to GCC?  Because, as of now,
you've broken my ability to do development work on bleeding edge
freebsd and bleeding edge gcc.

-- 
Steve
___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org


Re: svn commit: r228955 - head/include

2011-12-29 Thread Ed Schouten
Hi Steve,

* Steve Kargl s...@troutmask.apl.washington.edu, 20111229 19:49:
 Are you going to submit a bug report to GCC?  Because, as of now,
 you've broken my ability to do development work on bleeding edge
 freebsd and bleeding edge gcc.

Here you go:

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51705

In the future, could you write such bug reports yourself? I am really
not that interested in GCC's development process.

-- 
 Ed Schouten e...@80386.nl
 WWW: http://80386.nl/


pgph1SaQdSq96.pgp
Description: PGP signature


Re: svn commit: r228955 - head/include

2011-12-29 Thread Andreas Tobler

On 29.12.11 15:41, Ed Schouten wrote:

Author: ed
Date: Thu Dec 29 14:41:17 2011
New Revision: 228955
URL: http://svn.freebsd.org/changeset/base/228955

Log:
   Don't define static_assert for C++.

   Even though _Static_assert() is pretty robust for C code, it cannot work
   correctly with C++ code.  This is due to the fact that C++ template
   parameters may contain commas that are not enclosed in parentheses. For
   example:

static_assert(fooint, int::bar == baz, ...);

   This causes _Static_assert to be called with an excessive number of
   parameters.  If you want to use static_assert in C++, just use a C++11
   compiler.

   Reported on: current@, ports@


Thank you Ed! gcc-4.6 bootstrap successful.

Andreas

___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org


Re: svn commit: r228955 - head/include

2011-12-29 Thread Andreas Tobler

Hi Ed,

On 29.12.11 19:32, Ed Schouten wrote:


* Andreas Toblerandre...@freebsd.org, 20111229 18:43:

Thank you Ed! gcc-4.6 bootstrap successful.


But it seems GCC 4.7 is still broken. I am not planning to fix that,
because it's a shortcoming of GCC. As soon as the GNU folks implement
C++11 [[noreturn]], it should work again.


Yep, gcc-trunk is still broken. I help(ed) myself with a 
!defined(__GNUC__) with this I can continue hacking on trunk...


Well, I possibly do not understand all/everything regarding this 
[[noreturn]]. But I do not see an activity in this direction on the gcc 
side.
They implemented the _Noreturn for STDC but the double-square-bracket 
notation for noreturn C++ I do not see. As said, I might simply do not 
see it.


Thanks again,
Andreas

___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org


Re: svn commit: r228955 - head/include

2011-12-29 Thread Ed Schouten
Hi Andreas,

* Andreas Tobler andre...@freebsd.org, 20111229 18:43:
 Thank you Ed! gcc-4.6 bootstrap successful.

But it seems GCC 4.7 is still broken. I am not planning to fix that,
because it's a shortcoming of GCC. As soon as the GNU folks implement
C++11 [[noreturn]], it should work again.

-- 
 Ed Schouten e...@80386.nl
 WWW: http://80386.nl/


pgpoVMqDaK6lw.pgp
Description: PGP signature


Re: svn commit: r228955 - head/include

2011-12-29 Thread Steve Kargl
On Thu, Dec 29, 2011 at 08:23:59PM +0100, Ed Schouten wrote:
 Hi Steve,
 
 * Steve Kargl s...@troutmask.apl.washington.edu, 20111229 19:49:
  Are you going to submit a bug report to GCC?  Because, as of now,
  you've broken my ability to do development work on bleeding edge
  freebsd and bleeding edge gcc.
 
 Here you go:
 
   http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51705

Thanks.

 In the future, could you write such bug reports yourself? I am really
 not that interested in GCC's development process.

I'll try, but I don't know C11 or C++11.  While you may have
no interest in GCC developement, the ports collection uses
GCC.  I can also see this type of problem leading to 3rd
part software developer dropping support for FreeBSD because
they need to work around issues with FreeBSD headers.  

-- 
Steve
___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org