1 |
vapier 08/06/29 23:12:06 |
2 |
|
3 |
Added: autoconf-2.62-at-keywords.patch |
4 |
autoconf-2.62-revert-AC_C_BIGENDIAN.patch |
5 |
autoconf-2.62-fix-multiline-string.patch |
6 |
Log: |
7 |
Add workarounds for nasty bugs #217976 (multiline problems) and #228825 (big endian misdetection on ppc). |
8 |
(Portage version: 2.2_rc1/cvs/Linux 2.6.25 x86_64) |
9 |
|
10 |
Revision Changes Path |
11 |
1.1 sys-devel/autoconf/files/autoconf-2.62-at-keywords.patch |
12 |
|
13 |
file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-devel/autoconf/files/autoconf-2.62-at-keywords.patch?rev=1.1&view=markup |
14 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-devel/autoconf/files/autoconf-2.62-at-keywords.patch?rev=1.1&content-type=text/plain |
15 |
|
16 |
Index: autoconf-2.62-at-keywords.patch |
17 |
=================================================================== |
18 |
commit 3ac7ceb0c2dfd023e0e9e944da6825b6bd676568 |
19 |
Author: Eric Blake <ebb9@×××.net> |
20 |
Date: Thu Jun 5 15:18:11 2008 -0600 |
21 |
|
22 |
Fix regression in AT_KEYWORDS([Macro]), from 2007-10-18. |
23 |
|
24 |
* lib/autotest/general.m4 (AT_KEYWORDS): Expand argument prior to |
25 |
converting it to lower case. |
26 |
* tests/autotest.at (Keywords and ranges): Test this. |
27 |
* NEWS: Document the fix. |
28 |
* THANKS: Update. |
29 |
Reported by Karsten Hopp. |
30 |
|
31 |
Signed-off-by: Eric Blake <ebb9@×××.net> |
32 |
|
33 |
diff --git a/NEWS b/NEWS |
34 |
index 183d4f1..8b866ad 100644 |
35 |
--- a/NEWS |
36 |
+++ b/NEWS |
37 |
@@ -9,6 +9,10 @@ GNU Autoconf NEWS - User visible changes. |
38 |
** Two new quadrigraphs have been introduced: @{:@ for (, and @:}@ for ), |
39 |
allowing the output of unbalanced parantheses in more contexts. |
40 |
|
41 |
+** AT_KEYWORDS once again performs expansion on its argument, such that |
42 |
+ AT_KEYWORDS([m4_if([$1], [], [default])]) no longer complains about |
43 |
+ the possibly unexpanded m4_if [regression introduced in 2.62]. |
44 |
+ |
45 |
|
46 |
* Major changes in Autoconf 2.62 (2008-04-05) [stable] |
47 |
Released by Eric Blake, based on git versions 2.61a.*. |
48 |
diff --git a/THANKS b/THANKS |
49 |
index 5ec8921..224cdea 100644 |
50 |
--- a/THANKS |
51 |
+++ b/THANKS |
52 |
@@ -177,6 +177,7 @@ Justace Clutter ? |
53 |
Jörn Rennecke amylaar@×××××××××.uk |
54 |
Karl Berry karl@××××××.edu |
55 |
Karl Heuer kwzh@×××.org |
56 |
+Karsten Hopp karsten@××××××.com |
57 |
Kate Hedstrom ? |
58 |
Kathryn Hargreaves kathryn@××××××××××××.edu |
59 |
Kaveh R. Ghazi ghazi@××××××××××××.edu |
60 |
diff --git a/lib/autotest/general.m4 b/lib/autotest/general.m4 |
61 |
index 88d10a3..993dd9f 100644 |
62 |
--- a/lib/autotest/general.m4 |
63 |
+++ b/lib/autotest/general.m4 |
64 |
@@ -1476,9 +1476,10 @@ m4_case([$1], |
65 |
# AT_KEYWORDS(KEYWORDS) |
66 |
# --------------------- |
67 |
# Declare a list of keywords associated to the current test group. |
68 |
-# The list is stored in lower case, since the -k option is case-insensitive. |
69 |
+# Since the -k option is case-insensitive, the list is stored in lower case |
70 |
+# to avoid duplicates that differ only by case. |
71 |
_AT_DEFINE_SETUP([AT_KEYWORDS], |
72 |
-[m4_append_uniq_w([AT_keywords], m4_tolower([[$1]]))]) |
73 |
+[m4_append_uniq_w([AT_keywords], m4_tolower(m4_dquote(m4_expand([$1]))))]) |
74 |
|
75 |
|
76 |
# AT_CAPTURE_FILE(FILE) |
77 |
diff --git a/tests/autotest.at b/tests/autotest.at |
78 |
index dc3cfd5..c4c0eda 100644 |
79 |
--- a/tests/autotest.at |
80 |
+++ b/tests/autotest.at |
81 |
@@ -690,7 +690,7 @@ AT_CHECK(:) |
82 |
AT_CLEANUP |
83 |
AT_SETUP(both) # 04 |
84 |
AT_KEYWORDS([key1 key2]) |
85 |
-AT_KEYWORDS([key1]) |
86 |
+AT_KEYWORDS([m4@&t@_echo([Key1])]) |
87 |
AT_CHECK(:) |
88 |
AT_CLEANUP |
89 |
AT_SETUP(test5) # 05 |
90 |
@@ -713,7 +713,7 @@ AT_CHECK(:) |
91 |
AT_CLEANUP |
92 |
]]) |
93 |
dnl check that AT_KEYWORDS does not duplicate words |
94 |
-AT_CHECK([grep 'key1.*key1' k], [1]) |
95 |
+AT_CHECK([grep -i 'key1.*key1' k], [1]) |
96 |
dnl check that -k requires an argument |
97 |
AT_CHECK([$CONFIG_SHELL ./k -k], [1], [], [ignore]) |
98 |
|
99 |
|
100 |
|
101 |
|
102 |
1.1 sys-devel/autoconf/files/autoconf-2.62-revert-AC_C_BIGENDIAN.patch |
103 |
|
104 |
file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-devel/autoconf/files/autoconf-2.62-revert-AC_C_BIGENDIAN.patch?rev=1.1&view=markup |
105 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-devel/autoconf/files/autoconf-2.62-revert-AC_C_BIGENDIAN.patch?rev=1.1&content-type=text/plain |
106 |
|
107 |
Index: autoconf-2.62-revert-AC_C_BIGENDIAN.patch |
108 |
=================================================================== |
109 |
revert AC_C_BIGENDIAN to the version found in 2.61 since the version in 2.62 is |
110 |
known to be broken and the changes that it brings are not critical |
111 |
|
112 |
http://bugs.gentoo.org/228825 |
113 |
|
114 |
--- autoconf-2.62/lib/autoconf/c.m4 |
115 |
+++ autoconf-2.61/lib/autoconf/c.m4 |
116 |
@@ -1393,140 +1351,74 @@ |
117 |
])# AC_C_CHAR_UNSIGNED |
118 |
|
119 |
|
120 |
-# AC_C_BIGENDIAN ([ACTION-IF-TRUE], [ACTION-IF-FALSE], [ACTION-IF-UNKNOWN], |
121 |
-# [ACTION-IF-UNIVERSAL]) |
122 |
+# AC_C_BIGENDIAN ([ACTION-IF-TRUE], [ACTION-IF-FALSE], [ACTION-IF-UNKNOWN]) |
123 |
# ------------------------------------------------------------------------- |
124 |
AC_DEFUN([AC_C_BIGENDIAN], |
125 |
-[AH_VERBATIM([WORDS_BIGENDIAN], |
126 |
-[/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most |
127 |
- significant byte first (like Motorola and SPARC, unlike Intel and VAX). */ |
128 |
-#if defined __BIG_ENDIAN__ |
129 |
-# define WORDS_BIGENDIAN 1 |
130 |
-#elif ! defined __LITTLE_ENDIAN__ |
131 |
-# undef WORDS_BIGENDIAN |
132 |
-#endif])dnl |
133 |
- AC_CACHE_CHECK([whether byte ordering is bigendian], [ac_cv_c_bigendian], |
134 |
- [ac_cv_c_bigendian=unknown |
135 |
- m4_ifval(m4_ifdef([AH_HEADER], 1)[$4], |
136 |
- [# See if __BIG_ENDIAN__ or __LITTLE_ENDIAN__ is defined. |
137 |
- AC_COMPILE_IFELSE( |
138 |
- [AC_LANG_SOURCE( |
139 |
- [[#if ! (defined __BIG_ENDIAN__ || defined __LITTLE_ENDIAN__) |
140 |
- neither is defined; |
141 |
- #endif |
142 |
- typedef int dummy; |
143 |
- ]])], |
144 |
- [ac_cv_c_bigendian=universal])], |
145 |
- [AC_DIAGNOSE([obsolete], [AC_C_BIGENDIAN suggests AC_CONFIG_HEADERS])]) |
146 |
- if test $ac_cv_c_bigendian = unknown; then |
147 |
- # See if sys/param.h defines the BYTE_ORDER macro. |
148 |
- AC_COMPILE_IFELSE( |
149 |
- [AC_LANG_PROGRAM( |
150 |
- [[#include <sys/types.h> |
151 |
- #include <sys/param.h> |
152 |
- ]], |
153 |
- [[#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ |
154 |
- && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ |
155 |
- && LITTLE_ENDIAN) |
156 |
- bogus endian macros |
157 |
- #endif |
158 |
- ]])], |
159 |
- [# It does; now see whether it defined to BIG_ENDIAN or not. |
160 |
- AC_COMPILE_IFELSE( |
161 |
- [AC_LANG_PROGRAM( |
162 |
- [[#include <sys/types.h> |
163 |
- #include <sys/param.h> |
164 |
- ]], |
165 |
- [[#if BYTE_ORDER != BIG_ENDIAN |
166 |
- not big endian |
167 |
- #endif |
168 |
- ]])], |
169 |
- [ac_cv_c_bigendian=yes], |
170 |
- [ac_cv_c_bigendian=no])]) |
171 |
- fi |
172 |
- if test $ac_cv_c_bigendian = unknown; then |
173 |
- # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). |
174 |
- AC_COMPILE_IFELSE( |
175 |
- [AC_LANG_PROGRAM( |
176 |
- [[#include <limits.h> |
177 |
- ]], |
178 |
- [[#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) |
179 |
- bogus endian macros |
180 |
- #endif |
181 |
- ]])], |
182 |
- [# It does; now see whether it defined to _BIG_ENDIAN or not. |
183 |
- AC_COMPILE_IFELSE( |
184 |
- [AC_LANG_PROGRAM( |
185 |
- [[#include <limits.h> |
186 |
- ]], |
187 |
- [[#ifndef _BIG_ENDIAN |
188 |
- not big endian |
189 |
- #endif |
190 |
- ]])], |
191 |
- [ac_cv_c_bigendian=yes], |
192 |
- [ac_cv_c_bigendian=no])]) |
193 |
- fi |
194 |
- if test $ac_cv_c_bigendian = unknown; then |
195 |
- # Compile a test program. |
196 |
- AC_RUN_IFELSE( |
197 |
- [AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT], |
198 |
- [[ |
199 |
- /* Are we little or big endian? From Harbison&Steele. */ |
200 |
- union |
201 |
- { |
202 |
- long int l; |
203 |
- char c[sizeof (long int)]; |
204 |
- } u; |
205 |
- u.l = 1; |
206 |
- return u.c[sizeof (long int) - 1] == 1; |
207 |
- ]])], |
208 |
- [ac_cv_c_bigendian=no], |
209 |
- [ac_cv_c_bigendian=yes], |
210 |
- [# Try to guess by grepping values from an object file. |
211 |
- AC_COMPILE_IFELSE( |
212 |
- [AC_LANG_PROGRAM( |
213 |
- [[short int ascii_mm[] = |
214 |
- { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; |
215 |
- short int ascii_ii[] = |
216 |
- { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; |
217 |
- int use_ascii (int i) { |
218 |
- return ascii_mm[i] + ascii_ii[i]; |
219 |
- } |
220 |
- short int ebcdic_ii[] = |
221 |
- { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; |
222 |
- short int ebcdic_mm[] = |
223 |
- { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; |
224 |
- int use_ebcdic (int i) { |
225 |
- return ebcdic_mm[i] + ebcdic_ii[i]; |
226 |
- } |
227 |
- extern int foo; |
228 |
- ]], |
229 |
- [[return use_ascii (foo) == use_ebcdic (foo);]])], |
230 |
- [if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then |
231 |
- ac_cv_c_bigendian=yes |
232 |
- fi |
233 |
- if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then |
234 |
- if test "$ac_cv_c_bigendian" = unknown; then |
235 |
- ac_cv_c_bigendian=no |
236 |
- else |
237 |
- # finding both strings is unlikely to happen, but who knows? |
238 |
- ac_cv_c_bigendian=unknown |
239 |
- fi |
240 |
- fi])]) |
241 |
- fi]) |
242 |
- case $ac_cv_c_bigendian in #( |
243 |
- yes) |
244 |
- m4_default([$1], |
245 |
- [AC_DEFINE([WORDS_BIGENDIAN], 1)]);; #( |
246 |
- no) |
247 |
- $2 ;; #( |
248 |
- universal) |
249 |
- $4 ;; #( |
250 |
- *) |
251 |
- m4_default([$3], |
252 |
- [AC_MSG_ERROR([unknown endianness |
253 |
- presetting ac_cv_c_bigendian=no (or yes) will help])]) ;; |
254 |
- esac |
255 |
+[AC_CACHE_CHECK(whether byte ordering is bigendian, ac_cv_c_bigendian, |
256 |
+[# See if sys/param.h defines the BYTE_ORDER macro. |
257 |
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <sys/types.h> |
258 |
+#include <sys/param.h> |
259 |
+], |
260 |
+[#if ! (defined BYTE_ORDER && defined BIG_ENDIAN && defined LITTLE_ENDIAN \ |
261 |
+ && BYTE_ORDER && BIG_ENDIAN && LITTLE_ENDIAN) |
262 |
+ bogus endian macros |
263 |
+#endif |
264 |
+])], |
265 |
+[# It does; now see whether it defined to BIG_ENDIAN or not. |
266 |
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <sys/types.h> |
267 |
+#include <sys/param.h> |
268 |
+], [#if BYTE_ORDER != BIG_ENDIAN |
269 |
+ not big endian |
270 |
+#endif |
271 |
+])], [ac_cv_c_bigendian=yes], [ac_cv_c_bigendian=no])], |
272 |
+[# It does not; compile a test program. |
273 |
+AC_RUN_IFELSE( |
274 |
+[AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT], [[ |
275 |
+ /* Are we little or big endian? From Harbison&Steele. */ |
276 |
+ union |
277 |
+ { |
278 |
+ long int l; |
279 |
+ char c[sizeof (long int)]; |
280 |
+ } u; |
281 |
+ u.l = 1; |
282 |
+ return u.c[sizeof (long int) - 1] == 1; |
283 |
+]])], |
284 |
+ [ac_cv_c_bigendian=no], |
285 |
+ [ac_cv_c_bigendian=yes], |
286 |
+[# try to guess the endianness by grepping values into an object file |
287 |
+ ac_cv_c_bigendian=unknown |
288 |
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM( |
289 |
+[[short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; |
290 |
+short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; |
291 |
+void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; } |
292 |
+short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; |
293 |
+short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; |
294 |
+void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; }]], |
295 |
+[[ _ascii (); _ebcdic (); ]])], |
296 |
+[if grep BIGenDianSyS conftest.$ac_objext >/dev/null ; then |
297 |
+ ac_cv_c_bigendian=yes |
298 |
+fi |
299 |
+if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then |
300 |
+ if test "$ac_cv_c_bigendian" = unknown; then |
301 |
+ ac_cv_c_bigendian=no |
302 |
+ else |
303 |
+ # finding both strings is unlikely to happen, but who knows? |
304 |
+ ac_cv_c_bigendian=unknown |
305 |
+ fi |
306 |
+fi])])])]) |
307 |
+case $ac_cv_c_bigendian in |
308 |
+ yes) |
309 |
+ m4_default([$1], |
310 |
+ [AC_DEFINE([WORDS_BIGENDIAN], 1, |
311 |
+ [Define to 1 if your processor stores words with the most significant |
312 |
+ byte first (like Motorola and SPARC, unlike Intel and VAX).])]) ;; |
313 |
+ no) |
314 |
+ $2 ;; |
315 |
+ *) |
316 |
+ m4_default([$3], |
317 |
+ [AC_MSG_ERROR([unknown endianness |
318 |
+presetting ac_cv_c_bigendian=no (or yes) will help])]) ;; |
319 |
+esac |
320 |
])# AC_C_BIGENDIAN |
321 |
|
322 |
|
323 |
|
324 |
|
325 |
|
326 |
1.1 sys-devel/autoconf/files/autoconf-2.62-fix-multiline-string.patch |
327 |
|
328 |
file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-devel/autoconf/files/autoconf-2.62-fix-multiline-string.patch?rev=1.1&view=markup |
329 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-devel/autoconf/files/autoconf-2.62-fix-multiline-string.patch?rev=1.1&content-type=text/plain |
330 |
|
331 |
Index: autoconf-2.62-fix-multiline-string.patch |
332 |
=================================================================== |
333 |
sniped from mandrivia: |
334 |
http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/autoconf/current/SOURCES/autoconf-2.62-fix-multiline-string.patch |
335 |
|
336 |
this may not be the correct fix, but it seems to get the job done until we can |
337 |
grab whatever upstream merges |
338 |
http://lists.gnu.org/archive/html/bug-autoconf/2008-04/msg00031.html |
339 |
|
340 |
--- autoconf-2.62/lib/autoconf/status.m4 |
341 |
+++ autoconf-2.62/lib/autoconf/status.m4 |
342 |
@@ -1360,16 +1360,16 @@ _ACEOF |
343 |
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 |
344 |
# Files that config.status was made for. |
345 |
m4_ifdef([_AC_SEEN_CONFIG(FILES)], |
346 |
-[config_files="$ac_config_files" |
347 |
+[config_files="`echo $ac_config_files`" |
348 |
])dnl |
349 |
m4_ifdef([_AC_SEEN_CONFIG(HEADERS)], |
350 |
-[config_headers="$ac_config_headers" |
351 |
+[config_headers="`echo $ac_config_headers`" |
352 |
])dnl |
353 |
m4_ifdef([_AC_SEEN_CONFIG(LINKS)], |
354 |
-[config_links="$ac_config_links" |
355 |
+[config_links="`echo $ac_config_links`" |
356 |
])dnl |
357 |
m4_ifdef([_AC_SEEN_CONFIG(COMMANDS)], |
358 |
-[config_commands="$ac_config_commands" |
359 |
+[config_commands="`echo $ac_config_commands`" |
360 |
])dnl |
361 |
|
362 |
_ACEOF |
363 |
|
364 |
|
365 |
|
366 |
-- |
367 |
gentoo-commits@l.g.o mailing list |