ccan.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Kevin Locke <kevin@kevinlocke.name>
To: ccan@lists.ozlabs.org
Subject: [PATCH 3/9] configurator: Inline err.h functions from musl libc
Date: Sun, 18 Sep 2016 18:52:00 -0600	[thread overview]
Message-ID: <d7b109044f3d73a3f91c56136ad487fe07b518a7.1474239353.git.kevin@kevinlocke.name> (raw)
In-Reply-To: <cover.1474239353.git.kevin@kevinlocke.name>

Since we can't use HAVE_ERR_H in configurator, provide a definition for
the err.h functions used.  The version provided is the one from musl
libc, since it is concise and shares the MIT License with configurator.

Signed-off-by: Kevin Locke <kevin@kevinlocke.name>
---
 tools/configurator/configurator.c | 54 ++++++++++++++++++++++++++++++++++++++-
 1 file changed, 53 insertions(+), 1 deletion(-)

diff --git a/tools/configurator/configurator.c b/tools/configurator/configurator.c
index 9817fcd..9dcf307 100644
--- a/tools/configurator/configurator.c
+++ b/tools/configurator/configurator.c
@@ -3,6 +3,9 @@
  *
  * Copyright 2011 Rusty Russell <rusty@rustcorp.com.au>.  MIT license.
  *
+ * err, errx, verr, verrx, vwarn, vwarnx functions from musl libc
+ * Copyright 2005-2013 Rich Felker.  MIT license.
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
@@ -22,9 +25,9 @@
  * THE SOFTWARE.
  */
 #include <stdio.h>
+#include <stdarg.h>
 #include <stdbool.h>
 #include <stdlib.h>
-#include <err.h>
 #include <string.h>
 
 #ifdef _MSC_VER
@@ -38,6 +41,7 @@
 #define OUTPUT_FILE "configurator.out"
 #define INPUT_FILE "configuratortest.c"
 
+static const char *progname = "";
 static int verbose;
 
 enum test_style {
@@ -367,6 +371,51 @@ static struct test tests[] = {
 	},
 };
 
+static void vwarn(const char *fmt, va_list ap)
+{
+	fprintf (stderr, "%s: ", progname);
+	if (fmt) {
+		vfprintf(stderr, fmt, ap);
+		fputs (": ", stderr);
+	}
+	perror(0);
+}
+
+static void vwarnx(const char *fmt, va_list ap)
+{
+	fprintf (stderr, "%s: ", progname);
+	if (fmt) vfprintf(stderr, fmt, ap);
+	putc('\n', stderr);
+}
+
+static void verr(int status, const char *fmt, va_list ap)
+{
+	vwarn(fmt, ap);
+	exit(status);
+}
+
+static void verrx(int status, const char *fmt, va_list ap)
+{
+	vwarnx(fmt, ap);
+	exit(status);
+}
+
+static void err(int status, const char *fmt, ...)
+{
+	va_list ap;
+	va_start(ap, fmt);
+	verr(status, fmt, ap);
+	va_end(ap);
+}
+
+static void errx(int status, const char *fmt, ...)
+{
+	va_list ap;
+	va_start(ap, fmt);
+	verrx(status, fmt, ap);
+	va_end(ap);
+}
+
 static char *grab_stream(FILE *file)
 {
 	size_t max, ret, size = 0;
@@ -593,6 +642,9 @@ int main(int argc, const char *argv[])
 	const char *default_args[]
 		= { "", DEFAULT_COMPILER, DEFAULT_FLAGS, NULL };
 
+	if (argc > 0)
+		progname = argv[0];
+
 	if (argc > 1) {
 		if (strcmp(argv[1], "--help") == 0) {
 			printf("Usage: configurator [-v] [<compiler> <flags>...]\n"
-- 
2.9.3

_______________________________________________
ccan mailing list
ccan@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/ccan

  parent reply	other threads:[~2016-09-19  1:01 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-19  0:51 [PATCH 0/9] configurator: Support for Windows and MSVC Kevin Locke
2016-09-19  0:51 ` [PATCH 1/9] configurator: Replace unlink with remove Kevin Locke
2016-09-20  4:50   ` David Gibson
2016-09-19  0:51 ` [PATCH 2/9] configurator: Reimplement run using popen Kevin Locke
2016-09-20  5:00   ` David Gibson
2016-09-20  6:22     ` Kevin Locke
2016-09-20 13:28       ` David Gibson
2016-09-19  0:52 ` Kevin Locke [this message]
2016-09-20  5:03   ` [PATCH 3/9] configurator: Inline err.h functions from musl libc David Gibson
2016-09-27  6:11     ` Rusty Russell
2016-09-19  0:52 ` [PATCH 4/9] configurator: Use native directory separator Kevin Locke
2016-09-20  5:04   ` David Gibson
2016-09-19  0:52 ` [PATCH 5/9] configurator: Mark non-Windows tests MAY_NOT_COMPILE Kevin Locke
2016-09-20  5:06   ` David Gibson
2016-09-19  0:52 ` [PATCH 6/9] configurator: Print test source without cat Kevin Locke
2016-09-20  5:09   ` David Gibson
2016-09-19  0:52 ` [PATCH 7/9] configurator: Fix compiler warning with compare Kevin Locke
2016-09-20  5:09   ` David Gibson
2016-09-19  0:52 ` [PATCH 8/9] configurator: Pass output cflag to configurator Kevin Locke
2016-09-20  5:23   ` David Gibson
2016-09-20  6:22     ` Kevin Locke
2016-09-20 13:32       ` David Gibson
2016-09-19  0:52 ` [PATCH 9/9] configurator: DEFAULT_{COMPILER, FLAGS} for MSVC Kevin Locke
2016-09-20  4:48 ` [PATCH 0/9] configurator: Support for Windows and MSVC David Gibson
2016-09-20  6:21   ` Kevin Locke
2016-09-20 12:25     ` David Gibson
2016-09-20 14:16       ` Daniel Burke
2016-09-22  2:00         ` David Gibson
2016-09-23  3:33 ` [PATCH v2 00/13] " Kevin Locke
2016-09-23  3:33   ` [PATCH v2 01/13] configurator: Replace unlink with remove Kevin Locke
2016-09-27  4:50     ` David Gibson
2016-09-23  3:33   ` [PATCH v2 02/13] configurator: Reimplement run using popen Kevin Locke
2016-09-27  4:52     ` David Gibson
2016-09-28  5:29       ` [PATCH v3 2/13] " Kevin Locke
2016-09-23  3:33   ` [PATCH v2 03/13] configurator: Inline err.h functions from musl libc Kevin Locke
2016-09-27  5:01     ` David Gibson
2016-09-28  5:35       ` [PATCH v3 3/13] configurator: Inline err.h functions Kevin Locke
2016-09-23  3:33   ` [PATCH v2 04/13] configurator: Use native directory separator Kevin Locke
2016-09-27  5:05     ` David Gibson
2016-09-23  3:33   ` [PATCH v2 05/13] configurator: Mark non-Windows tests MAY_NOT_COMPILE Kevin Locke
2016-09-27  5:05     ` David Gibson
2016-09-23  3:33   ` [PATCH v2 06/13] configurator: Print test source without cat Kevin Locke
2016-09-27  5:06     ` David Gibson
2016-09-28  5:38       ` Kevin Locke
2016-09-23  3:33   ` [PATCH v2 07/13] configurator: Fix compiler warning with compare Kevin Locke
2016-09-27  5:09     ` David Gibson
2016-09-23  3:33   ` [PATCH v2 08/13] configurator: Add output cflag option and macro Kevin Locke
2016-09-27  5:17     ` David Gibson
2016-09-23  3:33   ` [PATCH v2 09/13] configurator: DEFAULT_{COMPILER, FLAGS} for MSVC Kevin Locke
2016-09-27  5:17     ` David Gibson
2016-09-23  3:33   ` [PATCH v2 10/13] configurator: Fix warning in HAVE_FOR_LOOP_DECLARATION Kevin Locke
2016-09-27  5:10     ` David Gibson
2016-09-23  3:33   ` [PATCH v2 11/13] configurator: Return pointer difference as ptrdiff_t Kevin Locke
2016-09-27  5:10     ` David Gibson
2016-09-23  3:33   ` [PATCH v2 12/13] Makefile: Define CFLAGS_FORCE_C_SOURCE macro Kevin Locke
2016-09-27  5:18     ` David Gibson
2016-09-27  6:18       ` Rusty Russell
2016-09-28  2:01         ` David Gibson
2016-10-26  2:49           ` Rusty Russell
2016-09-23  3:33   ` [PATCH v2 13/13] Add appveyor.yml Kevin Locke
2016-09-27  5:20     ` David Gibson
2016-09-28  6:01       ` [PATCH v3 " Kevin Locke
2016-09-27  5:23   ` [PATCH v2 00/13] configurator: Support for Windows and MSVC David Gibson
2016-09-27  6:20     ` Rusty Russell
2016-09-28  6:32       ` Kevin Locke
2016-09-28  6:28     ` Kevin Locke
2016-09-29  0:21       ` David Gibson
2016-09-29  0:44         ` [PATCH v3 0/7] " Kevin Locke
2016-09-29  0:44           ` [PATCH v3 1/7] configurator: Reimplement run using popen Kevin Locke
2016-09-29  0:44           ` [PATCH v3 2/7] configurator: Inline err.h functions Kevin Locke
2016-09-29  0:44           ` [PATCH v3 3/7] configurator: Print test source without cat Kevin Locke
2016-09-29  0:44           ` [PATCH v3 4/7] configurator: Add output cflag option and macro Kevin Locke
2016-09-29  0:44           ` [PATCH v3 5/7] configurator: DEFAULT_{COMPILER, FLAGS} for MSVC Kevin Locke
2016-09-29  0:44           ` [PATCH v3 6/7] Makefile: Define CFLAGS_FORCE_C_SOURCE macro Kevin Locke
2016-09-29  0:44           ` [PATCH v3 7/7] Add appveyor.yml Kevin Locke
2016-09-30 15:08           ` [PATCH v3 0/7] configurator: Support for Windows and MSVC David Gibson
2016-10-03  3:14             ` Kevin Locke
2016-12-02 20:23               ` AppVeyor custom Git URL support (was Re: [PATCH v3 0/7] configurator: Support for Windows and MSVC) Kevin Locke

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d7b109044f3d73a3f91c56136ad487fe07b518a7.1474239353.git.kevin@kevinlocke.name \
    --to=kevin@kevinlocke.name \
    --cc=ccan@lists.ozlabs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).