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

Reply via email to