Re: dollars-in-identifiers on ARM, was: Creating and using GCJ ARM cross compiler

Andrew Haley <[email protected]>
Newsgroups gmane.comp.gcc.java.devel
Message-ID <[email protected]>
Matthijs van de Water wrote:
> On Fri, Apr 18, 2008 at 7:17 PM, Andrew Haley <[email protected]> wrote:
>>> error: stray '$' in program
>>  > [error repeated a lot of times]
>>  >
>>  > If I add "-fdollars-in-identifiers" to my compile statement, it
>>  > completes without error, but I would expect this not to be necessary.
>>
>>  Well, it is.  For some reason I could never understand, it's needed on arm.
>>  I added -fdollars-in-identifiers in several places in the libgcj build.
> The reason for this is probably that gcc/config/arm/aout.h has:
> 
> /* Arm Assembler barfs on dollars.  */
> #define DOLLARS_IN_IDENTIFIERS 0

No, that's not the reason, it's just the implementation.

> See also http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24111 which if I
> read it correctly says that what is done with GCJ on ARM violates EABI
> rules...

Indeed, yes:

"4.4.4 Symbol names

"All symbol names containing a dollar character (‘$’) are reserved to the ARM EABI."

http://refspecs.freestandards.org/elf/ARMELF.pdf

> Is this something that can/should be fixed?

No.  This bug is closed, RESOLVED INVALID.  I don't think it should
be fixed.  The only reasonable way to fix it IMO is to change the 
ARM ELF spec, and that's not at all likely.

Andrew.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.