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

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



_______________________________________________
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"

Reply via email to