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]

Reply via email to