MSYS2-packages/msys2-runtime/0051-Work-around-fragile-include-in-binutils.patch
Johannes Schindelin 41fbcb09f4 msys2-runtime: support OneDrive better
With this change, files are no longer "hydrated" (read: downloaded on
the fly) when calling `ls` _just_ to determine whether the files in
question have a `#!` line that makes them executable.

This commit brings the changes from
https://github.com/msys2/msys2-runtime/pull/209 to MSYS2-packages.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2024-03-23 23:36:23 +01:00

84 lines
2.7 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

From 44b5e4eed0f2f119d312fe718c2124250c8626f9 Mon Sep 17 00:00:00 2001
From: Johannes Schindelin <johannes.schindelin@gmx.de>
Date: Fri, 2 Feb 2024 13:40:28 +0100
Subject: [PATCH 51/N] Work around fragile `#include` in binutils
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The `bfd.h` header file that is included in `binutils` has the line
`#include "ansidecl.h"`, which is fragile because it prefers Cygwin's
`include/ansidecl.h` (as opposed to `#include <ansidecl.h>`, which would
only look in the system include paths).
This matters because as of v2.42, `bfd.h` also makes use of the
`ATTRIBUTE_WARN_UNUSED_RESULT` macro.
So let's just copy that macro (and while at it, the other `ATTRIBUTE_*`
macros) from binutils' `ansidecl.h` file, to avoid compile errors while
compiling `dumper.o` that look like this:
/usr/include/bfd.h:2770:1: error: expected initializer before ATTRIBUTE_WARN_UNUSED_RESULT
2770 | ATTRIBUTE_WARN_UNUSED_RESULT;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
include/ansidecl.h | 43 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)
diff --git a/include/ansidecl.h b/include/ansidecl.h
index 6e4bfc2..ceb356e 100644
--- a/include/ansidecl.h
+++ b/include/ansidecl.h
@@ -283,6 +283,49 @@ So instead we use the macro below and test it against specific values. */
# endif /* GNUC >= 4.9 */
#endif /* ATTRIBUTE_NO_SANITIZE_UNDEFINED */
+/* Attribute 'nonstring' was valid as of gcc 8. */
+#ifndef ATTRIBUTE_NONSTRING
+# if GCC_VERSION >= 8000
+# define ATTRIBUTE_NONSTRING __attribute__ ((__nonstring__))
+# else
+# define ATTRIBUTE_NONSTRING
+# endif
+#endif
+
+/* Attribute `alloc_size' was valid as of gcc 4.3. */
+#ifndef ATTRIBUTE_RESULT_SIZE_1
+# if (GCC_VERSION >= 4003)
+# define ATTRIBUTE_RESULT_SIZE_1 __attribute__ ((alloc_size (1)))
+# else
+# define ATTRIBUTE_RESULT_SIZE_1
+#endif
+#endif
+
+#ifndef ATTRIBUTE_RESULT_SIZE_2
+# if (GCC_VERSION >= 4003)
+# define ATTRIBUTE_RESULT_SIZE_2 __attribute__ ((alloc_size (2)))
+# else
+# define ATTRIBUTE_RESULT_SIZE_2
+#endif
+#endif
+
+#ifndef ATTRIBUTE_RESULT_SIZE_1_2
+# if (GCC_VERSION >= 4003)
+# define ATTRIBUTE_RESULT_SIZE_1_2 __attribute__ ((alloc_size (1, 2)))
+# else
+# define ATTRIBUTE_RESULT_SIZE_1_2
+#endif
+#endif
+
+/* Attribute `warn_unused_result' was valid as of gcc 3.3. */
+#ifndef ATTRIBUTE_WARN_UNUSED_RESULT
+# if GCC_VERSION >= 3003
+# define ATTRIBUTE_WARN_UNUSED_RESULT __attribute__ ((__warn_unused_result__))
+# else
+# define ATTRIBUTE_WARN_UNUSED_RESULT
+# endif
+#endif
+
/* We use __extension__ in some places to suppress -pedantic warnings
about GCC extensions. This feature didn't work properly before
gcc 2.8. */