Message ID | 20230406114106.54735-1-roger.pau@citrix.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] livepatch-tools: remove usage of error.h | expand |
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>
> 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.
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>
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(-)