Index: coffread.c =================================================================== RCS file: /cvs/src/src/gdb/coffread.c,v retrieving revision 1.37 diff -c -p -r1.37 coffread.c *** coffread.c 25 Feb 2003 21:36:17 -0000 1.37 --- coffread.c 12 May 2003 16:29:47 -0000 *************** coff_symtab_read (long symtab_offset, un *** 869,875 **** print_address_symbolic work right without the (now gone) "set fast-symbolic-addr off" kludge. */ - /* FIXME: should use mst_abs, and not relocate, if absolute. */ enum minimal_symbol_type ms_type; int sec; --- 869,874 ---- *************** coff_symtab_read (long symtab_offset, un *** 891,902 **** || cs->c_sclass == C_THUMBEXT ? mst_bss : mst_file_bss; } else { sec = cs_to_section (cs, objfile); tmpaddr = cs->c_value; ! if (cs->c_sclass == C_EXT || cs->c_sclass == C_THUMBEXTFUNC ! || cs->c_sclass == C_THUMBEXT) tmpaddr += ANOFFSET (objfile->section_offsets, sec); if (sec == SECT_OFF_TEXT (objfile)) --- 890,913 ---- || cs->c_sclass == C_THUMBEXT ? mst_bss : mst_file_bss; } + else if (cs->c_secnum == N_ABS) + { + /* Use the correct minimal symbol type (and don't + relocate) for absolute values. */ + ms_type = mst_abs; + sec = cs_to_section (cs, objfile); + tmpaddr = cs->c_value; + } else { sec = cs_to_section (cs, objfile); tmpaddr = cs->c_value; ! ! /* Statics in a PE file also get relocated */ ! if (cs->c_sclass == C_EXT ! || cs->c_sclass == C_THUMBEXTFUNC ! || cs->c_sclass == C_THUMBEXT ! || (pe_file && (cs->c_sclass == C_STAT))) tmpaddr += ANOFFSET (objfile->section_offsets, sec); if (sec == SECT_OFF_TEXT (objfile))