Line 0
Link Here
|
|
|
1 |
Have a squash of the commits that should land on master and then the |
2 |
2.33 branch once I finish testing them here, to fix the port. I'm |
3 |
afraid it's a patch -p1: it's a bit tricky to generate a -p0 if you're |
4 |
starting from a git repo. I hope this'll do. |
5 |
|
6 |
This is a squash of the following patches, some of which are already |
7 |
upstream, some of which are not yet, with a few simple conflict |
8 |
resolutions and reautoconfs for 2.33 and with changelog changes removed: |
9 |
|
10 |
libctf: support platforms with separate libintl |
11 |
libctf: add some missing #includes. |
12 |
libctf, elfcpp, gold: do not assume that <byteswap.h> contains bswap_* |
13 |
libctf: work with compilers not supporting GNU C attributes |
14 |
libiberty, include, libctf: Use bsearch_r to avoid nonportable __thread |
15 |
libctf: mark swap.h inline functions as static |
16 |
libctf: make it compile for old glibc |
17 |
|
18 |
diff -x .git -x autom4te.cache -durN binutils.orig/elfcpp/elfcpp_swap.h binutils/elfcpp/elfcpp_swap.h |
19 |
--- binutils.orig/elfcpp/elfcpp_swap.h 2019-12-16 13:05:01.030039000 +0000 |
20 |
+++ binutils/elfcpp/elfcpp_swap.h 2019-12-16 14:31:06.256848000 +0000 |
21 |
@@ -46,15 +46,19 @@ |
22 |
|
23 |
#ifdef HAVE_BYTESWAP_H |
24 |
#include <byteswap.h> |
25 |
-#else |
26 |
+#endif // defined(HAVE_BYTESWAP_H) |
27 |
+ |
28 |
// Provide our own versions of the byteswap functions. |
29 |
-inline uint16_t |
30 |
+#if !HAVE_DECL_BSWAP_16 |
31 |
+static inline uint16_t |
32 |
bswap_16(uint16_t v) |
33 |
{ |
34 |
return ((v >> 8) & 0xff) | ((v & 0xff) << 8); |
35 |
} |
36 |
+#endif // !HAVE_DECL_BSWAP16 |
37 |
|
38 |
-inline uint32_t |
39 |
+#if !HAVE_DECL_BSWAP_32 |
40 |
+static inline uint32_t |
41 |
bswap_32(uint32_t v) |
42 |
{ |
43 |
return ( ((v & 0xff000000) >> 24) |
44 |
@@ -62,8 +66,10 @@ |
45 |
| ((v & 0x0000ff00) << 8) |
46 |
| ((v & 0x000000ff) << 24)); |
47 |
} |
48 |
+#endif // !HAVE_DECL_BSWAP32 |
49 |
|
50 |
-inline uint64_t |
51 |
+#if !HAVE_DECL_BSWAP_64 |
52 |
+static inline uint64_t |
53 |
bswap_64(uint64_t v) |
54 |
{ |
55 |
return ( ((v & 0xff00000000000000ULL) >> 56) |
56 |
@@ -75,7 +81,7 @@ |
57 |
| ((v & 0x000000000000ff00ULL) << 40) |
58 |
| ((v & 0x00000000000000ffULL) << 56)); |
59 |
} |
60 |
-#endif // !defined(HAVE_BYTESWAP_H) |
61 |
+#endif // !HAVE_DECL_BSWAP64 |
62 |
|
63 |
// gcc 4.3 and later provides __builtin_bswap32 and __builtin_bswap64. |
64 |
|
65 |
diff -x .git -x autom4te.cache -durN binutils.orig/gold/config.in binutils/gold/config.in |
66 |
--- binutils.orig/gold/config.in 2019-12-16 13:05:01.030429000 +0000 |
67 |
+++ binutils/gold/config.in 2019-12-16 14:31:06.257181000 +0000 |
68 |
@@ -52,6 +52,18 @@ |
69 |
don't. */ |
70 |
#undef HAVE_DECL_BASENAME |
71 |
|
72 |
+/* Define to 1 if you have the declaration of `bswap_16', and to 0 if you |
73 |
+ don't. */ |
74 |
+#undef HAVE_DECL_BSWAP_16 |
75 |
+ |
76 |
+/* Define to 1 if you have the declaration of `bswap_32', and to 0 if you |
77 |
+ don't. */ |
78 |
+#undef HAVE_DECL_BSWAP_32 |
79 |
+ |
80 |
+/* Define to 1 if you have the declaration of `bswap_64', and to 0 if you |
81 |
+ don't. */ |
82 |
+#undef HAVE_DECL_BSWAP_64 |
83 |
+ |
84 |
/* Define to 1 if you have the declaration of `ffs', and to 0 if you don't. */ |
85 |
#undef HAVE_DECL_FFS |
86 |
|
87 |
diff -x .git -x autom4te.cache -durN binutils.orig/gold/configure binutils/gold/configure |
88 |
--- binutils.orig/gold/configure 2019-12-16 13:05:01.035440000 +0000 |
89 |
+++ binutils/gold/configure 2019-12-16 14:31:06.259631000 +0000 |
90 |
@@ -2167,6 +2167,52 @@ |
91 |
|
92 |
} # ac_fn_cxx_check_header_mongrel |
93 |
|
94 |
+# ac_fn_cxx_check_decl LINENO SYMBOL VAR INCLUDES |
95 |
+# ----------------------------------------------- |
96 |
+# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR |
97 |
+# accordingly. |
98 |
+ac_fn_cxx_check_decl () |
99 |
+{ |
100 |
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack |
101 |
+ as_decl_name=`echo $2|sed 's/ *(.*//'` |
102 |
+ as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` |
103 |
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 |
104 |
+$as_echo_n "checking whether $as_decl_name is declared... " >&6; } |
105 |
+if eval \${$3+:} false; then : |
106 |
+ $as_echo_n "(cached) " >&6 |
107 |
+else |
108 |
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
109 |
+/* end confdefs.h. */ |
110 |
+$4 |
111 |
+int |
112 |
+main () |
113 |
+{ |
114 |
+#ifndef $as_decl_name |
115 |
+#ifdef __cplusplus |
116 |
+ (void) $as_decl_use; |
117 |
+#else |
118 |
+ (void) $as_decl_name; |
119 |
+#endif |
120 |
+#endif |
121 |
+ |
122 |
+ ; |
123 |
+ return 0; |
124 |
+} |
125 |
+_ACEOF |
126 |
+if ac_fn_cxx_try_compile "$LINENO"; then : |
127 |
+ eval "$3=yes" |
128 |
+else |
129 |
+ eval "$3=no" |
130 |
+fi |
131 |
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext |
132 |
+fi |
133 |
+eval ac_res=\$$3 |
134 |
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 |
135 |
+$as_echo "$ac_res" >&6; } |
136 |
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno |
137 |
+ |
138 |
+} # ac_fn_cxx_check_decl |
139 |
+ |
140 |
# ac_fn_cxx_try_link LINENO |
141 |
# ------------------------- |
142 |
# Try to link conftest.$ac_ext, and return whether this succeeded. |
143 |
@@ -2279,52 +2325,6 @@ |
144 |
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno |
145 |
|
146 |
} # ac_fn_cxx_check_func |
147 |
- |
148 |
-# ac_fn_cxx_check_decl LINENO SYMBOL VAR INCLUDES |
149 |
-# ----------------------------------------------- |
150 |
-# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR |
151 |
-# accordingly. |
152 |
-ac_fn_cxx_check_decl () |
153 |
-{ |
154 |
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack |
155 |
- as_decl_name=`echo $2|sed 's/ *(.*//'` |
156 |
- as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` |
157 |
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 |
158 |
-$as_echo_n "checking whether $as_decl_name is declared... " >&6; } |
159 |
-if eval \${$3+:} false; then : |
160 |
- $as_echo_n "(cached) " >&6 |
161 |
-else |
162 |
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
163 |
-/* end confdefs.h. */ |
164 |
-$4 |
165 |
-int |
166 |
-main () |
167 |
-{ |
168 |
-#ifndef $as_decl_name |
169 |
-#ifdef __cplusplus |
170 |
- (void) $as_decl_use; |
171 |
-#else |
172 |
- (void) $as_decl_name; |
173 |
-#endif |
174 |
-#endif |
175 |
- |
176 |
- ; |
177 |
- return 0; |
178 |
-} |
179 |
-_ACEOF |
180 |
-if ac_fn_cxx_try_compile "$LINENO"; then : |
181 |
- eval "$3=yes" |
182 |
-else |
183 |
- eval "$3=no" |
184 |
-fi |
185 |
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext |
186 |
-fi |
187 |
-eval ac_res=\$$3 |
188 |
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 |
189 |
-$as_echo "$ac_res" >&6; } |
190 |
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno |
191 |
- |
192 |
-} # ac_fn_cxx_check_decl |
193 |
cat >config.log <<_ACEOF |
194 |
This file contains any messages produced by compilers while |
195 |
running configure, to aid debugging if configure makes a mistake. |
196 |
@@ -9778,6 +9778,41 @@ |
197 |
fi |
198 |
|
199 |
done |
200 |
+ |
201 |
+ |
202 |
+ac_fn_cxx_check_decl "$LINENO" "bswap_16" "ac_cv_have_decl_bswap_16" "#include <byteswap.h> |
203 |
+" |
204 |
+if test "x$ac_cv_have_decl_bswap_16" = xyes; then : |
205 |
+ ac_have_decl=1 |
206 |
+else |
207 |
+ ac_have_decl=0 |
208 |
+fi |
209 |
+ |
210 |
+cat >>confdefs.h <<_ACEOF |
211 |
+#define HAVE_DECL_BSWAP_16 $ac_have_decl |
212 |
+_ACEOF |
213 |
+ac_fn_cxx_check_decl "$LINENO" "bswap_32" "ac_cv_have_decl_bswap_32" "#include <byteswap.h> |
214 |
+" |
215 |
+if test "x$ac_cv_have_decl_bswap_32" = xyes; then : |
216 |
+ ac_have_decl=1 |
217 |
+else |
218 |
+ ac_have_decl=0 |
219 |
+fi |
220 |
+ |
221 |
+cat >>confdefs.h <<_ACEOF |
222 |
+#define HAVE_DECL_BSWAP_32 $ac_have_decl |
223 |
+_ACEOF |
224 |
+ac_fn_cxx_check_decl "$LINENO" "bswap_64" "ac_cv_have_decl_bswap_64" "#include <byteswap.h> |
225 |
+" |
226 |
+if test "x$ac_cv_have_decl_bswap_64" = xyes; then : |
227 |
+ ac_have_decl=1 |
228 |
+else |
229 |
+ ac_have_decl=0 |
230 |
+fi |
231 |
+ |
232 |
+cat >>confdefs.h <<_ACEOF |
233 |
+#define HAVE_DECL_BSWAP_64 $ac_have_decl |
234 |
+_ACEOF |
235 |
|
236 |
|
237 |
for ac_header in windows.h |
238 |
diff -x .git -x autom4te.cache -durN binutils.orig/gold/configure.ac binutils/gold/configure.ac |
239 |
--- binutils.orig/gold/configure.ac 2019-12-16 13:05:01.035714000 +0000 |
240 |
+++ binutils/gold/configure.ac 2019-12-16 14:31:06.259853000 +0000 |
241 |
@@ -602,6 +602,9 @@ |
242 |
AC_CHECK_HEADERS(ext/hash_map ext/hash_set) |
243 |
AC_CHECK_HEADERS(byteswap.h) |
244 |
|
245 |
+dnl Check for bswap_{16,32,64} |
246 |
+AC_CHECK_DECLS([bswap_16, bswap_32, bswap_64], [], [], [[#include <byteswap.h>]]) |
247 |
+ |
248 |
dnl When plugins enabled dynamic loader interface is required. Check headers |
249 |
dnl which may provide this interface. Add the necessary library to link. |
250 |
AC_CHECK_HEADERS(windows.h) |
251 |
diff -x .git -x autom4te.cache -durN binutils.orig/include/libiberty.h binutils/include/libiberty.h |
252 |
--- binutils.orig/include/libiberty.h 2019-12-16 13:05:01.036032000 +0000 |
253 |
+++ binutils/include/libiberty.h 2019-12-16 14:31:06.260125000 +0000 |
254 |
@@ -637,6 +637,13 @@ |
255 |
|
256 |
extern int pwait (int, int *, int); |
257 |
|
258 |
+/* Like bsearch, but takes and passes on an argument like qsort_r. */ |
259 |
+ |
260 |
+extern void *bsearch_r (register const void *, const void *, |
261 |
+ size_t, register size_t, |
262 |
+ register int (*)(const void *, const void *, void *), |
263 |
+ void *); |
264 |
+ |
265 |
#if defined(HAVE_DECL_ASPRINTF) && !HAVE_DECL_ASPRINTF |
266 |
/* Like sprintf but provides a pointer to malloc'd storage, which must |
267 |
be freed by the caller. */ |
268 |
diff -x .git -x autom4te.cache -durN binutils.orig/libctf/Makefile.in binutils/libctf/Makefile.in |
269 |
--- binutils.orig/libctf/Makefile.in 2019-12-16 12:41:49.155077000 +0000 |
270 |
+++ binutils/libctf/Makefile.in 2019-12-16 14:33:27.386326000 +0000 |
271 |
@@ -1,7 +1,7 @@ |
272 |
-# Makefile.in generated by automake 1.15.1 from Makefile.am. |
273 |
+# Makefile.in generated by automake 1.16.1 from Makefile.am. |
274 |
# @configure_input@ |
275 |
|
276 |
-# Copyright (C) 1994-2017 Free Software Foundation, Inc. |
277 |
+# Copyright (C) 1994-2018 Free Software Foundation, Inc. |
278 |
|
279 |
# This Makefile.in is free software; the Free Software Foundation |
280 |
# gives unlimited permission to copy and/or distribute it, |
281 |
@@ -108,6 +108,7 @@ |
282 |
subdir = . |
283 |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
284 |
am__aclocal_m4_deps = $(top_srcdir)/../config/depstand.m4 \ |
285 |
+ $(top_srcdir)/../config/gettext-sister.m4 \ |
286 |
$(top_srcdir)/../config/lead-dot.m4 \ |
287 |
$(top_srcdir)/../config/override.m4 \ |
288 |
$(top_srcdir)/../config/warnings.m4 \ |
289 |
@@ -156,7 +157,15 @@ |
290 |
am__v_at_1 = |
291 |
DEFAULT_INCLUDES = -I.@am__isrc@ |
292 |
depcomp = $(SHELL) $(top_srcdir)/../depcomp |
293 |
-am__depfiles_maybe = depfiles |
294 |
+am__maybe_remake_depfiles = depfiles |
295 |
+am__depfiles_remade = ./$(DEPDIR)/ctf-archive.Po \ |
296 |
+ ./$(DEPDIR)/ctf-create.Po ./$(DEPDIR)/ctf-decl.Po \ |
297 |
+ ./$(DEPDIR)/ctf-dump.Po ./$(DEPDIR)/ctf-error.Po \ |
298 |
+ ./$(DEPDIR)/ctf-hash.Po ./$(DEPDIR)/ctf-labels.Po \ |
299 |
+ ./$(DEPDIR)/ctf-lookup.Po ./$(DEPDIR)/ctf-open-bfd.Po \ |
300 |
+ ./$(DEPDIR)/ctf-open.Po ./$(DEPDIR)/ctf-qsort_r.Po \ |
301 |
+ ./$(DEPDIR)/ctf-string.Po ./$(DEPDIR)/ctf-subr.Po \ |
302 |
+ ./$(DEPDIR)/ctf-types.Po ./$(DEPDIR)/ctf-util.Po |
303 |
am__mv = mv -f |
304 |
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ |
305 |
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) |
306 |
@@ -229,12 +238,15 @@ |
307 |
AUTOHEADER = @AUTOHEADER@ |
308 |
AUTOMAKE = @AUTOMAKE@ |
309 |
AWK = @AWK@ |
310 |
+CATALOGS = @CATALOGS@ |
311 |
+CATOBJEXT = @CATOBJEXT@ |
312 |
CC = @CC@ |
313 |
CCDEPMODE = @CCDEPMODE@ |
314 |
CFLAGS = @CFLAGS@ |
315 |
CPP = @CPP@ |
316 |
CPPFLAGS = @CPPFLAGS@ |
317 |
CYGPATH_W = @CYGPATH_W@ |
318 |
+DATADIRNAME = @DATADIRNAME@ |
319 |
DEFS = @DEFS@ |
320 |
DEPDIR = @DEPDIR@ |
321 |
ECHO_C = @ECHO_C@ |
322 |
@@ -242,13 +254,19 @@ |
323 |
ECHO_T = @ECHO_T@ |
324 |
EGREP = @EGREP@ |
325 |
EXEEXT = @EXEEXT@ |
326 |
+GENCAT = @GENCAT@ |
327 |
+GMSGFMT = @GMSGFMT@ |
328 |
GREP = @GREP@ |
329 |
+INCINTL = @INCINTL@ |
330 |
INSTALL = @INSTALL@ |
331 |
INSTALL_DATA = @INSTALL_DATA@ |
332 |
INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
333 |
INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
334 |
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ |
335 |
+INSTOBJEXT = @INSTOBJEXT@ |
336 |
LDFLAGS = @LDFLAGS@ |
337 |
+LIBINTL = @LIBINTL@ |
338 |
+LIBINTL_DEP = @LIBINTL_DEP@ |
339 |
LIBOBJS = @LIBOBJS@ |
340 |
LIBS = @LIBS@ |
341 |
LTLIBOBJS = @LTLIBOBJS@ |
342 |
@@ -264,13 +282,16 @@ |
343 |
PACKAGE_URL = @PACKAGE_URL@ |
344 |
PACKAGE_VERSION = @PACKAGE_VERSION@ |
345 |
PATH_SEPARATOR = @PATH_SEPARATOR@ |
346 |
+POSUB = @POSUB@ |
347 |
RANLIB = @RANLIB@ |
348 |
SET_MAKE = @SET_MAKE@ |
349 |
SHELL = @SHELL@ |
350 |
STRIP = @STRIP@ |
351 |
+USE_NLS = @USE_NLS@ |
352 |
VERSION = @VERSION@ |
353 |
WARN_PEDANTIC = @WARN_PEDANTIC@ |
354 |
WERROR = @WERROR@ |
355 |
+XGETTEXT = @XGETTEXT@ |
356 |
abs_builddir = @abs_builddir@ |
357 |
abs_srcdir = @abs_srcdir@ |
358 |
abs_top_builddir = @abs_top_builddir@ |
359 |
@@ -360,8 +381,8 @@ |
360 |
echo ' $(SHELL) ./config.status'; \ |
361 |
$(SHELL) ./config.status;; \ |
362 |
*) \ |
363 |
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ |
364 |
- cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ |
365 |
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ |
366 |
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ |
367 |
esac; |
368 |
|
369 |
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
370 |
@@ -402,22 +423,28 @@ |
371 |
distclean-compile: |
372 |
-rm -f *.tab.c |
373 |
|
374 |
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-archive.Po@am__quote@ |
375 |
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-create.Po@am__quote@ |
376 |
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-decl.Po@am__quote@ |
377 |
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-dump.Po@am__quote@ |
378 |
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-error.Po@am__quote@ |
379 |
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-hash.Po@am__quote@ |
380 |
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-labels.Po@am__quote@ |
381 |
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-lookup.Po@am__quote@ |
382 |
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-open-bfd.Po@am__quote@ |
383 |
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-open.Po@am__quote@ |
384 |
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-qsort_r.Po@am__quote@ |
385 |
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-string.Po@am__quote@ |
386 |
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-subr.Po@am__quote@ |
387 |
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-types.Po@am__quote@ |
388 |
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-util.Po@am__quote@ |
389 |
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-archive.Po@am__quote@ # am--include-marker |
390 |
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-create.Po@am__quote@ # am--include-marker |
391 |
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-decl.Po@am__quote@ # am--include-marker |
392 |
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-dump.Po@am__quote@ # am--include-marker |
393 |
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-error.Po@am__quote@ # am--include-marker |
394 |
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-hash.Po@am__quote@ # am--include-marker |
395 |
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-labels.Po@am__quote@ # am--include-marker |
396 |
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-lookup.Po@am__quote@ # am--include-marker |
397 |
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-open-bfd.Po@am__quote@ # am--include-marker |
398 |
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-open.Po@am__quote@ # am--include-marker |
399 |
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-qsort_r.Po@am__quote@ # am--include-marker |
400 |
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-string.Po@am__quote@ # am--include-marker |
401 |
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-subr.Po@am__quote@ # am--include-marker |
402 |
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-types.Po@am__quote@ # am--include-marker |
403 |
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctf-util.Po@am__quote@ # am--include-marker |
404 |
|
405 |
+$(am__depfiles_remade): |
406 |
+ @$(MKDIR_P) $(@D) |
407 |
+ @echo '# dummy' >$@-t && $(am__mv) $@-t $@ |
408 |
+ |
409 |
+am--depfiles: $(am__depfiles_remade) |
410 |
+ |
411 |
.c.o: |
412 |
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |
413 |
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po |
414 |
@@ -491,7 +518,10 @@ |
415 |
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags |
416 |
-rm -f cscope.out cscope.in.out cscope.po.out cscope.files |
417 |
|
418 |
-distdir: $(DISTFILES) |
419 |
+distdir: $(BUILT_SOURCES) |
420 |
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am |
421 |
+ |
422 |
+distdir-am: $(DISTFILES) |
423 |
$(am__remove_distdir) |
424 |
test -d "$(distdir)" || mkdir "$(distdir)" |
425 |
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
426 |
@@ -694,7 +724,21 @@ |
427 |
|
428 |
distclean: distclean-am |
429 |
-rm -f $(am__CONFIG_DISTCLEAN_FILES) |
430 |
- -rm -rf ./$(DEPDIR) |
431 |
+ -rm -f ./$(DEPDIR)/ctf-archive.Po |
432 |
+ -rm -f ./$(DEPDIR)/ctf-create.Po |
433 |
+ -rm -f ./$(DEPDIR)/ctf-decl.Po |
434 |
+ -rm -f ./$(DEPDIR)/ctf-dump.Po |
435 |
+ -rm -f ./$(DEPDIR)/ctf-error.Po |
436 |
+ -rm -f ./$(DEPDIR)/ctf-hash.Po |
437 |
+ -rm -f ./$(DEPDIR)/ctf-labels.Po |
438 |
+ -rm -f ./$(DEPDIR)/ctf-lookup.Po |
439 |
+ -rm -f ./$(DEPDIR)/ctf-open-bfd.Po |
440 |
+ -rm -f ./$(DEPDIR)/ctf-open.Po |
441 |
+ -rm -f ./$(DEPDIR)/ctf-qsort_r.Po |
442 |
+ -rm -f ./$(DEPDIR)/ctf-string.Po |
443 |
+ -rm -f ./$(DEPDIR)/ctf-subr.Po |
444 |
+ -rm -f ./$(DEPDIR)/ctf-types.Po |
445 |
+ -rm -f ./$(DEPDIR)/ctf-util.Po |
446 |
-rm -f Makefile |
447 |
distclean-am: clean-am distclean-compile distclean-generic \ |
448 |
distclean-hdr distclean-tags |
449 |
@@ -742,7 +786,21 @@ |
450 |
maintainer-clean: maintainer-clean-am |
451 |
-rm -f $(am__CONFIG_DISTCLEAN_FILES) |
452 |
-rm -rf $(top_srcdir)/autom4te.cache |
453 |
- -rm -rf ./$(DEPDIR) |
454 |
+ -rm -f ./$(DEPDIR)/ctf-archive.Po |
455 |
+ -rm -f ./$(DEPDIR)/ctf-create.Po |
456 |
+ -rm -f ./$(DEPDIR)/ctf-decl.Po |
457 |
+ -rm -f ./$(DEPDIR)/ctf-dump.Po |
458 |
+ -rm -f ./$(DEPDIR)/ctf-error.Po |
459 |
+ -rm -f ./$(DEPDIR)/ctf-hash.Po |
460 |
+ -rm -f ./$(DEPDIR)/ctf-labels.Po |
461 |
+ -rm -f ./$(DEPDIR)/ctf-lookup.Po |
462 |
+ -rm -f ./$(DEPDIR)/ctf-open-bfd.Po |
463 |
+ -rm -f ./$(DEPDIR)/ctf-open.Po |
464 |
+ -rm -f ./$(DEPDIR)/ctf-qsort_r.Po |
465 |
+ -rm -f ./$(DEPDIR)/ctf-string.Po |
466 |
+ -rm -f ./$(DEPDIR)/ctf-subr.Po |
467 |
+ -rm -f ./$(DEPDIR)/ctf-types.Po |
468 |
+ -rm -f ./$(DEPDIR)/ctf-util.Po |
469 |
-rm -f Makefile |
470 |
maintainer-clean-am: distclean-am maintainer-clean-generic |
471 |
|
472 |
@@ -762,21 +820,21 @@ |
473 |
|
474 |
.MAKE: all install-am install-strip |
475 |
|
476 |
-.PHONY: CTAGS GTAGS TAGS all all-am am--refresh check check-am clean \ |
477 |
- clean-cscope clean-generic clean-noinstLIBRARIES cscope \ |
478 |
- cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \ |
479 |
- dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \ |
480 |
- distcheck distclean distclean-compile distclean-generic \ |
481 |
- distclean-hdr distclean-tags distcleancheck distdir \ |
482 |
- distuninstallcheck dvi dvi-am html html-am info info-am \ |
483 |
- install install-am install-data install-data-am install-dvi \ |
484 |
- install-dvi-am install-exec install-exec-am install-html \ |
485 |
- install-html-am install-info install-info-am install-man \ |
486 |
- install-pdf install-pdf-am install-ps install-ps-am \ |
487 |
- install-strip installcheck installcheck-am installdirs \ |
488 |
- maintainer-clean maintainer-clean-generic mostlyclean \ |
489 |
- mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \ |
490 |
- tags tags-am uninstall uninstall-am |
491 |
+.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles am--refresh check \ |
492 |
+ check-am clean clean-cscope clean-generic \ |
493 |
+ clean-noinstLIBRARIES cscope cscopelist-am ctags ctags-am dist \ |
494 |
+ dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \ |
495 |
+ dist-xz dist-zip distcheck distclean distclean-compile \ |
496 |
+ distclean-generic distclean-hdr distclean-tags distcleancheck \ |
497 |
+ distdir distuninstallcheck dvi dvi-am html html-am info \ |
498 |
+ info-am install install-am install-data install-data-am \ |
499 |
+ install-dvi install-dvi-am install-exec install-exec-am \ |
500 |
+ install-html install-html-am install-info install-info-am \ |
501 |
+ install-man install-pdf install-pdf-am install-ps \ |
502 |
+ install-ps-am install-strip installcheck installcheck-am \ |
503 |
+ installdirs maintainer-clean maintainer-clean-generic \ |
504 |
+ mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ |
505 |
+ ps ps-am tags tags-am uninstall uninstall-am |
506 |
|
507 |
.PRECIOUS: Makefile |
508 |
|
509 |
diff -x .git -x autom4te.cache -durN binutils.orig/libctf/aclocal.m4 binutils/libctf/aclocal.m4 |
510 |
--- binutils.orig/libctf/aclocal.m4 2019-12-16 12:41:49.155502000 +0000 |
511 |
+++ binutils/libctf/aclocal.m4 2019-12-16 14:33:22.570144000 +0000 |
512 |
@@ -1,6 +1,6 @@ |
513 |
-# generated automatically by aclocal 1.15.1 -*- Autoconf -*- |
514 |
+# generated automatically by aclocal 1.16.1 -*- Autoconf -*- |
515 |
|
516 |
-# Copyright (C) 1996-2017 Free Software Foundation, Inc. |
517 |
+# Copyright (C) 1996-2018 Free Software Foundation, Inc. |
518 |
|
519 |
# This file is free software; the Free Software Foundation |
520 |
# gives unlimited permission to copy and/or distribute it, |
521 |
@@ -20,7 +20,7 @@ |
522 |
If you have problems, you may need to regenerate the build system entirely. |
523 |
To do so, use the procedure documented by the package, typically 'autoreconf'.])]) |
524 |
|
525 |
-# Copyright (C) 2002-2017 Free Software Foundation, Inc. |
526 |
+# Copyright (C) 2002-2018 Free Software Foundation, Inc. |
527 |
# |
528 |
# This file is free software; the Free Software Foundation |
529 |
# gives unlimited permission to copy and/or distribute it, |
530 |
@@ -32,10 +32,10 @@ |
531 |
# generated from the m4 files accompanying Automake X.Y. |
532 |
# (This private macro should not be called outside this file.) |
533 |
AC_DEFUN([AM_AUTOMAKE_VERSION], |
534 |
-[am__api_version='1.15' |
535 |
+[am__api_version='1.16' |
536 |
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to |
537 |
dnl require some minimum version. Point them to the right macro. |
538 |
-m4_if([$1], [1.15.1], [], |
539 |
+m4_if([$1], [1.16.1], [], |
540 |
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl |
541 |
]) |
542 |
|
543 |
@@ -51,12 +51,12 @@ |
544 |
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. |
545 |
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. |
546 |
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], |
547 |
-[AM_AUTOMAKE_VERSION([1.15.1])dnl |
548 |
+[AM_AUTOMAKE_VERSION([1.16.1])dnl |
549 |
m4_ifndef([AC_AUTOCONF_VERSION], |
550 |
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl |
551 |
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) |
552 |
|
553 |
-# Copyright (C) 2011-2017 Free Software Foundation, Inc. |
554 |
+# Copyright (C) 2011-2018 Free Software Foundation, Inc. |
555 |
# |
556 |
# This file is free software; the Free Software Foundation |
557 |
# gives unlimited permission to copy and/or distribute it, |
558 |
@@ -118,7 +118,7 @@ |
559 |
|
560 |
# AM_AUX_DIR_EXPAND -*- Autoconf -*- |
561 |
|
562 |
-# Copyright (C) 2001-2017 Free Software Foundation, Inc. |
563 |
+# Copyright (C) 2001-2018 Free Software Foundation, Inc. |
564 |
# |
565 |
# This file is free software; the Free Software Foundation |
566 |
# gives unlimited permission to copy and/or distribute it, |
567 |
@@ -170,7 +170,7 @@ |
568 |
|
569 |
# AM_CONDITIONAL -*- Autoconf -*- |
570 |
|
571 |
-# Copyright (C) 1997-2017 Free Software Foundation, Inc. |
572 |
+# Copyright (C) 1997-2018 Free Software Foundation, Inc. |
573 |
# |
574 |
# This file is free software; the Free Software Foundation |
575 |
# gives unlimited permission to copy and/or distribute it, |
576 |
@@ -201,7 +201,7 @@ |
577 |
Usually this means the macro was only invoked conditionally.]]) |
578 |
fi])]) |
579 |
|
580 |
-# Copyright (C) 1999-2017 Free Software Foundation, Inc. |
581 |
+# Copyright (C) 1999-2018 Free Software Foundation, Inc. |
582 |
# |
583 |
# This file is free software; the Free Software Foundation |
584 |
# gives unlimited permission to copy and/or distribute it, |
585 |
@@ -392,13 +392,12 @@ |
586 |
|
587 |
# Generate code to set up dependency tracking. -*- Autoconf -*- |
588 |
|
589 |
-# Copyright (C) 1999-2017 Free Software Foundation, Inc. |
590 |
+# Copyright (C) 1999-2018 Free Software Foundation, Inc. |
591 |
# |
592 |
# This file is free software; the Free Software Foundation |
593 |
# gives unlimited permission to copy and/or distribute it, |
594 |
# with or without modifications, as long as this notice is preserved. |
595 |
|
596 |
- |
597 |
# _AM_OUTPUT_DEPENDENCY_COMMANDS |
598 |
# ------------------------------ |
599 |
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], |
600 |
@@ -406,49 +405,41 @@ |
601 |
# Older Autoconf quotes --file arguments for eval, but not when files |
602 |
# are listed without --file. Let's play safe and only enable the eval |
603 |
# if we detect the quoting. |
604 |
- case $CONFIG_FILES in |
605 |
- *\'*) eval set x "$CONFIG_FILES" ;; |
606 |
- *) set x $CONFIG_FILES ;; |
607 |
- esac |
608 |
+ # TODO: see whether this extra hack can be removed once we start |
609 |
+ # requiring Autoconf 2.70 or later. |
610 |
+ AS_CASE([$CONFIG_FILES], |
611 |
+ [*\'*], [eval set x "$CONFIG_FILES"], |
612 |
+ [*], [set x $CONFIG_FILES]) |
613 |
shift |
614 |
- for mf |
615 |
+ # Used to flag and report bootstrapping failures. |
616 |
+ am_rc=0 |
617 |
+ for am_mf |
618 |
do |
619 |
# Strip MF so we end up with the name of the file. |
620 |
- mf=`echo "$mf" | sed -e 's/:.*$//'` |
621 |
- # Check whether this is an Automake generated Makefile or not. |
622 |
- # We used to match only the files named 'Makefile.in', but |
623 |
- # some people rename them; so instead we look at the file content. |
624 |
- # Grep'ing the first line is not enough: some people post-process |
625 |
- # each Makefile.in and add a new line on top of each file to say so. |
626 |
- # Grep'ing the whole file is not good either: AIX grep has a line |
627 |
+ am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'` |
628 |
+ # Check whether this is an Automake generated Makefile which includes |
629 |
+ # dependency-tracking related rules and includes. |
630 |
+ # Grep'ing the whole file directly is not great: AIX grep has a line |
631 |
# limit of 2048, but all sed's we know have understand at least 4000. |
632 |
- if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then |
633 |
- dirpart=`AS_DIRNAME("$mf")` |
634 |
- else |
635 |
- continue |
636 |
- fi |
637 |
- # Extract the definition of DEPDIR, am__include, and am__quote |
638 |
- # from the Makefile without running 'make'. |
639 |
- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` |
640 |
- test -z "$DEPDIR" && continue |
641 |
- am__include=`sed -n 's/^am__include = //p' < "$mf"` |
642 |
- test -z "$am__include" && continue |
643 |
- am__quote=`sed -n 's/^am__quote = //p' < "$mf"` |
644 |
- # Find all dependency output files, they are included files with |
645 |
- # $(DEPDIR) in their names. We invoke sed twice because it is the |
646 |
- # simplest approach to changing $(DEPDIR) to its actual value in the |
647 |
- # expansion. |
648 |
- for file in `sed -n " |
649 |
- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ |
650 |
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do |
651 |
- # Make sure the directory exists. |
652 |
- test -f "$dirpart/$file" && continue |
653 |
- fdir=`AS_DIRNAME(["$file"])` |
654 |
- AS_MKDIR_P([$dirpart/$fdir]) |
655 |
- # echo "creating $dirpart/$file" |
656 |
- echo '# dummy' > "$dirpart/$file" |
657 |
- done |
658 |
+ sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ |
659 |
+ || continue |
660 |
+ am_dirpart=`AS_DIRNAME(["$am_mf"])` |
661 |
+ am_filepart=`AS_BASENAME(["$am_mf"])` |
662 |
+ AM_RUN_LOG([cd "$am_dirpart" \ |
663 |
+ && sed -e '/# am--include-marker/d' "$am_filepart" \ |
664 |
+ | $MAKE -f - am--depfiles]) || am_rc=$? |
665 |
done |
666 |
+ if test $am_rc -ne 0; then |
667 |
+ AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments |
668 |
+ for automatic dependency tracking. Try re-running configure with the |
669 |
+ '--disable-dependency-tracking' option to at least be able to build |
670 |
+ the package (albeit without support for automatic dependency tracking).]) |
671 |
+ fi |
672 |
+ AS_UNSET([am_dirpart]) |
673 |
+ AS_UNSET([am_filepart]) |
674 |
+ AS_UNSET([am_mf]) |
675 |
+ AS_UNSET([am_rc]) |
676 |
+ rm -f conftest-deps.mk |
677 |
} |
678 |
])# _AM_OUTPUT_DEPENDENCY_COMMANDS |
679 |
|
680 |
@@ -457,18 +448,17 @@ |
681 |
# ----------------------------- |
682 |
# This macro should only be invoked once -- use via AC_REQUIRE. |
683 |
# |
684 |
-# This code is only required when automatic dependency tracking |
685 |
-# is enabled. FIXME. This creates each '.P' file that we will |
686 |
-# need in order to bootstrap the dependency handling code. |
687 |
+# This code is only required when automatic dependency tracking is enabled. |
688 |
+# This creates each '.Po' and '.Plo' makefile fragment that we'll need in |
689 |
+# order to bootstrap the dependency handling code. |
690 |
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], |
691 |
[AC_CONFIG_COMMANDS([depfiles], |
692 |
[test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], |
693 |
- [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) |
694 |
-]) |
695 |
+ [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])]) |
696 |
|
697 |
# Do all the work for Automake. -*- Autoconf -*- |
698 |
|
699 |
-# Copyright (C) 1996-2017 Free Software Foundation, Inc. |
700 |
+# Copyright (C) 1996-2018 Free Software Foundation, Inc. |
701 |
# |
702 |
# This file is free software; the Free Software Foundation |
703 |
# gives unlimited permission to copy and/or distribute it, |
704 |
@@ -555,8 +545,8 @@ |
705 |
AC_REQUIRE([AC_PROG_MKDIR_P])dnl |
706 |
# For better backward compatibility. To be removed once Automake 1.9.x |
707 |
# dies out for good. For more background, see: |
708 |
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> |
709 |
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> |
710 |
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> |
711 |
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> |
712 |
AC_SUBST([mkdir_p], ['$(MKDIR_P)']) |
713 |
# We need awk for the "check" target (and possibly the TAP driver). The |
714 |
# system "awk" is bad on some platforms. |
715 |
@@ -623,7 +613,7 @@ |
716 |
Aborting the configuration process, to ensure you take notice of the issue. |
717 |
|
718 |
You can download and install GNU coreutils to get an 'rm' implementation |
719 |
-that behaves properly: <http://www.gnu.org/software/coreutils/>. |
720 |
+that behaves properly: <https://www.gnu.org/software/coreutils/>. |
721 |
|
722 |
If you want to complete the configuration process using your problematic |
723 |
'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM |
724 |
@@ -665,7 +655,7 @@ |
725 |
done |
726 |
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) |
727 |
|
728 |
-# Copyright (C) 2001-2017 Free Software Foundation, Inc. |
729 |
+# Copyright (C) 2001-2018 Free Software Foundation, Inc. |
730 |
# |
731 |
# This file is free software; the Free Software Foundation |
732 |
# gives unlimited permission to copy and/or distribute it, |
733 |
@@ -689,7 +679,7 @@ |
734 |
# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- |
735 |
# From Jim Meyering |
736 |
|
737 |
-# Copyright (C) 1996-2017 Free Software Foundation, Inc. |
738 |
+# Copyright (C) 1996-2018 Free Software Foundation, Inc. |
739 |
# |
740 |
# This file is free software; the Free Software Foundation |
741 |
# gives unlimited permission to copy and/or distribute it, |
742 |
@@ -724,7 +714,7 @@ |
743 |
|
744 |
# Check to see how 'make' treats includes. -*- Autoconf -*- |
745 |
|
746 |
-# Copyright (C) 2001-2017 Free Software Foundation, Inc. |
747 |
+# Copyright (C) 2001-2018 Free Software Foundation, Inc. |
748 |
# |
749 |
# This file is free software; the Free Software Foundation |
750 |
# gives unlimited permission to copy and/or distribute it, |
751 |
@@ -732,49 +722,42 @@ |
752 |
|
753 |
# AM_MAKE_INCLUDE() |
754 |
# ----------------- |
755 |
-# Check to see how make treats includes. |
756 |
+# Check whether make has an 'include' directive that can support all |
757 |
+# the idioms we need for our automatic dependency tracking code. |
758 |
AC_DEFUN([AM_MAKE_INCLUDE], |
759 |
-[am_make=${MAKE-make} |
760 |
-cat > confinc << 'END' |
761 |
+[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive]) |
762 |
+cat > confinc.mk << 'END' |
763 |
am__doit: |
764 |
- @echo this is the am__doit target |
765 |
+ @echo this is the am__doit target >confinc.out |
766 |
.PHONY: am__doit |
767 |
END |
768 |
-# If we don't find an include directive, just comment out the code. |
769 |
-AC_MSG_CHECKING([for style of include used by $am_make]) |
770 |
am__include="#" |
771 |
am__quote= |
772 |
-_am_result=none |
773 |
-# First try GNU make style include. |
774 |
-echo "include confinc" > confmf |
775 |
-# Ignore all kinds of additional output from 'make'. |
776 |
-case `$am_make -s -f confmf 2> /dev/null` in #( |
777 |
-*the\ am__doit\ target*) |
778 |
- am__include=include |
779 |
- am__quote= |
780 |
- _am_result=GNU |
781 |
- ;; |
782 |
-esac |
783 |
-# Now try BSD make style include. |
784 |
-if test "$am__include" = "#"; then |
785 |
- echo '.include "confinc"' > confmf |
786 |
- case `$am_make -s -f confmf 2> /dev/null` in #( |
787 |
- *the\ am__doit\ target*) |
788 |
- am__include=.include |
789 |
- am__quote="\"" |
790 |
- _am_result=BSD |
791 |
- ;; |
792 |
- esac |
793 |
-fi |
794 |
-AC_SUBST([am__include]) |
795 |
-AC_SUBST([am__quote]) |
796 |
-AC_MSG_RESULT([$_am_result]) |
797 |
-rm -f confinc confmf |
798 |
-]) |
799 |
+# BSD make does it like this. |
800 |
+echo '.include "confinc.mk" # ignored' > confmf.BSD |
801 |
+# Other make implementations (GNU, Solaris 10, AIX) do it like this. |
802 |
+echo 'include confinc.mk # ignored' > confmf.GNU |
803 |
+_am_result=no |
804 |
+for s in GNU BSD; do |
805 |
+ AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out]) |
806 |
+ AS_CASE([$?:`cat confinc.out 2>/dev/null`], |
807 |
+ ['0:this is the am__doit target'], |
808 |
+ [AS_CASE([$s], |
809 |
+ [BSD], [am__include='.include' am__quote='"'], |
810 |
+ [am__include='include' am__quote=''])]) |
811 |
+ if test "$am__include" != "#"; then |
812 |
+ _am_result="yes ($s style)" |
813 |
+ break |
814 |
+ fi |
815 |
+done |
816 |
+rm -f confinc.* confmf.* |
817 |
+AC_MSG_RESULT([${_am_result}]) |
818 |
+AC_SUBST([am__include])]) |
819 |
+AC_SUBST([am__quote])]) |
820 |
|
821 |
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- |
822 |
|
823 |
-# Copyright (C) 1997-2017 Free Software Foundation, Inc. |
824 |
+# Copyright (C) 1997-2018 Free Software Foundation, Inc. |
825 |
# |
826 |
# This file is free software; the Free Software Foundation |
827 |
# gives unlimited permission to copy and/or distribute it, |
828 |
@@ -813,7 +796,7 @@ |
829 |
|
830 |
# Helper functions for option handling. -*- Autoconf -*- |
831 |
|
832 |
-# Copyright (C) 2001-2017 Free Software Foundation, Inc. |
833 |
+# Copyright (C) 2001-2018 Free Software Foundation, Inc. |
834 |
# |
835 |
# This file is free software; the Free Software Foundation |
836 |
# gives unlimited permission to copy and/or distribute it, |
837 |
@@ -842,7 +825,7 @@ |
838 |
AC_DEFUN([_AM_IF_OPTION], |
839 |
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) |
840 |
|
841 |
-# Copyright (C) 1999-2017 Free Software Foundation, Inc. |
842 |
+# Copyright (C) 1999-2018 Free Software Foundation, Inc. |
843 |
# |
844 |
# This file is free software; the Free Software Foundation |
845 |
# gives unlimited permission to copy and/or distribute it, |
846 |
@@ -889,7 +872,7 @@ |
847 |
# For backward compatibility. |
848 |
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) |
849 |
|
850 |
-# Copyright (C) 2001-2017 Free Software Foundation, Inc. |
851 |
+# Copyright (C) 2001-2018 Free Software Foundation, Inc. |
852 |
# |
853 |
# This file is free software; the Free Software Foundation |
854 |
# gives unlimited permission to copy and/or distribute it, |
855 |
@@ -908,7 +891,7 @@ |
856 |
|
857 |
# Check to make sure that the build environment is sane. -*- Autoconf -*- |
858 |
|
859 |
-# Copyright (C) 1996-2017 Free Software Foundation, Inc. |
860 |
+# Copyright (C) 1996-2018 Free Software Foundation, Inc. |
861 |
# |
862 |
# This file is free software; the Free Software Foundation |
863 |
# gives unlimited permission to copy and/or distribute it, |
864 |
@@ -989,7 +972,7 @@ |
865 |
rm -f conftest.file |
866 |
]) |
867 |
|
868 |
-# Copyright (C) 2009-2017 Free Software Foundation, Inc. |
869 |
+# Copyright (C) 2009-2018 Free Software Foundation, Inc. |
870 |
# |
871 |
# This file is free software; the Free Software Foundation |
872 |
# gives unlimited permission to copy and/or distribute it, |
873 |
@@ -1049,7 +1032,7 @@ |
874 |
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl |
875 |
]) |
876 |
|
877 |
-# Copyright (C) 2001-2017 Free Software Foundation, Inc. |
878 |
+# Copyright (C) 2001-2018 Free Software Foundation, Inc. |
879 |
# |
880 |
# This file is free software; the Free Software Foundation |
881 |
# gives unlimited permission to copy and/or distribute it, |
882 |
@@ -1077,7 +1060,7 @@ |
883 |
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" |
884 |
AC_SUBST([INSTALL_STRIP_PROGRAM])]) |
885 |
|
886 |
-# Copyright (C) 2006-2017 Free Software Foundation, Inc. |
887 |
+# Copyright (C) 2006-2018 Free Software Foundation, Inc. |
888 |
# |
889 |
# This file is free software; the Free Software Foundation |
890 |
# gives unlimited permission to copy and/or distribute it, |
891 |
@@ -1096,7 +1079,7 @@ |
892 |
|
893 |
# Check how to create a tarball. -*- Autoconf -*- |
894 |
|
895 |
-# Copyright (C) 2004-2017 Free Software Foundation, Inc. |
896 |
+# Copyright (C) 2004-2018 Free Software Foundation, Inc. |
897 |
# |
898 |
# This file is free software; the Free Software Foundation |
899 |
# gives unlimited permission to copy and/or distribute it, |
900 |
@@ -1228,6 +1211,7 @@ |
901 |
]) # _AM_PROG_TAR |
902 |
|
903 |
m4_include([../config/depstand.m4]) |
904 |
+m4_include([../config/gettext-sister.m4]) |
905 |
m4_include([../config/lead-dot.m4]) |
906 |
m4_include([../config/override.m4]) |
907 |
m4_include([../config/warnings.m4]) |
908 |
diff -x .git -x autom4te.cache -durN binutils.orig/libctf/config.h.in binutils/libctf/config.h.in |
909 |
--- binutils.orig/libctf/config.h.in 2019-12-16 13:05:01.036237000 +0000 |
910 |
+++ binutils/libctf/config.h.in 2019-12-16 14:31:49.184504000 +0000 |
911 |
@@ -3,11 +3,27 @@ |
912 |
/* Define if building universal (internal helper macro) */ |
913 |
#undef AC_APPLE_UNIVERSAL_BUILD |
914 |
|
915 |
+/* Define to 1 if translation of program messages to the user's native |
916 |
+ language is requested. */ |
917 |
+#undef ENABLE_NLS |
918 |
+ |
919 |
/* Whether libbfd was configured for an ELF target. */ |
920 |
#undef HAVE_BFD_ELF |
921 |
|
922 |
/* Define to 1 if you have the <byteswap.h> header file. */ |
923 |
#undef HAVE_BYTESWAP_H |
924 |
+ |
925 |
+/* Define to 1 if you have the declaration of `bswap_16', and to 0 if you |
926 |
+ don't. */ |
927 |
+#undef HAVE_DECL_BSWAP_16 |
928 |
+ |
929 |
+/* Define to 1 if you have the declaration of `bswap_32', and to 0 if you |
930 |
+ don't. */ |
931 |
+#undef HAVE_DECL_BSWAP_32 |
932 |
+ |
933 |
+/* Define to 1 if you have the declaration of `bswap_64', and to 0 if you |
934 |
+ don't. */ |
935 |
+#undef HAVE_DECL_BSWAP_64 |
936 |
|
937 |
/* Define to 1 if you have the <endian.h> header file. */ |
938 |
#undef HAVE_ENDIAN_H |
939 |
diff -x .git -x autom4te.cache -durN binutils.orig/libctf/configure binutils/libctf/configure |
940 |
--- binutils.orig/libctf/configure 2019-12-16 13:05:01.037775000 +0000 |
941 |
+++ binutils/libctf/configure 2019-12-16 14:33:31.352108000 +0000 |
942 |
@@ -637,6 +637,18 @@ |
943 |
WARN_PEDANTIC |
944 |
c_warn |
945 |
warn |
946 |
+CATOBJEXT |
947 |
+GENCAT |
948 |
+INSTOBJEXT |
949 |
+DATADIRNAME |
950 |
+CATALOGS |
951 |
+POSUB |
952 |
+GMSGFMT |
953 |
+XGETTEXT |
954 |
+INCINTL |
955 |
+LIBINTL_DEP |
956 |
+LIBINTL |
957 |
+USE_NLS |
958 |
ac_ct_AR |
959 |
AR |
960 |
RANLIB |
961 |
@@ -651,7 +663,6 @@ |
962 |
AMDEPBACKSLASH |
963 |
AMDEP_FALSE |
964 |
AMDEP_TRUE |
965 |
-am__quote |
966 |
am__include |
967 |
DEPDIR |
968 |
am__untar |
969 |
@@ -724,7 +735,8 @@ |
970 |
PACKAGE_TARNAME |
971 |
PACKAGE_NAME |
972 |
PATH_SEPARATOR |
973 |
-SHELL' |
974 |
+SHELL |
975 |
+am__quote' |
976 |
ac_subst_files='' |
977 |
ac_user_opts=' |
978 |
enable_option_checking |
979 |
@@ -1812,6 +1824,52 @@ |
980 |
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno |
981 |
|
982 |
} # ac_fn_c_check_func |
983 |
+ |
984 |
+# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES |
985 |
+# --------------------------------------------- |
986 |
+# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR |
987 |
+# accordingly. |
988 |
+ac_fn_c_check_decl () |
989 |
+{ |
990 |
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack |
991 |
+ as_decl_name=`echo $2|sed 's/ *(.*//'` |
992 |
+ as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` |
993 |
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 |
994 |
+$as_echo_n "checking whether $as_decl_name is declared... " >&6; } |
995 |
+if eval \${$3+:} false; then : |
996 |
+ $as_echo_n "(cached) " >&6 |
997 |
+else |
998 |
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
999 |
+/* end confdefs.h. */ |
1000 |
+$4 |
1001 |
+int |
1002 |
+main () |
1003 |
+{ |
1004 |
+#ifndef $as_decl_name |
1005 |
+#ifdef __cplusplus |
1006 |
+ (void) $as_decl_use; |
1007 |
+#else |
1008 |
+ (void) $as_decl_name; |
1009 |
+#endif |
1010 |
+#endif |
1011 |
+ |
1012 |
+ ; |
1013 |
+ return 0; |
1014 |
+} |
1015 |
+_ACEOF |
1016 |
+if ac_fn_c_try_compile "$LINENO"; then : |
1017 |
+ eval "$3=yes" |
1018 |
+else |
1019 |
+ eval "$3=no" |
1020 |
+fi |
1021 |
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext |
1022 |
+fi |
1023 |
+eval ac_res=\$$3 |
1024 |
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 |
1025 |
+$as_echo "$ac_res" >&6; } |
1026 |
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno |
1027 |
+ |
1028 |
+} # ac_fn_c_check_decl |
1029 |
cat >config.log <<_ACEOF |
1030 |
This file contains any messages produced by compilers while |
1031 |
running configure, to aid debugging if configure makes a mistake. |
1032 |
@@ -3512,7 +3570,7 @@ |
1033 |
$as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h |
1034 |
|
1035 |
|
1036 |
-am__api_version='1.15' |
1037 |
+am__api_version='1.16' |
1038 |
|
1039 |
# Find a good install program. We prefer a C program (faster), |
1040 |
# so one script is as good as another. But avoid the broken or |
1041 |
@@ -3938,46 +3996,46 @@ |
1042 |
|
1043 |
ac_config_commands="$ac_config_commands depfiles" |
1044 |
|
1045 |
- |
1046 |
-am_make=${MAKE-make} |
1047 |
-cat > confinc << 'END' |
1048 |
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 |
1049 |
+$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; } |
1050 |
+cat > confinc.mk << 'END' |
1051 |
am__doit: |
1052 |
- @echo this is the am__doit target |
1053 |
+ @echo this is the am__doit target >confinc.out |
1054 |
.PHONY: am__doit |
1055 |
END |
1056 |
-# If we don't find an include directive, just comment out the code. |
1057 |
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 |
1058 |
-$as_echo_n "checking for style of include used by $am_make... " >&6; } |
1059 |
am__include="#" |
1060 |
am__quote= |
1061 |
-_am_result=none |
1062 |
-# First try GNU make style include. |
1063 |
-echo "include confinc" > confmf |
1064 |
-# Ignore all kinds of additional output from 'make'. |
1065 |
-case `$am_make -s -f confmf 2> /dev/null` in #( |
1066 |
-*the\ am__doit\ target*) |
1067 |
- am__include=include |
1068 |
- am__quote= |
1069 |
- _am_result=GNU |
1070 |
- ;; |
1071 |
-esac |
1072 |
-# Now try BSD make style include. |
1073 |
-if test "$am__include" = "#"; then |
1074 |
- echo '.include "confinc"' > confmf |
1075 |
- case `$am_make -s -f confmf 2> /dev/null` in #( |
1076 |
- *the\ am__doit\ target*) |
1077 |
- am__include=.include |
1078 |
- am__quote="\"" |
1079 |
- _am_result=BSD |
1080 |
+# BSD make does it like this. |
1081 |
+echo '.include "confinc.mk" # ignored' > confmf.BSD |
1082 |
+# Other make implementations (GNU, Solaris 10, AIX) do it like this. |
1083 |
+echo 'include confinc.mk # ignored' > confmf.GNU |
1084 |
+_am_result=no |
1085 |
+for s in GNU BSD; do |
1086 |
+ { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5 |
1087 |
+ (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5 |
1088 |
+ ac_status=$? |
1089 |
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 |
1090 |
+ (exit $ac_status); } |
1091 |
+ case $?:`cat confinc.out 2>/dev/null` in #( |
1092 |
+ '0:this is the am__doit target') : |
1093 |
+ case $s in #( |
1094 |
+ BSD) : |
1095 |
+ am__include='.include' am__quote='"' ;; #( |
1096 |
+ *) : |
1097 |
+ am__include='include' am__quote='' ;; |
1098 |
+esac ;; #( |
1099 |
+ *) : |
1100 |
;; |
1101 |
- esac |
1102 |
-fi |
1103 |
+esac |
1104 |
+ if test "$am__include" != "#"; then |
1105 |
+ _am_result="yes ($s style)" |
1106 |
+ break |
1107 |
+ fi |
1108 |
+done |
1109 |
+rm -f confinc.* confmf.* |
1110 |
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 |
1111 |
+$as_echo "${_am_result}" >&6; } |
1112 |
|
1113 |
- |
1114 |
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 |
1115 |
-$as_echo "$_am_result" >&6; } |
1116 |
-rm -f confinc confmf |
1117 |
- |
1118 |
# Check whether --enable-dependency-tracking was given. |
1119 |
if test "${enable_dependency_tracking+set}" = set; then : |
1120 |
enableval=$enable_dependency_tracking; |
1121 |
@@ -4088,8 +4146,8 @@ |
1122 |
|
1123 |
# For better backward compatibility. To be removed once Automake 1.9.x |
1124 |
# dies out for good. For more background, see: |
1125 |
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> |
1126 |
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> |
1127 |
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> |
1128 |
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> |
1129 |
mkdir_p='$(MKDIR_P)' |
1130 |
|
1131 |
# We need awk for the "check" target (and possibly the TAP driver). The |
1132 |
@@ -4268,7 +4326,7 @@ |
1133 |
Aborting the configuration process, to ensure you take notice of the issue. |
1134 |
|
1135 |
You can download and install GNU coreutils to get an 'rm' implementation |
1136 |
-that behaves properly: <http://www.gnu.org/software/coreutils/>. |
1137 |
+that behaves properly: <https://www.gnu.org/software/coreutils/>. |
1138 |
|
1139 |
If you want to complete the configuration process using your problematic |
1140 |
'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM |
1141 |
@@ -5173,7 +5231,77 @@ |
1142 |
;; |
1143 |
esac |
1144 |
|
1145 |
+# If we haven't got the data from the intl directory, |
1146 |
+# assume NLS is disabled. |
1147 |
+USE_NLS=no |
1148 |
+LIBINTL= |
1149 |
+LIBINTL_DEP= |
1150 |
+INCINTL= |
1151 |
+XGETTEXT= |
1152 |
+GMSGFMT= |
1153 |
+POSUB= |
1154 |
|
1155 |
+if test -f ../intl/config.intl; then |
1156 |
+ . ../intl/config.intl |
1157 |
+fi |
1158 |
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 |
1159 |
+$as_echo_n "checking whether NLS is requested... " >&6; } |
1160 |
+if test x"$USE_NLS" != xyes; then |
1161 |
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 |
1162 |
+$as_echo "no" >&6; } |
1163 |
+else |
1164 |
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 |
1165 |
+$as_echo "yes" >&6; } |
1166 |
+ |
1167 |
+$as_echo "#define ENABLE_NLS 1" >>confdefs.h |
1168 |
+ |
1169 |
+ |
1170 |
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5 |
1171 |
+$as_echo_n "checking for catalogs to be installed... " >&6; } |
1172 |
+ # Look for .po and .gmo files in the source directory. |
1173 |
+ CATALOGS= |
1174 |
+ XLINGUAS= |
1175 |
+ for cat in $srcdir/po/*.gmo $srcdir/po/*.po; do |
1176 |
+ # If there aren't any .gmo files the shell will give us the |
1177 |
+ # literal string "../path/to/srcdir/po/*.gmo" which has to be |
1178 |
+ # weeded out. |
1179 |
+ case "$cat" in *\**) |
1180 |
+ continue;; |
1181 |
+ esac |
1182 |
+ # The quadruple backslash is collapsed to a double backslash |
1183 |
+ # by the backticks, then collapsed again by the double quotes, |
1184 |
+ # leaving us with one backslash in the sed expression (right |
1185 |
+ # before the dot that mustn't act as a wildcard). |
1186 |
+ cat=`echo $cat | sed -e "s!$srcdir/po/!!" -e "s!\\\\.po!.gmo!"` |
1187 |
+ lang=`echo $cat | sed -e "s!\\\\.gmo!!"` |
1188 |
+ # The user is allowed to set LINGUAS to a list of languages to |
1189 |
+ # install catalogs for. If it's empty that means "all of them." |
1190 |
+ if test "x$LINGUAS" = x; then |
1191 |
+ CATALOGS="$CATALOGS $cat" |
1192 |
+ XLINGUAS="$XLINGUAS $lang" |
1193 |
+ else |
1194 |
+ case "$LINGUAS" in *$lang*) |
1195 |
+ CATALOGS="$CATALOGS $cat" |
1196 |
+ XLINGUAS="$XLINGUAS $lang" |
1197 |
+ ;; |
1198 |
+ esac |
1199 |
+ fi |
1200 |
+ done |
1201 |
+ LINGUAS="$XLINGUAS" |
1202 |
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5 |
1203 |
+$as_echo "$LINGUAS" >&6; } |
1204 |
+ |
1205 |
+ |
1206 |
+ DATADIRNAME=share |
1207 |
+ |
1208 |
+ INSTOBJEXT=.mo |
1209 |
+ |
1210 |
+ GENCAT=gencat |
1211 |
+ |
1212 |
+ CATOBJEXT=.gmo |
1213 |
+ |
1214 |
+fi |
1215 |
+ |
1216 |
# Check whether --enable-largefile was given. |
1217 |
if test "${enable_largefile+set}" = set; then : |
1218 |
enableval=$enable_largefile; |
1219 |
@@ -6360,9 +6488,44 @@ |
1220 |
done |
1221 |
|
1222 |
|
1223 |
+ac_fn_c_check_decl "$LINENO" "bswap_16" "ac_cv_have_decl_bswap_16" "#include <byteswap.h> |
1224 |
+" |
1225 |
+if test "x$ac_cv_have_decl_bswap_16" = xyes; then : |
1226 |
+ ac_have_decl=1 |
1227 |
+else |
1228 |
+ ac_have_decl=0 |
1229 |
+fi |
1230 |
|
1231 |
+cat >>confdefs.h <<_ACEOF |
1232 |
+#define HAVE_DECL_BSWAP_16 $ac_have_decl |
1233 |
+_ACEOF |
1234 |
+ac_fn_c_check_decl "$LINENO" "bswap_32" "ac_cv_have_decl_bswap_32" "#include <byteswap.h> |
1235 |
+" |
1236 |
+if test "x$ac_cv_have_decl_bswap_32" = xyes; then : |
1237 |
+ ac_have_decl=1 |
1238 |
+else |
1239 |
+ ac_have_decl=0 |
1240 |
+fi |
1241 |
|
1242 |
+cat >>confdefs.h <<_ACEOF |
1243 |
+#define HAVE_DECL_BSWAP_32 $ac_have_decl |
1244 |
+_ACEOF |
1245 |
+ac_fn_c_check_decl "$LINENO" "bswap_64" "ac_cv_have_decl_bswap_64" "#include <byteswap.h> |
1246 |
+" |
1247 |
+if test "x$ac_cv_have_decl_bswap_64" = xyes; then : |
1248 |
+ ac_have_decl=1 |
1249 |
+else |
1250 |
+ ac_have_decl=0 |
1251 |
+fi |
1252 |
|
1253 |
+cat >>confdefs.h <<_ACEOF |
1254 |
+#define HAVE_DECL_BSWAP_64 $ac_have_decl |
1255 |
+_ACEOF |
1256 |
+ |
1257 |
+ |
1258 |
+ |
1259 |
+ |
1260 |
+ |
1261 |
for ac_func in $ac_func_list |
1262 |
do : |
1263 |
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` |
1264 |
@@ -7227,7 +7390,7 @@ |
1265 |
# |
1266 |
# INIT-COMMANDS |
1267 |
# |
1268 |
-AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" |
1269 |
+AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}" |
1270 |
|
1271 |
_ACEOF |
1272 |
|
1273 |
@@ -7839,29 +8002,35 @@ |
1274 |
# Older Autoconf quotes --file arguments for eval, but not when files |
1275 |
# are listed without --file. Let's play safe and only enable the eval |
1276 |
# if we detect the quoting. |
1277 |
- case $CONFIG_FILES in |
1278 |
- *\'*) eval set x "$CONFIG_FILES" ;; |
1279 |
- *) set x $CONFIG_FILES ;; |
1280 |
- esac |
1281 |
+ # TODO: see whether this extra hack can be removed once we start |
1282 |
+ # requiring Autoconf 2.70 or later. |
1283 |
+ case $CONFIG_FILES in #( |
1284 |
+ *\'*) : |
1285 |
+ eval set x "$CONFIG_FILES" ;; #( |
1286 |
+ *) : |
1287 |
+ set x $CONFIG_FILES ;; #( |
1288 |
+ *) : |
1289 |
+ ;; |
1290 |
+esac |
1291 |
shift |
1292 |
- for mf |
1293 |
+ # Used to flag and report bootstrapping failures. |
1294 |
+ am_rc=0 |
1295 |
+ for am_mf |
1296 |
do |
1297 |
# Strip MF so we end up with the name of the file. |
1298 |
- mf=`echo "$mf" | sed -e 's/:.*$//'` |
1299 |
- # Check whether this is an Automake generated Makefile or not. |
1300 |
- # We used to match only the files named 'Makefile.in', but |
1301 |
- # some people rename them; so instead we look at the file content. |
1302 |
- # Grep'ing the first line is not enough: some people post-process |
1303 |
- # each Makefile.in and add a new line on top of each file to say so. |
1304 |
- # Grep'ing the whole file is not good either: AIX grep has a line |
1305 |
+ am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'` |
1306 |
+ # Check whether this is an Automake generated Makefile which includes |
1307 |
+ # dependency-tracking related rules and includes. |
1308 |
+ # Grep'ing the whole file directly is not great: AIX grep has a line |
1309 |
# limit of 2048, but all sed's we know have understand at least 4000. |
1310 |
- if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then |
1311 |
- dirpart=`$as_dirname -- "$mf" || |
1312 |
-$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ |
1313 |
- X"$mf" : 'X\(//\)[^/]' \| \ |
1314 |
- X"$mf" : 'X\(//\)$' \| \ |
1315 |
- X"$mf" : 'X\(/\)' \| . 2>/dev/null || |
1316 |
-$as_echo X"$mf" | |
1317 |
+ sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ |
1318 |
+ || continue |
1319 |
+ am_dirpart=`$as_dirname -- "$am_mf" || |
1320 |
+$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ |
1321 |
+ X"$am_mf" : 'X\(//\)[^/]' \| \ |
1322 |
+ X"$am_mf" : 'X\(//\)$' \| \ |
1323 |
+ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || |
1324 |
+$as_echo X"$am_mf" | |
1325 |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ |
1326 |
s//\1/ |
1327 |
q |
1328 |
@@ -7879,53 +8048,48 @@ |
1329 |
q |
1330 |
} |
1331 |
s/.*/./; q'` |
1332 |
- else |
1333 |
- continue |
1334 |
- fi |
1335 |
- # Extract the definition of DEPDIR, am__include, and am__quote |
1336 |
- # from the Makefile without running 'make'. |
1337 |
- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` |
1338 |
- test -z "$DEPDIR" && continue |
1339 |
- am__include=`sed -n 's/^am__include = //p' < "$mf"` |
1340 |
- test -z "$am__include" && continue |
1341 |
- am__quote=`sed -n 's/^am__quote = //p' < "$mf"` |
1342 |
- # Find all dependency output files, they are included files with |
1343 |
- # $(DEPDIR) in their names. We invoke sed twice because it is the |
1344 |
- # simplest approach to changing $(DEPDIR) to its actual value in the |
1345 |
- # expansion. |
1346 |
- for file in `sed -n " |
1347 |
- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ |
1348 |
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do |
1349 |
- # Make sure the directory exists. |
1350 |
- test -f "$dirpart/$file" && continue |
1351 |
- fdir=`$as_dirname -- "$file" || |
1352 |
-$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ |
1353 |
- X"$file" : 'X\(//\)[^/]' \| \ |
1354 |
- X"$file" : 'X\(//\)$' \| \ |
1355 |
- X"$file" : 'X\(/\)' \| . 2>/dev/null || |
1356 |
-$as_echo X"$file" | |
1357 |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ |
1358 |
+ am_filepart=`$as_basename -- "$am_mf" || |
1359 |
+$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ |
1360 |
+ X"$am_mf" : 'X\(//\)$' \| \ |
1361 |
+ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || |
1362 |
+$as_echo X/"$am_mf" | |
1363 |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{ |
1364 |
s//\1/ |
1365 |
q |
1366 |
} |
1367 |
- /^X\(\/\/\)[^/].*/{ |
1368 |
+ /^X\/\(\/\/\)$/{ |
1369 |
s//\1/ |
1370 |
q |
1371 |
} |
1372 |
- /^X\(\/\/\)$/{ |
1373 |
+ /^X\/\(\/\).*/{ |
1374 |
s//\1/ |
1375 |
q |
1376 |
} |
1377 |
- /^X\(\/\).*/{ |
1378 |
- s//\1/ |
1379 |
- q |
1380 |
- } |
1381 |
s/.*/./; q'` |
1382 |
- as_dir=$dirpart/$fdir; as_fn_mkdir_p |
1383 |
- # echo "creating $dirpart/$file" |
1384 |
- echo '# dummy' > "$dirpart/$file" |
1385 |
- done |
1386 |
+ { echo "$as_me:$LINENO: cd "$am_dirpart" \ |
1387 |
+ && sed -e '/# am--include-marker/d' "$am_filepart" \ |
1388 |
+ | $MAKE -f - am--depfiles" >&5 |
1389 |
+ (cd "$am_dirpart" \ |
1390 |
+ && sed -e '/# am--include-marker/d' "$am_filepart" \ |
1391 |
+ | $MAKE -f - am--depfiles) >&5 2>&5 |
1392 |
+ ac_status=$? |
1393 |
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 |
1394 |
+ (exit $ac_status); } || am_rc=$? |
1395 |
done |
1396 |
+ if test $am_rc -ne 0; then |
1397 |
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 |
1398 |
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} |
1399 |
+as_fn_error $? "Something went wrong bootstrapping makefile fragments |
1400 |
+ for automatic dependency tracking. Try re-running configure with the |
1401 |
+ '--disable-dependency-tracking' option to at least be able to build |
1402 |
+ the package (albeit without support for automatic dependency tracking). |
1403 |
+See \`config.log' for more details" "$LINENO" 5; } |
1404 |
+ fi |
1405 |
+ { am_dirpart=; unset am_dirpart;} |
1406 |
+ { am_filepart=; unset am_filepart;} |
1407 |
+ { am_mf=; unset am_mf;} |
1408 |
+ { am_rc=; unset am_rc;} |
1409 |
+ rm -f conftest-deps.mk |
1410 |
} |
1411 |
;; |
1412 |
|
1413 |
diff -x .git -x autom4te.cache -durN binutils.orig/libctf/configure.ac binutils/libctf/configure.ac |
1414 |
--- binutils.orig/libctf/configure.ac 2019-12-16 13:05:01.037964000 +0000 |
1415 |
+++ binutils/libctf/configure.ac 2019-12-16 14:31:49.144635000 +0000 |
1416 |
@@ -30,6 +30,7 @@ |
1417 |
AC_PROG_CC |
1418 |
AC_PROG_RANLIB |
1419 |
AM_PROG_AR |
1420 |
+ZW_GNU_GETTEXT_SISTER_DIR |
1421 |
|
1422 |
AC_SYS_LARGEFILE |
1423 |
|
1424 |
@@ -90,6 +91,9 @@ |
1425 |
AC_C_BIGENDIAN |
1426 |
AC_CHECK_HEADERS(byteswap.h endian.h) |
1427 |
AC_CHECK_FUNCS(pread) |
1428 |
+ |
1429 |
+dnl Check for bswap_{16,32,64} |
1430 |
+AC_CHECK_DECLS([bswap_16, bswap_32, bswap_64], [], [], [[#include <byteswap.h>]]) |
1431 |
|
1432 |
dnl Check for qsort_r. (Taken from gnulib.) |
1433 |
AC_CHECK_FUNCS_ONCE([qsort_r]) |
1434 |
diff -x .git -x autom4te.cache -durN binutils.orig/libctf/ctf-archive.c binutils/libctf/ctf-archive.c |
1435 |
--- binutils.orig/libctf/ctf-archive.c 2019-12-16 13:05:01.038294000 +0000 |
1436 |
+++ binutils/libctf/ctf-archive.c 2019-12-16 14:31:06.262127000 +0000 |
1437 |
@@ -44,9 +44,6 @@ |
1438 |
const char **errmsg); |
1439 |
static int arc_mmap_unmap (void *header, size_t headersz, const char **errmsg); |
1440 |
|
1441 |
-/* bsearch() internal state. */ |
1442 |
-static __thread char *search_nametbl; |
1443 |
- |
1444 |
/* Write out a CTF archive. The entries in CTF_FILES are referenced by name: |
1445 |
the names are passed in the names array, which must have CTF_FILES entries. |
1446 |
|
1447 |
@@ -300,13 +297,14 @@ |
1448 |
&nametbl[le64toh (b->name_offset)]); |
1449 |
} |
1450 |
|
1451 |
-/* bsearch() function to search for a given name in the sorted array of struct |
1452 |
+/* bsearch_r() function to search for a given name in the sorted array of struct |
1453 |
ctf_archive_modents. */ |
1454 |
static int |
1455 |
-search_modent_by_name (const void *key, const void *ent) |
1456 |
+search_modent_by_name (const void *key, const void *ent, void *arg) |
1457 |
{ |
1458 |
const char *k = key; |
1459 |
const struct ctf_archive_modent *v = ent; |
1460 |
+ const char *search_nametbl = arg; |
1461 |
|
1462 |
return strcmp (k, &search_nametbl[le64toh (v->name_offset)]); |
1463 |
} |
1464 |
@@ -419,6 +417,7 @@ |
1465 |
const char *name, int *errp) |
1466 |
{ |
1467 |
struct ctf_archive_modent *modent; |
1468 |
+ const char *search_nametbl; |
1469 |
|
1470 |
if (name == NULL) |
1471 |
name = _CTF_SECTION; /* The default name. */ |
1472 |
@@ -428,10 +427,10 @@ |
1473 |
modent = (ctf_archive_modent_t *) ((char *) arc |
1474 |
+ sizeof (struct ctf_archive)); |
1475 |
|
1476 |
- search_nametbl = (char *) arc + le64toh (arc->ctfa_names); |
1477 |
- modent = bsearch (name, modent, le64toh (arc->ctfa_nfiles), |
1478 |
- sizeof (struct ctf_archive_modent), |
1479 |
- search_modent_by_name); |
1480 |
+ search_nametbl = (const char *) arc + le64toh (arc->ctfa_names); |
1481 |
+ modent = bsearch_r (name, modent, le64toh (arc->ctfa_nfiles), |
1482 |
+ sizeof (struct ctf_archive_modent), |
1483 |
+ search_modent_by_name, (void *) search_nametbl); |
1484 |
|
1485 |
/* This is actually a common case and normal operation: no error |
1486 |
debug output. */ |
1487 |
diff -x .git -x autom4te.cache -durN binutils.orig/libctf/ctf-create.c binutils/libctf/ctf-create.c |
1488 |
--- binutils.orig/libctf/ctf-create.c 2019-12-16 13:05:01.038815000 +0000 |
1489 |
+++ binutils/libctf/ctf-create.c 2019-12-16 14:31:06.262525000 +0000 |
1490 |
@@ -21,6 +21,7 @@ |
1491 |
#include <sys/param.h> |
1492 |
#include <assert.h> |
1493 |
#include <string.h> |
1494 |
+#include <unistd.h> |
1495 |
#include <zlib.h> |
1496 |
|
1497 |
#ifndef roundup |
1498 |
diff -x .git -x autom4te.cache -durN binutils.orig/libctf/ctf-endian.h binutils/libctf/ctf-endian.h |
1499 |
--- binutils.orig/libctf/ctf-endian.h 2019-12-16 12:41:49.160410000 +0000 |
1500 |
+++ binutils/libctf/ctf-endian.h 2019-12-16 14:31:06.262648000 +0000 |
1501 |
@@ -24,10 +24,10 @@ |
1502 |
#include <stdint.h> |
1503 |
#include "swap.h" |
1504 |
|
1505 |
-#ifndef HAVE_ENDIAN_H |
1506 |
+#if !defined (HAVE_ENDIAN_H) || !defined (htole64) |
1507 |
#ifndef WORDS_BIGENDIAN |
1508 |
-# define htole64(x) bswap_identity_64 ((x)) |
1509 |
-# define le64toh(x) bswap_identity_64 ((x)) |
1510 |
+# define htole64(x) (x) |
1511 |
+# define le64toh(x) (x) |
1512 |
#else |
1513 |
# define htole64(x) bswap_64 ((x)) |
1514 |
# define le64toh(x) bswap_64 ((x)) |
1515 |
diff -x .git -x autom4te.cache -durN binutils.orig/libctf/ctf-impl.h binutils/libctf/ctf-impl.h |
1516 |
--- binutils.orig/libctf/ctf-impl.h 2019-12-16 13:05:01.039050000 +0000 |
1517 |
+++ binutils/libctf/ctf-impl.h 2019-12-16 14:31:06.262883000 +0000 |
1518 |
@@ -58,6 +58,13 @@ |
1519 |
#define _libctf_unused_ __attribute__ ((__unused__)) |
1520 |
#define _libctf_malloc_ __attribute__((__malloc__)) |
1521 |
|
1522 |
+#else |
1523 |
+ |
1524 |
+#define _libctf_printflike_(string_index,first_to_check) |
1525 |
+#define _libctf_unlikely_(x) (x) |
1526 |
+#define _libctf_unused_ |
1527 |
+#define _libctf_malloc_ |
1528 |
+ |
1529 |
#endif |
1530 |
|
1531 |
/* libctf in-memory state. */ |
1532 |
diff -x .git -x autom4te.cache -durN binutils.orig/libctf/ctf-open-bfd.c binutils/libctf/ctf-open-bfd.c |
1533 |
--- binutils.orig/libctf/ctf-open-bfd.c 2019-12-16 13:05:01.039304000 +0000 |
1534 |
+++ binutils/libctf/ctf-open-bfd.c 2019-12-16 14:31:06.263077000 +0000 |
1535 |
@@ -24,6 +24,7 @@ |
1536 |
#include <errno.h> |
1537 |
#include <string.h> |
1538 |
#include <fcntl.h> |
1539 |
+#include <unistd.h> |
1540 |
#include <elf.h> |
1541 |
#include <bfd.h> |
1542 |
#include "swap.h" |
1543 |
diff -x .git -x autom4te.cache -durN binutils.orig/libctf/swap.h binutils/libctf/swap.h |
1544 |
--- binutils.orig/libctf/swap.h 2019-12-16 13:05:01.039437000 +0000 |
1545 |
+++ binutils/libctf/swap.h 2019-12-16 14:31:06.263198000 +0000 |
1546 |
@@ -25,16 +25,20 @@ |
1547 |
|
1548 |
#ifdef HAVE_BYTESWAP_H |
1549 |
#include <byteswap.h> |
1550 |
-#else |
1551 |
+#endif /* defined(HAVE_BYTESWAP_H) */ |
1552 |
|
1553 |
/* Provide our own versions of the byteswap functions. */ |
1554 |
-inline uint16_t |
1555 |
+ |
1556 |
+#if !HAVE_DECL_BSWAP_16 |
1557 |
+static inline uint16_t |
1558 |
bswap_16 (uint16_t v) |
1559 |
{ |
1560 |
return ((v >> 8) & 0xff) | ((v & 0xff) << 8); |
1561 |
} |
1562 |
+#endif /* !HAVE_DECL_BSWAP16 */ |
1563 |
|
1564 |
-inline uint32_t |
1565 |
+#if !HAVE_DECL_BSWAP_32 |
1566 |
+static inline uint32_t |
1567 |
bswap_32 (uint32_t v) |
1568 |
{ |
1569 |
return ( ((v & 0xff000000) >> 24) |
1570 |
@@ -42,14 +46,10 @@ |
1571 |
| ((v & 0x0000ff00) << 8) |
1572 |
| ((v & 0x000000ff) << 24)); |
1573 |
} |
1574 |
+#endif /* !HAVE_DECL_BSWAP32 */ |
1575 |
|
1576 |
-inline uint64_t |
1577 |
-bswap_identity_64 (uint64_t v) |
1578 |
-{ |
1579 |
- return v; |
1580 |
-} |
1581 |
- |
1582 |
-inline uint64_t |
1583 |
+#if !HAVE_DECL_BSWAP_64 |
1584 |
+static inline uint64_t |
1585 |
bswap_64 (uint64_t v) |
1586 |
{ |
1587 |
return ( ((v & 0xff00000000000000ULL) >> 56) |
1588 |
@@ -61,6 +61,6 @@ |
1589 |
| ((v & 0x000000000000ff00ULL) << 40) |
1590 |
| ((v & 0x00000000000000ffULL) << 56)); |
1591 |
} |
1592 |
-#endif /* !defined(HAVE_BYTESWAP_H) */ |
1593 |
+#endif /* !HAVE_DECL_BSWAP64 */ |
1594 |
|
1595 |
#endif /* !defined(_CTF_SWAP_H) */ |
1596 |
diff -x .git -x autom4te.cache -durN binutils.orig/libiberty/Makefile.in binutils/libiberty/Makefile.in |
1597 |
--- binutils.orig/libiberty/Makefile.in 2019-12-16 13:05:01.042227000 +0000 |
1598 |
+++ binutils/libiberty/Makefile.in 2019-12-16 14:31:06.263555000 +0000 |
1599 |
@@ -123,7 +123,7 @@ |
1600 |
# CONFIGURED_OFILES and funcs in configure.ac. Also run "make maint-deps" |
1601 |
# to build the new rules. |
1602 |
CFILES = alloca.c argv.c asprintf.c atexit.c \ |
1603 |
- basename.c bcmp.c bcopy.c bsearch.c bzero.c \ |
1604 |
+ basename.c bcmp.c bcopy.c bsearch.c bsearch_r.c bzero.c \ |
1605 |
calloc.c choose-temp.c clock.c concat.c cp-demangle.c \ |
1606 |
cp-demint.c cplus-dem.c crc32.c \ |
1607 |
d-demangle.c dwarfnames.c dyn-string.c \ |
1608 |
@@ -167,6 +167,7 @@ |
1609 |
./regex.$(objext) ./cplus-dem.$(objext) ./cp-demangle.$(objext) \ |
1610 |
./md5.$(objext) ./sha1.$(objext) ./alloca.$(objext) \ |
1611 |
./argv.$(objext) \ |
1612 |
+ ./bsearch_r.$(objext) \ |
1613 |
./choose-temp.$(objext) ./concat.$(objext) \ |
1614 |
./cp-demint.$(objext) ./crc32.$(objext) ./d-demangle.$(objext) \ |
1615 |
./dwarfnames.$(objext) ./dyn-string.$(objext) \ |
1616 |
@@ -596,6 +597,15 @@ |
1617 |
$(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/bsearch.c -o noasan/$@; \ |
1618 |
else true; fi |
1619 |
$(COMPILE.c) $(srcdir)/bsearch.c $(OUTPUT_OPTION) |
1620 |
+ |
1621 |
+./bsearch_r.$(objext): $(srcdir)/bsearch_r.c config.h $(INCDIR)/ansidecl.h |
1622 |
+ if [ x"$(PICFLAG)" != x ]; then \ |
1623 |
+ $(COMPILE.c) $(PICFLAG) $(srcdir)/bsearch_r.c -o pic/$@; \ |
1624 |
+ else true; fi |
1625 |
+ if [ x"$(NOASANFLAG)" != x ]; then \ |
1626 |
+ $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/bsearch_r.c -o noasan/$@; \ |
1627 |
+ else true; fi |
1628 |
+ $(COMPILE.c) $(srcdir)/bsearch_r.c $(OUTPUT_OPTION) |
1629 |
|
1630 |
./bzero.$(objext): $(srcdir)/bzero.c |
1631 |
if [ x"$(PICFLAG)" != x ]; then \ |
1632 |
diff -x .git -x autom4te.cache -durN binutils.orig/libiberty/bsearch_r.c binutils/libiberty/bsearch_r.c |
1633 |
--- binutils.orig/libiberty/bsearch_r.c 1970-01-01 01:00:00.000000000 +0100 |
1634 |
+++ binutils/libiberty/bsearch_r.c 2019-12-16 14:31:06.263681000 +0000 |
1635 |
@@ -0,0 +1,92 @@ |
1636 |
+/* |
1637 |
+ * Copyright (c) 1990 Regents of the University of California. |
1638 |
+ * All rights reserved. |
1639 |
+ * |
1640 |
+ * Redistribution and use in source and binary forms, with or without |
1641 |
+ * modification, are permitted provided that the following conditions |
1642 |
+ * are met: |
1643 |
+ * 1. Redistributions of source code must retain the above copyright |
1644 |
+ * notice, this list of conditions and the following disclaimer. |
1645 |
+ * 2. Redistributions in binary form must reproduce the above copyright |
1646 |
+ * notice, this list of conditions and the following disclaimer in the |
1647 |
+ * documentation and/or other materials provided with the distribution. |
1648 |
+ * 3. [rescinded 22 July 1999] |
1649 |
+ * 4. Neither the name of the University nor the names of its contributors |
1650 |
+ * may be used to endorse or promote products derived from this software |
1651 |
+ * without specific prior written permission. |
1652 |
+ * |
1653 |
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND |
1654 |
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
1655 |
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
1656 |
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE |
1657 |
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
1658 |
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
1659 |
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
1660 |
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
1661 |
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
1662 |
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
1663 |
+ * SUCH DAMAGE. |
1664 |
+ */ |
1665 |
+ |
1666 |
+/* |
1667 |
+ |
1668 |
+@deftypefn Supplemental void* bsearch_r (const void *@var{key}, @ |
1669 |
+ const void *@var{base}, size_t @var{nmemb}, size_t @var{size}, @ |
1670 |
+ int (*@var{compar})(const void *, const void *, void *), void *@var{arg}) |
1671 |
+ |
1672 |
+Performs a search over an array of @var{nmemb} elements pointed to by |
1673 |
+@var{base} for a member that matches the object pointed to by @var{key}. |
1674 |
+The size of each member is specified by @var{size}. The array contents |
1675 |
+should be sorted in ascending order according to the @var{compar} |
1676 |
+comparison function. This routine should take two arguments pointing to |
1677 |
+the @var{key} and to an array member, in that order, and should return an |
1678 |
+integer less than, equal to, or greater than zero if the @var{key} object |
1679 |
+is respectively less than, matching, or greater than the array member. |
1680 |
+ |
1681 |
+@end deftypefn |
1682 |
+ |
1683 |
+*/ |
1684 |
+ |
1685 |
+#include "config.h" |
1686 |
+#include "ansidecl.h" |
1687 |
+#include <sys/types.h> /* size_t */ |
1688 |
+#include <stdio.h> |
1689 |
+ |
1690 |
+/* |
1691 |
+ * Perform a binary search. |
1692 |
+ * |
1693 |
+ * The code below is a bit sneaky. After a comparison fails, we |
1694 |
+ * divide the work in half by moving either left or right. If lim |
1695 |
+ * is odd, moving left simply involves halving lim: e.g., when lim |
1696 |
+ * is 5 we look at item 2, so we change lim to 2 so that we will |
1697 |
+ * look at items 0 & 1. If lim is even, the same applies. If lim |
1698 |
+ * is odd, moving right again involes halving lim, this time moving |
1699 |
+ * the base up one item past p: e.g., when lim is 5 we change base |
1700 |
+ * to item 3 and make lim 2 so that we will look at items 3 and 4. |
1701 |
+ * If lim is even, however, we have to shrink it by one before |
1702 |
+ * halving: e.g., when lim is 4, we still looked at item 2, so we |
1703 |
+ * have to make lim 3, then halve, obtaining 1, so that we will only |
1704 |
+ * look at item 3. |
1705 |
+ */ |
1706 |
+void * |
1707 |
+bsearch_r (register const void *key, const void *base0, |
1708 |
+ size_t nmemb, register size_t size, |
1709 |
+ register int (*compar)(const void *, const void *, void *), |
1710 |
+ void *arg) |
1711 |
+{ |
1712 |
+ register const char *base = (const char *) base0; |
1713 |
+ register int lim, cmp; |
1714 |
+ register const void *p; |
1715 |
+ |
1716 |
+ for (lim = nmemb; lim != 0; lim >>= 1) { |
1717 |
+ p = base + (lim >> 1) * size; |
1718 |
+ cmp = (*compar)(key, p, arg); |
1719 |
+ if (cmp == 0) |
1720 |
+ return (void *)p; |
1721 |
+ if (cmp > 0) { /* key > p: move right */ |
1722 |
+ base = (const char *)p + size; |
1723 |
+ lim--; |
1724 |
+ } /* else move left */ |
1725 |
+ } |
1726 |
+ return (NULL); |
1727 |
+} |
1728 |
|