diff options
author | sobomax <sobomax@FreeBSD.org> | 2001-11-05 17:29:13 +0000 |
---|---|---|
committer | sobomax <sobomax@FreeBSD.org> | 2001-11-05 17:29:13 +0000 |
commit | 13e5879b69d5c7caf3b044907e14c0968dd61cdd (patch) | |
tree | 1937bf1a79852a5788094d6b52a773b4341e7805 /devel/mipsel-linux-binutils | |
parent | 958fd9179f03ae6e63ffcf94a448b493e5ef29ff (diff) | |
download | FreeBSD-ports-13e5879b69d5c7caf3b044907e14c0968dd61cdd.zip FreeBSD-ports-13e5879b69d5c7caf3b044907e14c0968dd61cdd.tar.gz |
Upgrade port to last SNOWed Agenda toolchain.
Now it is version 2.10.91.
PR: 31407
Submitted by: maintainer
Diffstat (limited to 'devel/mipsel-linux-binutils')
-rw-r--r-- | devel/mipsel-linux-binutils/Makefile | 27 | ||||
-rw-r--r-- | devel/mipsel-linux-binutils/distinfo | 2 | ||||
-rw-r--r-- | devel/mipsel-linux-binutils/files/patch-aa-mips-1 | 272 | ||||
-rw-r--r-- | devel/mipsel-linux-binutils/files/patch-bb-mips-2 | 52 | ||||
-rw-r--r-- | devel/mipsel-linux-binutils/files/patch-cc-loaddelay-2 | 257 | ||||
-rw-r--r-- | devel/mipsel-linux-binutils/pkg-comment | 2 | ||||
-rw-r--r-- | devel/mipsel-linux-binutils/pkg-descr | 4 | ||||
-rw-r--r-- | devel/mipsel-linux-binutils/pkg-plist | 62 |
8 files changed, 32 insertions, 646 deletions
diff --git a/devel/mipsel-linux-binutils/Makefile b/devel/mipsel-linux-binutils/Makefile index fa7e3d2..0bd21f7 100644 --- a/devel/mipsel-linux-binutils/Makefile +++ b/devel/mipsel-linux-binutils/Makefile @@ -6,15 +6,17 @@ # PORTNAME= binutils -PORTVERSION= 2.8.1 +PORTVERSION= 2.10.91 CATEGORIES= devel -MASTER_SITES= ${MASTER_SITE_GNU} +MASTER_SITES= ftp://ftp.agendacomputing.com/pub/dev/snow/snap-02212000/src/ MASTER_SITE_SUBDIR= binutils PKGNAMEPREFIX= mipsel-linux- +DISTNAME= binutils-CVS MAINTAINER= lev@serebryakov.spb.ru -PATCH_STRIP= -p1 +WRKSRC= ${WRKDIR}/binutils-CVS/src + USE_GMAKE= yes CONFIGURE_ARGS= --target=${PKGNAMEPREFIX:S/-$//} USE_LIBTOOL= yes @@ -31,7 +33,7 @@ MAN1= ${PKGNAMEPREFIX}ar.1 ${PKGNAMEPREFIX}nm.1 \ PLIST_SUB+= BINUTILS_TARG=${PKGNAMEPREFIX:S/-$//} BINARIES= addr2line ar as c++filt gasp ld nm objcopy objdump ranlib \ - size strings strip + readelf size strings strip post-install: .for F in ${BINARIES} @@ -39,20 +41,7 @@ post-install: @${LN} -f ${PREFIX}/bin/${PKGNAMEPREFIX}$F \ ${PREFIX}/${PKGNAMEPREFIX:S/-$//}/bin/$F .endfor - @${MKDIR} ${PREFIX}/${PKGNAMEPREFIX:S/-$//}/lib - @cd ${PREFIX}/lib ; ${MV} libiberty.a \ - ${PREFIX}/${PKGNAMEPREFIX:S/-$//}/lib - @cd ${PREFIX}/lib ; ${MV} lib${PKGNAMEPREFIX}bfd.a \ - ${PREFIX}/${PKGNAMEPREFIX:S/-$//}/lib/libbfd.a - @cd ${PREFIX}/lib ; ${MV} lib${PKGNAMEPREFIX}opcodes.a \ - ${PREFIX}/${PKGNAMEPREFIX:S/-$//}/lib/libopcodes.a - @${MKDIR} ${PREFIX}/${PKGNAMEPREFIX:S/-$//}/include - @cd ${PREFIX}/include ; ${MV} ansidecl.h bfd.h bfdlink.h \ - ${PREFIX}/${PKGNAMEPREFIX:S/-$//}/include - @for F in ${PREFIX}/info/as.info* ${PREFIX}/info/bfd.info* \ - ${PREFIX}/info/binutils.info* ${PREFIX}/info/ld.info* \ - ${PREFIX}/info/gasp.info*; do \ - ${MV} $${F} `echo $${F} | ${SED} 's|info/|info/mipsel-linux-|'`; \ - done + @cd ${PREFIX}/lib ; ${MV} libbfd.a lib${PKGNAMEPREFIX}bfd.a + @cd ${PREFIX}/lib ; ${MV} libopcodes.a lib${PKGNAMEPREFIX}opcodes.a .include <bsd.port.mk> diff --git a/devel/mipsel-linux-binutils/distinfo b/devel/mipsel-linux-binutils/distinfo index 7b3ae21..eac30185 100644 --- a/devel/mipsel-linux-binutils/distinfo +++ b/devel/mipsel-linux-binutils/distinfo @@ -1 +1 @@ -MD5 (binutils-2.8.1.tar.gz) = 787229d600b8bb58fe7e75ea30445e44 +MD5 (binutils-CVS.tar.gz) = 37f64d75bda4d952496c8ddcce8e3bd7 diff --git a/devel/mipsel-linux-binutils/files/patch-aa-mips-1 b/devel/mipsel-linux-binutils/files/patch-aa-mips-1 deleted file mode 100644 index 6e0c572..0000000 --- a/devel/mipsel-linux-binutils/files/patch-aa-mips-1 +++ /dev/null @@ -1,272 +0,0 @@ -diff -urN binutils-2.8.1.orig/bfd/elf32-mips.c binutils-2.8.1/bfd/elf32-mips.c ---- binutils-2.8.1.orig/bfd/elf32-mips.c Mon May 26 19:34:03 1997 -+++ binutils-2.8.1/bfd/elf32-mips.c Sat Jun 5 12:43:09 1999 -@@ -5103,36 +5103,43 @@ - } - else - { -- long indx; -- -- if (h == NULL) -- sec = local_sections[r_symndx]; -- else -- { -- BFD_ASSERT (h->root.type == bfd_link_hash_defined -- || (h->root.type -- == bfd_link_hash_defweak)); -- sec = h->root.u.def.section; -- } -- if (sec != NULL && bfd_is_abs_section (sec)) -- indx = 0; -- else if (sec == NULL || sec->owner == NULL) -+ if (r_type == R_MIPS_32) - { -- bfd_set_error (bfd_error_bad_value); -- return false; -+ outrel.r_info = ELF32_R_INFO (0, R_MIPS_REL32); -+ addend += relocation; - } -- else -- { -- asection *osec; -+ else -+ { -+ long indx; - -- osec = sec->output_section; -- indx = elf_section_data (osec)->dynindx; -- if (indx == 0) -- abort (); -- } -+ if (h == NULL) -+ sec = local_sections[r_symndx]; -+ else -+ { -+ BFD_ASSERT (h->root.type == bfd_link_hash_defined -+ || (h->root.type -+ == bfd_link_hash_defweak)); -+ sec = h->root.u.def.section; -+ } -+ if (sec != NULL && bfd_is_abs_section (sec)) -+ indx = 0; -+ else if (sec == NULL || sec->owner == NULL) -+ { -+ bfd_set_error (bfd_error_bad_value); -+ return false; -+ } -+ else -+ { -+ asection *osec; - -- outrel.r_info = ELF32_R_INFO (indx, R_MIPS_REL32); -- addend += relocation; -+ osec = sec->output_section; -+ indx = elf_section_data (osec)->dynindx; -+ if (indx == 0) -+ abort (); -+ } -+ outrel.r_info = ELF32_R_INFO (indx, R_MIPS_REL32); -+ addend += relocation; -+ } - } - - if (! skip) -diff -urN binutils-2.8.1.orig/gas/ChangeLog binutils-2.8.1/gas/ChangeLog ---- binutils-2.8.1.orig/gas/ChangeLog Mon May 26 19:32:45 1997 -+++ binutils-2.8.1/gas/ChangeLog Sat Jun 5 12:43:09 1999 -@@ -1,3 +1,10 @@ -+Tue Oct 21 03:23:59 1997 Ralf Baechle <ralf@gnu.ai.mit.edu> -+ -+ * config/tc-mips.c (macro): Only emit a BFD_RELOC_MIPS_LITERAL -+ when the symbol is in the .lit section. Required for a.out -+ support. -+ (mips_ip): Fix %HI, %hi and %lo operators. -+ - Mon May 26 13:24:25 1997 Ian Lance Taylor <ian@cygnus.com> - - * doc/as.texinfo: Don't use @value in section names or index -diff -urN binutils-2.8.1.orig/gas/config/obj-elf.c binutils-2.8.1/gas/config/obj-elf.c ---- binutils-2.8.1.orig/gas/config/obj-elf.c Mon May 26 19:32:36 1997 -+++ binutils-2.8.1/gas/config/obj-elf.c Sat Jun 5 13:03:43 1999 -@@ -58,7 +58,6 @@ - void obj_elf_version PARAMS ((int)); - static void obj_elf_size PARAMS ((int)); - static void obj_elf_type PARAMS ((int)); --static void obj_elf_ident PARAMS ((int)); - static void obj_elf_weak PARAMS ((int)); - static void obj_elf_local PARAMS ((int)); - static void obj_elf_common PARAMS ((int)); -@@ -1132,7 +1131,7 @@ - demand_empty_rest_of_line (); - } - --static void -+void - obj_elf_ident (ignore) - int ignore; - { -diff -urN binutils-2.8.1.orig/gas/config/obj-elf.h binutils-2.8.1/gas/config/obj-elf.h ---- binutils-2.8.1.orig/gas/config/obj-elf.h Mon May 26 19:32:36 1997 -+++ binutils-2.8.1/gas/config/obj-elf.h Sat Jun 5 13:09:46 1999 -@@ -94,6 +94,8 @@ - #define obj_app_file elf_file_symbol - extern void elf_file_symbol PARAMS ((char *)); - -+extern void obj_elf_ident PARAMS ((int)); -+ - extern void obj_elf_section_change_hook PARAMS ((void)); - - extern void obj_elf_section PARAMS ((int)); -diff -urN binutils-2.8.1.orig/gas/config/tc-mips.c binutils-2.8.1/gas/config/tc-mips.c ---- binutils-2.8.1.orig/gas/config/tc-mips.c Mon May 26 19:32:40 1997 -+++ binutils-2.8.1/gas/config/tc-mips.c Sat Jun 5 13:08:28 1999 -@@ -598,6 +598,7 @@ - static void s_align PARAMS ((int)); - static void s_change_sec PARAMS ((int)); - static void s_cons PARAMS ((int)); -+static void s_ident PARAMS ((int)); - static void s_float_cons PARAMS ((int)); - static void s_mips_globl PARAMS ((int)); - static void s_option PARAMS ((int)); -@@ -668,6 +669,7 @@ - {"globl", s_mips_globl, 0}, - {"global", s_mips_globl, 0}, - {"hword", s_cons, 1}, -+ {"ident", s_ident, 1}, - {"int", s_cons, 2}, - {"long", s_cons, 2}, - {"octa", s_cons, 4}, -@@ -4863,13 +4865,22 @@ - else - { - assert (offset_expr.X_op == O_symbol -- && strcmp (segment_name (S_GET_SEGMENT -- (offset_expr.X_add_symbol)), -- ".lit4") == 0 - && offset_expr.X_add_number == 0); -- macro_build ((char *) NULL, &icnt, &offset_expr, "lwc1", "T,o(b)", -- treg, (int) BFD_RELOC_MIPS_LITERAL, GP); -- return; -+ s = segment_name (S_GET_SEGMENT (offset_expr.X_add_symbol)); -+ if (strcmp (s, ".lit4") == 0) -+ { -+ macro_build ((char *) NULL, &icnt, &offset_expr, "lwc1", "T,o(b)", -+ treg, (int) BFD_RELOC_MIPS_LITERAL, GP); -+ return; -+ } -+ else -+ { -+ /* FIXME: This won't work for a 64 bit address. */ -+ macro_build_lui ((char *) NULL, &icnt, &offset_expr, AT); -+ macro_build ((char *) NULL, &icnt, &offset_expr, "lwc1", "T,o(b)", -+ treg, (int) BFD_RELOC_LO16, AT); -+ return; -+ } - } - - case M_LI_D: -@@ -6965,11 +6976,23 @@ - c = my_getSmallExpression (&imm_expr, s); - if (c != '\0') - { -- if (c != 'l') -+ if (c == 'l') - { - if (imm_expr.X_op == O_constant) -- imm_expr.X_add_number = -- (imm_expr.X_add_number >> 16) & 0xffff; -+ { -+ imm_expr.X_add_number &= 0xffff; -+ imm_reloc = BFD_RELOC_LO16; -+ } -+ } -+ else -+ { -+ if (imm_expr.X_op == O_constant) -+ { -+ if (c == 'h' && (imm_expr.X_add_number & 0x8000)) -+ imm_expr.X_add_number += 0x1000; -+ imm_expr.X_add_number = -+ (imm_expr.X_add_number >> 16) & 0xffff; -+ } - else if (c == 'h') - { - imm_reloc = BFD_RELOC_HI16_S; -@@ -7064,11 +7087,22 @@ - break; - - offset_reloc = BFD_RELOC_LO16; -- if (c == 'h' || c == 'H') -+ if (c) - { -- assert (offset_expr.X_op == O_constant); -- offset_expr.X_add_number = -- (offset_expr.X_add_number >> 16) & 0xffff; -+ if (c != 'l') -+ { -+ if (offset_expr.X_op == O_constant) -+ { -+ if (c == 'h' && (offset_expr.X_add_number & 0x8000)) -+ offset_expr.X_add_number += 0x1000; -+ offset_expr.X_add_number = -+ (offset_expr.X_add_number >> 16) & 0xffff; -+ } -+ else if (c == 'h') -+ offset_reloc = BFD_RELOC_HI16_S; -+ else -+ offset_reloc = BFD_RELOC_HI16; -+ } - } - s = expr_end; - continue; -@@ -7081,10 +7115,13 @@ - - case 'u': /* upper 16 bits */ - c = my_getSmallExpression (&imm_expr, s); -- if (imm_expr.X_op == O_constant -- && (imm_expr.X_add_number < 0 -- || imm_expr.X_add_number >= 0x10000)) -- as_bad ("lui expression not in range 0..65535"); -+ if (!c) -+ { -+ if (imm_expr.X_op == O_constant -+ && (imm_expr.X_add_number < 0 -+ || imm_expr.X_add_number >= 0x10000)) -+ as_bad ("lui expression not in range 0..65535"); -+ } - imm_reloc = BFD_RELOC_LO16; - if (c) - { -@@ -9150,6 +9187,14 @@ - mips_enable_auto_align () - { - auto_align = 1; -+} -+ -+static void -+s_ident (ignore) -+ int ignore; -+{ -+ mips_emit_delays (true); -+ obj_elf_ident(0); - } - - static void -diff -urN binutils-2.8.1.orig/opcodes/mips-opc.c binutils-2.8.1/opcodes/mips-opc.c ---- binutils-2.8.1.orig/opcodes/mips-opc.c Mon May 26 21:34:19 1997 -+++ binutils-2.8.1/opcodes/mips-opc.c Wed Oct 7 14:16:21 1998 -@@ -655,10 +655,10 @@ - {"tgeu", "s,t", 0x00000031, 0xfc00003f, RD_s|RD_t|I2|TRAP }, - {"tgeu", "s,j", 0x04090000, 0xfc1f0000, RD_s|I2|TRAP }, /* tgeiu */ - {"tgeu", "s,I", 2, (int) M_TGEU_I, INSN_MACRO }, --{"tlbp", "", 0x42000008, 0xffffffff, INSN_TLB }, --{"tlbr", "", 0x42000001, 0xffffffff, INSN_TLB }, --{"tlbwi", "", 0x42000002, 0xffffffff, INSN_TLB }, --{"tlbwr", "", 0x42000006, 0xffffffff, INSN_TLB }, -+{"tlbp", "", 0x42000008, 0xffffffff, INSN_TLB|INSN_COP|COD }, -+{"tlbr", "", 0x42000001, 0xffffffff, INSN_TLB|INSN_COP|COD }, -+{"tlbwi", "", 0x42000002, 0xffffffff, INSN_TLB|INSN_COP|COD }, -+{"tlbwr", "", 0x42000006, 0xffffffff, INSN_TLB|INSN_COP|COD }, - {"tlti", "s,j", 0x040a0000, 0xfc1f0000, RD_s|I2|TRAP }, - {"tlt", "s,t", 0x00000032, 0xfc00003f, RD_s|RD_t|I2|TRAP }, - {"tlt", "s,j", 0x040a0000, 0xfc1f0000, RD_s|I2|TRAP }, /* tlti */ diff --git a/devel/mipsel-linux-binutils/files/patch-bb-mips-2 b/devel/mipsel-linux-binutils/files/patch-bb-mips-2 deleted file mode 100644 index b58ca45..0000000 --- a/devel/mipsel-linux-binutils/files/patch-bb-mips-2 +++ /dev/null @@ -1,52 +0,0 @@ -diff -rubN binutils-2.8.1-mips1/bfd/ChangeLog binutils-2.8.1-mips2/bfd/ChangeLog ---- binutils-2.8.1-mips1/bfd/ChangeLog Mon May 26 10:33:56 1997 -+++ binutils-2.8.1-mips2/bfd/ChangeLog Sat Dec 9 08:49:09 2000 -@@ -1,3 +1,8 @@ -+2000-11-30 Ralf Baechle <ralf@gnu.org> -+ -+ * elf32-mips.c (elf32_mips_merge_private_bfd_data): Always permit -+ BFDs containing no sections to be merged, regardless of their flags. -+ - Fri May 16 12:10:52 1997 Ian Lance Taylor <ian@cygnus.com> - - * elflink.h (elf_link_add_object_symbols): Don't decrease the -diff -rubN binutils-2.8.1-mips1/bfd/elf32-mips.c binutils-2.8.1-mips2/bfd/elf32-mips.c ---- binutils-2.8.1-mips1/bfd/elf32-mips.c Sat Dec 9 08:50:25 2000 -+++ binutils-2.8.1-mips2/bfd/elf32-mips.c Sat Dec 9 08:49:09 2000 -@@ -1964,6 +1964,8 @@ - flagword old_flags; - flagword new_flags; - boolean ok; -+ boolean null_input_bfd = true; -+ asection *sec; - - /* Check if we have the same endianess */ - if (ibfd->xvec->byteorder != obfd->xvec->byteorder -@@ -2009,6 +2011,27 @@ - old_flags &= ~EF_MIPS_NOREORDER; - - if (new_flags == old_flags) -+ return true; -+ -+ /* Check to see if the input BFD actually contains any sections. -+ If not, its flags may not have been initialised either, but it cannot -+ actually cause any incompatibility. */ -+ for (sec = ibfd->sections; sec != NULL; sec = sec->next) -+ { -+ /* Ignore synthetic sections and empty .text, .data and .bss sections -+ which are automatically generated by gas. */ -+ if (strcmp (sec->name, ".reginfo") -+ && strcmp (sec->name, ".mdebug") -+ && ((!strcmp (sec->name, ".text") -+ || !strcmp (sec->name, ".data") -+ || !strcmp (sec->name, ".bss")) -+ && sec->_raw_size != 0)) -+ { -+ null_input_bfd = false; -+ break; -+ } -+ } -+ if (null_input_bfd) - return true; - - ok = true; diff --git a/devel/mipsel-linux-binutils/files/patch-cc-loaddelay-2 b/devel/mipsel-linux-binutils/files/patch-cc-loaddelay-2 deleted file mode 100644 index e7d77c1..0000000 --- a/devel/mipsel-linux-binutils/files/patch-cc-loaddelay-2 +++ /dev/null @@ -1,257 +0,0 @@ ---- ../cambridge-src/binutils-2.8.1/gas/config/tc-mips.c Thu Sep 9 00:09:29 1999 -+++ binutils-2.8.1/gas/config/tc-mips.c Fri Nov 10 20:28:11 2000 -@@ -3079,12 +3079,14 @@ - else if (mips_pic == SVR4_PIC && ! mips_big_got) - { - expressionS ex; -+ /* If we're at mips2 or higher, we don't need nops after loads */ -+ int use_load_delay = mips_opts.isa < 2; - - /* If this is a reference to an external symbol, we want - lw $reg,<sym>($gp) (BFD_RELOC_MIPS_GOT16) - Otherwise we want - lw $reg,<sym>($gp) (BFD_RELOC_MIPS_GOT16) -- nop -+ nop (if mips1) - addiu $reg,$reg,<sym> (BFD_RELOC_LO16) - If there is a constant, it must be added in after. */ - ex.X_add_number = ep->X_add_number; -@@ -3093,9 +3095,11 @@ - macro_build ((char *) NULL, counter, ep, - mips_opts.isa < 3 ? "lw" : "ld", - "t,o(b)", reg, (int) BFD_RELOC_MIPS_GOT16, GP); -- macro_build ((char *) NULL, counter, (expressionS *) NULL, "nop", ""); -+ if (use_load_delay) -+ macro_build ((char *) NULL, counter, (expressionS *) NULL, "nop", ""); - p = frag_var (rs_machine_dependent, 4, 0, -- RELAX_ENCODE (0, 4, -8, 0, 0, mips_opts.warn_about_macros), -+ RELAX_ENCODE (0, 4, use_load_delay ? -8 : -4, 0, 0, -+ mips_opts.warn_about_macros), - ep->X_add_symbol, (offsetT) 0, (char *) NULL); - macro_build (p, counter, ep, - mips_opts.isa < 3 ? "addiu" : "daddiu", -@@ -3955,13 +3959,13 @@ - lw $tempreg,<sym>($gp) (BFD_RELOC_MIPS_GOT16) - For a local symbol, we want - lw $tempreg,<sym>($gp) (BFD_RELOC_MIPS_GOT16) -- nop -+ nop (if mips1) - addiu $tempreg,$tempreg,<sym> (BFD_RELOC_LO16) - - If we have a small constant, and this is a reference to - an external symbol, we want - lw $tempreg,<sym>($gp) (BFD_RELOC_MIPS_GOT16) -- nop -+ nop (if mips1) - addiu $tempreg,$tempreg,<constant> - For a local symbol, we want the same instruction - sequence, but we output a BFD_RELOC_LO16 reloc on the -@@ -3976,6 +3980,10 @@ - For a local symbol, we want the same instruction - sequence, but we output a BFD_RELOC_LO16 reloc on the - addiu instruction. */ -+ -+ /* If we're at mips2 or higher, we don't need nops after loads */ -+ int use_load_delay = mips_opts.isa < 2; -+ - expr1.X_add_number = offset_expr.X_add_number; - offset_expr.X_add_number = 0; - frag_grow (32); -@@ -3986,7 +3994,7 @@ - { - int off; - -- if (breg == 0) -+ if (breg == 0 || !use_load_delay) - off = 0; - else - { -@@ -3997,14 +4005,19 @@ - "nop", ""); - off = 4; - } -- p = frag_var (rs_machine_dependent, 8 - off, 0, -- RELAX_ENCODE (0, 8 - off, -4 - off, 4 - off, 0, -+ p = frag_var (rs_machine_dependent, -+ (use_load_delay ? 8 : 4) - off, 0, -+ RELAX_ENCODE (0, -+ (use_load_delay ? 8 : 4) - off, -+ -4 - off, -+ (use_load_delay ? 4 : 0) - off, -+ 0, - (breg == 0 - ? mips_opts.warn_about_macros - : 0)), - offset_expr.X_add_symbol, (offsetT) 0, - (char *) NULL); -- if (breg == 0) -+ if (breg == 0 && use_load_delay) - { - macro_build (p, &icnt, (expressionS *) NULL, "nop", ""); - p += 4; -@@ -4019,13 +4032,14 @@ - else if (expr1.X_add_number >= -0x8000 - && expr1.X_add_number < 0x8000) - { -- macro_build ((char *) NULL, &icnt, (expressionS *) NULL, -+ if (use_load_delay) -+ macro_build ((char *) NULL, &icnt, (expressionS *) NULL, - "nop", ""); - macro_build ((char *) NULL, &icnt, &expr1, - mips_opts.isa < 3 ? "addiu" : "daddiu", - "t,r,j", tempreg, tempreg, (int) BFD_RELOC_LO16); - (void) frag_var (rs_machine_dependent, 0, 0, -- RELAX_ENCODE (0, 0, -12, -4, 0, 0), -+ RELAX_ENCODE (0, 0, (use_load_delay ? -12 : -8), -4, 0, 0), - offset_expr.X_add_symbol, (offsetT) 0, - (char *) NULL); - } -@@ -4044,14 +4058,19 @@ - off1 = 0; - else - { -- macro_build ((char *) NULL, &icnt, (expressionS *) NULL, -- "nop", ""); -+ off1 = 0; -+ if (mips_opts.isa < 2) -+ { -+ macro_build ((char *) NULL, &icnt, (expressionS *) NULL, -+ "nop", ""); -+ off1 -= 4; -+ } - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, - mips_opts.isa < 3 ? "addu" : "daddu", - "d,v,t", treg, AT, breg); -+ off1 -= 4; - breg = 0; - tempreg = treg; -- off1 = -8; - } - - /* Set mips_optimize around the lui instruction to avoid -@@ -4355,7 +4374,7 @@ - /* If this is a reference to an external symbol, and we are - using a small GOT, we want - lw $25,<sym>($gp) (BFD_RELOC_MIPS_CALL16) -- nop -+ nop (if mips1) - jalr $25 - nop - lw $gp,cprestore($sp) -@@ -4370,7 +4389,7 @@ - lw $gp,cprestore($sp) - If the symbol is not external, we want - lw $25,<sym>($gp) (BFD_RELOC_MIPS_GOT16) -- nop -+ nop (if mips1) - addiu $25,$25,<sym> (BFD_RELOC_LO16) - jalr $25 - nop -@@ -4378,14 +4397,18 @@ - frag_grow (40); - if (! mips_big_got) - { -+ int use_load_delay = mips_opts.isa < 2; -+ - macro_build ((char *) NULL, &icnt, &offset_expr, - mips_opts.isa < 3 ? "lw" : "ld", - "t,o(b)", PIC_CALL_REG, - (int) BFD_RELOC_MIPS_CALL16, GP); -- macro_build ((char *) NULL, &icnt, (expressionS *) NULL, -- "nop", ""); -+ if (use_load_delay) -+ macro_build ((char *) NULL, &icnt, (expressionS *) NULL, -+ "nop", ""); - p = frag_var (rs_machine_dependent, 4, 0, -- RELAX_ENCODE (0, 4, -8, 0, 0, 0), -+ RELAX_ENCODE (0, 4, use_load_delay ? -8 : -4, -+ 0, 0, 0), - offset_expr.X_add_symbol, (offsetT) 0, - (char *) NULL); - } -@@ -4711,11 +4734,11 @@ - { - /* If this is a reference to an external symbol, we want - lw $tempreg,<sym>($gp) (BFD_RELOC_MIPS_GOT16) -- nop -+ nop (if mips1) - <op> $treg,0($tempreg) - Otherwise we want - lw $tempreg,<sym>($gp) (BFD_RELOC_MIPS_GOT16) -- nop -+ nop (if mips1) - addiu $tempreg,$tempreg,<sym> (BFD_RELOC_LO16) - <op> $treg,0($tempreg) - If there is a base register, we add it to $tempreg before -@@ -4724,6 +4747,10 @@ - 16 bits, because we have no way to load the upper 16 bits - (actually, we could handle them for the subset of cases - in which we are not using $at). */ -+ -+ /* If we're at mips2 or higher, we don't need nops after loads */ -+ int use_load_delay = mips_opts.isa < 2; -+ - assert (offset_expr.X_op == O_symbol); - expr1.X_add_number = offset_expr.X_add_number; - offset_expr.X_add_number = 0; -@@ -4734,9 +4761,10 @@ - macro_build ((char *) NULL, &icnt, &offset_expr, - mips_opts.isa < 3 ? "lw" : "ld", - "t,o(b)", tempreg, (int) BFD_RELOC_MIPS_GOT16, GP); -- macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "nop", ""); -+ if (use_load_delay) -+ macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "nop", ""); - p = frag_var (rs_machine_dependent, 4, 0, -- RELAX_ENCODE (0, 4, -8, 0, 0, 0), -+ RELAX_ENCODE (0, 4, use_load_delay ? -8 : -4, 0, 0, 0), - offset_expr.X_add_symbol, (offsetT) 0, - (char *) NULL); - macro_build (p, &icnt, &offset_expr, -@@ -5184,15 +5212,17 @@ - else if (mips_pic == SVR4_PIC && ! mips_big_got) - { - int off; -+ /* If we're at mips2 or higher, we don't need nops after loads */ -+ int use_load_delay = mips_opts.isa < 2; - - /* If this is a reference to an external symbol, we want - lw $at,<sym>($gp) (BFD_RELOC_MIPS_GOT16) -- nop -+ nop (if mips1) - <op> $treg,0($at) - <op> $treg+1,4($at) - Otherwise we want - lw $at,<sym>($gp) (BFD_RELOC_MIPS_GOT16) -- nop -+ nop (if mips1) - <op> $treg,<sym>($at) (BFD_RELOC_LO16) - <op> $treg+1,<sym>+4($at) (BFD_RELOC_LO16) - If there is a base register we add it to $at before the -@@ -5204,7 +5234,7 @@ - if (expr1.X_add_number < -0x8000 - || expr1.X_add_number >= 0x8000 - 4) - as_bad ("PIC code offset overflow (max 16 signed bits)"); -- if (breg == 0) -+ if (breg == 0 || !use_load_delay) - off = 0; - else - off = 4; -@@ -5212,7 +5242,8 @@ - macro_build ((char *) NULL, &icnt, &offset_expr, - mips_opts.isa < 3 ? "lw" : "ld", - "t,o(b)", AT, (int) BFD_RELOC_MIPS_GOT16, GP); -- macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "nop", ""); -+ if (use_load_delay) -+ macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "nop", ""); - if (breg != 0) - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, - mips_opts.isa < 3 ? "addu" : "daddu", -@@ -5234,7 +5265,7 @@ - mips_optimize = hold_mips_optimize; - - (void) frag_var (rs_machine_dependent, 0, 0, -- RELAX_ENCODE (0, 0, -16 - off, -8, 1, 0), -+ RELAX_ENCODE (0, 0, -16 - off, use_load_delay ? -8 : -4, 1, 0), - offset_expr.X_add_symbol, (offsetT) 0, - (char *) NULL); - } diff --git a/devel/mipsel-linux-binutils/pkg-comment b/devel/mipsel-linux-binutils/pkg-comment index 5396362..c4028f1 100644 --- a/devel/mipsel-linux-binutils/pkg-comment +++ b/devel/mipsel-linux-binutils/pkg-comment @@ -1 +1 @@ -GNU binutils for mipsel-linux cross-development (with Linux VR patches) +GNU binutils for mipsel-linux cross-development with SNOW ABI diff --git a/devel/mipsel-linux-binutils/pkg-descr b/devel/mipsel-linux-binutils/pkg-descr index 3570375..59eecf0 100644 --- a/devel/mipsel-linux-binutils/pkg-descr +++ b/devel/mipsel-linux-binutils/pkg-descr @@ -2,9 +2,9 @@ GNU binutils for MIPS Little Endian Linux (mipsel-linux) cross-development It is binutils for MIPS Little Endian Linux (mipsel-linux) target. This target is, for example, Linux VR on NEC's VR-based PDAs (Agenda VR3 - and others), and includes Linux VR pathes. + and others). -Hacked from official SRPMs for RedHat. + It is CVS-based version, official version of Agenda SNOW Toolchain. http://dev.agendacomputing.org/ -- Agenda VR3 PDA http://www.gnu.org/ -- Home page of GNU binutils diff --git a/devel/mipsel-linux-binutils/pkg-plist b/devel/mipsel-linux-binutils/pkg-plist index 9906374..946240a 100644 --- a/devel/mipsel-linux-binutils/pkg-plist +++ b/devel/mipsel-linux-binutils/pkg-plist @@ -9,24 +9,25 @@ %%BINUTILS_TARG%%/bin/objcopy %%BINUTILS_TARG%%/bin/objdump %%BINUTILS_TARG%%/bin/ranlib +%%BINUTILS_TARG%%/bin/readelf %%BINUTILS_TARG%%/bin/strip %%BINUTILS_TARG%%/bin/size %%BINUTILS_TARG%%/bin/strings -%%BINUTILS_TARG%%/include/ansidecl.h -%%BINUTILS_TARG%%/include/bfd.h -%%BINUTILS_TARG%%/include/bfdlink.h -%%BINUTILS_TARG%%/lib/ldscripts/elf32bmip.x -%%BINUTILS_TARG%%/lib/ldscripts/elf32bmip.xbn -%%BINUTILS_TARG%%/lib/ldscripts/elf32bmip.xn -%%BINUTILS_TARG%%/lib/ldscripts/elf32bmip.xr -%%BINUTILS_TARG%%/lib/ldscripts/elf32bmip.xs -%%BINUTILS_TARG%%/lib/ldscripts/elf32bmip.xu -%%BINUTILS_TARG%%/lib/ldscripts/elf32lmip.x -%%BINUTILS_TARG%%/lib/ldscripts/elf32lmip.xbn -%%BINUTILS_TARG%%/lib/ldscripts/elf32lmip.xn -%%BINUTILS_TARG%%/lib/ldscripts/elf32lmip.xr -%%BINUTILS_TARG%%/lib/ldscripts/elf32lmip.xs -%%BINUTILS_TARG%%/lib/ldscripts/elf32lmip.xu +include/ansidecl.h +include/bfd.h +include/bfdlink.h +%%BINUTILS_TARG%%/lib/ldscripts/elf32bsmip.x +%%BINUTILS_TARG%%/lib/ldscripts/elf32bsmip.xbn +%%BINUTILS_TARG%%/lib/ldscripts/elf32bsmip.xn +%%BINUTILS_TARG%%/lib/ldscripts/elf32bsmip.xr +%%BINUTILS_TARG%%/lib/ldscripts/elf32bsmip.xs +%%BINUTILS_TARG%%/lib/ldscripts/elf32bsmip.xu +%%BINUTILS_TARG%%/lib/ldscripts/elf32lsmip.x +%%BINUTILS_TARG%%/lib/ldscripts/elf32lsmip.xbn +%%BINUTILS_TARG%%/lib/ldscripts/elf32lsmip.xn +%%BINUTILS_TARG%%/lib/ldscripts/elf32lsmip.xr +%%BINUTILS_TARG%%/lib/ldscripts/elf32lsmip.xs +%%BINUTILS_TARG%%/lib/ldscripts/elf32lsmip.xu %%BINUTILS_TARG%%/lib/ldscripts/mipsbig.x %%BINUTILS_TARG%%/lib/ldscripts/mipsbig.xbn %%BINUTILS_TARG%%/lib/ldscripts/mipsbig.xn @@ -37,9 +38,9 @@ %%BINUTILS_TARG%%/lib/ldscripts/mipslit.xn %%BINUTILS_TARG%%/lib/ldscripts/mipslit.xr %%BINUTILS_TARG%%/lib/ldscripts/mipslit.xu -%%BINUTILS_TARG%%/lib/libiberty.a -%%BINUTILS_TARG%%/lib/libbfd.a -%%BINUTILS_TARG%%/lib/libopcodes.a +lib/libiberty.a +lib/lib%%BINUTILS_TARG%%-bfd.a +lib/lib%%BINUTILS_TARG%%-opcodes.a bin/%%BINUTILS_TARG%%-addr2line bin/%%BINUTILS_TARG%%-ar bin/%%BINUTILS_TARG%%-as @@ -50,34 +51,11 @@ bin/%%BINUTILS_TARG%%-nm bin/%%BINUTILS_TARG%%-objcopy bin/%%BINUTILS_TARG%%-objdump bin/%%BINUTILS_TARG%%-ranlib +bin/%%BINUTILS_TARG%%-readelf bin/%%BINUTILS_TARG%%-strip bin/%%BINUTILS_TARG%%-size bin/%%BINUTILS_TARG%%-strings -info/%%BINUTILS_TARG%%-bfd.info -info/%%BINUTILS_TARG%%-bfd.info-1 -info/%%BINUTILS_TARG%%-bfd.info-2 -info/%%BINUTILS_TARG%%-bfd.info-3 -info/%%BINUTILS_TARG%%-bfd.info-4 -info/%%BINUTILS_TARG%%-bfd.info-5 -info/%%BINUTILS_TARG%%-binutils.info -info/%%BINUTILS_TARG%%-binutils.info-1 -info/%%BINUTILS_TARG%%-binutils.info-2 -info/%%BINUTILS_TARG%%-ld.info -info/%%BINUTILS_TARG%%-ld.info-1 -info/%%BINUTILS_TARG%%-ld.info-2 -info/%%BINUTILS_TARG%%-ld.info-3 -info/%%BINUTILS_TARG%%-ld.info-4 -info/%%BINUTILS_TARG%%-as.info -info/%%BINUTILS_TARG%%-as.info-1 -info/%%BINUTILS_TARG%%-as.info-2 -info/%%BINUTILS_TARG%%-as.info-3 -info/%%BINUTILS_TARG%%-as.info-4 -info/%%BINUTILS_TARG%%-as.info-5 -info/%%BINUTILS_TARG%%-as.info-6 -info/%%BINUTILS_TARG%%-as.info-7 -info/%%BINUTILS_TARG%%-gasp.info @dirrm %%BINUTILS_TARG%%/bin -@dirrm %%BINUTILS_TARG%%/include @dirrm %%BINUTILS_TARG%%/lib/ldscripts @dirrm %%BINUTILS_TARG%%/lib @dirrm %%BINUTILS_TARG%% |