BE8 elf format on gold

Hi Guys ,

We are trying to enable LTO on our code base for clang(3.8) using
gold linker , and we are stuck with below error

bash-4.1$ /arm-install/bin/armeb-linux-gnueabi-ld.gold --be8

/arm-install/bin/armeb-linux-gnueabi-ld.gold: --be8: unknown option

And found that ,Be8 (byte invariant addressing) is not supported in
the gold linker,

Questions is ,how do we go from here ?

Do be8 format is very mandatory for armv7(big endian) ? Or we can
proceed without –be8 option ??
Or What else options we have

Any comments or suggestion are appreciated here guys ??

Thank you

~Umesh

You should be fine. It looks like gold does support big-endian on ARM,
and the default is almost certainly BE8 (BE32 is widely regarded as a
mistake best forgotten).

Cheers.

Tim.

Thank you Tim and Doug you said that BE8 is not supported and i'm bit
confused now :frowning:

~Umesh

While most parts of gold are written to support both big and little endian targets, the arm32 backend has not been tested on anything that is not little-endian. Pure big-endian config might work out of the box but I have never tried it myself.

If I understand correctly, --be8 tells the linker to emit output with little-endian instruction but big-endian data. gold currently does not support this. We need to add code to emit branch stubs in correct endianness and also byte swap the input instructions.

-Doug

Believe Doug over me, I'm very much a binutils outsider and was just
going by apparent references to big-endian in the code and the fact
that no-one would intentionally only support BE32 these days.

Cheers.

Tim.