Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 11 Feb 2018 11:54:44 -0500
From:      Pedro Giffuni <pfg@FreeBSD.org>
To:        Hans Petter Selasky <hps@selasky.org>, Antoine Brodin <antoine@freebsd.org>
Cc:        src-committers <src-committers@freebsd.org>, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org, re <re@freebsd.org>
Subject:   Re: svn commit: r328973 - in stable/11: include sys/sys
Message-ID:  <28983217-7cbf-6ef8-8197-de122af9bf6f@FreeBSD.org>
In-Reply-To: <c5654c7d-22cf-dc73-8b40-b2fa9ef7438d@selasky.org>
References:  <201802071506.w17F6s5l043163@repo.freebsd.org> <CAALwa8nxtiGHMNbMrS_51MvqWfsccV%2BZ-whdGp8VedFCWid5zQ@mail.gmail.com> <CAALwa8nam2SgGH6jqsVf-5-sdMPLb3d0DBxhhZgc1zBDP=5r3A@mail.gmail.com> <c5654c7d-22cf-dc73-8b40-b2fa9ef7438d@selasky.org>

next in thread | previous in thread | raw e-mail | index | archive | help
...

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 <antoine@freebsd.org> 
>> wrote:
>>> On Wed, Feb 7, 2018 at 4:06 PM, Hans Petter Selasky
>>> <hselasky@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.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?28983217-7cbf-6ef8-8197-de122af9bf6f>