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 - 2024 Red Hat, Inc.