From: "Ming Chow 周明" <chow.ming@linuxbj.com>
To: openembedded-devel@lists.openembedded.org
Subject: Re: [PATCH] linux-nokia800-2.6.21-osso71.bb fixed undefined reference to __aeabi_uldivmod problem when using gcc-4.3 compile linux-nokia800-2.6.21-osso71
Date: Thu, 27 Aug 2009 21:17:46 +0800 [thread overview]
Message-ID: <4A96877A.4030004@linuxbj.com> (raw)
In-Reply-To: <200908251501.59031.holger+oe@freyther.de>
[-- Attachment #1: Type: text/plain, Size: 810 bytes --]
Sure. Thank you.
Holger Hans Peter Freyther wrote:
> On Thursday 20 August 2009 20:10:42 Ming Chow 周明 wrote:
>
>> From bc8990dbee051e9f36a2b90761ce1f405f8dabc6 Mon Sep 17 00:00:00 2001
>> From: Ming Zhou <chow.ming@linuxbj.com>
>> Date: Fri, 21 Aug 2009 02:04:15 +0800
>> Subject: [PATCH] linux-nokia800-2.6.21-osso71.bb fixed undefined
>> reference to __aeabi_uldivmod problem when using gcc-4.3 compile
>> linux-nokia800-2.6.21-osso71
>>
>
>
> http://patchwork.openembedded.org/patch/975/
>
>
> Your mailer created a total mess, could you attempt to fix that?
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
>
[-- Attachment #2: 0001-fixed-undefined-reference-to-__aeabi_uldivmod-proble.patch --]
[-- Type: text/x-patch, Size: 3622 bytes --]
From bc8990dbee051e9f36a2b90761ce1f405f8dabc6 Mon Sep 17 00:00:00 2001
From: Ming Zhou <chow.ming@linuxbj.com>
Date: Fri, 21 Aug 2009 02:04:15 +0800
Subject: [PATCH] linux-nokia800_2.6.21-osso71.bb fixed undefined reference to __aeabi_uldivmod problem when using gcc-4.3 compile linux-nokia800-2.6.21-osso71
Signed-off-by: Ming Zhou <chow.ming@linuxbj.com>
---
...x-gcc-4.3-false-modulo-optimization.patch.patch | 48 ++++++++++++++++++++
recipes/linux/linux-nokia800_2.6.21-osso71.bb | 1 +
2 files changed, 49 insertions(+), 0 deletions(-)
create mode 100644 recipes/linux/linux-nokia800-2.6.21-osso71/1300-fix-gcc-4.3-false-modulo-optimization.patch.patch
diff --git a/recipes/linux/linux-nokia800-2.6.21-osso71/1300-fix-gcc-4.3-false-modulo-optimization.patch.patch b/recipes/linux/linux-nokia800-2.6.21-osso71/1300-fix-gcc-4.3-false-modulo-optimization.patch.patch
new file mode 100644
index 0000000..3ff0c07
--- /dev/null
+++ b/recipes/linux/linux-nokia800-2.6.21-osso71/1300-fix-gcc-4.3-false-modulo-optimization.patch.patch
@@ -0,0 +1,48 @@
+From f5b973489beb1a1239dfad53e3ad6e36ff7ee958 Mon Sep 17 00:00:00 2001
+From: Segher Boessenkool <segher@kernel.crashing.org>
+Date: Thu, 9 Oct 2008 21:18:27 +0100
+Subject: [PATCH] fix-gcc-4.3-false-modulo-optimization.patch
+
+I tried to compile the current stable kernel
+(a2ef813d2f439a3e9f377d33a2e5baad098afb7e)
+and get the following errors:
+
+kernel/built-in.o: In function `timespec_add_ns':
+/mnt/data/Freerunner/Gentoo/rootinstall/usr/src/linux/include/linux/time.h:174:
+undefined reference to `__aeabi_uldivmod'
+/mnt/data/Freerunner/Gentoo/rootinstall/usr/src/linux/include/linux/time.h:179:
+undefined reference to `__aeabi_uldivmod'
+/mnt/data/Freerunner/Gentoo/rootinstall/usr/src/linux/include/linux/time.h:174:
+undefined reference to `__aeabi_uldivmod'
+/mnt/data/Freerunner/Gentoo/rootinstall/usr/src/linux/include/linux/time.h:179:
+undefined reference to `__aeabi_uldivmod'
+
+applying the following patch solved the problem:
+--------
+Prevent gcc-4.3 form "optimizing" the while loop into a costly modulo operation.
+Patch found at http://lkml.org/lkml/2008/2/22/464.
+
+Reported-by: Sven Rebhan <odinshorse@googlemail.com>
+Signed-off-by: Segher Boessenkool <segher@kernel.crashing.org>
+---
+ include/linux/time.h | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+diff --git a/include/linux/time.h b/include/linux/time.h
+index b04136d..3e8fd9e 100644
+--- a/include/linux/time.h
++++ b/include/linux/time.h
+@@ -173,6 +173,10 @@ static inline void timespec_add_ns(struct timespec *a, u64 ns)
+ {
+ ns += a->tv_nsec;
+ while(unlikely(ns >= NSEC_PER_SEC)) {
++ /* The following asm() prevents the compiler from
++ * optimising this loop into a modulo operation. */
++ asm("" : "+r"(ns));
++
+ ns -= NSEC_PER_SEC;
+ a->tv_sec++;
+ }
+--
+1.5.6.5
+
diff --git a/recipes/linux/linux-nokia800_2.6.21-osso71.bb b/recipes/linux/linux-nokia800_2.6.21-osso71.bb
index 1ac4cf1..388df4f 100644
--- a/recipes/linux/linux-nokia800_2.6.21-osso71.bb
+++ b/recipes/linux/linux-nokia800_2.6.21-osso71.bb
@@ -8,6 +8,7 @@ SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.21.tar.bz2 \
http://www.rpsys.net/openzaurus/patches/archive/input_power-r7.patch;patch=1 \
file://suspend-button.patch;patch=1 \
file://linux-2.6-limits.patch;patch=1 \
+ file://1300-fix-gcc-4.3-false-modulo-optimization.patch.patch;patch=1 \
file://defconfig"
S = "${WORKDIR}/linux-2.6.21"
--
1.5.4.3
prev parent reply other threads:[~2009-08-27 13:35 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-20 18:10 [PATCH] linux-nokia800-2.6.21-osso71.bb fixed undefined reference to __aeabi_uldivmod problem when using gcc-4.3 compile linux-nokia800-2.6.21-osso71 Ming Chow 周明
2009-08-25 13:01 ` Holger Hans Peter Freyther
2009-08-27 13:17 ` Ming Chow 周明 [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4A96877A.4030004@linuxbj.com \
--to=chow.ming@linuxbj.com \
--cc=openembedded-devel@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.