In message <op.wtskspaml0n5eg@amoe.local> "Ben Avison" <bavi...@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.tyt...@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