I've been trying for at least two weeks to make an m68k-coff cross
assembler under linux, but have been getting this:
[aaron@aaron2 src]$ as -v --bitwise-or -k --register-prefix-optional -ovideo.o video.s
GNU assembler version 2.9.1 (m68k-coff)
Segmentation fault (core dumped)
[aaron@aaron2 src]$ gdb `type -path as`
GNU gdb 4.17.0.11 with Linux support
[...]
Program terminated with signal 11, Segmentation fault.
[...]
#0 0x8062658 in do_linenos_for (abfd=0x8107558, h=0xbffff864,
file_cursor=0xbffff860) at ../../gas/config/obj-coff.c:3072
3072 line_ptr->line.l_addr.l_symndx =
(gdb) bt
#0 0x8062658 in do_linenos_for (abfd=0x8107558, h=0xbffff864,
file_cursor=0xbffff860) at ../../gas/config/obj-coff.c:3072
#1 0x8062a18 in write_object_file () at
../../gas/config/obj-coff.c:3273
#2 0x804b3e9 in main (argc=2, argv=0x80b0e68) at ../../gas/as.c:812
#3 0x4006fcb3 in __libc_start_main (main=0x804b2c0 <main>, argc=7,
argv=0xbffffa94, init=0x80490d4 <_init>, fini=0x806632c <_fini>,
rtld_fini=0x4000a350 <_dl_fini>, stack_end=0xbffffa8c)
at ../sysdeps/generic/libc-start.c:78
so when I saw that binutils was actively being hacked on again, I
figured I'd give it a try, but gas coredumps yet again, but in a
different place. (This is with binutils-2.9.4.0.4)
[...]
Program terminated with signal 11, Segmentation fault.
[...]
#0 0x804f9c8 in hash_lookup (table=0x0, key=0x80f0dd3 "EPROM_BASE",
plist=0x0, phash=0x0) at ../../gas/hash.c:164
164 index = hash % table->size;
(gdb) bt
#0 0x804f9c8 in hash_lookup (table=0x0, key=0x80f0dd3 "EPROM_BASE",
plist=0x0, phash=0x0) at ../../gas/hash.c:164
#1 0x804fbd6 in hash_find (table=0x0, key=0x80f0dd3 "EPROM_BASE")
at ../../gas/hash.c:315
#2 0x8058f0b in symbol_find_base (name=0x80f0dd3 "EPROM_BASE",
strip_underscore=0) at ../../gas/symbols.c:656
#3 0x8058e75 in symbol_find (name=0x80f0dd3 "EPROM_BASE")
at ../../gas/symbols.c:613
#4 0x8058e1e in symbol_find_or_make (name=0x80f0dd3 "EPROM_BASE")
at ../../gas/symbols.c:556
#5 0x8057596 in equals (sym_name=0x80f0dd3 "EPROM_BASE", reassign=1)
at ../../gas/read.c:4844
#6 0x8053d5a in read_a_source_file (name=0xbffff9c8 "video.s")
at ../../gas/read.c:732
#7 0x804bbe1 in perform_an_assembly_pass (argc=2, argv=0x80b6250)
at ../../gas/as.c:993
#8 0x804b993 in main (argc=2, argv=0x80b6250) at ../../gas/as.c:810
#9 0x40072cb3 in __libc_start_main (main=0x804b880 <main>, argc=8,
argv=0xbffff834, init=0x804954c <_init>, fini=0x80699bc <_fini>,
rtld_fini=0x4000a350 <_dl_fini>, stack_end=0xbffff82c)
at ../sysdeps/generic/libc-start.c:78
All binutils have been configured with:
../configure --target=m68k-coff --enable-shared \
--prefix=/usr/local/cross --exec-prefix=/usr/local/cross \
--enable-targets=m68k-ieee
It's strange because if there are errors in the source, the assembler
dutifully reports them without segfaulting.
----
Aaron J. Grier -- Frye Electronics -- [EMAIL PROTECTED]