* [U-Boot] undefined reference to `abort'
@ 2011-12-05 16:43 Shadid, Bill
2011-12-05 17:28 ` Mike Frysinger
2011-12-05 19:56 ` Wolfgang Denk
0 siblings, 2 replies; 8+ messages in thread
From: Shadid, Bill @ 2011-12-05 16:43 UTC (permalink / raw)
To: u-boot
This is a follow-up to my issue, re:
/opt/embedded/tools/usr/bin/../lib/gcc/powerpc-linux/4.2.2/m8540/libgcc.a(divsf3.o): In function `__divsf3':
/opt/eldk/build/ppc-2008-04-01/work/usr/src/denx/BUILD/crosstool-0.43/build/gcc-4.2.2-glibc-20070515T2025-eldk/powerpc-linux/gcc-4.2.2/gcc/config/soft-fp/divsf3.c:44: undefined reference to `abort'
/opt/embedded/tools/usr/bin/../lib/gcc/powerpc-linux/4.2.2/m8540/libgcc.a(mulsf3.o): In function `__mulsf3':
/opt/eldk/build/ppc-2008-04-01/work/usr/src/denx/BUILD/crosstool-0.43/build/gcc-4.2.2-glibc-20070515T2025-eldk/powerpc-linux/gcc-4.2.2/gcc/config/soft-fp/mulsf3.c:44: undefined reference to `abort'
/opt/embedded/tools/usr/bin/../lib/gcc/powerpc-linux/4.2.2/m8540/libgcc.a(divdf3.o): In function `__divdf3':
/opt/eldk/build/ppc-2008-04-01/work/usr/src/denx/BUILD/crosstool-0.43/build/gcc-4.2.2-glibc-20070515T2025-eldk/powerpc-linux/gcc-4.2.2/gcc/config/soft-fp/divdf3.c:44: undefined reference to `abort'
/opt/embedded/tools/usr/bin/../lib/gcc/powerpc-linux/4.2.2/m8540/libgcc.a(muldf3.o): In function `__muldf3':
/opt/eldk/build/ppc-2008-04-01/work/usr/src/denx/BUILD/crosstool-0.43/build/gcc-4.2.2-glibc-20070515T2025-eldk/powerpc-linux/gcc-4.2.2/gcc/config/soft-fp/muldf3.c:44: undefined reference to `abort'
It was suggested that I should migrate to a newer version of u-boot to resolve the issue.
I downloaded and compiled with u-boot-2011.03-rc and the compiler reported the same errors.
We thought that maybe the rc release was not the best choice so we tried the port with u-boot 1.3.1. and again, got the same compile errors.
I did a little more digging and found that anywhere that I perform a multiply or divide operation using a float variable, the code will compile as a muldf3 or divdf3 call. So, I'm guessing that the libgcc in ELDK4.2.2 differs from that in ELDK 4.0. Is there some option I need to add to the compile expression in the Makefile to satisfy the new libgcc-floating math functions?
Thank you in advance for your assistance,
Bill.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [U-Boot] undefined reference to `abort'
2011-12-05 16:43 [U-Boot] undefined reference to `abort' Shadid, Bill
@ 2011-12-05 17:28 ` Mike Frysinger
2011-12-05 17:56 ` Matthias Weißer
2011-12-05 19:56 ` Wolfgang Denk
1 sibling, 1 reply; 8+ messages in thread
From: Mike Frysinger @ 2011-12-05 17:28 UTC (permalink / raw)
To: u-boot
On Monday 05 December 2011 11:43:09 Shadid, Bill wrote:
> /opt/embedded/tools/usr/bin/../lib/gcc/powerpc-linux/4.2.2/m8540/libgcc.a(d
> ivsf3.o): In function `__divsf3':
> /opt/eldk/build/ppc-2008-04-01/work/usr/src/denx/BUILD/crosstool-0.43/buil
> d/gcc-4.2.2-glibc-20070515T2025-eldk/powerpc-linux/gcc-4.2.2/gcc/config/sof
> t-fp/divsf3.c:44: undefined reference to `abort'
looks like you should be using a diff cross-compiler. or ppc should grow
private libgcc support.
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20111205/e2d84d33/attachment.pgp>
^ permalink raw reply [flat|nested] 8+ messages in thread
* [U-Boot] undefined reference to `abort'
2011-12-05 17:28 ` Mike Frysinger
@ 2011-12-05 17:56 ` Matthias Weißer
2011-12-05 18:13 ` Shadid, Bill
2011-12-05 19:12 ` Mike Frysinger
0 siblings, 2 replies; 8+ messages in thread
From: Matthias Weißer @ 2011-12-05 17:56 UTC (permalink / raw)
To: u-boot
Am 05.12.2011 18:28, schrieb Mike Frysinger:
> On Monday 05 December 2011 11:43:09 Shadid, Bill wrote:
>> /opt/embedded/tools/usr/bin/../lib/gcc/powerpc-linux/4.2.2/m8540/libgcc.a(d
>> ivsf3.o): In function `__divsf3':
>> /opt/eldk/build/ppc-2008-04-01/work/usr/src/denx/BUILD/crosstool-0.43/buil
>> d/gcc-4.2.2-glibc-20070515T2025-eldk/powerpc-linux/gcc-4.2.2/gcc/config/sof
>> t-fp/divsf3.c:44: undefined reference to `abort'
>
> looks like you should be using a diff cross-compiler. or ppc should grow
> private libgcc support.
> -mike
Or just don't use any floating point operations in a bootloader. There
seems to be some usages of floats around in u-boot but most (all?) of
them are compile time calculations.
Just curious: Bill, what is the use case for float at runtime?
Matthias
^ permalink raw reply [flat|nested] 8+ messages in thread
* [U-Boot] undefined reference to `abort'
2011-12-05 17:56 ` Matthias Weißer
@ 2011-12-05 18:13 ` Shadid, Bill
2011-12-05 20:05 ` Wolfgang Denk
2011-12-05 19:12 ` Mike Frysinger
1 sibling, 1 reply; 8+ messages in thread
From: Shadid, Bill @ 2011-12-05 18:13 UTC (permalink / raw)
To: u-boot
I've added a test suite to the build that can be accessed while at the u-boot prompt. The suite allows folks to verify various h/w components without running an OS. The suite contains some algorithms to convert sensor data to voltage, current, power and temperature. I can modify some of these calculations to use integer math instead but in 1 case there is a polynomial with larger exponents. I'm almost ready to give up, so this is my last stab at resolving the issue.
Its surprising that this code compiled and ran fine with ELDK 4.0 but has compile issues with 4.2. I guess some floating-point support was removed. I'm still not clear why the abort function is called and I say called because when we do throw in our own abort function that calls printf or forever loops, its gets executed and hangs u-boot.
Thanks for your help,
Bill.
-----Original Message-----
From: Matthias Wei?er [mailto:m.weisser.m at googlemail.com]
Sent: December 5, 2011 12:57 PM
To: Mike Frysinger
Cc: u-boot at lists.denx.de; Shadid, Bill
Subject: Re: [U-Boot] undefined reference to `abort'
Am 05.12.2011 18:28, schrieb Mike Frysinger:
> On Monday 05 December 2011 11:43:09 Shadid, Bill wrote:
>> /opt/embedded/tools/usr/bin/../lib/gcc/powerpc-linux/4.2.2/m8540/libg
>> cc.a(d
>> ivsf3.o): In function `__divsf3':
>> /opt/eldk/build/ppc-2008-04-01/work/usr/src/denx/BUILD/crosstool-0.43
>> /buil
>> d/gcc-4.2.2-glibc-20070515T2025-eldk/powerpc-linux/gcc-4.2.2/gcc/conf
>> ig/sof
>> t-fp/divsf3.c:44: undefined reference to `abort'
>
> looks like you should be using a diff cross-compiler. or ppc should
> grow private libgcc support.
> -mike
Or just don't use any floating point operations in a bootloader. There seems to be some usages of floats around in u-boot but most (all?) of them are compile time calculations.
Just curious: Bill, what is the use case for float at runtime?
Matthias
^ permalink raw reply [flat|nested] 8+ messages in thread
* [U-Boot] undefined reference to `abort'
2011-12-05 18:13 ` Shadid, Bill
@ 2011-12-05 20:05 ` Wolfgang Denk
[not found] ` <E7F97B349C2A6843B718B2DDF2F9A8F01694328C@EMAIL.corp.neptec.com>
0 siblings, 1 reply; 8+ messages in thread
From: Wolfgang Denk @ 2011-12-05 20:05 UTC (permalink / raw)
To: u-boot
Dear "Shadid, Bill",
In message <E7F97B349C2A6843B718B2DDF2F9A8F016941C55@EMAIL.corp.neptec.com> you wrote:
>
>
> Its surprising that this code compiled and ran fine with ELDK 4.0 but
> has compile issues with 4.2. I guess some floating-point support was
> removed. I'm still not clear why the abort function is called and I
> say called because when we do throw in our own abort function that
> calls printf or forever loops, its gets executed and hangs u-boot.
On contrary. ELDK 4.2 added VFP floating point support, so now you
are actually generating such code while before with ELDk 4.0
everything was soft-float.
Fact is, U-Boot does not support floating point code. Don't use it.
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Einstein argued that there must be simplified explanations of nature,
because God is not capricious or arbitrary. No such faith comforts
the software engineer. - Fred Brooks, Jr.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [U-Boot] undefined reference to `abort'
2011-12-05 17:56 ` Matthias Weißer
2011-12-05 18:13 ` Shadid, Bill
@ 2011-12-05 19:12 ` Mike Frysinger
1 sibling, 0 replies; 8+ messages in thread
From: Mike Frysinger @ 2011-12-05 19:12 UTC (permalink / raw)
To: u-boot
On Monday 05 December 2011 12:56:48 Matthias Wei?er wrote:
> Am 05.12.2011 18:28, schrieb Mike Frysinger:
> > On Monday 05 December 2011 11:43:09 Shadid, Bill wrote:
> >> /opt/embedded/tools/usr/bin/../lib/gcc/powerpc-linux/4.2.2/m8540/libgcc.
> >> a(d ivsf3.o): In function `__divsf3':
> >> /opt/eldk/build/ppc-2008-04-01/work/usr/src/denx/BUILD/crosstool-0.43/bu
> >> il
> >> d/gcc-4.2.2-glibc-20070515T2025-eldk/powerpc-linux/gcc-4.2.2/gcc/config
> >> /sof t-fp/divsf3.c:44: undefined reference to `abort'
> >
> > looks like you should be using a diff cross-compiler. or ppc should grow
> > private libgcc support.
>
> Or just don't use any floating point operations in a bootloader. There
> seems to be some usages of floats around in u-boot but most (all?) of
> them are compile time calculations.
ah, yes, those are all float funcs. what Matthias said then.
(note, some ports like ARM call abort() in their integer routines in libgcc
which is what i thought was going on here)
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20111205/4875b779/attachment.pgp>
^ permalink raw reply [flat|nested] 8+ messages in thread
* [U-Boot] undefined reference to `abort'
2011-12-05 16:43 [U-Boot] undefined reference to `abort' Shadid, Bill
2011-12-05 17:28 ` Mike Frysinger
@ 2011-12-05 19:56 ` Wolfgang Denk
1 sibling, 0 replies; 8+ messages in thread
From: Wolfgang Denk @ 2011-12-05 19:56 UTC (permalink / raw)
To: u-boot
Dear "Shadid, Bill",
In message <E7F97B349C2A6843B718B2DDF2F9A8F016941C02@EMAIL.corp.neptec.com> you wrote:
>
> It was suggested that I should migrate to a newer version of u-boot to resolve the issue.
>
> I downloaded and compiled with u-boot-2011.03-rc and the compiler reported the same errors.
Would you please be so kind and explain why you decided to consider
this "a newer version"?
ANd why you, for example, did not use v2011.09, or later code?
> We thought that maybe the rc release was not the best choice so we tried the port with u-boot 1.3.1. and again, got the same compile errors.
v1.3.1 is more than 4 years old.
Please update, and use _recent_ code, i. e. at least v2011.09, or
later.
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"What the scientists have in their briefcases is terrifying."
- Nikita Khrushchev
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2011-12-05 22:37 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-12-05 16:43 [U-Boot] undefined reference to `abort' Shadid, Bill
2011-12-05 17:28 ` Mike Frysinger
2011-12-05 17:56 ` Matthias Weißer
2011-12-05 18:13 ` Shadid, Bill
2011-12-05 20:05 ` Wolfgang Denk
[not found] ` <E7F97B349C2A6843B718B2DDF2F9A8F01694328C@EMAIL.corp.neptec.com>
2011-12-05 22:37 ` Wolfgang Denk
2011-12-05 19:12 ` Mike Frysinger
2011-12-05 19:56 ` Wolfgang Denk
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox