On Thu, Apr 06, 2023 at 10:36:37AM +0100, Andrew Cooper wrote: > On 06/04/2023 10:18 am, Roger Pau Monne wrote: > > It's a GNU libc specific header which prevents building on musl for > > example. Instead open code an equivalent replacement for the usage > > of ERROR() and DIFF_FATAL() macros. > > > > Signed-off-by: Roger Pau Monné <roger....@citrix.com> > > --- > > Cc: Konrad Rzeszutek Wilk <konrad.w...@oracle.com> > > Cc: Ross Lagerwall <ross.lagerw...@citrix.com> > > --- > > common.h | 10 ++++++---- > > create-diff-object.c | 1 - > > lookup.c | 7 +++++-- > > prelink.c | 1 - > > 4 files changed, 11 insertions(+), 8 deletions(-) > > > > diff --git a/common.h b/common.h > > index 9a9da79..ec2ea33 100644 > > --- a/common.h > > +++ b/common.h > > @@ -1,18 +1,20 @@ > > #ifndef _COMMON_H_ > > #define _COMMON_H_ > > > > -#include <error.h> > > - > > extern char *childobj; > > > > #define ERROR(format, ...) \ > > - error(1, 0, "ERROR: %s: %s: %d: " format, childobj, __FUNCTION__, > > __LINE__, ##__VA_ARGS__) > > +({ \ > > + fflush(stdout); \ > > + fprintf(stderr, "ERROR: %s: %s: %d: " format "\n", childobj, > > __FUNCTION__, __LINE__, ##__VA_ARGS__); \ > > + exit(1); \ > > +}) > > > > #define DIFF_FATAL(format, ...) \ > > ({ \ > > fflush(stdout); \ > > fprintf(stderr, "ERROR: %s: " format "\n", childobj, ##__VA_ARGS__); \ > > - error(2, 0, "unreconcilable difference"); \ > > + exit(2); \ > > }) > > Looking at the usage, can't we just use err() instead?
Hm, err() will unconditionaly use errno, which doesn't seem wanted here, as in both cases errnum is passed as 0, effectively preventing printing it. I could use errx(), as that doesn't append an error message, I think that's available on musl. Let me know if you agree with that substitution. > Also, I suspect you don't intend to delete the error message in > DIFF_FATAL() ? I didn't think it was that helpful, but I could keep it. Thanks, Roger.