guix/gnu/packages/patches/diffutils-getopt.patch
Ludovic Courtès 8d6cd08573
gnu: diffutils: Fix Gnulib/getopt cross-compilation issue.
Previously cross-compilation would fail:

     CC       xvasprintf.o
   xstrtol-error.c:50:16: warning: 'struct rpl_option' declared inside parameter list
		   int exit_status)
		   ^
   xstrtol-error.c: In function 'xstrtol_error':
   xstrtol-error.c:84:5: error: invalid use of undefined type 'struct rpl_option'

* gnu/packages/patches/diffutils-getopt.patch: New file.
* gnu/packages/base.scm (diffutils)[source]: Use it.
* gnu/local.mk (dist_patch_DATA): Add it.
2017-12-20 23:19:31 +01:00

44 lines
1.5 KiB
Diff

commit e3461d1c21a99bcef1b8826f710434e0ffb5adea
Author: Paul Eggert <eggert@cs.ucla.edu>
Date: Sun Jun 11 15:53:09 2017 -0700
getopt-posix: port to glibc 2.25.90
Problem reported by Daniel P. Berrange in:
http://lists.gnu.org/archive/html/bug-gnulib/2017-06/msg00003.html
* lib/getopt-pfx-core.h (_GETOPT_CORE_H):
* lib/getopt-pfx-ext.h (_GETOPT_EXT_H):
#undef if __GETOPT_PREFIX is defined.
diff --git a/lib/getopt-pfx-core.h b/lib/getopt-pfx-core.h
index 155c11612..6ad0da683 100644
--- a/lib/getopt-pfx-core.h
+++ b/lib/getopt-pfx-core.h
@@ -47,6 +47,11 @@
# define opterr __GETOPT_ID (opterr)
# define optind __GETOPT_ID (optind)
# define optopt __GETOPT_ID (optopt)
+
+/* The system's getopt.h may have already included getopt-core.h to
+ declare the unprefixed identifiers. Undef _GETOPT_CORE_H so that
+ getopt-core.h declares them with prefixes. */
+# undef _GETOPT_CORE_H
#endif
#include <getopt-core.h>
diff --git a/lib/getopt-pfx-ext.h b/lib/getopt-pfx-ext.h
index d960bb34e..c5ac52202 100644
--- a/lib/getopt-pfx-ext.h
+++ b/lib/getopt-pfx-ext.h
@@ -45,6 +45,11 @@
# define getopt_long_only __GETOPT_ID (getopt_long_only)
# define option __GETOPT_ID (option)
# define _getopt_internal __GETOPT_ID (getopt_internal)
+
+/* The system's getopt.h may have already included getopt-ext.h to
+ declare the unprefixed identifiers. Undef _GETOPT_EXT_H so that
+ getopt-ext.h declares them with prefixes. */
+# undef _GETOPT_EXT_H
#endif
/* Standalone applications get correct prototypes for getopt_long and