From eb76ca98b0733754d7e9a40f754e89b50af2bf06 Mon Sep 17 00:00:00 2001 From: Fabian Groffen Date: Tue, 25 Jan 2011 22:44:52 +0100 Subject: [PATCH] build-sys: provide alternatives for err, errx, warn and warnx Solaris lacks err, errx, warn and warnx. This also means the err.h header doesn't exist. Removed err.h include from all files, and included err.h from c.h instead if it exists, otherwise alternatives are provided. Signed-off-by: Fabian Groffen --- configure.ac | 4 +++ disk-utils/swaplabel.c | 1 - include/c.h | 47 ++++++++++++++++++++++++++++++ include/xalloc.h | 1 - lib/at.c | 2 +- lib/blkdev.c | 2 +- lib/cpuset.c | 2 +- lib/mangle.c | 2 +- lib/strutils.c | 2 +- lib/tt.c | 1 - login-utils/chfn.c | 2 +- login-utils/chsh.c | 1 - login-utils/last.c | 2 +- login-utils/login.c | 2 +- login-utils/mesg.c | 2 +- login-utils/newgrp.c | 1 - login-utils/vipw.c | 2 +- login-utils/wall.c | 2 +- misc-utils/cal.c | 1 - misc-utils/findfs.c | 2 +- misc-utils/findmnt.c | 1 - misc-utils/lsblk.c | 2 +- misc-utils/namei.c | 1 - misc-utils/scriptreplay.c | 2 +- misc-utils/wipefs.c | 2 +- mount/swapon.c | 2 +- partx/partx.c | 1 - schedutils/chrt.c | 1 - schedutils/ionice.c | 3 +- schedutils/taskset.c | 3 +- shlibs/blkid/samples/mkfs.c | 1 - shlibs/blkid/samples/partitions.c | 1 - shlibs/blkid/samples/superblocks.c | 1 - shlibs/blkid/samples/topology.c | 1 - shlibs/mount/samples/mount.c | 1 - shlibs/mount/src/lock.c | 2 +- sys-utils/ctrlaltdel.c | 2 +- sys-utils/fallocate.c | 2 +- sys-utils/fsfreeze.c | 1 - sys-utils/fstrim.c | 2 +- sys-utils/ipcmk.c | 2 +- sys-utils/ipcs.c | 2 +- sys-utils/ldattach.c | 1 - sys-utils/lscpu.c | 2 +- sys-utils/renice.c | 2 +- sys-utils/rtcwake.c | 2 +- sys-utils/switch_root.c | 2 +- sys-utils/unshare.c | 2 +- text-utils/column.c | 2 +- text-utils/rev.c | 2 +- text-utils/tailf.c | 2 +- text-utils/ul.c | 2 +- 52 files changed, 84 insertions(+), 52 deletions(-) diff --git a/configure.ac b/configure.ac index ee3e71e909..7b5ffff186 100644 --- a/configure.ac +++ b/configure.ac @@ -175,6 +175,8 @@ AC_CHECK_DECL([lseek64], AC_CHECK_FUNCS( [inet_aton \ + err \ + errx \ futimens \ fstat64 \ fsync \ @@ -204,6 +206,8 @@ AC_CHECK_FUNCS( posix_fadvise \ getmntinfo \ __secure_getenv \ + warn \ + warnx \ rpmatch]) AC_FUNC_FSEEKO diff --git a/disk-utils/swaplabel.c b/disk-utils/swaplabel.c index 9dc20b49e8..86b3199e4a 100644 --- a/disk-utils/swaplabel.c +++ b/disk-utils/swaplabel.c @@ -18,7 +18,6 @@ #include #include #include -#include #include #include diff --git a/include/c.h b/include/c.h index 8154638815..0db8b2b590 100644 --- a/include/c.h +++ b/include/c.h @@ -6,6 +6,15 @@ #define UTIL_LINUX_C_H #include +#include +#include +#include +#include +#include + +#ifdef HAVE_ERR_H +# include +#endif /* * Compiler specific stuff @@ -95,6 +104,44 @@ #endif +#ifndef HAVE_ERR_H +static inline void +errmsg(char doexit, int excode, char adderr, const char *fmt, ...) +{ + fprintf(stderr, "%s: ", program_invocation_short_name); + if (fmt != NULL) { + va_list argp; + va_start(argp, fmt); + vfprintf(stderr, fmt, argp); + va_end(argp); + if (adderr) + fprintf(stderr, ": "); + } + if (adderr) + fprintf(stderr, "%s", strerror(errno)); + fprintf(stderr, "\n"); + if (doexit) + exit(excode); +} + +#ifndef HAVE_ERR +# define err(E, FMT...) errmsg(1, E, 1, FMT) +#endif + +#ifndef HAVE_ERRX +# define errx(E, FMT...) errmsg(1, E, 0, FMT) +#endif + +#ifndef HAVE_WARN +# define warn(FMT...) errmsg(0, 0, 1, FMT) +#endif + +#ifndef HAVE_WARNX +# define warnx(FMT...) errmsg(0, 0, 0, FMT) +#endif +#endif /* !HAVE_ERR_H */ + + static inline __attribute__((const)) int is_power_of_2(unsigned long num) { return (num != 0 && ((num & (num - 1)) == 0)); diff --git a/include/xalloc.h b/include/xalloc.h index 841333c308..0e9ee32487 100644 --- a/include/xalloc.h +++ b/include/xalloc.h @@ -11,7 +11,6 @@ #define UTIL_LINUX_XALLOC_H #include -#include #include #include "c.h" diff --git a/lib/at.c b/lib/at.c index 1993f99831..dd667b5b8f 100644 --- a/lib/at.c +++ b/lib/at.c @@ -9,6 +9,7 @@ #include #include "at.h" +#include "c.h" int fstat_at(int dir, const char *dirname, const char *filename, struct stat *st, int nofollow) @@ -56,7 +57,6 @@ FILE *fopen_at(int dir, const char *dirname, const char *filename, int flags, } #ifdef TEST_PROGRAM -#include #include #include #include diff --git a/lib/blkdev.c b/lib/blkdev.c index 67c4a1ac27..0c27a6df93 100644 --- a/lib/blkdev.c +++ b/lib/blkdev.c @@ -22,6 +22,7 @@ #include "blkdev.h" #include "linux_version.h" +#include "c.h" static long blkdev_valid_offset (int fd, off_t offset) { @@ -208,7 +209,6 @@ blkdev_get_sector_size(int fd, int *sector_size) #include #include #include -#include int main(int argc, char **argv) { diff --git a/lib/cpuset.c b/lib/cpuset.c index 0c483fa5e3..8cd706ce41 100644 --- a/lib/cpuset.c +++ b/lib/cpuset.c @@ -20,6 +20,7 @@ #include #include "cpuset.h" +#include "c.h" static inline int val_to_char(int v) { @@ -303,7 +304,6 @@ int cpulist_parse(const char *str, cpu_set_t *set, size_t setsize) #ifdef TEST_PROGRAM -#include #include int main(int argc, char *argv[]) diff --git a/lib/mangle.c b/lib/mangle.c index 17ca80951c..99e8281e62 100644 --- a/lib/mangle.c +++ b/lib/mangle.c @@ -11,6 +11,7 @@ #include #include "mangle.h" +#include "c.h" #define isoctal(a) (((a) & ~7) == '0') @@ -103,7 +104,6 @@ char *unmangle(const char *s, char **end) } #ifdef TEST_PROGRAM -#include #include int main(int argc, char *argv[]) { diff --git a/lib/strutils.c b/lib/strutils.c index 94635b1e89..8089fbe8b3 100644 --- a/lib/strutils.c +++ b/lib/strutils.c @@ -8,10 +8,10 @@ #include #include #include -#include #include #include #include +#include "c.h" static int do_scale_by_power (uintmax_t *x, int base, int power) { diff --git a/lib/tt.c b/lib/tt.c index 3bcdea9e0c..140149d0f3 100644 --- a/lib/tt.c +++ b/lib/tt.c @@ -709,7 +709,6 @@ int tt_parse_columns_list(const char *list, int cols[], int *ncols, } #ifdef TEST_PROGRAM -#include #include enum { MYCOL_NAME, MYCOL_FOO, MYCOL_BAR, MYCOL_PATH }; diff --git a/login-utils/chfn.c b/login-utils/chfn.c index 64f4ac4298..7399b179f0 100644 --- a/login-utils/chfn.c +++ b/login-utils/chfn.c @@ -30,7 +30,6 @@ #include #include #include -#include #include #include @@ -44,6 +43,7 @@ #include "nls.h" #include "env.h" #include "xalloc.h" +#include "c.h" #ifdef HAVE_LIBSELINUX #include diff --git a/login-utils/chsh.c b/login-utils/chsh.c index 778c4578b8..fe610726f9 100644 --- a/login-utils/chsh.c +++ b/login-utils/chsh.c @@ -22,7 +22,6 @@ * * */ -#include #include #include #include diff --git a/login-utils/last.c b/login-utils/last.c index de733cd587..732343d445 100644 --- a/login-utils/last.c +++ b/login-utils/last.c @@ -29,7 +29,6 @@ /* * last */ -#include #include #include #include @@ -51,6 +50,7 @@ #include "pathnames.h" #include "nls.h" #include "xalloc.h" +#include "c.h" #define SECDAY (24*60*60) /* seconds in a day */ #define NO 0 /* false/no */ diff --git a/login-utils/login.c b/login-utils/login.c index 5584c32026..5486ad9189 100644 --- a/login-utils/login.c +++ b/login-utils/login.c @@ -97,7 +97,6 @@ #include #include #include -#include #include #include #include @@ -120,6 +119,7 @@ #include "strutils.h" #include "nls.h" #include "xalloc.h" +#include "c.h" #ifdef HAVE_SECURITY_PAM_MISC_H # include diff --git a/login-utils/mesg.c b/login-utils/mesg.c index c24a10926a..6176aabfbe 100644 --- a/login-utils/mesg.c +++ b/login-utils/mesg.c @@ -46,7 +46,6 @@ * - cleanups */ -#include #include #include #include @@ -55,6 +54,7 @@ #include #include #include "nls.h" +#include "c.h" /* exit codes */ diff --git a/login-utils/newgrp.c b/login-utils/newgrp.c index 2ffe387344..7016cfa635 100644 --- a/login-utils/newgrp.c +++ b/login-utils/newgrp.c @@ -14,7 +14,6 @@ #include #include #include -#include #ifdef HAVE_CRYPT_H #include diff --git a/login-utils/vipw.c b/login-utils/vipw.c index 5750e6f92d..d3ae51ef9c 100644 --- a/login-utils/vipw.c +++ b/login-utils/vipw.c @@ -60,13 +60,13 @@ static char version_string[] = "vipw 1.4"; #include #include #include -#include #include #include #include "setpwnam.h" #include "strutils.h" #include "nls.h" +#include "c.h" #ifdef HAVE_LIBSELINUX #include diff --git a/login-utils/wall.c b/login-utils/wall.c index fc4d792c4d..bc2e38288e 100644 --- a/login-utils/wall.c +++ b/login-utils/wall.c @@ -47,7 +47,6 @@ #include #include -#include #include #include #include @@ -65,6 +64,7 @@ #include "ttymsg.h" #include "pathnames.h" #include "carefulputc.h" +#include "c.h" void makemsg __P((char *)); diff --git a/misc-utils/cal.c b/misc-utils/cal.c index 896c453391..1e5e2cd8fb 100644 --- a/misc-utils/cal.c +++ b/misc-utils/cal.c @@ -63,7 +63,6 @@ #include #include #include -#include #include #include "c.h" diff --git a/misc-utils/findfs.c b/misc-utils/findfs.c index 18608b4706..04651b3a5d 100644 --- a/misc-utils/findfs.c +++ b/misc-utils/findfs.c @@ -8,11 +8,11 @@ #include #include #include -#include #include #include "nls.h" +#include "c.h" static void __attribute__((__noreturn__)) usage(int rc) { diff --git a/misc-utils/findmnt.c b/misc-utils/findmnt.c index f81a0c87fc..19a15fb583 100644 --- a/misc-utils/findmnt.c +++ b/misc-utils/findmnt.c @@ -21,7 +21,6 @@ #include #include #include -#include #include #include #include diff --git a/misc-utils/lsblk.c b/misc-utils/lsblk.c index b07bfb49a6..2eb6900ac7 100644 --- a/misc-utils/lsblk.c +++ b/misc-utils/lsblk.c @@ -31,7 +31,6 @@ #include #include #include -#include #include #include #include @@ -51,6 +50,7 @@ #include "tt.h" #include "xalloc.h" #include "strutils.h" +#include "c.h" /* column IDs */ enum { diff --git a/misc-utils/namei.c b/misc-utils/namei.c index 1c20b3777d..2115fe7c9f 100644 --- a/misc-utils/namei.c +++ b/misc-utils/namei.c @@ -30,7 +30,6 @@ #include #include #include -#include #include #include diff --git a/misc-utils/scriptreplay.c b/misc-utils/scriptreplay.c index e13edf37e2..f8ee9e011c 100644 --- a/misc-utils/scriptreplay.c +++ b/misc-utils/scriptreplay.c @@ -26,9 +26,9 @@ #include #include #include -#include #include "nls.h" +#include "c.h" #define SCRIPT_MIN_DELAY 0.0001 /* from original sripreplay.pl */ diff --git a/misc-utils/wipefs.c b/misc-utils/wipefs.c index 079a9bccfa..9016f2f407 100644 --- a/misc-utils/wipefs.c +++ b/misc-utils/wipefs.c @@ -27,7 +27,6 @@ #include #include #include -#include #include #include @@ -37,6 +36,7 @@ #include "xalloc.h" #include "strutils.h" #include "writeall.h" +#include "c.h" struct wipe_desc { loff_t offset; /* magic string offset */ diff --git a/mount/swapon.c b/mount/swapon.c index 5c9c3be432..49771f5d76 100644 --- a/mount/swapon.c +++ b/mount/swapon.c @@ -13,7 +13,6 @@ #include #include #include -#include #include #include "bitops.h" @@ -25,6 +24,7 @@ #include "swapheader.h" #include "mangle.h" #include "canonicalize.h" +#include "c.h" #define PATH_MKSWAP "/sbin/mkswap" diff --git a/partx/partx.c b/partx/partx.c index a65586f12b..1a60cb4559 100644 --- a/partx/partx.c +++ b/partx/partx.c @@ -13,7 +13,6 @@ #include #include -#include #include #include #include diff --git a/schedutils/chrt.c b/schedutils/chrt.c index bd7070cca5..489f299885 100644 --- a/schedutils/chrt.c +++ b/schedutils/chrt.c @@ -27,7 +27,6 @@ #include #include #include -#include #include "c.h" #include "nls.h" diff --git a/schedutils/ionice.c b/schedutils/ionice.c index ecfb4fd054..dc18add60e 100644 --- a/schedutils/ionice.c +++ b/schedutils/ionice.c @@ -12,11 +12,10 @@ #include #include #include -#include #include "nls.h" - #include "strutils.h" +#include "c.h" static int tolerant; diff --git a/schedutils/taskset.c b/schedutils/taskset.c index fa16647da1..39b22452ed 100644 --- a/schedutils/taskset.c +++ b/schedutils/taskset.c @@ -24,12 +24,11 @@ #include #include #include -#include #include "cpuset.h" #include "nls.h" - #include "strutils.h" +#include "c.h" static void __attribute__((__noreturn__)) usage(FILE *out) { diff --git a/shlibs/blkid/samples/mkfs.c b/shlibs/blkid/samples/mkfs.c index ff6a6322dd..5c3ebe79e4 100644 --- a/shlibs/blkid/samples/mkfs.c +++ b/shlibs/blkid/samples/mkfs.c @@ -10,7 +10,6 @@ #include #include #include -#include #include #include diff --git a/shlibs/blkid/samples/partitions.c b/shlibs/blkid/samples/partitions.c index 8ee5599692..3b52736494 100644 --- a/shlibs/blkid/samples/partitions.c +++ b/shlibs/blkid/samples/partitions.c @@ -10,7 +10,6 @@ #include #include #include -#include #include #include diff --git a/shlibs/blkid/samples/superblocks.c b/shlibs/blkid/samples/superblocks.c index 276c29e6f4..20e39c97ef 100644 --- a/shlibs/blkid/samples/superblocks.c +++ b/shlibs/blkid/samples/superblocks.c @@ -10,7 +10,6 @@ #include #include #include -#include #include #include diff --git a/shlibs/blkid/samples/topology.c b/shlibs/blkid/samples/topology.c index e73cd9e451..de1c3a5e39 100644 --- a/shlibs/blkid/samples/topology.c +++ b/shlibs/blkid/samples/topology.c @@ -10,7 +10,6 @@ #include #include #include -#include #include #include diff --git a/shlibs/mount/samples/mount.c b/shlibs/mount/samples/mount.c index 8095ffccbe..38960f8dc6 100644 --- a/shlibs/mount/samples/mount.c +++ b/shlibs/mount/samples/mount.c @@ -24,7 +24,6 @@ #include #include #include -#include #include #include diff --git a/shlibs/mount/src/lock.c b/shlibs/mount/src/lock.c index ef7498d978..554915876e 100644 --- a/shlibs/mount/src/lock.c +++ b/shlibs/mount/src/lock.c @@ -29,6 +29,7 @@ #include "pathnames.h" #include "nls.h" +#include "c.h" #include "mountP.h" @@ -429,7 +430,6 @@ failed: } #ifdef TEST_PROGRAM -#include struct libmnt_lock *lock; diff --git a/sys-utils/ctrlaltdel.c b/sys-utils/ctrlaltdel.c index cfab79a3ec..d6c83b42f0 100644 --- a/sys-utils/ctrlaltdel.c +++ b/sys-utils/ctrlaltdel.c @@ -5,13 +5,13 @@ * - added Native Language Support */ -#include #include #include #include #include #include "linux_reboot.h" #include "nls.h" +#include "c.h" int main(int argc, char *argv[]) { diff --git a/sys-utils/fallocate.c b/sys-utils/fallocate.c index e9d7c079af..74e9435fe5 100644 --- a/sys-utils/fallocate.c +++ b/sys-utils/fallocate.c @@ -30,7 +30,6 @@ #include #include #include -#include #include #ifndef HAVE_FALLOCATE @@ -45,6 +44,7 @@ #include "nls.h" #include "strutils.h" +#include "c.h" static void __attribute__((__noreturn__)) usage(FILE *out) diff --git a/sys-utils/fsfreeze.c b/sys-utils/fsfreeze.c index 4ca6e5e2a5..2dab23f496 100644 --- a/sys-utils/fsfreeze.c +++ b/sys-utils/fsfreeze.c @@ -20,7 +20,6 @@ #include #include #include -#include #include "blkdev.h" #include "nls.h" diff --git a/sys-utils/fstrim.c b/sys-utils/fstrim.c index 808ff0334d..a3a8475223 100644 --- a/sys-utils/fstrim.c +++ b/sys-utils/fstrim.c @@ -32,7 +32,6 @@ #include #include #include -#include #include #include @@ -42,6 +41,7 @@ #include "nls.h" #include "strutils.h" +#include "c.h" #ifndef FITRIM struct fstrim_range { diff --git a/sys-utils/ipcmk.c b/sys-utils/ipcmk.c index 2e663bf024..26bf8f6bcb 100644 --- a/sys-utils/ipcmk.c +++ b/sys-utils/ipcmk.c @@ -23,7 +23,6 @@ #include #include #include -#include #include #include @@ -34,6 +33,7 @@ #include #include "nls.h" +#include "c.h" static const char *progname; diff --git a/sys-utils/ipcs.c b/sys-utils/ipcs.c index 2ef5788dee..533aaeb668 100644 --- a/sys-utils/ipcs.c +++ b/sys-utils/ipcs.c @@ -26,7 +26,6 @@ #include #include #include -#include #include #include #include @@ -34,6 +33,7 @@ #include #include "nls.h" +#include "c.h" /*-------------------------------------------------------------------*/ /* SHM_DEST and SHM_LOCKED are defined in kernel headers, diff --git a/sys-utils/ldattach.c b/sys-utils/ldattach.c index 4fe5a7bb6c..5d83819586 100644 --- a/sys-utils/ldattach.c +++ b/sys-utils/ldattach.c @@ -23,7 +23,6 @@ #include #include #include -#include #include "c.h" #include "nls.h" diff --git a/sys-utils/lscpu.c b/sys-utils/lscpu.c index d59d2e2318..373fee14a5 100644 --- a/sys-utils/lscpu.c +++ b/sys-utils/lscpu.c @@ -21,7 +21,6 @@ #include #include -#include #include #include #include @@ -37,6 +36,7 @@ #include "cpuset.h" #include "nls.h" +#include "c.h" #define CACHE_MAX 100 diff --git a/sys-utils/renice.c b/sys-utils/renice.c index 6b1a9726b0..b4d96e02f9 100644 --- a/sys-utils/renice.c +++ b/sys-utils/renice.c @@ -44,8 +44,8 @@ #include #include #include -#include #include "nls.h" +#include "c.h" static int donice(int,int,int); diff --git a/sys-utils/rtcwake.c b/sys-utils/rtcwake.c index 06f5c38392..da8c085fea 100644 --- a/sys-utils/rtcwake.c +++ b/sys-utils/rtcwake.c @@ -28,7 +28,6 @@ #include #include #include -#include #include #include @@ -41,6 +40,7 @@ #include "pathnames.h" #include "usleep.h" #include "strutils.h" +#include "c.h" /* constants from legacy PC/AT hardware */ #define RTC_PF 0x40 diff --git a/sys-utils/switch_root.c b/sys-utils/switch_root.c index c43225da2e..2dfed71a06 100644 --- a/sys-utils/switch_root.c +++ b/sys-utils/switch_root.c @@ -32,7 +32,7 @@ #include #include #include -#include +#include "c.h" #ifndef MS_MOVE #define MS_MOVE 8192 diff --git a/sys-utils/unshare.c b/sys-utils/unshare.c index 12a725e3b1..343a86ee39 100644 --- a/sys-utils/unshare.c +++ b/sys-utils/unshare.c @@ -18,7 +18,6 @@ * 675 Mass Ave, Cambridge, MA 02139, USA. */ -#include #include #include #include @@ -27,6 +26,7 @@ #include #include "nls.h" +#include "c.h" #ifndef CLONE_NEWSNS # define CLONE_NEWNS 0x00020000 diff --git a/text-utils/column.c b/text-utils/column.c index 156de70591..5c6db257ed 100644 --- a/text-utils/column.c +++ b/text-utils/column.c @@ -47,12 +47,12 @@ #include #include #include -#include #include #include #include "nls.h" #include "widechar.h" +#include "c.h" #ifdef HAVE_WIDECHAR #define wcs_width(s) wcswidth(s,wcslen(s)) diff --git a/text-utils/rev.c b/text-utils/rev.c index b69244971f..89e5e58554 100644 --- a/text-utils/rev.c +++ b/text-utils/rev.c @@ -55,12 +55,12 @@ #include #include #include -#include #include #include "nls.h" #include "xalloc.h" #include "widechar.h" +#include "c.h" wchar_t *buf; diff --git a/text-utils/tailf.c b/text-utils/tailf.c index 2dcdba3f3d..c995d979cd 100644 --- a/text-utils/tailf.c +++ b/text-utils/tailf.c @@ -35,7 +35,6 @@ #include #include #include -#include #ifdef HAVE_INOTIFY_INIT #include #endif @@ -43,6 +42,7 @@ #include "nls.h" #include "xalloc.h" #include "usleep.h" +#include "c.h" #define DEFAULT_LINES 10 diff --git a/text-utils/ul.c b/text-utils/ul.c index 30f24e9d5c..dc0550cc01 100644 --- a/text-utils/ul.c +++ b/text-utils/ul.c @@ -47,12 +47,12 @@ #include /* for getenv() */ #include /* for INT_MAX */ #include /* for signal() */ -#include #include #include "nls.h" #include "xalloc.h" #include "widechar.h" +#include "c.h" #ifdef HAVE_WIDECHAR static int put1wc(int c) /* Output an ASCII character as a wide character */ -- 2.39.2