~ubuntu-branches/ubuntu/lucid/dpkg/lucid

« back to all changes in this revision

Viewing changes to lib/dpkg/macros.h

  • Committer: Bazaar Package Importer
  • Author(s): Colin Watson
  • Date: 2009-09-18 13:39:36 UTC
  • mfrom: (1.1.9 sid)
  • Revision ID: james.westby@ubuntu.com-20090918133936-dj8kjtc2qz3yqj7i
Tags: 1.15.4ubuntu1
* Resynchronise with Debian (LP: #427854). Remaining changes:
  Ubuntu-specific adjustments (probably):
  - Use i686 for lpia in cputable and triplettable.
  - Hack Dpkg::Arch to return i686 for lpia.
  - Move various Conflicts to Breaks, since upgrades from stable Ubuntu
    releases support Breaks.

  Miscellaneous bug fixes:
  - Avoid duplicate attempts to [f]close in obscure error situations which
    might conceiveably close wrong fds.
  - Revert change to stop outputting a newline after a postinst is run
    (Debian #392317).
  - Use the two-arg form of open in Dpkg::Control so that "-" can be
    passed to parse stdin as a control file (Debian #465340).

  Launchpad integration:
  - Add Launchpad-Bugs-Fixed handling in a few more places.

  Build options:
  - Point to https://wiki.ubuntu.com/DistCompilerFlags from
    dpkg-buildpackage(1).
  - Set default LDFLAGS to -Wl,-Bsymbolic-functions. (We've already taken
    this hit in Ubuntu.)
  - Implement handling of hardening-wrapper options via DEB_BUILD_OPTIONS.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * libdpkg - Debian packaging suite library routines
 
3
 * macros.h - C language support macros
 
4
 *
 
5
 * Copyright © 2008, 2009 Guillem Jover <guillem@debian.org>
 
6
 *
 
7
 * This is free software; you can redistribute it and/or modify
 
8
 * it under the terms of the GNU General Public License as
 
9
 * published by the Free Software Foundation; either version 2,
 
10
 * or (at your option) any later version.
 
11
 *
 
12
 * This is distributed in the hope that it will be useful, but
 
13
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 
14
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
15
 * GNU General Public License for more details.
 
16
 *
 
17
 * You should have received a copy of the GNU General Public
 
18
 * License along with dpkg; if not, write to the Free Software
 
19
 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
20
 */
 
21
 
 
22
#ifndef DPKG_MACROS_H
 
23
#define DPKG_MACROS_H
 
24
 
 
25
/* Language definitions. */
 
26
 
 
27
#if HAVE_C_ATTRIBUTE
 
28
#define DPKG_ATTR_UNUSED        __attribute__((unused))
 
29
#define DPKG_ATTR_CONST         __attribute__((constant))
 
30
#define DPKG_ATTR_NORET         __attribute__((noreturn))
 
31
#define DPKG_ATTR_PRINTF(n)     __attribute__((format(printf, n, n + 1)))
 
32
#else
 
33
#define DPKG_ATTR_UNUSED
 
34
#define DPKG_ATTR_CONST
 
35
#define DPKG_ATTR_NORET
 
36
#define DPKG_ATTR_PRINTF(n)
 
37
#endif
 
38
 
 
39
#ifdef __cplusplus
 
40
#define DPKG_BEGIN_DECLS        extern "C" {
 
41
#define DPKG_END_DECLS          }
 
42
#else
 
43
#define DPKG_BEGIN_DECLS
 
44
#define DPKG_END_DECLS
 
45
#endif
 
46
 
 
47
#ifndef sizeof_array
 
48
#define sizeof_array(a) (sizeof(a) / sizeof((a)[0]))
 
49
#endif
 
50
 
 
51
#ifndef min
 
52
#define min(a, b) ((a) < (b) ? (a) : (b))
 
53
#endif
 
54
 
 
55
#ifndef max
 
56
#define max(a, b) ((a) > (b) ? (a) : (b))
 
57
#endif
 
58
 
 
59
#endif /* DPKG_MACROS_H */
 
60