te-freebsd.h has
#define LOCAL_LABELS_DOLLAR 1
But LOCAL_LABELS_DOLLAR never really works completely for x86 assembler.
When assembler sees $foo, it can't tell if $foo is a label or the value
of symbol foo. I do have a hack for x86 assembler, which assumes $_XXX
is a local label if LOCAL_LABELS_DOLLAR is defined. But it won't work
when _XXX is a real label.
bash-3.2$ cat /tmp/f.s
$foo:
movl $foo(%eax), %eax
bash-3.2$ ./as-new -o f.o /tmp/f.s
/tmp/f.s: Assembler messages:
/tmp/f.s:2: Error: junk `(%eax)' after expression
bash-3.2$
I think LOCAL_LABELS_DOLLAR should be undefined for all x86 targets.
--
Summary: LOCAL_LABELS_DOLLAR doesn't work on Freebsd/x86
Product: binutils
Version: 2.20 (HEAD)
Status: NEW
Severity: normal
Priority: P2
Component: gas
AssignedTo: unassigned at sources dot redhat dot com
ReportedBy: hjl dot tools at gmail dot com
CC: bug-binutils at gnu dot org
GCC target triplet: i386-pc-freebsd
http://sourceware.org/bugzilla/show_bug.cgi?id=9915
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
_______________________________________________
bug-binutils mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-binutils