[PATCH v2] livepatch-tools: remove usage of error.h

Roger Pau Monne posted 1 patch 1 year ago
Failed in applying to current master (apply log)
common.h             | 9 ++++++---
create-diff-object.c | 1 -
lookup.c             | 7 +++++--
prelink.c            | 1 -
4 files changed, 11 insertions(+), 7 deletions(-)
[PATCH v2] livepatch-tools: remove usage of error.h
Posted by Roger Pau Monne 1 year ago
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


Re: [PATCH v2] livepatch-tools: remove usage of error.h
Posted by Ross Lagerwall 1 year ago
> 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>
Re: [PATCH v2] livepatch-tools: remove usage of error.h
Posted by Roger Pau Monné 1 year ago
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.

Re: [PATCH v2] livepatch-tools: remove usage of error.h
Posted by Andrew Cooper 1 year ago
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>