On 06/04/2023 11:54 am, Roger Pau Monné wrote: > 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.
Yeah, anything in err.h ought to be fine. > >> 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. I'd be hesitant to drop it, considering how much shell parsing there is of these tools. But ultimately it's up to Konrad/Ross. ~Andrew