Date: Sun, 11 Feb 2018 11:24:02 +0100 From: Hans Petter Selasky <hps@selasky.org> To: 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: <c5654c7d-22cf-dc73-8b40-b2fa9ef7438d@selasky.org> In-Reply-To: <CAALwa8nam2SgGH6jqsVf-5-sdMPLb3d0DBxhhZgc1zBDP=5r3A@mail.gmail.com> References: <201802071506.w17F6s5l043163@repo.freebsd.org> <CAALwa8nxtiGHMNbMrS_51MvqWfsccV%2BZ-whdGp8VedFCWid5zQ@mail.gmail.com> <CAALwa8nam2SgGH6jqsVf-5-sdMPLb3d0DBxhhZgc1zBDP=5r3A@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
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 > 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 > >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?c5654c7d-22cf-dc73-8b40-b2fa9ef7438d>