common.h | 9 ++++++--- create-diff-object.c | 1 - lookup.c | 7 +++++-- prelink.c | 1 - 4 files changed, 11 insertions(+), 7 deletions(-)
It's a GNU libc specific header which prevents building on musl for
example. Instead use errx() in ERROR() and DIFF_FATAL() macros.
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>
---
Changes since v1:
- Use errx().
---
common.h | 9 ++++++---
create-diff-object.c | 1 -
lookup.c | 7 +++++--
prelink.c | 1 -
4 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/common.h b/common.h
index 9a9da79..bbaa950 100644
--- a/common.h
+++ b/common.h
@@ -1,18 +1,21 @@
#ifndef _COMMON_H_
#define _COMMON_H_
-#include <error.h>
+#include <err.h>
extern char *childobj;
#define ERROR(format, ...) \
- error(1, 0, "ERROR: %s: %s: %d: " format, childobj, __FUNCTION__, __LINE__, ##__VA_ARGS__)
+({ \
+ fflush(stdout); \
+ errx(1, "ERROR: %s: %s: %d: " format "\n", childobj, __FUNCTION__, __LINE__, ##__VA_ARGS__); \
+})
#define DIFF_FATAL(format, ...) \
({ \
fflush(stdout); \
fprintf(stderr, "ERROR: %s: " format "\n", childobj, ##__VA_ARGS__); \
- error(2, 0, "unreconcilable difference"); \
+ errx(2, "unreconcilable difference"); \
})
#define log_debug(format, ...) log(DEBUG, format, ##__VA_ARGS__)
diff --git a/create-diff-object.c b/create-diff-object.c
index 780e6c8..d8a0032 100644
--- a/create-diff-object.c
+++ b/create-diff-object.c
@@ -45,7 +45,6 @@
#include <string.h>
#include <libgen.h>
#include <argp.h>
-#include <error.h>
#include <unistd.h>
#include <time.h>
#include <gelf.h>
diff --git a/lookup.c b/lookup.c
index 39125c6..9633ea2 100644
--- a/lookup.c
+++ b/lookup.c
@@ -28,14 +28,17 @@
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
-#include <error.h>
+#include <err.h>
#include <gelf.h>
#include <unistd.h>
#include "lookup.h"
#define ERROR(format, ...) \
- error(1, 0, "%s: %d: " format, __FUNCTION__, __LINE__, ##__VA_ARGS__)
+({ \
+ fflush(stdout); \
+ errx(1, "%s: %d: " format, __FUNCTION__, __LINE__, ##__VA_ARGS__); \
+})
struct symbol {
unsigned long value;
diff --git a/prelink.c b/prelink.c
index 2039e5b..18c5159 100644
--- a/prelink.c
+++ b/prelink.c
@@ -27,7 +27,6 @@
#include <string.h>
#include <libgen.h>
#include <argp.h>
-#include <error.h>
#include <unistd.h>
#include <gelf.h>
--
2.40.0
> From: Roger Pau Monne <roger.pau@citrix.com>
> Sent: Thursday, April 6, 2023 12:41 PM
> To: xen-devel@lists.xenproject.org <xen-devel@lists.xenproject.org>
> Cc: Roger Pau Monne <roger.pau@citrix.com>; Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>; Ross Lagerwall <ross.lagerwall@citrix.com>
> Subject: [PATCH v2] livepatch-tools: remove usage of error.h
>
> It's a GNU libc specific header which prevents building on musl for
> example. Instead use errx() in ERROR() and DIFF_FATAL() macros.
>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> ---
> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> Cc: Ross Lagerwall <ross.lagerwall@citrix.com>
> ---
> Changes since v1:
> - Use errx().
> ---
> common.h | 9 ++++++---
> create-diff-object.c | 1 -
> lookup.c | 7 +++++--
> prelink.c | 1 -
> 4 files changed, 11 insertions(+), 7 deletions(-)
>
> diff --git a/common.h b/common.h
> index 9a9da79..bbaa950 100644
> --- a/common.h
> +++ b/common.h
> @@ -1,18 +1,21 @@
> #ifndef _COMMON_H_
> #define _COMMON_H_
>
> -#include <error.h>
> +#include <err.h>
>
> extern char *childobj;
>
> #define ERROR(format, ...) \
> - error(1, 0, "ERROR: %s: %s: %d: " format, childobj, __FUNCTION__, __LINE__, ##__VA_ARGS__)
> +({ \
> + fflush(stdout); \
> + errx(1, "ERROR: %s: %s: %d: " format "\n", childobj, __FUNCTION__, __LINE__, ##__VA_ARGS__); \
> +})
Did you mean to add "\n" here? Wouldn't that result in a double new
line?
With that removed (can be done during commit),
Reviewed-by: Ross Lagerwall <ross.lagerwall@citrix.com>
On Thu, Apr 20, 2023 at 04:14:55PM +0000, Ross Lagerwall wrote:
> > From: Roger Pau Monne <roger.pau@citrix.com>
> > Sent: Thursday, April 6, 2023 12:41 PM
> > To: xen-devel@lists.xenproject.org <xen-devel@lists.xenproject.org>
> > Cc: Roger Pau Monne <roger.pau@citrix.com>; Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>; Ross Lagerwall <ross.lagerwall@citrix.com>
> > Subject: [PATCH v2] livepatch-tools: remove usage of error.h
> >
> > It's a GNU libc specific header which prevents building on musl for
> > example. Instead use errx() in ERROR() and DIFF_FATAL() macros.
> >
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> > ---
> > Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> > Cc: Ross Lagerwall <ross.lagerwall@citrix.com>
> > ---
> > Changes since v1:
> > - Use errx().
> > ---
> > common.h | 9 ++++++---
> > create-diff-object.c | 1 -
> > lookup.c | 7 +++++--
> > prelink.c | 1 -
> > 4 files changed, 11 insertions(+), 7 deletions(-)
> >
> > diff --git a/common.h b/common.h
> > index 9a9da79..bbaa950 100644
> > --- a/common.h
> > +++ b/common.h
> > @@ -1,18 +1,21 @@
> > #ifndef _COMMON_H_
> > #define _COMMON_H_
> >
> > -#include <error.h>
> > +#include <err.h>
> >
> > extern char *childobj;
> >
> > #define ERROR(format, ...) \
> > - error(1, 0, "ERROR: %s: %s: %d: " format, childobj, __FUNCTION__, __LINE__, ##__VA_ARGS__)
> > +({ \
> > + fflush(stdout); \
> > + errx(1, "ERROR: %s: %s: %d: " format "\n", childobj, __FUNCTION__, __LINE__, ##__VA_ARGS__); \
> > +})
>
> Did you mean to add "\n" here? Wouldn't that result in a double new
> line?
>
> With that removed (can be done during commit),
>
> Reviewed-by: Ross Lagerwall <ross.lagerwall@citrix.com>
Thanks, please adjust at commit. This is a leftover from v1
when I wasn't using errx.
Roger.
On 06/04/2023 12:41 pm, Roger Pau Monne wrote: > It's a GNU libc specific header which prevents building on musl for > example. Instead use errx() in ERROR() and DIFF_FATAL() macros. > > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
© 2016 - 2026 Red Hat, Inc.