undefined __aeabi_unwind_cpp_pr0 error

View: New views
2 Messages — Rating Filter:   Alert me  

undefined __aeabi_unwind_cpp_pr0 error

by kpremendra :: Rate this Message:

| View Threaded | Show Only this Message

Hello

On trying to compile the kernel 2.6.22.19 with the gcc 4.3.2 for arm processor,
gcc -v is as below

Using built-in specs.
Target: arm-unknown-linux-gnueabi
Configured with: /home/developer/devel/crosscompiler/targets/src/gcc-4.3.2/configure --build=i686-pc-linux-gnu --target=arm-unknown-linux-gnueabi --host=i686-pc-linux-gnu --prefix=/home/developer/x-tools/arm-unknown-linux-gnueabi --with-sysroot=/home/developer/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sys-root --enable-languages=c,c++ --disable-multilib --with-float=soft --with-gmp=/home/developer/x-tools/arm-unknown-linux-gnueabi --with-mpfr=/home/developer/x-tools/arm-unknown-linux-gnueabi --with-pkgversion=crosstool-NG-1.2.0+svn_trunk@1176 --enable-__cxa_atexit --with-local-prefix=/home/developer/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sys-root --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-c99 --enable-long-long --enable-target-optspace
Thread model: posix
gcc version 4.3.2 (crosstool-NG-1.2.0+svn_trunk@1176)


I am getting the below error
Can u please tell me if some extra flags, to be used in compiling the gcc, so that the "__aeabi_unwind_cpp_pr0" function gets included with the libgcc.

In kernel include/linux/iffies.h there are many macro divisions and i have replaced one of these macros with a varable, and on compilng the kernel , it complains of the undefined __udivdi3 __divdi3 functions , because of this , i am trying to link those functions in the libgcc.a , on doing so i am getting the below error.
 

LD      .tmp_vmlinux1
/home/developer/x-tools/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-ld: ERROR: Source object /home/developer/x-tools/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.3.2/libgcc.a(_udivsi3.o) has EABI version 4, but target .tmp_vmlinux1 has EABI version 0
/home/developer/x-tools/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-ld: failed to merge target specific data of file /home/developer/x-tools/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.3.2/libgcc.a(_udivsi3.o)
/home/developer/x-tools/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-ld: ERROR: Source object /home/developer/x-tools/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.3.2/libgcc.a(_umodsi3.o) has EABI version 4, but target .tmp_vmlinux1 has EABI version 0
/home/developer/x-tools/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-ld: failed to merge target specific data of file /home/developer/x-tools/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.3.2/libgcc.a(_umodsi3.o)
/home/developer/x-tools/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-ld: ERROR: Source object /home/developer/x-tools/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.3.2/libgcc.a(_dvmd_lnx.o) has EABI version 4, but target .tmp_vmlinux1 has EABI version 0
/home/developer/x-tools/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-ld: failed to merge target specific data of file /home/developer/x-tools/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.3.2/libgcc.a(_dvmd_lnx.o)
/home/developer/x-tools/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-ld: ERROR: Source object /home/developer/x-tools/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.3.2/libgcc.a(_divdi3.o) has EABI version 4, but target .tmp_vmlinux1 has EABI version 0
/home/developer/x-tools/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-ld: failed to merge target specific data of file /home/developer/x-tools/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.3.2/libgcc.a(_divdi3.o)
/home/developer/x-tools/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-ld: ERROR: Source object /home/developer/x-tools/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.3.2/libgcc.a(_udivdi3.o) has EABI version 4, but target .tmp_vmlinux1 has EABI version 0
/home/developer/x-tools/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-ld: failed to merge target specific data of file /home/developer/x-tools/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.3.2/libgcc.a(_udivdi3.o)
/home/developer/x-tools/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-ld: ERROR: Source object /home/developer/x-tools/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.3.2/libgcc.a(_clz.o) has EABI version 4, but target .tmp_vmlinux1 has EABI version 0
/home/developer/x-tools/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-ld: failed to merge target specific data of file /home/developer/x-tools/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.3.2/libgcc.a(_clz.o)
/home/developer/x-tools/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.3.2/libgcc.a(_dvmd_lnx.o): In function `__div0':
/home/developer/devel/crosscompiler/targets/src/gcc-4.3.2/libgcc/../gcc/config/arm/lib1funcs.asm:1079: undefined reference to `raise'
/home/developer/x-tools/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.3.2/libgcc.a(_divdi3.o):(.ARM.exidx+0x0): undefined reference to `__aeabi_unwind_cpp_pr0'
/home/developer/x-tools/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.3.2/libgcc.a(_udivdi3.o):(.ARM.exidx+0x0): undefined reference to `__aeabi_unwind_cpp_pr0'
make: *** [.tmp_vmlinux1] Error 1


Thanks

Virupax

Re: undefined __aeabi_unwind_cpp_pr0 error

by drizzt :: Rate this Message:

| View Threaded | Show Only this Message

Hi !

I'm having the same kinds of errors, trying to compile u-boot with gcc from current testing from emdebian
$ arm-linux-gnueabi-gcc -v
[...]
gcc version 4.3.3 (Debian 4.3.3-3)

I found some solutions :

For this :
kpremendra wrote:
/home/developer/x-tools/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-ld: ERROR: Source object /home/developer/x-tools/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.3.2/libgcc.a(_udivsi3.o) has EABI version 4, but target .tmp_vmlinux1 has EABI version 0
Look at the ABI you are using (gcc flags for compilation)
Here are some information : http://wiki.debian.org/ArmEabiPort

I had to replace
PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=apcs-gnu)
with
PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=aapcs-linux)
(removing is also OK)

For this :
kpremendra wrote:
/home/developer/devel/crosscompiler/targets/src/gcc-4.3.2/libgcc/../gcc/config/arm/lib1funcs.asm:1079: undefined reference to `raise'
For this, you must either define a raise function, or, as I did for uboot, define the raise symbol as an alias for an existing one.
I used what is done for the uboot version for openmoko :
PLATFORM_LDFLAGS += --defsym raise=hang


But for this :
kpremendra wrote:
/home/developer/x-tools/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.3.2/libgcc.a(_divdi3.o):(.ARM.exidx+0x0): undefined reference to `__aeabi_unwind_cpp_pr0'
/home/developer/x-tools/arm-unknown-linux-gnueabi/lib/gcc/arm-unknown-linux-gnueabi/4.3.2/libgcc.a(_udivdi3.o):(.ARM.exidx+0x0): undefined reference to `__aeabi_unwind_cpp_pr0'
I'm still looking around for a solution.

If anybody has one, he's welcome to reply to this thread !
Thanks.