...
On 11/02/2018 05:24, Hans Petter Selasky wrote:
On 02/11/18 11:09, Antoine Brodin wrote:
On Sun, Feb 11, 2018 at 8:01 AM, Antoine Brodin <anto...@freebsd.org>
wrote:
On Wed, Feb 7, 2018 at 4:06 PM, Hans Petter Selasky
<hsela...@freebsd.org> wrote:
Author: hselasky
Date: Wed Feb 7 15:06:54 2018
New Revision: 328973
URL: https://svnweb.freebsd.org/changeset/base/328973
Log:
MFC r328237:
Use the __alloc_size2 attribute where relevant.
This follows the documented use in GCC. It is basically only
relevant for
calloc(3), reallocarray(3) and mallocarray(9).
NOTE: Without this change clang 5.0.1 can produce incorrect
optimisation
code for static processing of data using the allocated object.
For example
this has been seen compiling the mlx4 core module, which
allocates a
fixed size array which is then sorted by a fixed order loop. The
optimised result, -O2, is incorrect unless this patch is in place.
Suggested by: Mark Millard
Reference:
https://docs.freebsd.org/cgi/mid.cgi?9DE674C6-EAA3-4E8A-906F-446E74D82FC4
Modified:
stable/11/include/stdlib.h
stable/11/sys/sys/malloc.h
Directory Properties:
stable/11/ (props changed)
Hi,
Please revert this change. Lots of ports that used to build fine on
stable/11 are now failing.
/usr/include/stdlib.h:93:7: error: expected function body after
function declarator
__alloc_size2(1, 2);
Hi Antoine,
I'm sorry for the inconvenience. Probably I should have sent this
patch for portmgr first, to avoid such breakage. This patch is
required also for ports, and it is good you are now rebuilding ports
which use this define, because they might be broken due to the fact
the __alloc_size2() was incorrectly implemented!
I hope this will be the end of the breakage:
https://svnweb.freebsd.org/changeset/base/329122
Else I will revert both patches and have you test them first.
--HPS
While the lint mode definition was missing, I didn't merge the attribute
uses (r328237) on purpose as I knew they could bring issues. Some rather
broken ports like to take the standard headers and "fix" them. In
essence, any port that requires an attribute defined in sys/cdefs.h is
doing something wrong.
The most notable offender was GCC but I think that was fixed: in any
case, the last time I merged an attribute change I had to wait for the
next release to start using it.
Cheers,
Pedro.
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"