svn commit: r328973 - in stable/11: include sys/sys
Hans Petter Selasky
hps at selasky.org
Sun Feb 11 10:26:59 UTC 2018
On 02/11/18 11:09, Antoine Brodin wrote:
> On Sun, Feb 11, 2018 at 8:01 AM, Antoine Brodin <antoine at freebsd.org> wrote:
>> On Wed, Feb 7, 2018 at 4:06 PM, Hans Petter Selasky
>> <hselasky at 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
> Something like this may be needed on stable/11:
>
> Index: 11/sys/sys/cdefs.h
> ===================================================================
> --- 11/sys/sys/cdefs.h (revision 329121)
> +++ 11/sys/sys/cdefs.h (working copy)
> @@ -213,6 +213,7 @@
> #define __aligned(x)
> #define __alloc_align(x)
> #define __alloc_size(x)
> +#define __alloc_size2(n, x)
> #define __section(x)
> #define __weak_symbol
> #else
>
> Antoine
>
>
More information about the svn-src-all
mailing list