Unknown EABI object attribute 44

4,741 views
Skip to first unread message

Andreas Falkenhahn

unread,
Sep 22, 2012, 12:10:50 PM9/22/12
to andro...@googlegroups.com

Hi,

I've recently upgraded to NDK r8b and when linking my object files into
a *.so shared object, I'm now getting the following warning from ld:

Warning:
/android-ndk-r8b/platforms/android-9/arch-arm/usr/lib/crtend_so.o:
Unknown EABI object attribute 44

The resulting shared object works fine, though. Still, I'm wondering if
this warning is something I should worry about?

I build for Android using custom makefiles, not via the official build
system. I'm using gcc 4.4.3 instead of 4.6 because 4.6 has a bug that
prevents me from compiling my project with it. Thus, I have to use
4.4.3. Could this be the reason for this warning, i.e. that crtend_so.o
maybe has been compiled with 4.6 and now I'm linking it against objects
compiled with 4.4.3? This is the only explanation I can come up with...

Any comments?

Tks,

Andreas

David Given

unread,
Sep 22, 2012, 12:41:21 PM9/22/12
to andro...@googlegroups.com
On 22/09/12 17:10, Andreas Falkenhahn wrote:
[...]
> Warning:
> /android-ndk-r8b/platforms/android-9/arch-arm/usr/lib/crtend_so.o:
> Unknown EABI object attribute 44
>
> The resulting shared object works fine, though. Still, I'm wondering if
> this warning is something I should worry about?

IIRC attribute 44 tells the toolchain whether the compiler uses the DIV
instruction or not. (Some architectures don't support it.) The toolchain
you're using doesn't understand the attribute and is ignoring it.

Later versions of gcc still don't understand it, but they do know that
attribute 44 is important and will flatly refuse to process files with
the attribute. You'll see 'Unknown mandatory EABI object attribute 44'
instead, which is an error.

We got round this issue by using the Android toolchain for everything,
but you've said you can't do that, so I don't know what I can suggest,
I'm afraid.

--
┌─── dg@cowlark.com ───── http://www.cowlark.com ─────

│ life←{ ↑1 ⍵∨.^3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂⍵ }
│ --- Conway's Game Of Life, in one line of APL

signature.asc

Andreas Falkenhahn

unread,
Sep 23, 2012, 10:35:01 AM9/23/12
to andro...@googlegroups.com
The error I'm getting from gcc 4.6 when trying to compile my sources is
this one:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44557

I've now managed to rewrite my code a little so that the error is no
longer triggered. Thus, I'm able to compile with 4.6 now which makes the
linker warning "Unknown EABI object attribute 44" disappear. So that's good.

Still, I'm wondering why the crtend_so.o of the Android NDK is not
compatible with gcc 4.4.3 because according to the docs 4.4.3 is still
officially supported.

Bikash Bag

unread,
Nov 20, 2013, 3:05:12 AM11/20/13
to andro...@googlegroups.com
Hii Andreas,

What changes u did to compile with gcc 4.6?

Regards,
Bikash
Reply all
Reply to author
Forward
0 new messages