Various arious PA changes from Utah.

V9 bugfix.
See changelog...
This commit is contained in:
Ken Raeburn 1993-10-21 20:03:19 +00:00
parent 2d4f509a1f
commit efa0c22e67
3 changed files with 117 additions and 5 deletions

View File

@ -1,3 +1,86 @@
Thu Oct 21 12:52:01 1993 Ken Raeburn (raeburn@cygnus.com)
* config/tc-m68k.h: Don't define REGISTER_PREFIX or
OPTIONAL_REGISTER_PREFIX if either is already defined.
* config/tc-m68k.c (m68k_ip): Delete some code in "#if 0".
* configure.in: Set bfd_gas for all sparc targets. Added facility
for keeping or rejecting configurations still under development;
default is to assume production environment, and reject configs
still being worked on. Mark Elf configurations (except sparc and
i386) as developmental. Deleted cases matching some generic names
in favor of more specific names. (E.g., when we get Alpha
support, we'll still only support VMS for Vax.)
* config/tc-sparc.h (md_end): New macro.
* config/tc-sparc.c (md_end): Function deleted.
(BFD_RELOC_*): Delete macros that used to help keep the non-bfd
version compiling. All sparc targets will use bfd now.
* tc.h (md_end): Don't declare if it's defined as a macro.
Changes from Jeff Law and Peter Hoogenboom:
* read.c (next_char_of_string): Limit octal character constants to
three digits.
* config/tc-hppa.h: Major cleanup. Use GNU-style comments. Warn
against placing additional object-file dependent code here. Warn
against contaminating all of GAS with the internals of tc-hppa.c
through inclusion of tc-hppa.h. Delete all forward declarations
for functions only used within tc-hppa.c, likewise for structures,
variables, and #defines. Try to group OBJ_ELF and OBJ_SOM
conditional code in a few small places.
* config/tc-hppa.c: Major cleanup. Use GNU-style comments. Group
structures, global variables, forward declarations together.
Reduce (or in some cases eliminate) OBJ_ELF and OBJ_SOM
conditional code -- try to group conditional code together
into a few places. Make all functions and variables which
are only used within tc-hppa.c static. PARAMize all functions.
Add comments to functions. Delete unused functions, variables,
#defines, etc. Delete unused members within structures. Delete
ldil;ble hacks -- it is believed they were installed to work
around old gas bugs. Avoid using mixed case for local
functions, variables, and structures. Fix formatting problems
not found by GNU-indent. Add FIXME notices for things which
should be worked on the near future. Delete lots of old
useless (1.36 PA-SOM) code.
* config/tc-hppa.c: (fix_new_hppa): Initialize the fx_r_type
field of the fixS structure. Needed to build unwind
descriptors correctly.
* write.c: (fixup_segment): Allow expressions such as
sym1-sym2+const as long as sym2 is $global$.
* write.c (adjust_reloc_syms): Provide a hook so that a target
cpu configuration can reject certain relocation reductions.
* tc-hppa.h (tc_fix_adjustable): New macro. Only accept relocations
which do not involve function symbols.
* config/tc-hppa.h: Reindent with GNU-indent. Delete references
to OBJ_OSFROSE. Fix typos (OBJ_SOME -> OBJ_SOM). Delete unused
STAB_FIXUP macro.
* config/tc-hppa.c: Likewise.
* config/tc-hppa.c (md_apply_fix_1): Use elf_symbol_type, instead
of elf32_symbol_type.
(pa_export_args): Likewise.
(elf_hppa_final_processing): Likewise.
(pa_desc): Do not call obj_elf_desc. (Is pa_desc even needed
anymore?)
(hppa_tc_make_sections): Do not declare elf_get_symtab_map any
ore.
* config/tc-hppa.c: (md_section_align): Align all sections to
a multiple of the section alignment rather than always a
multiple of 8.
* config/tc-hppa.c (hppa_tc_symbol): If the argument relocation
bits are zero (eg they specify no relocations), then do not even
bother adding their entries to thesymextn section.
Thu Oct 21 15:44:55 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
* config/tc-sparc.c (md_parse_option): Accept and ignore -sparc

View File

@ -1,3 +1,9 @@
Wed Oct 20 12:26:33 1993 Ken Raeburn (raeburn@rover.cygnus.com)
* config/tc-sparc.c (sparc_ip, label "immediate"): Convert relocs
operating on upper 32 bits of immediate constants to lower-half
relocs with adjusted constants.
Fri Sep 3 18:17:32 1993 Ken Raeburn (raeburn@cambridge.cygnus.com)
* config/obj-elf.h (elf_symbol): No longer special-cased on

View File

@ -544,6 +544,15 @@ adjust_reloc_syms (abfd, sec, xxx)
continue;
}
#endif
/* Is there some other (target cpu dependent) reason we can't adjust
this one? (E.g. relocations involving function addresses on
the PA. */
#ifdef tc_fix_adjustable
if (! tc_fix_adjustable (fixp))
continue;
#endif
/* If the section symbol isn't going to be output, the relocs
at least should still work. If not, figure out what to do
when we run into that case. */
@ -858,6 +867,7 @@ relax_and_size_all_segments ()
bss_address_frag.fr_address = (H_GET_TEXT_SIZE (&headers) +
H_GET_DATA_SIZE (&headers));
#endif /* ! OBJ_BOUT */
/* Slide all the frags */
if (bss_frag_root)
@ -870,8 +880,6 @@ relax_and_size_all_segments ()
} /* for each bss frag */
}
#endif /* ! OBJ_BOUT */
if (bss_last_frag)
H_SET_BSS_SIZE (&headers,
bss_last_frag->fr_address - bss_frag_root->fr_address);
@ -1865,6 +1873,7 @@ fixup_segment (fixP, this_segment_type)
add_symbolP = NULL;
fixP->fx_addsy = NULL;
}
#if !defined(SEG_DIFF_ALLOWED) && !defined (GLOBAL_DIFF_ALLOWED)
else
{
/* Different segments in subtraction. */
@ -1896,6 +1905,14 @@ fixup_segment (fixP, this_segment_type)
segment_name (S_GET_SEGMENT (sub_symbolP)),
S_GET_NAME (sub_symbolP), buf);
}
#else
else
{
seg_reloc_count++;
fixP->fx_addnumber = add_number; /* Remember value for emit_reloc */
continue;
} /* if absolute */
#endif
}
}
@ -1920,7 +1937,9 @@ fixup_segment (fixP, this_segment_type)
add_number += S_GET_VALUE (add_symbolP);
add_number -= md_pcrel_from (fixP);
pcrel = 0; /* Lie. Don't want further pcrel processing. */
#ifndef TC_HPPA
fixP->fx_addsy = NULL; /* No relocations please. */
#endif
}
else
{
@ -1994,10 +2013,14 @@ fixup_segment (fixP, this_segment_type)
if ((add_number & mask) != 0
&& (add_number & mask) != mask)
{
char buf[50];
char buf[50], buf2[50];
sprint_value (buf, fragP->fr_address + where);
as_bad ("Value of %ld too large for field of %d bytes at %s",
(long) add_number, size, buf);
if (add_number > 1000)
sprint_value (buf2, add_number);
else
sprintf (buf2, "%d", (long) add_number);
as_bad ("Value of %s too large for field of %d bytes at %s",
buf2, size, buf);
} /* generic error checking */
#ifdef WARN_SIGNED_OVERFLOW_WORD
/* Warn if a .word value is too large when treated as a signed