mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-19 09:14:14 +08:00
Fix linker relocation overflow errors for the NEC vr4300/ddb toolchain.
These changes are related to Ian's gas/libgloss changes of Dec 13/Dec 18. * tc-mips.c (mips_ip): If configured for an embedded ELF system, don't set the section alignment to 2**4. * mips/ddb.ld: Align the location counter before setting _gp, and before setting edata. Remove ALIGN from _gp computation. * mips/idt.ld, mips/pmon.ld: Before setting _gp, use ALIGN(8) instead of ALIGN(16). Remove ALIGN from _gp computation.
This commit is contained in:
@ -1,3 +1,8 @@
|
|||||||
|
Fri Feb 21 10:08:25 1997 Jim Wilson <wilson@cygnus.com>
|
||||||
|
|
||||||
|
* tc-mips.c (mips_ip): If configured for an embedded ELF system,
|
||||||
|
don't set the section alignment to 2**4.
|
||||||
|
|
||||||
Fri Feb 21 11:55:03 1997 Ian Lance Taylor <ian@cygnus.com>
|
Fri Feb 21 11:55:03 1997 Ian Lance Taylor <ian@cygnus.com>
|
||||||
|
|
||||||
* app.c (LEX_IS_TWOCHAR_COMMENT_2ND): Don't define.
|
* app.c (LEX_IS_TWOCHAR_COMMENT_2ND): Don't define.
|
||||||
|
@ -6227,20 +6227,11 @@ mips_ip (str, ip)
|
|||||||
|
|
||||||
insn_error = NULL;
|
insn_error = NULL;
|
||||||
|
|
||||||
for (s = str; islower (*s) || (*s >= '0' && *s <= '3') || *s == '6' || *s == '.'; ++s)
|
for (s = str; *s != '\0' && !isspace(*s); ++s)
|
||||||
continue;
|
continue;
|
||||||
switch (*s)
|
if ( isspace(*s) )
|
||||||
{
|
*s++ = '\0';
|
||||||
case '\0':
|
|
||||||
break;
|
|
||||||
|
|
||||||
case ' ':
|
|
||||||
*s++ = '\0';
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
as_fatal ("Unknown opcode: `%s'", str);
|
|
||||||
}
|
|
||||||
if ((insn = (struct mips_opcode *) hash_find (op_hash, str)) == NULL)
|
if ((insn = (struct mips_opcode *) hash_find (op_hash, str)) == NULL)
|
||||||
{
|
{
|
||||||
insn_error = "unrecognized opcode";
|
insn_error = "unrecognized opcode";
|
||||||
@ -6767,8 +6758,9 @@ mips_ip (str, ip)
|
|||||||
| SEC_LOAD
|
| SEC_LOAD
|
||||||
| SEC_READONLY
|
| SEC_READONLY
|
||||||
| SEC_DATA));
|
| SEC_DATA));
|
||||||
frag_align (*args == 'l' ? 2 : 3, 0);
|
frag_align (*args == 'l' ? 2 : 3, 0, 0);
|
||||||
if (OUTPUT_FLAVOR == bfd_target_elf_flavour)
|
if (OUTPUT_FLAVOR == bfd_target_elf_flavour
|
||||||
|
&& strcmp (TARGET_OS, "elf") != 0)
|
||||||
record_alignment (new_seg, 4);
|
record_alignment (new_seg, 4);
|
||||||
else
|
else
|
||||||
record_alignment (new_seg, *args == 'l' ? 2 : 3);
|
record_alignment (new_seg, *args == 'l' ? 2 : 3);
|
||||||
@ -8815,7 +8807,7 @@ mips_align (to, fill, label)
|
|||||||
symbolS *label;
|
symbolS *label;
|
||||||
{
|
{
|
||||||
mips_emit_delays (false);
|
mips_emit_delays (false);
|
||||||
frag_align (to, fill);
|
frag_align (to, fill, 0);
|
||||||
record_alignment (now_seg, to);
|
record_alignment (now_seg, to);
|
||||||
if (label != NULL)
|
if (label != NULL)
|
||||||
{
|
{
|
||||||
@ -9618,7 +9610,9 @@ mips16_extended_frag (fragp, sec, stretch)
|
|||||||
{
|
{
|
||||||
fragS *f;
|
fragS *f;
|
||||||
|
|
||||||
/* Adjust stretch for any alignment frag. */
|
/* Adjust stretch for any alignment frag. FIXME: This
|
||||||
|
doesn't handle the fr_subtype field, which specifies a
|
||||||
|
maximum number of bytes to skip when doing an alignment. */
|
||||||
for (f = fragp; f != fragp->fr_symbol->sy_frag; f = f->fr_next)
|
for (f = fragp; f != fragp->fr_symbol->sy_frag; f = f->fr_next)
|
||||||
{
|
{
|
||||||
assert (f != NULL);
|
assert (f != NULL);
|
||||||
|
Reference in New Issue
Block a user