[U-Boot] CONFIG_API, EABI and raise()

Hi.
While working on U-Boot for our board we have found problem related to CONFIG_API option. In general, enabling it causes build failure. Our tests showed that problem exists also on other ARM U-Boot targets (for example davinci_dvevm).
Do you think that this problem may be caused by your libgcc-related cleanups ? If so, do you have any idea how to fix it ?
Failing Build log: arm-ld crt0.o -Ttext 0x1000000 \ -o demo demo.o libglue.a \ -L/home/services/eldk/4.2/arm/usr/bin/../lib/gcc/arm-linux-gnueabi/4.2.2 -lgcc arm-ld: ERROR: Source object /home/services/eldk/4.2/arm/usr/bin/../lib/gcc/arm-linux-gnueabi/4.2.2/libgcc.a(_udivsi3.o) has EABI version 4, but target demo has EABI version 0 arm-ld: failed to merge target specific data of file /home/services/eldk/4.2/arm/usr/bin/../lib/gcc/arm-linux-gnueabi/4.2.2/libgcc.a(_udivsi3.o) arm-ld: ERROR: Source object /home/services/eldk/4.2/arm/usr/bin/../lib/gcc/arm-linux-gnueabi/4.2.2/libgcc.a(_umodsi3.o) has EABI version 4, but target demo has EABI version 0 arm-ld: failed to merge target specific data of file /home/services/eldk/4.2/arm/usr/bin/../lib/gcc/arm-linux-gnueabi/4.2.2/libgcc.a(_umodsi3.o) arm-ld: ERROR: Source object /home/services/eldk/4.2/arm/usr/bin/../lib/gcc/arm-linux-gnueabi/4.2.2/libgcc.a(_dvmd_lnx.o) has EABI version 4, but target demo has EABI version 0 arm-ld: failed to merge target specific data of file /home/services/eldk/4.2/arm/usr/bin/../lib/gcc/arm-linux-gnueabi/4.2.2/libgcc.a(_dvmd_lnx.o) /home/services/eldk/4.2/arm/usr/bin/../lib/gcc/arm-linux-gnueabi/4.2.2/libgcc.a(_dvmd_lnx.o): In function `__div0': /opt/eldk/build/arm-2008-11-24/work/usr/src/denx/BUILD/crosstool-0.43/build/gcc-4.2.2-glibc-20070515T2025-eldk/arm-linux-gnueabi/gcc-4.2.2/gcc/config/arm/lib1funcs.asm:1000: undefined reference to `raise'

On Tuesday 14 July 2009 09:47:26 Piotr Zięcik wrote:
While working on U-Boot for our board we have found problem related to CONFIG_API option. In general, enabling it causes build failure. Our tests showed that problem exists also on other ARM U-Boot targets (for example davinci_dvevm).
Do you think that this problem may be caused by your libgcc-related cleanups ? If so, do you have any idea how to fix it ?
sounds more like it's always been a bug, but Jean's cleanup will fix it eventually -mike

On Wednesday 15 July 2009 16:58:40 Mike Frysinger wrote:
On Tuesday 14 July 2009 09:47:26 Piotr Zięcik wrote:
While working on U-Boot for our board we have found problem related to CONFIG_API option. In general, enabling it causes build failure. Our tests showed that problem exists also on other ARM U-Boot targets (for example davinci_dvevm).
Do you think that this problem may be caused by your libgcc-related cleanups ? If so, do you have any idea how to fix it ?
sounds more like it's always been a bug, but Jean's cleanup will fix it eventually
That's my understanding too.
I vote for accepting Jean-Christophe's libgcc patches in the latest version. They definitely fix some ugly problems seen on ARM (build failures, etc) and make life easier.
Best regards, Stefan
===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office@denx.de =====================================================================

Dear Stefan Roese,
In message 200907151710.04262.sr@denx.de you wrote:
I vote for accepting Jean-Christophe's libgcc patches in the latest version. They definitely fix some ugly problems seen on ARM (build failures, etc) and make life easier.
They have been rejected, and I will not acept them in their current form. See the previous diuscussion about the subject.
Best regards,
Wolfgang Denk

Hi Wolfgang,
On Wednesday 15 July 2009 17:12:57 Wolfgang Denk wrote:
I vote for accepting Jean-Christophe's libgcc patches in the latest version. They definitely fix some ugly problems seen on ARM (build failures, etc) and make life easier.
They have been rejected, and I will not acept them in their current form. See the previous diuscussion about the subject.
What a pity! :-(
Best regards, Stefan
===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office@denx.de =====================================================================

On 2009-07-15, at 16:58, Mike Frysinger wrote:
On Tuesday 14 July 2009 09:47:26 Piotr Zięcik wrote:
While working on U-Boot for our board we have found problem related to CONFIG_API option. In general, enabling it causes build failure. Our tests showed that problem exists also on other ARM U-Boot targets (for example davinci_dvevm).
Do you think that this problem may be caused by your libgcc-related cleanups ? If so, do you have any idea how to fix it ?
sounds more like it's always been a bug, but Jean's cleanup will fix it eventually
CONFIG_API worked fine for ARM builds some time ago, and this breakage seems like a recent development.
Rafal

On Wednesday 15 July 2009 11:15:46 Rafal Jaworowski wrote:
On 2009-07-15, at 16:58, Mike Frysinger wrote:
On Tuesday 14 July 2009 09:47:26 Piotr Zięcik wrote:
While working on U-Boot for our board we have found problem related to CONFIG_API option. In general, enabling it causes build failure. Our tests showed that problem exists also on other ARM U-Boot targets (for example davinci_dvevm).
Do you think that this problem may be caused by your libgcc-related cleanups ? If so, do you have any idea how to fix it ?
sounds more like it's always been a bug, but Jean's cleanup will fix it eventually
CONFIG_API worked fine for ARM builds some time ago, and this breakage seems like a recent development.
or, it still works fine if your toolchain doesnt suck and isnt broken -mike

On 2009-07-15, at 18:09, Mike Frysinger wrote:
On Wednesday 15 July 2009 11:15:46 Rafal Jaworowski wrote:
On 2009-07-15, at 16:58, Mike Frysinger wrote:
On Tuesday 14 July 2009 09:47:26 Piotr Zięcik wrote:
While working on U-Boot for our board we have found problem related to CONFIG_API option. In general, enabling it causes build failure. Our tests showed that problem exists also on other ARM U-Boot targets (for example davinci_dvevm).
Do you think that this problem may be caused by your libgcc-related cleanups ? If so, do you have any idea how to fix it ?
sounds more like it's always been a bug, but Jean's cleanup will fix it eventually
CONFIG_API worked fine for ARM builds some time ago, and this breakage seems like a recent development.
or, it still works fine if your toolchain doesnt suck and isnt broken
The toolchain is ELDK 4.2 and has worked fine for longer time.
Rafal

Hi Rafal,
On Thursday 16 July 2009 10:37:34 Rafal Jaworowski wrote:
On 2009-07-15, at 18:09, Mike Frysinger wrote:
On Wednesday 15 July 2009 11:15:46 Rafal Jaworowski wrote:
On 2009-07-15, at 16:58, Mike Frysinger wrote:
On Tuesday 14 July 2009 09:47:26 Piotr Zięcik wrote:
While working on U-Boot for our board we have found problem related to CONFIG_API option. In general, enabling it causes build failure. Our tests showed that problem exists also on other ARM U-Boot targets (for example davinci_dvevm).
Do you think that this problem may be caused by your libgcc-related cleanups ? If so, do you have any idea how to fix it ?
sounds more like it's always been a bug, but Jean's cleanup will fix it eventually
CONFIG_API worked fine for ARM builds some time ago, and this breakage seems like a recent development.
or, it still works fine if your toolchain doesnt suck and isnt broken
The toolchain is ELDK 4.2 and has worked fine for longer time.
Just to make it clear: The libgcc removal patches for ARM from Jean-Christophe are not added yet. So if you see a problem with EABI etc, some other patches have to be the reason for this. And very likely Jean-Christophe's patches could fix the problems.
Best regards, Stefan
===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office@denx.de =====================================================================

Hi Stefan,
On 2009-07-16, at 10:46, Stefan Roese wrote:
On Thursday 16 July 2009 10:37:34 Rafal Jaworowski wrote:
On 2009-07-15, at 18:09, Mike Frysinger wrote:
On Wednesday 15 July 2009 11:15:46 Rafal Jaworowski wrote:
On 2009-07-15, at 16:58, Mike Frysinger wrote:
On Tuesday 14 July 2009 09:47:26 Piotr Zięcik wrote:
While working on U-Boot for our board we have found problem related to CONFIG_API option. In general, enabling it causes build failure. Our tests showed that problem exists also on other ARM U-Boot targets (for example davinci_dvevm).
Do you think that this problem may be caused by your libgcc- related cleanups ? If so, do you have any idea how to fix it ?
sounds more like it's always been a bug, but Jean's cleanup will fix it eventually
CONFIG_API worked fine for ARM builds some time ago, and this breakage seems like a recent development.
or, it still works fine if your toolchain doesnt suck and isnt broken
The toolchain is ELDK 4.2 and has worked fine for longer time.
Just to make it clear: The libgcc removal patches for ARM from Jean- Christophe are not added yet. So if you see a problem with EABI etc, some other patches have to be the reason for this. And very likely Jean-Christophe's patches could fix the problems.
Thanks for pointing this out, we'll look into it some more (I'm all for removing libgcc dependency, but was under the impression that parts of this rework was already included in main line, and thought there might be some loose ends or so).
Rafal

Dear Stefan Roese,
In message 200907161046.32385.sr@denx.de you wrote:
Just to make it clear: The libgcc removal patches for ARM from Jean-Christophe are not added yet. ...
Just to make it clear: The libgcc removal patches for ARM will never be added - at least not in their current form.
... So if you see a problem with EABI etc, some other patches
have to be the reason for this. And very likely Jean-Christophe's patches could fix the problems.
Instead af waiting for some potetnial fix that mauy or may not accepted at an unknown (but later) time, we should focus on identifying the patches that caused the problem, and resolve the problem there.
It makes no sense to introduce breakage not fix it but blame libgcc for it and wait for a completely unrelated, bigger change to happen.
Best regards,
Wolfgang Denk

Wednesday 15 July 2009 18:09:30 Mike Frysinger napisał(a):
CONFIG_API worked fine for ARM builds some time ago, and this breakage seems like a recent development.
or, it still works fine if your toolchain doesnt suck and isnt broken -mike
I have done some research and mike is right. We are using ELDK 4.2 which provides gnueabi compiler only. While compilng U-Boot, -mabi=apcs-gnu switch forces APCS and as U-Boot uses this ABI.
However API demo application requires libgcc, which is avaible in gnueabi version only and cannot be linked with objects, which use APCS.
Demo application is linked correctly on ELDK 4.1, which does not provide gnueabi tollchain.
participants (5)
-
Mike Frysinger
-
Piotr Zięcik
-
Rafal Jaworowski
-
Stefan Roese
-
Wolfgang Denk