[PATCH] error_prints: fix program_invocation_name type conflict

Baruch Siach baruch at tkos.co.il
Fri Sep 8 09:12:57 UTC 2017


uClibc-ng declares program_invocation_name as const. This causes the
build failure below:

error_prints.c:40:14: error: conflicting types for ‘program_invocation_name’
 extern char *program_invocation_name;
              ^~~~~~~~~~~~~~~~~~~~~~~
In file included from error_prints.c:32:0:
.../output/host/x86_64-buildroot-linux-uclibc/sysroot/usr/include/errno.h:54:20: note: previous declaration of ‘program_invocation_name’ was here
 extern const char *program_invocation_name, *program_invocation_short_name;
                    ^~~~~~~~~~~~~~~~~~~~~~~
Makefile:3856: recipe for target 'strace-error_prints.o' failed

Declare program_invocation_name only when the C library does not provide
one.
---
 error_prints.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/error_prints.c b/error_prints.c
index 8519b9246698..710e99b04ab9 100644
--- a/error_prints.c
+++ b/error_prints.c
@@ -37,7 +37,9 @@
 
 #include "error_prints.h"
 
+#ifndef HAVE_PROGRAM_INVOCATION_NAME
 extern char *program_invocation_name;
+#endif
 
 static void
 verror_msg(int err_no, const char *fmt, va_list p)
-- 
2.14.1





More information about the Strace-devel mailing list