annotate lib/xalloc-oversized.h @ 17463:203c036eb0c6

bootstrap: support checksum utils without a --status option * build-aux/bootstrap: Only look for sha1sum if updating po files. Add sha1 to the list of supported checksum utils since it's now supported through adjustments below. (update_po_files): Remove the use of --status in a way that will suppress all error messages, but since this is only used to minimize updates, it shouldn't cause an issue. Exit early if there is a problem updating the po file checksums. (find_tool): Remove the check for --version support as this is optional as per commit 86186b17. Don't even check for the presence of the command as if that is needed, it's supported through configuring prerequisites in bootstrap.conf. Prompt that when a tool isn't found, one can define an environment variable to add to the hardcoded search list.
author Pádraig Brady <P@draigBrady.com>
date Thu, 08 Aug 2013 11:08:49 +0100
parents e542fd46ad6f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
14643
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
1 /* xalloc-oversized.h -- memory allocation size checking
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
2
17249
e542fd46ad6f maint: update all copyright year number ranges
Eric Blake <eblake@redhat.com>
parents: 17094
diff changeset
3 Copyright (C) 1990-2000, 2003-2004, 2006-2013 Free Software Foundation, Inc.
14643
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
4
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
5 This program is free software: you can redistribute it and/or modify
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
6 it under the terms of the GNU General Public License as published by
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
7 the Free Software Foundation; either version 3 of the License, or
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
8 (at your option) any later version.
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
9
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
10 This program is distributed in the hope that it will be useful,
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
13 GNU General Public License for more details.
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
14
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
15 You should have received a copy of the GNU General Public License
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
16 along with this program. If not, see <http://www.gnu.org/licenses/>. */
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
17
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
18 #ifndef XALLOC_OVERSIZED_H_
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
19 # define XALLOC_OVERSIZED_H_
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
20
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
21 # include <stddef.h>
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
22
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
23 /* Return 1 if an array of N objects, each of size S, cannot exist due
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
24 to size arithmetic overflow. S must be positive and N must be
17094
67cb7096523b misc: don't limit commentary to inline functions
Paul Eggert <eggert@cs.ucla.edu>
parents: 16201
diff changeset
25 nonnegative. This is a macro, not a function, so that it
14643
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
26 works correctly even when SIZE_MAX < N.
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
27
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
28 By gnulib convention, SIZE_MAX represents overflow in size
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
29 calculations, so the conservative dividend to use here is
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
30 SIZE_MAX - 1, since SIZE_MAX might represent an overflowed value.
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
31 However, malloc (SIZE_MAX) fails on all known hosts where
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
32 sizeof (ptrdiff_t) <= sizeof (size_t), so do not bother to test for
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
33 exactly-SIZE_MAX allocations on such hosts; this avoids a test and
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
34 branch when S is known to be 1. */
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
35 # define xalloc_oversized(n, s) \
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
36 ((size_t) (sizeof (ptrdiff_t) <= sizeof (size_t) ? -1 : -2) / (s) < (n))
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
37
b3b2f9e830e9 xalloc-oversized: new module
Eric Blake <eblake@redhat.com>
parents:
diff changeset
38 #endif /* !XALLOC_OVERSIZED_H_ */