In message <op.wtskspaml0n5eg@amoe.local>
"Ben Avison" <bavison@riscosopen.org> wrote:
> Actually a non-RISC OS question, this one - though since it's part of
> GCCSDK, I guess this is the right place to ask!
Perfectly fine place to ask.
> I'm doing some ARM Linux work that uses assembly, and because I'm
> familiar with the armasm/objasm/asasm syntax (and because, having worked
> on a relatively large project using the GNU assembler recently, I'm now
> pretty sure it's a more flexible syntax anyway), I'd like to write the
> new project using a port of asasm that targets Linux.
Nice :-)
> When I do:
>
> sudo apt-get install bison flex libarchive-dev [*]
> autoreconf --install
> ./configure --target=arm-linux-gnueabihf
> make
> DESTDIR=<path/to/installation> make install
BTW, --target is not taken into account by asasm.
> I get an asasm binary (plus a number of others I don't care about) which
> will happily assemble armasm-style source files. However, when I come to
> try to link them with the output of Linux GCC 4.6.3, I get:
>
> /usr/bin/ld: error: Source object asm.o has EABI version 0, but target
> program has EABI version 5
> /usr/bin/ld: failed to merge target specific data of file asm.o
> collect2: ld returned 1 exit status
>
> Any ideas if there's an easy way to fix this, or was this just a bad idea
> to begin with?
Asasm is not yet fully EABI compliant and this is high on my todo list.
You can do a temporary hack by defining ELF_EABI (see src/output.c) and
see how far you get with this in your project. One of things which would
be wrong are the branch relocations, we're currently outputing R_ARM_PC24
while that should be R_ARM_CALL/R_ARM_JUMP24.
John.
--
John Tytgat, in his comfy chair at home
John.Tytgat@aaug.net
_______________________________________________
GCCSDK mailing list gcc@gccsdk.riscos.info
Bugzilla: http://www.riscos.info/bugzilla/index.cgi
List Info: http://www.riscos.info/mailman/listinfo/gcc
Main Page: http://www.riscos.info/index.php/GCCSDK
No comments:
Post a Comment