From: Chris Ruehl <chris.ruehl@gtsys.com.hk>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] JFFS2: Fix undefined reference to `__aeabi_uldivmod' error
Date: Mon, 28 Oct 2013 10:22:12 +0800 [thread overview]
Message-ID: <526DCA54.1050806@gtsys.com.hk> (raw)
In-Reply-To: <20131027200715.30C633811DD@gemini.denx.de>
Wolfgang,
good morning.
On Monday, October 28, 2013 04:07 AM, Wolfgang Denk wrote:
> In message <1382865251-17302-1-git-send-email-wd@denx.de> I wrote:
>> Building boards that have JFFS2 support enabled will fail when using
>> U-Boot's builtin GCC library, for example like this:
>>
>> USE_PRIVATE_LIBGCC=yes ./MAKEALL omap3_evm
>> ...
>> fs/jffs2/libjffs2.o: In function `jffs2_1pass_build_lists':
>> fs/jffs2/jffs2_1pass.c:1441: undefined reference to `__aeabi_uldivmod'
>>
>> This is caused by a u64 / u32 division in jffs2_1pass.c; the problem
>> can be avoided by using do_div() instead of plain division.
>>
>> Signed-off-by: Wolfgang Denk <wd@denx.de>
>> Reported-by: Chris Ruehl <chris.ruehl@gtsys.com.hk>
>> Cc: Chris Ruehl <chris.ruehl@gtsys.com.hk>
> I would like to withdraw this patch.
>
> It appears nobody has been running a MAKEALL with USE_PRIVATE_LIBGCC
> enabled for a long, long time. There are a number of other places
> that show similar problems. Instead of fixing these one by one, I
> think we should rather bundle this.
>
> I'm working on a more complete patch (or patch series).
>
> Best regards,
>
> Wolfgang Denk
>
The test of your patch works with the linaro 2013.09 tool chain.
I had to add the missing header only
#include <div64.h> which is required for the build.
diff --git a/fs/jffs2/jffs2_1pass.c b/fs/jffs2/jffs2_1pass.c
index c856983..e6b50de 100644
--- a/fs/jffs2/jffs2_1pass.c
+++ b/fs/jffs2/jffs2_1pass.c
@@ -121,6 +121,7 @@
#include <jffs2/jffs2_1pass.h>
#include <linux/compat.h>
#include <asm/errno.h>
+#include <div64.h>
#include "jffs2_private.h"
@@ -1438,7 +1439,7 @@ jffs2_1pass_build_lists(struct part_info * part)
{
struct b_lists *pL;
struct jffs2_unknown_node *node;
- u32 nr_sectors = part->size/part->sector_size;
+ u32 nr_sectors = do_div(part->size,part->sector_size);
u32 i;
u32 counter4 = 0;
u32 counterF = 0;
cd /opt/cross_build/uboot.d/u-boot-git/spl/ &&
arm-linux-gnueabihf-ld.bfd -T
/opt/cross_build/uboot.d/u-boot-git/spl/u-boot-spl.lds --gc-sections
--gc-sections -Bstatic -Ttext 0xa0000000 arch/arm/cpu/arm926ejs/start.o
--start-group arch/arm/cpu/arm926ejs/libarm926ejs.o
arch/arm/cpu/arm926ejs/mx27/libmx27.o
arch/arm/imx-common/libimx-common.o arch/arm/lib/libarm.o
board/gtsys/common/libgtsys.o board/gtsys/mx27gtsir/libmx27gtsir.o
drivers/mtd/nand/libnand.o --end-group
/opt/cross_build/uboot.d/u-boot-git/spl/arch/arm/lib/eabi_compat.o
/opt/cross_build/uboot.d/u-boot-git/spl/arch/arm/lib/libgcc.o -Map
u-boot-spl.map -o u-boot-spl
arm-linux-gnueabihf-objcopy --gap-fill=0xff -O binary
/opt/cross_build/uboot.d/u-boot-git/spl/u-boot-spl
/opt/cross_build/uboot.d/u-boot-git/spl/u-boot-spl.bin
make[1]: Leaving directory `/opt/cross_build/uboot.d/u-boot-git/spl'
arm-linux-gnueabihf-objcopy --gap-fill=0xff --pad-to=0x800 -I binary -O
binary spl/u-boot-spl.bin spl/u-boot-spl-pad.bin; cat
spl/u-boot-spl-pad.bin u-boot.bin > u-boot-with-spl.bin; rm
spl/u-boot-spl-pad.bin
Regards
Chris
next prev parent reply other threads:[~2013-10-28 2:22 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-22 12:13 [U-Boot] v2013.10 failed build with jffs2 cmd Wolfgang Denk
2013-10-23 0:36 ` Chris Ruehl
2013-10-23 1:44 ` Chris Ruehl
2013-10-27 9:14 ` [U-Boot] [PATCH] JFFS2: Fix undefined reference to `__aeabi_uldivmod' error Wolfgang Denk
2013-10-27 9:46 ` Chris Ruehl
2013-10-27 10:01 ` Wolfgang Denk
2013-10-27 23:50 ` Chris Ruehl
2013-10-27 18:17 ` Daniel Schwierzeck
2013-10-27 20:07 ` Wolfgang Denk
2013-10-28 2:22 ` Chris Ruehl [this message]
2013-11-22 4:55 ` Gupta, Pekon
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=526DCA54.1050806@gtsys.com.hk \
--to=chris.ruehl@gtsys.com.hk \
--cc=u-boot@lists.denx.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox