--- Begin Message ---
Subject: |
Coreutils-8.20 mips build broken |
Date: |
Fri, 4 Jan 2013 07:45:52 +0200 |
I've tried to update coreutils version used in OpenEmbedded. I've been
building for x86, arm, and mips architectures. Coreutils-8.19 builds
fine for all three, but 8.20 fails on mips with lots of "unable to
emulate 'TI'" errors and "right whift count >= width of type" warnings
from src/factor.c. First error comes from line 766.
- ML
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#13353: Coreutils-8.20 mips build broken |
Date: |
Fri, 04 Jan 2013 17:02:14 +0000 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20120615 Thunderbird/13.0.1 |
On 01/04/2013 04:23 PM, Marko Lindqvist wrote:
On 4 January 2013 14:12, Pádraig Brady <address@hidden> wrote:
So could you try the following patch.
diff src/longlong.h.orig src/longlong.h
1240c1240
< #if (defined (__mips) && __mips >= 3) && W_TYPE_SIZE == 64
---
#if (defined (__mips) && __mips >= 3) && W_TYPE_SIZE == 64 && defined
(_LP64)
thanks,
Pádraig.
Yes, that works. Thank you.
OK cool.
I think I'll use this more general patch instead.
thanks,
Pádraig.
diff --git a/src/factor.c b/src/factor.c
index 473eee7..95451a5 100644
--- a/src/factor.c
+++ b/src/factor.c
@@ -118,7 +118,14 @@
#endif
#ifndef USE_LONGLONG_H
-# define USE_LONGLONG_H 1
+/* With the way we use longlong.h, it's only safe to use
+ when UWtype = UHWtype, as there were various cases
+ (as can be seen in the history for longlong.h) where
+ for example, _LP64 was required to enable W_TYPE_SIZE==64 code,
+ to avoid compile time or run time issues. */
+# if LONG_MAX == INTMAX_MAX
+# define USE_LONGLONG_H 1
+# endif
#endif
#if USE_LONGLONG_H
--- End Message ---