Ian Lance Taylor
4a6afc88bb
A major rewrite to move the bulk of the linker into BFD so that
...
more efficient backend code can be written for specific object
files.
* lderror.c, lderror.h, ldindr.c, ldindr.h, ldsym.c, ldsym.h,
ldwarn.c, ldwarn.h, relax.c, relax.h: Removed.
* ldctor.c, ldctor.h: Complete rewrite.
* ldwrite.c, ldwrite.h: Complete rewrite.
* ld.h (strip_symbols_type, strip_symbols): Removed. Use
link_info.strip instead. Changed all uses.
(discard_locals_type, discard_locals): Removed. Use
link_info.discard instead. Changed all uses.
(ld_config_type): Removed relocateable_output field; use
link_info.relocateable instead; changed all uses. Added stats
field.
(set_asymbol_chain, get_asymbol_chain, get_loader_symbol,
set_loader_symbol): Removed.
* ldexp.h (node_class): Added etree_rel.
(etree_type): Added rel field.
* ldexp.c (exp_print_token): Bracketed table initialization.
(exp_relop): New function.
(fold_name): Use linker hash table rather than ldsym functions.
(exp_fold_tree): Likewise. Also, handle etree_rel case.
(exp_print_tree): Handle etree_rel.
* ldgram.y (strip_symbols, discard_locals): Removed.
(OPTION_stats, OPTION_no_keep_memory): New tokens. Handle them.
(REL): New token. Does not appear in grammar, but needed for
expression code.
(file): Don't call lang_final; it's called by main anyhow.
* ldlex.l: Accept -stats and -no-keep-memory options.
* ldlang.h (fill_type): Make unsigned int, not unsigned short.
* ldlang.c: Consistently use fill_type for fill argument.
(lang_init_script_file, script_file): Removed.
(create_object_symbols): Removed. Use
link_info.create_object_symbols_section instead. Changed all
uses.
(lang_add_keepsyms_file): Removed.
(lookup_name): Call bfd_link_add_symbols instead of
ldmain_open_file_read_symbol.
(wild): Don't iterate over script_file.
(open_output): Create link hash table.
(lang_place_undefineds): Rewrote.
(lang_size_sections): Handle relaxing (doesn't work yet).
(lang_relocate_globals): Removed.
(lang_finish): Use link hash table rather than ldsym functions.
(lang_common): Rewrote.
(lang_one_common): New function.
(ldlang_add_file): Add file to link_info.input_bfds list. Set
usrdata.
(create_symbol): Removed.
(lang_process): Don't call lang_init_script_file. Call
ldctor_build_sets rather than find_constructors. Don't call
lang_relocate_globals.
(lang_abs_symbol_at_beginning_of): Rewrote.
(lang_abs_symbol_at_end_of): Rewrote.
* ldmain.c (had_y): Removed.
(lprefix, lprefix_len): Removed; use link_info fields instead.
Changed all uses.
(multiple_def_count, commons_pending, undefined_global_sym_count,
total_symbols_seen, total_files_seen): Removed.
(link_callbacks, link_info): New variables.
(main): Initialize link_info. Don't call init_bfd_error_vector or
ldsym_init. Don't set now unused variables. Handle -stats.
(get_emulation): Removed obsolete and nonfunctional GNU960 code.
(add_ysym): Rewrote.
(read_entry_symbols, refize, enter_global_ref, enter_file_symbols,
search_library, gnu960_check_format, decode_library_subfile,
linear_library, symdef_library, clear_syms, subfile_wanted_p):
Removed.
(add_keepsyms_file, add_archive_element, multiple_definition,
multiple_common, add_to_set, warning_callback, undefined_symbol,
reloc_overflow, reloc_dangerous, unattached_reloc, notice_ysym):
New functions.
* ldmisc.c (vfinfo): Accept a string for %T, not a symbol. Don't
require symbols for %C; look them up instead.
* emultempl/hppaosf.em: Pass link_info to
hppa_look_for_stubs_in_section.
* Makefile.in: Rebuilt dependencies.
(CFILES): Removed lderror.c, ldindr.c, ldsym.c, ldwarn.c, and
relax.c.
(HFILES): Removed lderror.h, ldindr.h, ldsym.h, ldwarn.h, and
relax.h.
(EMULATION_OFILES): Depend on bfdlink.h, ldmain.h, ldexp.h,
ldlang.h and ldctor.h.
* Makefile.in (ldlex.c): Don't depend on ldgram.h. Remove
declarations of free and malloc from flex output. Change malloc
to ldmalloc in flex output.
1993-12-30 19:51:41 +00:00
Ian Lance Taylor
9a0418eb7b
* bfdlink.h: New file for new BFD linker backend routines.
1993-12-30 18:44:54 +00:00
Peter Schauer
2d3ae7bf6d
* exec.c (add_to_section_table): Check for SEC_ALLOC instead of
...
SEC_LOAD to handle .bss segments properly.
1993-12-30 15:56:06 +00:00
Peter Schauer
1adbf66264
* section.c (bfd_get_section_contents): Return zero filled buffer
...
if section has no contents.
1993-12-30 15:51:16 +00:00
Jim Kingdon
f161923490
* infrun.c (wait_for_inferior): Enable code which assumes that if
...
we jump into the prologue from another function, then it was a
subroutine call. #if 0 AT_FUNCTION_START; the above code should
take care of this case.
1993-12-30 15:27:52 +00:00
Jeff Law
6816e053e6
Revert last change. It loses.
1993-12-30 07:00:31 +00:00
Jim Kingdon
6f4baef628
* valprint.c (val_print_string): Change chunksize from 200
...
to 8.
1993-12-30 02:40:05 +00:00
Jim Kingdon
7ec52804fe
* symfile.c (generic_load): If no arguments, get file name
...
from get_exec_file.
1993-12-29 21:29:44 +00:00
Ken Raeburn
9314b3a125
* write.h (struct fix): Field tc_fix_data should be type PTR, not void*, for
...
compatibility with non-ANSI compilers. Added single-bit field "fx_done".
1993-12-29 21:21:21 +00:00
Ken Raeburn
1c0f9b3ecc
put a breakpoint in as_bad_where too
1993-12-29 21:19:41 +00:00
Jim Kingdon
393e55bac4
* c-exp.y: Revert Kung's change. "..." is not a type, and the
...
change caused "p (...)0" to dump core.
* gdbtypes.c (check_stub_method): Don't pass "..." to
parse_and_eval_type. This should fix the bug which Kung was
trying to fix.
1993-12-29 20:52:06 +00:00
Jeff Law
88b245830a
* gas/hppa/more.parse/labelbug.s: Add more colonless label
...
tests.
1993-12-29 19:37:20 +00:00
Jeff Law
001581c784
* app.c (do_scrub_next_char): Fix more bugs dealing with
...
labels without colons (For HPPA and MRI).
1993-12-29 19:33:31 +00:00
Jim Kingdon
4bfe9e81cd
* stabsread.c (define_symbol): If we choose not to combine
...
two symbols, don't just ignore the second (LOC_REGISTER) one.
* printcmd.c (print_frame_args): If we have a LOC_ARG and a
LOC_REGISTER, use the LOC_ARG not the LOC_REGISTER.
1993-12-29 18:42:52 +00:00
Jim Kingdon
6c06a518bf
* stabs.texinfo (Cross-References): `::' is for nested types only
...
within <>.
(Structures): Document static members.
1993-12-29 16:22:31 +00:00
Fred Fish
96e5cb2138
* solib.c (DEBUG_BASE): Remove macro and all references.
...
* solib.c (debug_base_symbols): Add array of symbols to lookup.
* solib.c (IGNORE_FIRST_LINK_MAP_ENTRY): Add macro.
* solib.c (look_for_base, locate_base): Use debug_base_symbols.
* solib.c (find_solib): Use IGNORE_FIRST_LINK_MAP_ENTRY.
1993-12-28 23:15:20 +00:00
Kung Hsu
bbc2cef268
CVS:
...
Modified Files:
ChangeLog c-exp.y
* c-exp.y : fix grammar to parse ellipsis (...)
(fix pr4218)
1993-12-28 20:11:25 +00:00
Ian Lance Taylor
d1b44e837e
* elf.c (bfd_elf_generic_reloc): If this is not an inplace reloc,
...
then skip bfd_perform_relocation even if the addend is non-zero.
1993-12-28 17:45:14 +00:00
Kung Hsu
279a3cfdfb
Modified Files:
...
ChangeLog stabsread.c
* stabsread.c (read_type): fix problem when reading static member
of a class. caused by change to allow :: inside template
instantiated name.
1993-12-28 02:46:34 +00:00
Mark Eichin
f2f824ae57
* config/i386-linux.mt: delete ".sh" from genscripts argument
...
(change made to genscripts on July 21...)
This is all it took for linux-native ld to build. It isn't necessarily useful,
particularly as gcc is still configured to pass -m486 and -dll-verbose, which
this ld doesn't parse...
1993-12-27 19:39:55 +00:00
Jim Kingdon
168e808729
* stabs.texinfo: Document S type attribute.
1993-12-27 18:59:39 +00:00
Jim Kingdon
666e7e4121
* gdbtypes.h: Expand on comments for TYPE_CODE_BITSTRING and
...
TYPE_CODE_STRING a bit.
1993-12-27 18:56:23 +00:00
Jim Kingdon
30ae2c91cb
* m68k-tdep.c (m68k_skip_prologue, m68k_find_saved_regs):
...
Allow pea %fp; move.l %sp, %fp instead of link instruction to
set up the new frame.
1993-12-27 18:44:07 +00:00
Jim Kingdon
d6bbac399c
* main.c (init_main): Change "set remotedebug" back to var_zinteger
...
from var_boolean.
1993-12-27 18:26:57 +00:00
Jim Kingdon
240972ecfb
* minsyms.c (prim_record_minimal_symbol): Call
...
prim_record_minimal_symbol_and_info rather than duplicating code.
1993-12-27 17:49:00 +00:00
Jim Kingdon
8d60affde9
* minsyms.c, symtab.h (prim_record_minimal_symbol{,_and_info}),
...
coffread.c (record_minimal_symbol),
xcoffread.c (RECORD_MINIMAL_SYMBOL), callers: Add objfile parameter.
1993-12-27 17:47:28 +00:00
Jim Kingdon
dfb4a50861
* c-exp.y (yylex): Don't try to deal with nested types.
1993-12-27 17:27:45 +00:00
Jim Kingdon
2d2fc7e464
* cp-valprint.c (cplus_print_value): Call check_stub_type on
...
TYPE_BASECLASS (type, i) before we look at its name.
1993-12-27 17:01:03 +00:00
Jim Kingdon
404f69a80b
* dbxread.c: Move default definition of GCC_COMPILED_FLAG_SYMBOL
...
from here . . .
* symtab.h: . . . to here.
* dbxread.c (record_minimal_symbol): Move check for gcc{,2}_compiled.
and __gnu_compiled* from here . . .
* minsyms.c (prim_record_minimal_symbol_and_info): . . . to here.
* minsyms.c (prim_record_minimal_symbol): Call
prim_record_minimal_symbol_and_info rather than duplicating code.
1993-12-27 16:31:56 +00:00
Jeff Law
e7386e3225
Add comment about breakpoint vector usage.
1993-12-27 04:52:47 +00:00
Jeff Law
e89d48dd88
* stabs.texinfo: Add notes about stabs-in-som where appropriate.
1993-12-27 04:47:59 +00:00
Jeff Law
2f8c3639fa
* dbxread.c (process_one_symbol): Handle stabs-in-som just like
...
stabs-in-elf.
(pastab_build_psymtabs): Likewise.
* hppa-tdep.c: Change all comments to reference %r3 or frame pointer
rather than %r4.
(frame_chain, skip_prologue, dig_rp_from_stack): Handle %r3 as the
frame pointer.
* config/pa/tm-hppa.h (FP_REGNUM): Define as %r3.
(FIND_FRAME_SAVED_REGS): Handle %r3 as frame pointer.
(CALL_DUMMY): Likewise.
1993-12-27 04:46:05 +00:00
Jim Kingdon
b02fd8caa2
* exec.c (exec_file_command): If error occurs after we have opened
...
exec_bfd but before we call push_target, make sure to close exec_bfd.
1993-12-26 23:33:14 +00:00
Jim Kingdon
b2f03c3027
Sun Dec 26 16:59:39 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
...
* infrun.c (wait_for_inferior): Remove confusing and inaccurate
stuff about subroutine calls, return, etc., from comment which
says "We've wandered out of the step range.".
Sun Dec 26 09:18:10 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
* infrun.c (wait_for_inferior): When checking whether the line has
changed, check the symtab as well.
1993-12-26 23:06:56 +00:00
Jim Kingdon
5461330147
* gdbtypes.c (force_to_range_type): Use switch statement.
...
complain() not warning() if the TYPE_CODE isn't one we know how to
deal with gracefully. Use builtin_type_int not
lookup_fundamental_type (the objfile we passed to
lookup_fundamental_type was sometimes NULL).
1993-12-26 22:37:47 +00:00
Torbjorn Granlund
45db9cafcf
Making HPPA assembler case sensitive where it should be, and speeding it up
...
a factor of 2.
1993-12-26 22:36:02 +00:00
Jim Kingdon
f4f0d17487
* valops.c (call_function_by_hand, push_word), defs.h (push_word),
...
convex-xdep.c, m88k-nat.c, i386m3-nat.c, mips-tdep.c, mipsm3-nat.c,
ns32km3-nat.c, remote-bug.c, m88k-tdep.c, remote-hms.c, remote-mips.c,
config/gould/tm-np1.h, hppa-tdep.c (hppa_fix_call_dummy), remote-vx.c:
Use REGISTER_SIZE, unsigned LONGEST, and
{store,extract}_unsigned_integer, instead of sizeof
(REGISTER_TYPE) and REGISTER_TYPE.
* All tm.h files: Change REGISTER_TYPE to REGISTER_SIZE.
* hppa-tdep.c (pa_print_fp_reg): Remove unused variable val.
* Makefile.in (ALLDEPFILES): Remove i386ly-nat.c and m68kly-nat.c.
Add lynx-nat.c.
1993-12-26 18:10:22 +00:00
Jeff Law
192c3eeb94
* hppa-tdep.c (init_extra_frame_info): Correctly adjust the base
...
of the current frame when "fromleaf" is true. Do not adjust the
frame base of the innermost frame if it is a leaf function.
1993-12-26 04:06:32 +00:00
Jeff Law
068b08ebf9
No longer needed.
1993-12-26 04:03:38 +00:00
Jeff Law
28958ab2d0
* configure.in: Nuke hacks which were used to get a special
...
version of GAS for HPPA configurations.
1993-12-26 04:02:36 +00:00
Jim Kingdon
28f851f93a
* stabsread.c (define_symbol): Only combine a p/r pair into a
...
LOC_REGPARM if REG_STRUCT_HAS_ADDR.
1993-12-25 19:50:45 +00:00
Jim Kingdon
008d4449a7
Sat Dec 25 09:50:29 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
...
* valops.c (value_struct_elt): Check for (value)-1 return from
search_struct_method.
1993-12-25 19:28:47 +00:00
Jim Kingdon
04f566a356
* defs.h: Move definitions of TARGET_*_BIT after include of tm.h.
...
The old way (using #undef in tm.h) was ugly and asking for
trouble, because it makes it possible for some file to use the
wrong definition. Move definition of HOST_CHAR_BIT after definition
of TARGET_CHAR_BIT.
* config/alpha/tm-alpha.h, config/h8300/tm-h8300.h,
config/h8500/tm-h8500.h, config/z8k/tm-z8k.h: Don't undef TARGET_*_BIT
before defining them.
1993-12-25 18:44:22 +00:00
Jim Kingdon
504ccfd788
* mdebugread.c: Change the builtin_type_* in this file to
...
mdebug_type_* and make them static. Use TYPE_CODE_ERROR for
complex and float decimal.
1993-12-25 18:04:33 +00:00
Jim Kingdon
ca603cff1e
* printcmd.c (disassemble_command): Call wrap_here between printing
...
address and printing instruction.
1993-12-25 15:58:46 +00:00
Jim Kingdon
7677d4fda4
* stabsread.c (read_type): Don't fall through 'S' case (the case it
...
was falling though happened to do the thing thing ("break;") but that
is hardly a good thing to assume).
1993-12-24 20:43:29 +00:00
Jim Kingdon
8ba154e2f0
remove stray <<<<< from CVS
1993-12-24 19:05:23 +00:00
Ian Lance Taylor
9ef23d71b3
Various entries.
1993-12-23 17:29:32 +00:00
Ian Lance Taylor
6336b309dc
gcc -Wall lint:
...
* ar.c (main): Put parens around assignment used as truth value.
* objdump.c (display_bfd): Declare return value as void.
(stab_print): Use "" instead of 0 to initialize array.
(dump_stabs_1): Print vma using printf_vma.
(display_info): Put parens around assignment used as truth value.
* strings.c (print_strings): Cast printf arguments.
1993-12-23 17:29:06 +00:00
Per Bothner
852b3831ce
* valops.c (value_coerce_array): Handle STRINGs as well as ARRAYs.
1993-12-21 22:22:45 +00:00