diff options
author | Mike Frysinger <vapier@gentoo.org> | 2007-12-01 20:58:41 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2007-12-01 20:58:41 +0000 |
commit | a7df109e1e6ec2ccb7e9a207e9e316db25db40f9 (patch) | |
tree | bcf7fa27ae74c9a19ff9a4e9cb560686b61d5a75 /sys-devel | |
parent | Honour user settings and fix --as-needed, bug #199536. Use DESTDIR and more c... (diff) | |
download | gentoo-2-a7df109e1e6ec2ccb7e9a207e9e316db25db40f9.tar.gz gentoo-2-a7df109e1e6ec2ccb7e9a207e9e316db25db40f9.tar.bz2 gentoo-2-a7df109e1e6ec2ccb7e9a207e9e316db25db40f9.zip |
old
(Portage version: 2.1.4_rc4)
Diffstat (limited to 'sys-devel')
24 files changed, 0 insertions, 3535 deletions
diff --git a/sys-devel/gcc/files/3.3.3/gcc-3.3.3-norelro.patch b/sys-devel/gcc/files/3.3.3/gcc-3.3.3-norelro.patch deleted file mode 100644 index 8da6d30168a5..000000000000 --- a/sys-devel/gcc/files/3.3.3/gcc-3.3.3-norelro.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- gcc-3.3.3/gcc/pie-ssp-chain.h.mps 2004-06-14 22:18:40.000000000 +0200 -+++ gcc-3.3.3/gcc/pie-ssp-chain.h 2004-06-14 22:19:04.000000000 +0200 -@@ -85,7 +85,7 @@ - #endif - - #ifdef HAVE_LD_PIE --#define LINK_PIE_SPEC STD_PIE_TRIGGER( LNK_CHAIN_EXCLUDE( PIE_CHAIN_EXCLUDE(LINKSEC_PIE_LNK) ) ) " " OPP_PIE_TRIGGER() " " STD_RELRO_TRIGGER(LINKSEC_RELRO_LNK) " " OPP_RELRO_TRIGGER() " " STD_NOW_TRIGGER(LINKSEC_NOW_LNK) " " OPP_NOW_TRIGGER() -+#define LINK_PIE_SPEC STD_PIE_TRIGGER( LNK_CHAIN_EXCLUDE( PIE_CHAIN_EXCLUDE(LINKSEC_PIE_LNK) ) ) " " OPP_PIE_TRIGGER() - #else - #error we need ld w/ -pie support - #endif diff --git a/sys-devel/gcc/files/3.3.3/gcc-3.3.3-uclibc-add-ssp.patch b/sys-devel/gcc/files/3.3.3/gcc-3.3.3-uclibc-add-ssp.patch deleted file mode 100644 index 8e52412e3611..000000000000 --- a/sys-devel/gcc/files/3.3.3/gcc-3.3.3-uclibc-add-ssp.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- gcc-3.3.3/gcc/config/t-linux-uclibc.mps Mon Apr 26 14:51:40 2004 -+++ gcc-3.3.3/gcc/config/t-linux-uclibc Mon Apr 26 14:51:53 2004 -@@ -6,7 +6,7 @@ - # Compile crtbeginS.o and crtendS.o with pic. - CRTSTUFF_T_CFLAGS_S = $(CRTSTUFF_T_CFLAGS) -fPIC - # Compile libgcc2.a with pic. --TARGET_LIBGCC2_CFLAGS = -fPIC -+TARGET_LIBGCC2_CFLAGS = -fPIC -DHAVE_SYSLOG - - # Override t-slibgcc-elf-ver to export some libgcc symbols with - # the symbol versions that glibc used. diff --git a/sys-devel/gcc/files/3.4.0/gcc-3.4.0-cc1-no-stack-protector.patch b/sys-devel/gcc/files/3.4.0/gcc-3.4.0-cc1-no-stack-protector.patch deleted file mode 100644 index 72bce28a552b..000000000000 --- a/sys-devel/gcc/files/3.4.0/gcc-3.4.0-cc1-no-stack-protector.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- gcc/Makefile.in.mps 2004-06-01 22:06:17.000000000 +0200 -+++ gcc/Makefile.in 2004-06-01 22:06:56.000000000 +0200 -@@ -1845,7 +1845,7 @@ $(out_object_file): $(out_file) $(CONFIG - output.h $(INSN_ATTR_H) $(SYSTEM_H) toplev.h $(TARGET_H) libfuncs.h \ - $(TARGET_DEF_H) function.h sched-int.h $(TM_P_H) $(EXPR_H) $(OPTABS_H) \ - langhooks.h -- $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ -+ $(CC) -c $(ALL_CFLAGS) -fno-stack-protector $(ALL_CPPFLAGS) $(INCLUDES) \ - $(out_file) $(OUTPUT_OPTION) - - # Build auxiliary files that support ecoff format. diff --git a/sys-devel/gcc/files/3.4.0/gcc34-reiser4-fix.patch b/sys-devel/gcc/files/3.4.0/gcc34-reiser4-fix.patch deleted file mode 100644 index f43be66b1677..000000000000 --- a/sys-devel/gcc/files/3.4.0/gcc34-reiser4-fix.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- gcc/cppfiles.c 2004/06/02 09:00:36 1.1 -+++ gcc/cppfiles.c 2004/06/02 09:20:49 -@@ -329,8 +329,17 @@ find_file_in_dir (cpp_reader *pfile, _cp - - if (file->err_no != ENOENT) - { -- open_file_failed (pfile, file); -- return true; -+ if (file->err_no == EACCES) -+ { -+ /* make EACCES non-fatal to fix bug ?? (glibc 2.3.3 on reiser4) */ -+ cpp_errno (pfile, CPP_DL_WARNING, file->path); -+ return false; -+ } -+ else -+ { -+ open_file_failed (pfile, file); -+ return true; -+ } - } - - free (path); diff --git a/sys-devel/gcc/files/3.4.1/gcc-3.4.1-glibc-is-native.patch b/sys-devel/gcc/files/3.4.1/gcc-3.4.1-glibc-is-native.patch deleted file mode 100644 index 8bd8ca9d279a..000000000000 --- a/sys-devel/gcc/files/3.4.1/gcc-3.4.1-glibc-is-native.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- gcc-3.4.1.old/libstdc++-v3/configure.ac 2004-08-11 09:17:51.817618280 -0400 -+++ gcc-3.4.1/libstdc++-v3/configure.ac 2004-08-11 09:30:10.708289824 -0400 -@@ -39,13 +39,9 @@ - # Handy for debugging: - #AC_MSG_NOTICE($build / $host / $target / $host_alias / $target_alias); sleep 5 - --if test "$build" != "$host"; then -- # We are being configured with some form of cross compiler. -- GLIBCXX_IS_NATIVE=false -- GCC_NO_EXECUTABLES --else -- GLIBCXX_IS_NATIVE=true --fi -+# it seems this gcc always gets this check wrong for multilib on gentoo, so -+# lets force it to the value it should be. -+GLIBCXX_IS_NATIVE=true - - # Sets up automake. Must come after AC_CANONICAL_SYSTEM. Each of the - # following is magically included in AUTOMAKE_OPTIONS in each Makefile.am. diff --git a/sys-devel/gcc/files/3.4.2/810-arm-bigendian-uclibc.patch b/sys-devel/gcc/files/3.4.2/810-arm-bigendian-uclibc.patch deleted file mode 100644 index a4d87e231741..000000000000 --- a/sys-devel/gcc/files/3.4.2/810-arm-bigendian-uclibc.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff -urN gcc-3.4.1-dist/gcc/config/arm/linux-elf.h gcc-3.4.1/gcc/config/arm/linux-elf.h ---- gcc-3.4.1-dist/gcc/config/arm/linux-elf.h 2004-08-16 16:08:18.000000000 -0500 -+++ gcc-3.4.1/gcc/config/arm/linux-elf.h 2004-08-16 16:06:24.000000000 -0500 -@@ -107,7 +107,7 @@ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0} \ - -X \ -- %{mbig-endian:-EB}" \ -+ %{mbig-endian:-EB} %{mlittle-endian:-EL}" \ - SUBTARGET_EXTRA_LINK_SPEC - #else - #define LINK_SPEC "%{h*} %{version:-v} \ -diff -urN gcc-3.4.1-dist/gcc/config.gcc gcc-3.4.1/gcc/config.gcc ---- gcc-3.4.1-dist/gcc/config.gcc 2004-08-16 16:08:18.000000000 -0500 -+++ gcc-3.4.1/gcc/config.gcc 2004-08-16 16:03:25.000000000 -0500 -@@ -666,6 +666,11 @@ - ;; - arm*-*-linux-uclibc*) # ARM GNU/Linux with ELF - uClibc - tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h" -+ case $target in -+ arm*b-*) -+ tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines" -+ ;; -+ esac - tmake_file="t-slibgcc-elf-ver t-linux-uclibc arm/t-linux" - extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" - gnu_ld=yes diff --git a/sys-devel/gcc/files/3.4.2/gcc-3.4.2-mips-ip28_cache_barriers-v2.patch b/sys-devel/gcc/files/3.4.2/gcc-3.4.2-mips-ip28_cache_barriers-v2.patch deleted file mode 100644 index d91c9f2738d5..000000000000 --- a/sys-devel/gcc/files/3.4.2/gcc-3.4.2-mips-ip28_cache_barriers-v2.patch +++ /dev/null @@ -1,458 +0,0 @@ ---- gcc-3.4.2/gcc/config/mips/mips.h Thu Jul 15 02:42:47 2004 -+++ gcc-3.4.2/gcc/config/mips/mips.h Sat Sep 18 00:41:48 2004 -@@ -122,6 +122,7 @@ - extern const char *mips_isa_string; /* for -mips{1,2,3,4} */ - extern const char *mips_abi_string; /* for -mabi={32,n32,64} */ - extern const char *mips_cache_flush_func;/* for -mflush-func= and -mno-flush-func */ -+extern const char *mips_ip28_cache_barrier;/* for -mip28-cache-barrier */ - extern int mips_string_length; /* length of strings for mips16 */ - extern const struct mips_cpu_info mips_cpu_info_table[]; - extern const struct mips_cpu_info *mips_arch_info; -@@ -333,6 +334,7 @@ - #define TARGET_MIPS9000 (mips_arch == PROCESSOR_R9000) - #define TARGET_SB1 (mips_arch == PROCESSOR_SB1) - #define TARGET_SR71K (mips_arch == PROCESSOR_SR71000) -+#define TARGET_IP28 (mips_ip28_cache_barrier != 0) - - /* Scheduling target defines. */ - #define TUNE_MIPS3000 (mips_tune == PROCESSOR_R3000) -@@ -752,6 +754,8 @@ - N_("Don't call any cache flush functions"), 0}, \ - { "flush-func=", &mips_cache_flush_func, \ - N_("Specify cache flush function"), 0}, \ -+ { "ip28-cache-barrier", &mips_ip28_cache_barrier, \ -+ N_("Generate special cache barriers for SGI Indigo2 R10k"), 0}, \ - } - - /* This is meant to be redefined in the host dependent files. */ -@@ -3448,3 +3452,11 @@ - " TEXT_SECTION_ASM_OP); - #endif - #endif -+ -+#define ASM_OUTPUT_R10K_CACHE_BARRIER(STREAM) \ -+ fprintf (STREAM, "\tcache 0x14,0($sp)\t%s Cache Barrier\n", ASM_COMMENT_START) -+ -+/* -+ * mips.h Thu Jul 15 02:42:47 2004 -+ * mips.h Fri Sep 17 23:18:19 2004 ip28 -+ */ ---- gcc-3.4.2/gcc/config/mips/mips.c Wed Jul 7 21:21:10 2004 -+++ gcc-3.4.2/gcc/config/mips/mips.c Fri Sep 17 23:33:44 2004 -@@ -502,6 +502,11 @@ - - const char *mips_cache_flush_func = CACHE_FLUSH_FUNC; - -+/* Nonzero means generate special cache barriers to inhibit speculative -+ stores which might endanger cache coherency or reference invalid -+ addresses (especially on SGI's Indigo2 R10k (IP28)). */ -+const char *mips_ip28_cache_barrier; -+ - /* If TRUE, we split addresses into their high and low parts in the RTL. */ - int mips_split_addresses; - -@@ -9676,3 +9681,7 @@ - #endif /* TARGET_IRIX */ - - #include "gt-mips.h" -+/* -+ * mips.c Wed Jul 7 21:21:10 2004 -+ * mips.c Fri Sep 17 23:25:53 2004 ip28 -+ */ ---- gcc-3.4.2/gcc/final.c Sun Jan 18 23:39:57 2004 -+++ gcc-3.4.2/gcc/final.c Thu Apr 7 00:00:05 2005 -@@ -146,6 +146,13 @@ - - static rtx last_ignored_compare = 0; - -+/* Flag indicating this insn is the start of a new basic block. */ -+ -+#define NEW_BLOCK_LABEL 1 -+#define NEW_BLOCK_BRANCH 2 -+ -+static int new_block = NEW_BLOCK_LABEL; -+ - /* Assign a unique number to each insn that is output. - This can be used to generate unique local labels. */ - -@@ -235,6 +242,7 @@ - #ifdef HAVE_ATTR_length - static int align_fuzz (rtx, rtx, int, unsigned); - #endif -+static int output_store_cache_barrier (FILE *, rtx); - - /* Initialize data in final at the beginning of a compilation. */ - -@@ -1505,6 +1513,7 @@ - int seen = 0; - - last_ignored_compare = 0; -+ new_block = NEW_BLOCK_LABEL; - - #ifdef SDB_DEBUGGING_INFO - /* When producing SDB debugging info, delete troublesome line number -@@ -1571,6 +1580,7 @@ - - insn = final_scan_insn (insn, file, optimize, prescan, 0, &seen); - } -+ new_block = 0; - } - - const char * -@@ -1851,6 +1861,7 @@ - #endif - if (prescan > 0) - break; -+ new_block = NEW_BLOCK_LABEL; - - if (LABEL_NAME (insn)) - (*debug_hooks->label) (insn); -@@ -2009,6 +2020,26 @@ - - break; - } -+ -+#ifdef TARGET_IP28 -+ if (new_block) -+ { -+ /* .reorder: not really in the branch-delay-slot. */ -+ if (! set_noreorder) -+ new_block = NEW_BLOCK_LABEL; -+ -+ if (new_block == NEW_BLOCK_BRANCH) -+ /* Not yet, only *after* the branch-delay-slot ! */ -+ new_block = NEW_BLOCK_LABEL; -+ else -+ { -+ if (TARGET_IP28) -+ output_store_cache_barrier (file, insn); -+ new_block = 0; -+ } -+ } -+#endif -+ - /* Output this line note if it is the first or the last line - note in a row. */ - if (notice_source_line (insn)) -@@ -2132,8 +2163,29 @@ - clobbered by the function. */ - if (GET_CODE (XVECEXP (body, 0, 0)) == CALL_INSN) - { -+#ifdef TARGET_IP28 -+ if (TARGET_IP28) -+ new_block = NEW_BLOCK_LABEL; -+#endif - CC_STATUS_INIT; - } -+#ifdef TARGET_IP28 -+ /* Following a conditional branch sequence, we have a new basic -+ block. */ -+ if (TARGET_IP28) -+ { -+ rtx insn = XVECEXP (body, 0, 0); -+ rtx body = PATTERN (insn); -+ -+ if ((GET_CODE (insn) == JUMP_INSN && GET_CODE (body) == SET -+ && GET_CODE (SET_SRC (body)) != LABEL_REF) -+ || (GET_CODE (insn) == JUMP_INSN -+ && GET_CODE (body) == PARALLEL -+ && GET_CODE (XVECEXP (body, 0, 0)) == SET -+ && GET_CODE (SET_SRC (XVECEXP (body, 0, 0))) != LABEL_REF)) -+ new_block = NEW_BLOCK_LABEL; -+ } -+#endif - break; - } - -@@ -2188,6 +2240,20 @@ - } - #endif - -+#ifdef TARGET_IP28 -+ /* Following a conditional branch, we have a new basic block. -+ But if we are inside a sequence, the new block starts after the -+ last insn of the sequence. */ -+ if (TARGET_IP28 && final_sequence == 0 -+ && (GET_CODE (insn) == CALL_INSN -+ || (GET_CODE (insn) == JUMP_INSN && GET_CODE (body) == SET -+ && GET_CODE (SET_SRC (body)) != LABEL_REF) -+ || (GET_CODE (insn) == JUMP_INSN && GET_CODE (body) == PARALLEL -+ && GET_CODE (XVECEXP (body, 0, 0)) == SET -+ && GET_CODE (SET_SRC (XVECEXP (body, 0, 0))) != LABEL_REF))) -+ new_block = NEW_BLOCK_BRANCH; -+#endif -+ - #ifndef STACK_REGS - /* Don't bother outputting obvious no-ops, even without -O. - This optimization is fast and doesn't interfere with debugging. -@@ -2402,6 +2468,7 @@ - - if (prev_nonnote_insn (insn) != last_ignored_compare) - abort (); -+ new_block = 0; - - /* We have already processed the notes between the setter and - the user. Make sure we don't process them again, this is -@@ -2435,6 +2502,7 @@ - abort (); - #endif - -+ new_block = 0; - return new; - } - -@@ -3866,3 +3934,254 @@ - symbol_queue_size = 0; - } - } -+ -+ -+#ifdef TARGET_IP28 -+ -+/* Check, whether an instruction is a possibly harmful store instruction, -+ i.e. a store which might cause damage, if speculatively executed. */ -+ -+static rtx -+find_mem_expr (rtx xexp) -+{ -+ if (xexp) -+ { -+ const char *fmt; -+ int i, j, lng; -+ rtx x; -+ RTX_CODE code = GET_CODE (xexp); -+ -+ if (MEM == code) -+ return xexp; -+ -+ fmt = GET_RTX_FORMAT (code); -+ lng = GET_RTX_LENGTH (code); -+ -+ for (i = 0; i < lng; ++i) -+ switch (fmt[i]) -+ { -+ case 'e': -+ x = find_mem_expr (XEXP (xexp, i)); -+ if (x) -+ return x; -+ break; -+ case 'E': -+ if (XVEC (xexp, i)) -+ for (j = 0; j < XVECLEN (xexp, i); ++j) -+ { -+ x = find_mem_expr (XVECEXP (xexp, i, j)); -+ if (x) -+ return x; -+ } -+ } -+ } -+ return 0; -+} -+ -+static int -+check_mem_expr (rtx memx) -+{ -+ /* Check the expression `memx' (with type GET_CODE(memx) == MEM) -+ for the most common stackpointer-addressing modes. -+ It's not worthwile to avoid a cache barrier also on the -+ remaining unfrequently used modes. */ -+ rtx x = XEXP (memx, 0); -+ switch (GET_CODE (x)) -+ { -+ case REG: -+ if (REGNO (x) == STACK_POINTER_REGNUM) -+ return 0; -+ default: -+ break; -+ case PLUS: case MINUS: /* always `SP + const' ? */ -+ if (GET_CODE (XEXP (x, 1)) == REG -+ && REGNO (XEXP (x, 1)) == STACK_POINTER_REGNUM) -+ return 0; -+ case NEG: case SIGN_EXTEND: case ZERO_EXTEND: -+ if (GET_CODE (XEXP (x, 0)) == REG -+ && REGNO (XEXP (x, 0)) == STACK_POINTER_REGNUM) -+ return 0; -+ } -+ -+ /* Stores/Loads to/from constant addresses can be considered -+ harmless, since: -+ 1) the address is always valid, even when taken speculatively. -+ 2a) the location is (hopefully) never used as a dma-target, thus -+ there is no danger of cache-inconsistency. -+ 2b) uncached loads/stores are guaranteed to be non-speculative. */ -+ if ( CONSTANT_P(x) ) -+ return 0; -+ -+ return 1; -+} -+ -+/* inline */ static int -+check_pattern_for_store (rtx body) -+{ -+ /* Check for (set (mem:M (non_stackpointer_address) ...)). Here we -+ assume, that addressing with the stackpointer accesses neither -+ uncached-aliased nor invalid memory. (May be, this applies to the -+ global pointer and frame pointer also, but its saver not to assume -+ it. And probably it's not worthwile to regard these registers) -+ -+ Speculative loads from invalid addresses also cause bus errors... -+ So check for (set (reg:M ...) (mem:M (non_stackpointer_address))) -+ too. */ -+ -+ if (body && GET_CODE (body) == SET) -+ { -+ rtx x = find_mem_expr (body); -+ -+ if (x && check_mem_expr (x)) -+ return 1; -+ } -+ return 0; -+} -+ -+static int -+check_insn_for_store (int state, rtx insn) -+{ -+ /* Check for (ins (set (mem:M (dangerous_address)) ...)) or end of the -+ current basic block. -+ Criteria to recognize end-of/next basic-block are reduplicated here -+ from final_scan_insn. */ -+ -+ rtx body; -+ int code; -+ -+ if (INSN_DELETED_P (insn)) -+ return 0; -+ -+ switch (code = GET_CODE (insn)) -+ { -+ case CODE_LABEL: -+ return -1; -+ case CALL_INSN: -+ case JUMP_INSN: -+ case INSN: -+ body = PATTERN (insn); -+ if (GET_CODE (body) == SEQUENCE) -+ { -+ /* A delayed-branch sequence */ -+ rtx ins0 = XVECEXP (body, 0, 0); -+ rtx pat0 = PATTERN (ins0); -+ int i; -+ for (i = 0; i < XVECLEN (body, 0); i++) -+ { -+ rtx insq = XVECEXP (body, 0, i); -+ if (! INSN_DELETED_P (insq)) -+ { -+ int j = check_insn_for_store (state|1, insq); -+ if (j) -+ return j; -+ } -+ } -+ /* Following a conditional branch sequence, we have a new -+ basic block. */ -+ if (GET_CODE (ins0) == JUMP_INSN) -+ if ((GET_CODE (pat0) == SET -+ && GET_CODE (SET_SRC (pat0)) != LABEL_REF) -+ || (GET_CODE (pat0) == PARALLEL -+ && GET_CODE (XVECEXP (pat0, 0, 0)) == SET -+ && GET_CODE (SET_SRC (XVECEXP (pat0, 0, 0))) != LABEL_REF)) -+ return -1; -+ /* Handle a call sequence like a conditional branch sequence */ -+ if (GET_CODE (ins0) == CALL_INSN) -+ return -1; -+ break; -+ } -+ if (GET_CODE (body) == PARALLEL) -+ { -+ int i; -+ for (i = 0; i < XVECLEN (body, 0); i++) -+ if (check_pattern_for_store (XVECEXP (body, 0, i))) -+ return 1; -+ } -+ /* Now, only a `simple' INSN or JUMP_INSN remains to be checked. */ -+ if (code == INSN) -+ { -+ /* Since we don't know, what's inside, we must take inline -+ assembly to be dangerous */ -+ if (GET_CODE (body) == ASM_INPUT) -+ return 1; -+ -+ if (check_pattern_for_store (body)) -+ return 1; -+ } -+ /* Handle a CALL_INSN instruction like a conditional branch */ -+ if (code == JUMP_INSN || code == CALL_INSN) -+ { -+ /* Following a conditional branch, we have a new basic block. */ -+ int ckds = 0; -+ if (code == CALL_INSN) -+ ckds = 1; -+ else -+ { -+ code = GET_CODE (body); -+ if ((code == SET -+ && GET_CODE (SET_SRC (body)) != LABEL_REF) -+ || (code == PARALLEL -+ && GET_CODE (XVECEXP (body, 0, 0)) == SET -+ && GET_CODE (SET_SRC (XVECEXP (body, 0, 0))) != LABEL_REF)) -+ ckds = 1; -+ } -+ if (ckds) -+ { -+ /* But check insn(s) in delay-slot first. If we could know in -+ advance that this jump is in `.reorder' mode, where gas will -+ insert a `nop' into the delay-slot, we could skip this test. -+ Since we don't know, always assume `.noreorder', sometimes -+ emitting a cache-barrier, that isn't needed. */ -+ /* But if we are here recursively, already checking a (pseudo-) -+ delay-slot, we are done. */ -+ if ( !(state & 2) ) -+ for (insn = NEXT_INSN (insn); insn; insn = NEXT_INSN (insn)) -+ switch (GET_CODE (insn)) -+ { -+ case INSN: -+ if (check_insn_for_store (state|1|2, insn) > 0) -+ return 1; -+ case CODE_LABEL: -+ case CALL_INSN: -+ case JUMP_INSN: -+ return -1; -+ default: -+ /* skip NOTE,... */; -+ } -+ return -1; -+ } -+ } -+ /*break*/ -+ } -+ return 0; -+} -+ -+/* Scan a basic block, starting with `insn', for a possibly harmful store -+ instruction. If found, output a cache barrier at the start of this -+ block. */ -+ -+static int -+output_store_cache_barrier (FILE *file, rtx insn) -+{ -+ for (; insn; insn = NEXT_INSN (insn)) -+ { -+ int found = check_insn_for_store (0, insn); -+ if (found < 0) -+ break; -+ if (found > 0) -+ { -+ /* found critical store instruction */ -+ ASM_OUTPUT_R10K_CACHE_BARRIER(file); -+ return 1; -+ } -+ } -+ fprintf(file, "\t%s Cache Barrier omitted.\n", ASM_COMMENT_START); -+ return 0; -+} -+ -+#endif /* TARGET_IP28 */ -+ -+/* -+ * final.c Sun Jan 18 23:39:57 2004 -+ * final.c Sat Sep 18 00:23:34 2004 ip28 -+ */ diff --git a/sys-devel/gcc/files/3.4.2/gcc-3.4.2-mips-ip28_cache_barriers-v3-ip32r10k.patch b/sys-devel/gcc/files/3.4.2/gcc-3.4.2-mips-ip28_cache_barriers-v3-ip32r10k.patch deleted file mode 100644 index 6eb47a05a504..000000000000 --- a/sys-devel/gcc/files/3.4.2/gcc-3.4.2-mips-ip28_cache_barriers-v3-ip32r10k.patch +++ /dev/null @@ -1,517 +0,0 @@ ---- gcc-3.4.2/gcc/config/mips/mips-protos.h Wed Jul 7 21:21:10 2004 -+++ gcc-3.4.2/gcc/config/mips/mips-protos.h Fri Sep 23 18:11:24 2005 -@@ -154,4 +154,13 @@ - extern const char *current_section_name (void); - extern unsigned int current_section_flags (void); - -+#ifdef TARGET_IP28 -+extern int ip28_set_new_block_label (void); -+extern int ip28_set_new_block_branch (void); -+extern int ip28_set_new_block_done (void); -+extern int ip28_handle_new_block_start (FILE *file, rtx insn); -+extern int ip28_check_code_default_sequence (FILE *file, rtx body); -+extern int ip28_check_code_real_insn (FILE *file, rtx insn, int final_sequence); -+#endif -+ - #endif /* ! GCC_MIPS_PROTOS_H */ ---- gcc-3.4.2/gcc/config/mips/mips.h Thu Jul 15 02:42:47 2004 -+++ gcc-3.4.2/gcc/config/mips/mips.h Sat Sep 18 00:41:48 2004 -@@ -122,6 +122,7 @@ - extern const char *mips_isa_string; /* for -mips{1,2,3,4} */ - extern const char *mips_abi_string; /* for -mabi={32,n32,64} */ - extern const char *mips_cache_flush_func;/* for -mflush-func= and -mno-flush-func */ -+extern const char *mips_ip28_cache_barrier;/* for -mip28-cache-barrier */ - extern int mips_string_length; /* length of strings for mips16 */ - extern const struct mips_cpu_info mips_cpu_info_table[]; - extern const struct mips_cpu_info *mips_arch_info; -@@ -333,6 +334,7 @@ - #define TARGET_MIPS9000 (mips_arch == PROCESSOR_R9000) - #define TARGET_SB1 (mips_arch == PROCESSOR_SB1) - #define TARGET_SR71K (mips_arch == PROCESSOR_SR71000) -+#define TARGET_IP28 (mips_ip28_cache_barrier != 0) - - /* Scheduling target defines. */ - #define TUNE_MIPS3000 (mips_tune == PROCESSOR_R3000) -@@ -752,6 +754,8 @@ - N_("Don't call any cache flush functions"), 0}, \ - { "flush-func=", &mips_cache_flush_func, \ - N_("Specify cache flush function"), 0}, \ -+ { "ip28-cache-barrier", &mips_ip28_cache_barrier, \ -+ N_("Generate special cache barriers for SGI Indigo2 R10k"), 0}, \ - } - - /* This is meant to be redefined in the host dependent files. */ -@@ -3448,3 +3452,7 @@ - " TEXT_SECTION_ASM_OP); - #endif - #endif -+ -+#define ASM_OUTPUT_R10K_CACHE_BARRIER(STREAM) \ -+ fprintf (STREAM, "\tcache 0x14,0($sp)\t%s Cache Barrier\n", ASM_COMMENT_START) -+ ---- gcc-3.4.2/gcc/config/mips/mips.c Wed Jul 7 21:21:10 2004 -+++ gcc-3.4.2/gcc/config/mips/mips.c Fri Sep 23 15:14:50 2005 -@@ -502,6 +502,11 @@ - - const char *mips_cache_flush_func = CACHE_FLUSH_FUNC; - -+/* Nonzero means generate special cache barriers to inhibit speculative -+ stores which might endanger cache coherency or reference invalid -+ addresses (especially on SGI's Indigo2 R10k (IP28)). */ -+const char *mips_ip28_cache_barrier; -+ - /* If TRUE, we split addresses into their high and low parts in the RTL. */ - int mips_split_addresses; - -@@ -9673,6 +9678,355 @@ - return flags; - } - -+ - #endif /* TARGET_IRIX */ -+ -+#ifdef TARGET_IP28 -+ -+/* Flag indicating this insn is the start of a new basic block. */ -+ -+#define NEW_BLOCK_LABEL 1 -+#define NEW_BLOCK_BRANCH 2 -+ -+static int new_block = NEW_BLOCK_LABEL; -+ -+/* Check, whether an instruction is a possibly harmful store instruction, -+ i.e. a store which might cause damage, if speculatively executed. */ -+ -+static rtx -+find_mem_expr (rtx xexp) -+{ -+ if (xexp) -+ { -+ const char *fmt; -+ int i, j, lng; -+ rtx x; -+ RTX_CODE code = GET_CODE (xexp); -+ -+ if (MEM == code) -+ return xexp; -+ -+ fmt = GET_RTX_FORMAT (code); -+ lng = GET_RTX_LENGTH (code); -+ -+ for (i = 0; i < lng; ++i) -+ switch (fmt[i]) -+ { -+ case 'e': -+ x = find_mem_expr (XEXP (xexp, i)); -+ if (x) -+ return x; -+ break; -+ case 'E': -+ if (XVEC (xexp, i)) -+ for (j = 0; j < XVECLEN (xexp, i); ++j) -+ { -+ x = find_mem_expr (XVECEXP (xexp, i, j)); -+ if (x) -+ return x; -+ } -+ } -+ } -+ return 0; -+} -+ -+static int -+check_mem_expr (rtx memx) -+{ -+ /* Check the expression `memx' (with type GET_CODE(memx) == MEM) -+ for the most common stackpointer-addressing modes. -+ It's not worthwile to avoid a cache barrier also on the -+ remaining unfrequently used modes. */ -+ rtx x = XEXP (memx, 0); -+ switch (GET_CODE (x)) -+ { -+ case REG: -+ if (REGNO (x) == STACK_POINTER_REGNUM) -+ return 0; -+ default: -+ break; -+ case PLUS: case MINUS: /* always `SP + const' ? */ -+ if (GET_CODE (XEXP (x, 1)) == REG -+ && REGNO (XEXP (x, 1)) == STACK_POINTER_REGNUM) -+ return 0; -+ case NEG: case SIGN_EXTEND: case ZERO_EXTEND: -+ if (GET_CODE (XEXP (x, 0)) == REG -+ && REGNO (XEXP (x, 0)) == STACK_POINTER_REGNUM) -+ return 0; -+ } -+ -+ /* Stores/Loads to/from constant addresses can be considered -+ harmless, since: -+ 1) the address is always valid, even when taken speculatively. -+ 2a) the location is (hopefully) never used as a dma-target, thus -+ there is no danger of cache-inconsistency. -+ 2b) uncached loads/stores are guaranteed to be non-speculative. */ -+ if ( CONSTANT_P(x) ) -+ return 0; -+ -+ return 1; -+} -+ -+/* inline */ static int -+check_pattern_for_store (rtx body) -+{ -+ /* Check for (set (mem:M (non_stackpointer_address) ...)). Here we -+ assume, that addressing with the stackpointer accesses neither -+ uncached-aliased nor invalid memory. (May be, this applies to the -+ global pointer and frame pointer also, but its saver not to assume -+ it. And probably it's not worthwile to regard these registers) -+ -+ Speculative loads from invalid addresses also cause bus errors... -+ So check for (set (reg:M ...) (mem:M (non_stackpointer_address))) -+ too. */ -+ -+ if (body && GET_CODE (body) == SET) -+ { -+ rtx x = find_mem_expr (body); -+ -+ if (x && check_mem_expr (x)) -+ return 1; -+ } -+ return 0; -+} -+ -+static int -+check_insn_for_store (int state, rtx insn) -+{ -+ /* Check for (ins (set (mem:M (dangerous_address)) ...)) or end of the -+ current basic block. -+ Criteria to recognize end-of/next basic-block are reduplicated here -+ from final_scan_insn. */ -+ -+ rtx body; -+ int code; -+ -+ if (INSN_DELETED_P (insn)) -+ return 0; -+ -+ switch (code = GET_CODE (insn)) -+ { -+ case CODE_LABEL: -+ return -1; -+ case CALL_INSN: -+ case JUMP_INSN: -+ case INSN: -+ body = PATTERN (insn); -+ if (GET_CODE (body) == SEQUENCE) -+ { -+ /* A delayed-branch sequence */ -+ rtx ins0 = XVECEXP (body, 0, 0); -+ rtx pat0 = PATTERN (ins0); -+ int i; -+ for (i = 0; i < XVECLEN (body, 0); i++) -+ { -+ rtx insq = XVECEXP (body, 0, i); -+ if (! INSN_DELETED_P (insq)) -+ { -+ int j = check_insn_for_store (state|1, insq); -+ if (j) -+ return j; -+ } -+ } -+ /* Following a conditional branch sequence, we have a new -+ basic block. */ -+ if (GET_CODE (ins0) == JUMP_INSN) -+ if ((GET_CODE (pat0) == SET -+ && GET_CODE (SET_SRC (pat0)) != LABEL_REF) -+ || (GET_CODE (pat0) == PARALLEL -+ && GET_CODE (XVECEXP (pat0, 0, 0)) == SET -+ && GET_CODE (SET_SRC (XVECEXP (pat0, 0, 0))) != LABEL_REF)) -+ return -1; -+ /* Handle a call sequence like a conditional branch sequence */ -+ if (GET_CODE (ins0) == CALL_INSN) -+ return -1; -+ break; -+ } -+ if (GET_CODE (body) == PARALLEL) -+ { -+ int i; -+ for (i = 0; i < XVECLEN (body, 0); i++) -+ if (check_pattern_for_store (XVECEXP (body, 0, i))) -+ return 1; -+ } -+ /* Now, only a `simple' INSN or JUMP_INSN remains to be checked. */ -+ if (code == INSN) -+ { -+ /* Since we don't know, what's inside, we must take inline -+ assembly to be dangerous */ -+ if (GET_CODE (body) == ASM_INPUT) -+ return 1; -+ -+ if (check_pattern_for_store (body)) -+ return 1; -+ } -+ /* Handle a CALL_INSN instruction like a conditional branch */ -+ if (code == JUMP_INSN || code == CALL_INSN) -+ { -+ /* Following a conditional branch, we have a new basic block. */ -+ int ckds = 0; -+ if (code == CALL_INSN) -+ ckds = 1; -+ else -+ { -+ code = GET_CODE (body); -+ if ((code == SET -+ && GET_CODE (SET_SRC (body)) != LABEL_REF) -+ || (code == PARALLEL -+ && GET_CODE (XVECEXP (body, 0, 0)) == SET -+ && GET_CODE (SET_SRC (XVECEXP (body, 0, 0))) != LABEL_REF)) -+ ckds = 1; -+ } -+ if (ckds) -+ { -+ /* But check insn(s) in delay-slot first. If we could know in -+ advance that this jump is in `.reorder' mode, where gas will -+ insert a `nop' into the delay-slot, we could skip this test. -+ Since we don't know, always assume `.noreorder', sometimes -+ emitting a cache-barrier, that isn't needed. */ -+ /* But if we are here recursively, already checking a (pseudo-) -+ delay-slot, we are done. */ -+ if ( !(state & 2) ) -+ for (insn = NEXT_INSN (insn); insn; insn = NEXT_INSN (insn)) -+ switch (GET_CODE (insn)) -+ { -+ case INSN: -+ if (check_insn_for_store (state|1|2, insn) > 0) -+ return 1; -+ case CODE_LABEL: -+ case CALL_INSN: -+ case JUMP_INSN: -+ return -1; -+ default: -+ /* skip NOTE,... */; -+ } -+ return -1; -+ } -+ } -+ /*break*/ -+ } -+ return 0; -+} -+ -+/* Scan a basic block, starting with `insn', for a possibly harmful store -+ instruction. If found, output a cache barrier at the start of this -+ block. */ -+ -+static int -+output_store_cache_barrier (FILE *file, rtx insn) -+{ -+ for (; insn; insn = NEXT_INSN (insn)) -+ { -+ int found = check_insn_for_store (0, insn); -+ if (found < 0) -+ break; -+ if (found > 0) -+ { -+ /* found critical store instruction */ -+ ASM_OUTPUT_R10K_CACHE_BARRIER(file); -+ return 1; -+ } -+ } -+ fprintf(file, "\t%s Cache Barrier omitted.\n", ASM_COMMENT_START); -+ return 0; -+} -+ -+ -+/* -+ * here follows the interface for gcc/final.c -+ */ -+ -+int -+ip28_set_new_block_label (void) -+{ -+ int i = new_block; -+ new_block = NEW_BLOCK_LABEL; -+ return i; -+} -+ -+int -+ip28_set_new_block_branch (void) -+{ -+ int i = new_block; -+ new_block = NEW_BLOCK_BRANCH; -+ return i; -+} -+ -+int -+ip28_set_new_block_done (void) -+{ -+ int i = new_block; -+ new_block = 0; -+ return i; -+} -+ -+int -+ip28_handle_new_block_start (FILE *file, rtx insn) -+{ -+ if (new_block) -+ { -+ /* .reorder: not really in the branch-delay-slot. */ -+ if (! set_noreorder) -+ new_block = NEW_BLOCK_LABEL; -+ -+ if (new_block == NEW_BLOCK_BRANCH) -+ /* Not yet, only *after* the branch-delay-slot ! */ -+ new_block = NEW_BLOCK_LABEL; -+ else -+ { -+ if (TARGET_IP28) -+ output_store_cache_barrier (file, insn); -+ new_block = 0; -+ } -+ } -+ return new_block; -+} -+ -+int -+ip28_check_code_default_sequence (FILE *file, rtx body) -+{ -+ (void)file; -+ -+ if (TARGET_IP28) -+ { -+ rtx insn = XVECEXP (body, 0, 0); -+ rtx patt = PATTERN (insn); -+ -+ if (GET_CODE (insn) == CALL_INSN) -+ new_block = NEW_BLOCK_LABEL; -+ -+ /* Following a conditional branch sequence, we have a new basic -+ block. */ -+ if ((GET_CODE (insn) == JUMP_INSN && GET_CODE (patt) == SET -+ && GET_CODE (SET_SRC (patt)) != LABEL_REF) -+ || (GET_CODE (insn) == JUMP_INSN -+ && GET_CODE (patt) == PARALLEL -+ && GET_CODE (XVECEXP (patt, 0, 0)) == SET -+ && GET_CODE (SET_SRC (XVECEXP (patt, 0, 0))) != LABEL_REF)) -+ new_block = NEW_BLOCK_LABEL; -+ } -+ return new_block; -+} -+ -+int -+ip28_check_code_real_insn (FILE *file, rtx insn, int final_sequence) -+{ -+ rtx body = PATTERN (insn); -+ -+ /* Following a conditional branch, we have a new basic block. -+ But if we are inside a sequence, the new block starts after the -+ last insn of the sequence. */ -+ if (TARGET_IP28 && final_sequence == 0 -+ && (GET_CODE (insn) == CALL_INSN -+ || (GET_CODE (insn) == JUMP_INSN && GET_CODE (body) == SET -+ && GET_CODE (SET_SRC (body)) != LABEL_REF) -+ || (GET_CODE (insn) == JUMP_INSN && GET_CODE (body) == PARALLEL -+ && GET_CODE (XVECEXP (body, 0, 0)) == SET -+ && GET_CODE (SET_SRC (XVECEXP (body, 0, 0))) != LABEL_REF))) -+ new_block = NEW_BLOCK_BRANCH; -+ return new_block; -+} -+ -+#endif /* TARGET_IP28 */ - - #include "gt-mips.h" ---- gcc-3.4.2/gcc/final.c Sun Jan 18 23:39:57 2004 -+++ gcc-3.4.2/gcc/final.c Fri Sep 23 15:11:38 2005 -@@ -116,6 +116,16 @@ - #define SEEN_NOTE 2 - #define SEEN_EMITTED 4 - -+/* suitable for SGI Indigo2 R10k (IP28) kernel-code ? */ -+#ifndef TARGET_IP28 -+#define ip28_set_new_block_label() -+#define ip28_set_new_block_branch() -+#define ip28_set_new_block_done() -+#define ip28_handle_new_block_start(file, insn) -+#define ip28_check_code_default_sequence(file, body) -+#define ip28_check_code_real_insn(file, insn, final_sequence) -+#endif -+ - /* Last insn processed by final_scan_insn. */ - static rtx debug_insn; - rtx current_output_insn; -@@ -1505,6 +1515,7 @@ - int seen = 0; - - last_ignored_compare = 0; -+ ip28_set_new_block_label(); - - #ifdef SDB_DEBUGGING_INFO - /* When producing SDB debugging info, delete troublesome line number -@@ -1571,6 +1582,7 @@ - - insn = final_scan_insn (insn, file, optimize, prescan, 0, &seen); - } -+ ip28_set_new_block_done(); - } - - const char * -@@ -1851,6 +1863,7 @@ - #endif - if (prescan > 0) - break; -+ ip28_set_new_block_label(); - - if (LABEL_NAME (insn)) - (*debug_hooks->label) (insn); -@@ -2009,6 +2022,9 @@ - - break; - } -+ -+ ip28_handle_new_block_start(file, insn); -+ - /* Output this line note if it is the first or the last line - note in a row. */ - if (notice_source_line (insn)) -@@ -2134,9 +2150,13 @@ - { - CC_STATUS_INIT; - } -+ -+ /* Following a conditional branch sequence, we have a new basic -+ block. */ -+ ip28_check_code_default_sequence (file, body); - break; - } -- -+ - /* We have a real machine instruction as rtl. */ - - body = PATTERN (insn); -@@ -2188,6 +2208,11 @@ - } - #endif - -+ /* Following a conditional branch, we have a new basic block. -+ But if we are inside a sequence, the new block starts after the -+ last insn of the sequence. */ -+ ip28_check_code_real_insn (file, insn, final_sequence); -+ - #ifndef STACK_REGS - /* Don't bother outputting obvious no-ops, even without -O. - This optimization is fast and doesn't interfere with debugging. -@@ -2402,6 +2427,7 @@ - - if (prev_nonnote_insn (insn) != last_ignored_compare) - abort (); -+ ip28_set_new_block_done(); - - /* We have already processed the notes between the setter and - the user. Make sure we don't process them again, this is -@@ -2435,6 +2461,7 @@ - abort (); - #endif - -+ ip28_set_new_block_done(); - return new; - } - diff --git a/sys-devel/gcc/files/3.4.2/gcc-3.4.2-mips-ip28_cache_barriers-v3.patch b/sys-devel/gcc/files/3.4.2/gcc-3.4.2-mips-ip28_cache_barriers-v3.patch deleted file mode 100644 index 5c3e738e2b59..000000000000 --- a/sys-devel/gcc/files/3.4.2/gcc-3.4.2-mips-ip28_cache_barriers-v3.patch +++ /dev/null @@ -1,517 +0,0 @@ ---- gcc-3.4.2/gcc/config/mips/mips-protos.h Wed Jul 7 21:21:10 2004 -+++ gcc-3.4.2/gcc/config/mips/mips-protos.h Fri Sep 23 18:11:24 2005 -@@ -154,4 +154,13 @@ - extern const char *current_section_name (void); - extern unsigned int current_section_flags (void); - -+#ifdef TARGET_IP28 -+extern int ip28_set_new_block_label (void); -+extern int ip28_set_new_block_branch (void); -+extern int ip28_set_new_block_done (void); -+extern int ip28_handle_new_block_start (FILE *file, rtx insn); -+extern int ip28_check_code_default_sequence (FILE *file, rtx body); -+extern int ip28_check_code_real_insn (FILE *file, rtx insn, int final_sequence); -+#endif -+ - #endif /* ! GCC_MIPS_PROTOS_H */ ---- gcc-3.4.2/gcc/config/mips/mips.h Thu Jul 15 02:42:47 2004 -+++ gcc-3.4.2/gcc/config/mips/mips.h Sat Sep 18 00:41:48 2004 -@@ -122,6 +122,7 @@ - extern const char *mips_isa_string; /* for -mips{1,2,3,4} */ - extern const char *mips_abi_string; /* for -mabi={32,n32,64} */ - extern const char *mips_cache_flush_func;/* for -mflush-func= and -mno-flush-func */ -+extern const char *mips_ip28_cache_barrier;/* for -mip28-cache-barrier */ - extern int mips_string_length; /* length of strings for mips16 */ - extern const struct mips_cpu_info mips_cpu_info_table[]; - extern const struct mips_cpu_info *mips_arch_info; -@@ -333,6 +334,7 @@ - #define TARGET_MIPS9000 (mips_arch == PROCESSOR_R9000) - #define TARGET_SB1 (mips_arch == PROCESSOR_SB1) - #define TARGET_SR71K (mips_arch == PROCESSOR_SR71000) -+#define TARGET_IP28 (mips_ip28_cache_barrier != 0) - - /* Scheduling target defines. */ - #define TUNE_MIPS3000 (mips_tune == PROCESSOR_R3000) -@@ -752,6 +754,8 @@ - N_("Don't call any cache flush functions"), 0}, \ - { "flush-func=", &mips_cache_flush_func, \ - N_("Specify cache flush function"), 0}, \ -+ { "ip28-cache-barrier", &mips_ip28_cache_barrier, \ -+ N_("Generate special cache barriers for SGI Indigo2 R10k"), 0}, \ - } - - /* This is meant to be redefined in the host dependent files. */ -@@ -3448,3 +3452,7 @@ - " TEXT_SECTION_ASM_OP); - #endif - #endif -+ -+#define ASM_OUTPUT_R10K_CACHE_BARRIER(STREAM) \ -+ fprintf (STREAM, "\tcache 0x14,0($sp)\t%s Cache Barrier\n", ASM_COMMENT_START) -+ ---- gcc-3.4.2/gcc/config/mips/mips.c Wed Jul 7 21:21:10 2004 -+++ gcc-3.4.2/gcc/config/mips/mips.c Fri Sep 23 15:14:50 2005 -@@ -502,6 +502,11 @@ - - const char *mips_cache_flush_func = CACHE_FLUSH_FUNC; - -+/* Nonzero means generate special cache barriers to inhibit speculative -+ stores which might endanger cache coherency or reference invalid -+ addresses (especially on SGI's Indigo2 R10k (IP28)). */ -+const char *mips_ip28_cache_barrier; -+ - /* If TRUE, we split addresses into their high and low parts in the RTL. */ - int mips_split_addresses; - -@@ -9673,6 +9678,355 @@ - return flags; - } - -+ - #endif /* TARGET_IRIX */ -+ -+#ifdef TARGET_IP28 -+ -+/* Flag indicating this insn is the start of a new basic block. */ -+ -+#define NEW_BLOCK_LABEL 1 -+#define NEW_BLOCK_BRANCH 2 -+ -+static int new_block = NEW_BLOCK_LABEL; -+ -+/* Check, whether an instruction is a possibly harmful store instruction, -+ i.e. a store which might cause damage, if speculatively executed. */ -+ -+static rtx -+find_mem_expr (rtx xexp) -+{ -+ if (xexp) -+ { -+ const char *fmt; -+ int i, j, lng; -+ rtx x; -+ RTX_CODE code = GET_CODE (xexp); -+ -+ if (MEM == code) -+ return xexp; -+ -+ fmt = GET_RTX_FORMAT (code); -+ lng = GET_RTX_LENGTH (code); -+ -+ for (i = 0; i < lng; ++i) -+ switch (fmt[i]) -+ { -+ case 'e': -+ x = find_mem_expr (XEXP (xexp, i)); -+ if (x) -+ return x; -+ break; -+ case 'E': -+ if (XVEC (xexp, i)) -+ for (j = 0; j < XVECLEN (xexp, i); ++j) -+ { -+ x = find_mem_expr (XVECEXP (xexp, i, j)); -+ if (x) -+ return x; -+ } -+ } -+ } -+ return 0; -+} -+ -+static int -+check_mem_expr (rtx memx) -+{ -+ /* Check the expression `memx' (with type GET_CODE(memx) == MEM) -+ for the most common stackpointer-addressing modes. -+ It's not worthwile to avoid a cache barrier also on the -+ remaining unfrequently used modes. */ -+ rtx x = XEXP (memx, 0); -+ switch (GET_CODE (x)) -+ { -+ case REG: -+ if (REGNO (x) == STACK_POINTER_REGNUM) -+ return 0; -+ default: -+ break; -+ case PLUS: case MINUS: /* always `SP + const' ? */ -+ if (GET_CODE (XEXP (x, 1)) == REG -+ && REGNO (XEXP (x, 1)) == STACK_POINTER_REGNUM) -+ return 0; -+ case NEG: case SIGN_EXTEND: case ZERO_EXTEND: -+ if (GET_CODE (XEXP (x, 0)) == REG -+ && REGNO (XEXP (x, 0)) == STACK_POINTER_REGNUM) -+ return 0; -+ } -+ -+ /* Stores/Loads to/from constant addresses can be considered -+ harmless, since: -+ 1) the address is always valid, even when taken speculatively. -+ 2a) the location is (hopefully) never used as a dma-target, thus -+ there is no danger of cache-inconsistency. -+ 2b) uncached loads/stores are guaranteed to be non-speculative. */ -+ if ( CONSTANT_P(x) ) -+ return 0; -+ -+ return 1; -+} -+ -+/* inline */ static int -+check_pattern_for_store (rtx body) -+{ -+ /* Check for (set (mem:M (non_stackpointer_address) ...)). Here we -+ assume, that addressing with the stackpointer accesses neither -+ uncached-aliased nor invalid memory. (May be, this applies to the -+ global pointer and frame pointer also, but its saver not to assume -+ it. And probably it's not worthwile to regard these registers) -+ -+ Speculative loads from invalid addresses also cause bus errors... -+ So check for (set (reg:M ...) (mem:M (non_stackpointer_address))) -+ too. */ -+ -+ if (body && GET_CODE (body) == SET) -+ { -+ rtx x = find_mem_expr (SET_DEST(body)); /* find_mem_expr (body); */ -+ -+ if (x && check_mem_expr (x)) -+ return 1; -+ } -+ return 0; -+} -+ -+static int -+check_insn_for_store (int state, rtx insn) -+{ -+ /* Check for (ins (set (mem:M (dangerous_address)) ...)) or end of the -+ current basic block. -+ Criteria to recognize end-of/next basic-block are reduplicated here -+ from final_scan_insn. */ -+ -+ rtx body; -+ int code; -+ -+ if (INSN_DELETED_P (insn)) -+ return 0; -+ -+ switch (code = GET_CODE (insn)) -+ { -+ case CODE_LABEL: -+ return -1; -+ case CALL_INSN: -+ case JUMP_INSN: -+ case INSN: -+ body = PATTERN (insn); -+ if (GET_CODE (body) == SEQUENCE) -+ { -+ /* A delayed-branch sequence */ -+ rtx ins0 = XVECEXP (body, 0, 0); -+ rtx pat0 = PATTERN (ins0); -+ int i; -+ for (i = 0; i < XVECLEN (body, 0); i++) -+ { -+ rtx insq = XVECEXP (body, 0, i); -+ if (! INSN_DELETED_P (insq)) -+ { -+ int j = check_insn_for_store (state|1, insq); -+ if (j) -+ return j; -+ } -+ } -+ /* Following a conditional branch sequence, we have a new -+ basic block. */ -+ if (GET_CODE (ins0) == JUMP_INSN) -+ if ((GET_CODE (pat0) == SET -+ && GET_CODE (SET_SRC (pat0)) != LABEL_REF) -+ || (GET_CODE (pat0) == PARALLEL -+ && GET_CODE (XVECEXP (pat0, 0, 0)) == SET -+ && GET_CODE (SET_SRC (XVECEXP (pat0, 0, 0))) != LABEL_REF)) -+ return -1; -+ /* Handle a call sequence like a conditional branch sequence */ -+ if (GET_CODE (ins0) == CALL_INSN) -+ return -1; -+ break; -+ } -+ if (GET_CODE (body) == PARALLEL) -+ { -+ int i; -+ for (i = 0; i < XVECLEN (body, 0); i++) -+ if (check_pattern_for_store (XVECEXP (body, 0, i))) -+ return 1; -+ } -+ /* Now, only a `simple' INSN or JUMP_INSN remains to be checked. */ -+ if (code == INSN) -+ { -+ /* Since we don't know, what's inside, we must take inline -+ assembly to be dangerous */ -+ if (GET_CODE (body) == ASM_INPUT) -+ return 1; -+ -+ if (check_pattern_for_store (body)) -+ return 1; -+ } -+ /* Handle a CALL_INSN instruction like a conditional branch */ -+ if (code == JUMP_INSN || code == CALL_INSN) -+ { -+ /* Following a conditional branch, we have a new basic block. */ -+ int ckds = 0; -+ if (code == CALL_INSN) -+ ckds = 1; -+ else -+ { -+ code = GET_CODE (body); -+ if ((code == SET -+ && GET_CODE (SET_SRC (body)) != LABEL_REF) -+ || (code == PARALLEL -+ && GET_CODE (XVECEXP (body, 0, 0)) == SET -+ && GET_CODE (SET_SRC (XVECEXP (body, 0, 0))) != LABEL_REF)) -+ ckds = 1; -+ } -+ if (ckds) -+ { -+ /* But check insn(s) in delay-slot first. If we could know in -+ advance that this jump is in `.reorder' mode, where gas will -+ insert a `nop' into the delay-slot, we could skip this test. -+ Since we don't know, always assume `.noreorder', sometimes -+ emitting a cache-barrier, that isn't needed. */ -+ /* But if we are here recursively, already checking a (pseudo-) -+ delay-slot, we are done. */ -+ if ( !(state & 2) ) -+ for (insn = NEXT_INSN (insn); insn; insn = NEXT_INSN (insn)) -+ switch (GET_CODE (insn)) -+ { -+ case INSN: -+ if (check_insn_for_store (state|1|2, insn) > 0) -+ return 1; -+ case CODE_LABEL: -+ case CALL_INSN: -+ case JUMP_INSN: -+ return -1; -+ default: -+ /* skip NOTE,... */; -+ } -+ return -1; -+ } -+ } -+ /*break*/ -+ } -+ return 0; -+} -+ -+/* Scan a basic block, starting with `insn', for a possibly harmful store -+ instruction. If found, output a cache barrier at the start of this -+ block. */ -+ -+static int -+output_store_cache_barrier (FILE *file, rtx insn) -+{ -+ for (; insn; insn = NEXT_INSN (insn)) -+ { -+ int found = check_insn_for_store (0, insn); -+ if (found < 0) -+ break; -+ if (found > 0) -+ { -+ /* found critical store instruction */ -+ ASM_OUTPUT_R10K_CACHE_BARRIER(file); -+ return 1; -+ } -+ } -+ fprintf(file, "\t%s Cache Barrier omitted.\n", ASM_COMMENT_START); -+ return 0; -+} -+ -+ -+/* -+ * here follows the interface for gcc/final.c -+ */ -+ -+int -+ip28_set_new_block_label (void) -+{ -+ int i = new_block; -+ new_block = NEW_BLOCK_LABEL; -+ return i; -+} -+ -+int -+ip28_set_new_block_branch (void) -+{ -+ int i = new_block; -+ new_block = NEW_BLOCK_BRANCH; -+ return i; -+} -+ -+int -+ip28_set_new_block_done (void) -+{ -+ int i = new_block; -+ new_block = 0; -+ return i; -+} -+ -+int -+ip28_handle_new_block_start (FILE *file, rtx insn) -+{ -+ if (new_block) -+ { -+ /* .reorder: not really in the branch-delay-slot. */ -+ if (! set_noreorder) -+ new_block = NEW_BLOCK_LABEL; -+ -+ if (new_block == NEW_BLOCK_BRANCH) -+ /* Not yet, only *after* the branch-delay-slot ! */ -+ new_block = NEW_BLOCK_LABEL; -+ else -+ { -+ if (TARGET_IP28) -+ output_store_cache_barrier (file, insn); -+ new_block = 0; -+ } -+ } -+ return new_block; -+} -+ -+int -+ip28_check_code_default_sequence (FILE *file, rtx body) -+{ -+ (void)file; -+ -+ if (TARGET_IP28) -+ { -+ rtx insn = XVECEXP (body, 0, 0); -+ rtx patt = PATTERN (insn); -+ -+ if (GET_CODE (insn) == CALL_INSN) -+ new_block = NEW_BLOCK_LABEL; -+ -+ /* Following a conditional branch sequence, we have a new basic -+ block. */ -+ if ((GET_CODE (insn) == JUMP_INSN && GET_CODE (patt) == SET -+ && GET_CODE (SET_SRC (patt)) != LABEL_REF) -+ || (GET_CODE (insn) == JUMP_INSN -+ && GET_CODE (patt) == PARALLEL -+ && GET_CODE (XVECEXP (patt, 0, 0)) == SET -+ && GET_CODE (SET_SRC (XVECEXP (patt, 0, 0))) != LABEL_REF)) -+ new_block = NEW_BLOCK_LABEL; -+ } -+ return new_block; -+} -+ -+int -+ip28_check_code_real_insn (FILE *file, rtx insn, int final_sequence) -+{ -+ rtx body = PATTERN (insn); -+ -+ /* Following a conditional branch, we have a new basic block. -+ But if we are inside a sequence, the new block starts after the -+ last insn of the sequence. */ -+ if (TARGET_IP28 && final_sequence == 0 -+ && (GET_CODE (insn) == CALL_INSN -+ || (GET_CODE (insn) == JUMP_INSN && GET_CODE (body) == SET -+ && GET_CODE (SET_SRC (body)) != LABEL_REF) -+ || (GET_CODE (insn) == JUMP_INSN && GET_CODE (body) == PARALLEL -+ && GET_CODE (XVECEXP (body, 0, 0)) == SET -+ && GET_CODE (SET_SRC (XVECEXP (body, 0, 0))) != LABEL_REF))) -+ new_block = NEW_BLOCK_BRANCH; -+ return new_block; -+} -+ -+#endif /* TARGET_IP28 */ - - #include "gt-mips.h" ---- gcc-3.4.2/gcc/final.c Sun Jan 18 23:39:57 2004 -+++ gcc-3.4.2/gcc/final.c Fri Sep 23 15:11:38 2005 -@@ -116,6 +116,16 @@ - #define SEEN_NOTE 2 - #define SEEN_EMITTED 4 - -+/* suitable for SGI Indigo2 R10k (IP28) kernel-code ? */ -+#ifndef TARGET_IP28 -+#define ip28_set_new_block_label() -+#define ip28_set_new_block_branch() -+#define ip28_set_new_block_done() -+#define ip28_handle_new_block_start(file, insn) -+#define ip28_check_code_default_sequence(file, body) -+#define ip28_check_code_real_insn(file, insn, final_sequence) -+#endif -+ - /* Last insn processed by final_scan_insn. */ - static rtx debug_insn; - rtx current_output_insn; -@@ -1505,6 +1515,7 @@ - int seen = 0; - - last_ignored_compare = 0; -+ ip28_set_new_block_label(); - - #ifdef SDB_DEBUGGING_INFO - /* When producing SDB debugging info, delete troublesome line number -@@ -1571,6 +1582,7 @@ - - insn = final_scan_insn (insn, file, optimize, prescan, 0, &seen); - } -+ ip28_set_new_block_done(); - } - - const char * -@@ -1851,6 +1863,7 @@ - #endif - if (prescan > 0) - break; -+ ip28_set_new_block_label(); - - if (LABEL_NAME (insn)) - (*debug_hooks->label) (insn); -@@ -2009,6 +2022,9 @@ - - break; - } -+ -+ ip28_handle_new_block_start(file, insn); -+ - /* Output this line note if it is the first or the last line - note in a row. */ - if (notice_source_line (insn)) -@@ -2134,9 +2150,13 @@ - { - CC_STATUS_INIT; - } -+ -+ /* Following a conditional branch sequence, we have a new basic -+ block. */ -+ ip28_check_code_default_sequence (file, body); - break; - } -- -+ - /* We have a real machine instruction as rtl. */ - - body = PATTERN (insn); -@@ -2188,6 +2208,11 @@ - } - #endif - -+ /* Following a conditional branch, we have a new basic block. -+ But if we are inside a sequence, the new block starts after the -+ last insn of the sequence. */ -+ ip28_check_code_real_insn (file, insn, final_sequence); -+ - #ifndef STACK_REGS - /* Don't bother outputting obvious no-ops, even without -O. - This optimization is fast and doesn't interfere with debugging. -@@ -2402,6 +2427,7 @@ - - if (prev_nonnote_insn (insn) != last_ignored_compare) - abort (); -+ ip28_set_new_block_done(); - - /* We have already processed the notes between the setter and - the user. Make sure we don't process them again, this is -@@ -2435,6 +2461,7 @@ - abort (); - #endif - -+ ip28_set_new_block_done(); - return new; - } - diff --git a/sys-devel/gcc/files/3.4.2/gcc34-fix-sse2_pinsrw.patch b/sys-devel/gcc/files/3.4.2/gcc34-fix-sse2_pinsrw.patch deleted file mode 100644 index 10aba38756c4..000000000000 --- a/sys-devel/gcc/files/3.4.2/gcc34-fix-sse2_pinsrw.patch +++ /dev/null @@ -1,38 +0,0 @@ -This is just a workaround rather than a real fix. The real fix -has been ported to the gcc 3.4.4 ebuild. - - -Tested on i686-pc-linux and x86_64-pc-linux -2004-09-20 Scott Robert Ladd <scott.ladd@coyotegulch.com> - PR 14631 - * config/i386/i386.md (sse2_pinsrw): Changing the pattern of - sse2_pinsrw from vector_merge to unspec. - -http://gcc.gnu.org/ml/gcc-patches/2004-09/msg01949.html -http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14631 - ---- gcc-3.4.2/gcc/config/i386/i386.md -+++ gcc-3.4.2/gcc/config/i386/i386.md -@@ -105,6 +105,7 @@ - (UNSPEC_MFENCE 59) - (UNSPEC_LFENCE 60) - (UNSPEC_PSADBW 61) -+ (UNSPEC_PINSRW 62) - (UNSPEC_ADDSUB 71) - (UNSPEC_HADD 72) - (UNSPEC_HSUB 73) -@@ -22095,11 +22096,12 @@ - - (define_insn "sse2_pinsrw" - [(set (match_operand:V8HI 0 "register_operand" "=x") -- (vec_merge:V8HI (match_operand:V8HI 1 "register_operand" "0") -+ (unspec:V8HI [(match_operand:V8HI 1 "register_operand" "0") - (vec_duplicate:V8HI - (truncate:HI - (match_operand:SI 2 "nonimmediate_operand" "rm"))) -- (match_operand:SI 3 "const_0_to_255_operand" "N")))] -+ (match_operand:SI 3 "const_0_to_255_operand" "N")] -+ UNSPEC_PINSRW))] - "TARGET_SSE2" - "pinsrw\t{%3, %2, %0|%0, %2, %3}" - [(set_attr "type" "ssecvt") diff --git a/sys-devel/gcc/files/3.4.2/gcc34-m32-no-sse2.patch b/sys-devel/gcc/files/3.4.2/gcc34-m32-no-sse2.patch deleted file mode 100644 index 3050b40b45f0..000000000000 --- a/sys-devel/gcc/files/3.4.2/gcc34-m32-no-sse2.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -Nru gcc-3.4.2.old/gcc/config/i386/linux.h gcc-3.4.2/gcc/config/i386/linux.h ---- gcc-3.4.2.old/gcc/config/i386/linux.h 2004-09-21 16:02:45.049073592 +0000 -+++ gcc-3.4.2/gcc/config/i386/linux.h 2004-09-21 16:11:47.532603560 +0000 -@@ -90,7 +90,7 @@ - #endif - - #undef CC1_SPEC --#define CC1_SPEC "%(cc1_cpu) %{profile:-p}" -+#define CC1_SPEC "%(cc1_cpu) %{profile:-p} %{!m64: %{!msse2:-mno-sse2} }" - - /* Provide a LINK_SPEC appropriate for Linux. Here we provide support - for the special GCC options -static and -shared, which allow us to -diff -Nru gcc-3.4.2.old/gcc/config/i386/x86-64.h gcc-3.4.2/gcc/config/i386/x86-64.h ---- gcc-3.4.2.old/gcc/config/i386/x86-64.h 2004-09-21 16:02:45.113063864 +0000 -+++ gcc-3.4.2/gcc/config/i386/x86-64.h 2004-09-21 16:25:46.174110672 +0000 -@@ -45,7 +45,7 @@ - #define WCHAR_TYPE_SIZE 32 - - #undef CC1_SPEC --#define CC1_SPEC "%(cc1_cpu) %{profile:-p}" -+#define CC1_SPEC "%(cc1_cpu) %{profile:-p} %{m32: %{!msse2:-mno-sse2} }" - - #undef ASM_SPEC - #define ASM_SPEC "%{v:-V} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} \ diff --git a/sys-devel/gcc/files/3.4.3/gcc-3.4.3-cross-compile.patch b/sys-devel/gcc/files/3.4.3/gcc-3.4.3-cross-compile.patch deleted file mode 100644 index c3cc0787b890..000000000000 --- a/sys-devel/gcc/files/3.4.3/gcc-3.4.3-cross-compile.patch +++ /dev/null @@ -1,113 +0,0 @@ -Some notes on the 'bootstrap with or without libc headers' debate: -http://linuxfromscratch.org/pipermail/lfs-dev/2005-July/052409.html -http://gcc.gnu.org/ml/gcc/2005-07/msg01195.html - ---- gcc/config/sh/linux.h -+++ gcc/config/sh/linux.h -@@ -154,6 +154,7 @@ - /* Do code reading to identify a signal frame, and set the frame - state data appropriately. See unwind-dw2.c for the structs. */ - -+#ifndef inhibit_libc - #ifdef IN_LIBGCC2 - #include <signal.h> - #include <sys/ucontext.h> -@@ -304,6 +305,7 @@ - - #endif /* defined (__SH5__) */ - #endif /* IN_LIBGCC2 */ -+#endif /* inhibit_libc */ - - /* For SH3 and SH4, we use a slot of the unwind frame which correspond - to a fake register number 16 as a placeholder for the return address ---- gcc/config/rs6000/linux.h -+++ gcc/config/rs6000/linux.h -@@ -111,6 +111,7 @@ - /* Do code reading to identify a signal frame, and set the frame - state data appropriately. See unwind-dw2.c for the structs. */ - -+#ifndef inhibit_libc - #ifdef IN_LIBGCC2 - #include <signal.h> - -@@ -194,3 +195,4 @@ - (FS)->retaddr_column = CR0_REGNO; \ - goto SUCCESS; \ - } while (0) -+#endif /* inhibit_libc */ ---- gcc/config/i386/linux.h -+++ gcc/config/i386/linux.h -@@ -218,6 +218,7 @@ - /* Do code reading to identify a signal frame, and set the frame - state data appropriately. See unwind-dw2.c for the structs. */ - -+#ifndef inhibit_libc - #ifdef IN_LIBGCC2 - /* There's no sys/ucontext.h for some (all?) libc1, so no - signal-turned-exceptions for them. There's also no configure-run for -@@ -282,3 +283,4 @@ - } while (0) - #endif /* not USE_GNULIBC_1 */ - #endif /* IN_LIBGCC2 */ -+#endif /* inhibit_libc */ ---- gcc/config/alpha/linux.h -+++ gcc/config/alpha/linux.h -@@ -78,6 +78,7 @@ - /* Do code reading to identify a signal frame, and set the frame - state data appropriately. See unwind-dw2.c for the structs. */ - -+#ifndef inhibit_libc - #ifdef IN_LIBGCC2 - #include <signal.h> - #include <sys/ucontext.h> -@@ -127,3 +128,4 @@ - (FS)->retaddr_column = 64; \ - goto SUCCESS; \ - } while (0) -+#endif /* inhibit_libc */ ---- gcc/config/rs6000/linux64.h -+++ gcc/config/rs6000/linux64.h -@@ -561,13 +579,12 @@ - /* Do code reading to identify a signal frame, and set the frame - state data appropriately. See unwind-dw2.c for the structs. */ - -+#ifndef inhibit_libc - #ifdef IN_LIBGCC2 - #include <signal.h> - #ifdef __powerpc64__ - #include <sys/ucontext.h> - --enum { SIGNAL_FRAMESIZE = 128 }; -- - #else - - /* During the 2.5 kernel series the kernel ucontext was changed, but -@@ -581,7 +598,6 @@ - struct sigcontext_struct uc_mcontext; - sigset_t uc_sigmask; - }; --enum { SIGNAL_FRAMESIZE = 64 }; - #endif - - #endif -@@ -733,3 +731,9 @@ - } while (0) - - #endif -+#endif /* inhibit_libc */ -+#ifdef __powerpc64__ -+enum { SIGNAL_FRAMESIZE = 128 }; -+#else -+enum { SIGNAL_FRAMESIZE = 64 }; -+#endif ---- gcc/config.gcc -+++ gcc/config.gcc -@@ -295,7 +295,7 @@ - need_64bit_hwint=yes - ;; - # Note the 'l'; we need to be able to match e.g. "shle" or "shl". --sh[123456789l]*-*-*) -+sh[123456789lbe]*-*-*) - cpu_type=sh - need_64bit_hwint=yes - ;; diff --git a/sys-devel/gcc/files/digest-gcc-3.4.1-r3 b/sys-devel/gcc/files/digest-gcc-3.4.1-r3 deleted file mode 100644 index e037179c96ea..000000000000 --- a/sys-devel/gcc/files/digest-gcc-3.4.1-r3 +++ /dev/null @@ -1,18 +0,0 @@ -MD5 c6d950e8f61cbac4590061a116669b56 gcc-3.4.0-piepatches-v8.7.6.5.tar.bz2 16392 -RMD160 1c8243321ac183e3d3bcb71ea2c983bee528f826 gcc-3.4.0-piepatches-v8.7.6.5.tar.bz2 16392 -SHA256 1e07c8af8c23232ffb89500277cd6f187d14deb42f979dfa397839b182f48626 gcc-3.4.0-piepatches-v8.7.6.5.tar.bz2 16392 -MD5 029f1dde684d2f4132bc339908513451 gcc-3.4.1-branch-update-20040803.patch.bz2 220869 -RMD160 317a97b989f3634a277ad70120255479ef69614e gcc-3.4.1-branch-update-20040803.patch.bz2 220869 -SHA256 528c6c247575f9aad64b647082fa111a3b5fccd1ad24840f858bd61974b0f819 gcc-3.4.1-branch-update-20040803.patch.bz2 220869 -MD5 2764c295d8348f58defd33b7eea9d5b7 gcc-3.4.1-manpages.tar.bz2 614346 -RMD160 df968408b7e3c030f78d8bfe98ccf0f0c910357d gcc-3.4.1-manpages.tar.bz2 614346 -SHA256 f3c73574ddb243ca91ecc461f1508e1e3bcf11845dfe037c1f8c05aaa8e95959 gcc-3.4.1-manpages.tar.bz2 614346 -MD5 52bf522b3fdfb93f2e939c1b52e21590 gcc-3.4.1-patches-1.1.tar.bz2 33399 -RMD160 d074723c4beb8cc64af1b2e3a8d43ff9db22d357 gcc-3.4.1-patches-1.1.tar.bz2 33399 -SHA256 685833114d4808f3374fb616aa894443ac81169573b0042e561db0ec5790fdfa gcc-3.4.1-patches-1.1.tar.bz2 33399 -MD5 31b459062499f9f68d451db9cbf3205c gcc-3.4.1.tar.bz2 27182385 -RMD160 b25352913fde37121e2dfe5521149bdaf08b0f5d gcc-3.4.1.tar.bz2 27182385 -SHA256 5f3685533f8dc4b42b926fe70bb371b31e1368223a0ad7398ba27ea3a20e8e7a gcc-3.4.1.tar.bz2 27182385 -MD5 5db6cb16c361476f4bcb48df16793243 protector-3.4-2.tar.gz 31066 -RMD160 bbb7aeabc8308b7ab3e296923019e810f38c3305 protector-3.4-2.tar.gz 31066 -SHA256 a9decc15da37c84dc7ce50f44ceb528fd6592a405109f4e3be089b58e6c14a70 protector-3.4-2.tar.gz 31066 diff --git a/sys-devel/gcc/files/digest-gcc-3.4.4-r1 b/sys-devel/gcc/files/digest-gcc-3.4.4-r1 deleted file mode 100644 index c831bff289ac..000000000000 --- a/sys-devel/gcc/files/digest-gcc-3.4.4-r1 +++ /dev/null @@ -1,18 +0,0 @@ -MD5 d5da59b788f30b6e31488cdae51ca822 bounds-checking-gcc-3.4.4-1.00.patch.bz2 815608 -RMD160 b5e1d4716a5ab881b5d7742bb6650e0492edce93 bounds-checking-gcc-3.4.4-1.00.patch.bz2 815608 -SHA256 a29adc9260071f5928f2e491803b73117ee176e4b19b56ce421aa3ca461370b2 bounds-checking-gcc-3.4.4-1.00.patch.bz2 815608 -MD5 4b4c3c72a93236e6c57477a6ce04230b gcc-3.4.4-patches-1.7.tar.bz2 47234 -RMD160 e4c8f0c966a3f22c9b32271a79b265e2a1d34161 gcc-3.4.4-patches-1.7.tar.bz2 47234 -SHA256 3077b77db3b7328c6594946adf8b0f134bdf77ae31fe010dc90094adab1b52c0 gcc-3.4.4-patches-1.7.tar.bz2 47234 -MD5 474718bd45586247a7937bed549d8562 gcc-3.4.4-piepatches-v8.7.8.tar.bz2 15514 -RMD160 9c750ede1259e8dd32a3def98aaaf268a643c8ae gcc-3.4.4-piepatches-v8.7.8.tar.bz2 15514 -SHA256 1f61e5c17c88d73ddaa0341902d4de8f3967c625dfbef2f7a3ea4eda0bd5e0cf gcc-3.4.4-piepatches-v8.7.8.tar.bz2 15514 -MD5 ca3387f40e4cfef56afe6f1f78f077e2 gcc-3.4.4-ssp-1.0.tar.bz2 31612 -RMD160 4db0a2dcf09272644c61db6c2385ba06af2f6440 gcc-3.4.4-ssp-1.0.tar.bz2 31612 -SHA256 b0e926fb36d6cfb428cd2aa912fac5b72442e24601f2724dbae67f772dbd980b gcc-3.4.4-ssp-1.0.tar.bz2 31612 -MD5 e690d56214e4298513380ebb724bc834 gcc-3.4.4-uclibc-patches-1.2.tar.bz2 26333 -RMD160 f979d4b96cb37ef6c5c8fc78e92efd1a1057d71a gcc-3.4.4-uclibc-patches-1.2.tar.bz2 26333 -SHA256 b015b1ffe2166c126bae1852ae6a19dea28b68f461e9aac82511fccd0cc37abd gcc-3.4.4-uclibc-patches-1.2.tar.bz2 26333 -MD5 b594ff4ea4fbef4ba9220887de713dfe gcc-3.4.4.tar.bz2 27565872 -RMD160 cb9c4154c9e34d45c80eb80fd7bc30b036e6fec4 gcc-3.4.4.tar.bz2 27565872 -SHA256 3444179840638cb8664e8e53604900c4521d29d57785a5091202ee4937d8d0fd gcc-3.4.4.tar.bz2 27565872 diff --git a/sys-devel/gcc/files/digest-gcc-3.4.5 b/sys-devel/gcc/files/digest-gcc-3.4.5 deleted file mode 100644 index 5234ff3ed477..000000000000 --- a/sys-devel/gcc/files/digest-gcc-3.4.5 +++ /dev/null @@ -1,18 +0,0 @@ -MD5 d5da59b788f30b6e31488cdae51ca822 bounds-checking-gcc-3.4.4-1.00.patch.bz2 815608 -RMD160 b5e1d4716a5ab881b5d7742bb6650e0492edce93 bounds-checking-gcc-3.4.4-1.00.patch.bz2 815608 -SHA256 a29adc9260071f5928f2e491803b73117ee176e4b19b56ce421aa3ca461370b2 bounds-checking-gcc-3.4.4-1.00.patch.bz2 815608 -MD5 4d832eb1bb9fb67cf784d98acab356f8 gcc-3.4.5-patches-1.2.tar.bz2 48176 -RMD160 be86775306d55b9030373c2e979724659b35d0ad gcc-3.4.5-patches-1.2.tar.bz2 48176 -SHA256 013e3cebadc3bb71d7d41cfbbb6488b19c9df98be92d63c8ffa9261146d2773d gcc-3.4.5-patches-1.2.tar.bz2 48176 -MD5 c9403328cea26d2582310d7c821eb95a gcc-3.4.5-piepatches-v8.7.9.tar.bz2 8140 -RMD160 66aaa00b8261646cff64e7deabb6315dd9f39109 gcc-3.4.5-piepatches-v8.7.9.tar.bz2 8140 -SHA256 4af3c5671cbba9e015a6843ad646ba979fc91226cdaba8a074fbbc8dacfa07ad gcc-3.4.5-piepatches-v8.7.9.tar.bz2 8140 -MD5 cb9fda1432fb18b239935c9e23c0b637 gcc-3.4.5-ssp-1.0.tar.bz2 31589 -RMD160 24bfe531556455bd58833d589b84d09941af615a gcc-3.4.5-ssp-1.0.tar.bz2 31589 -SHA256 30036c39dc0b885c273ec4cbe57042ce6f458fa37ce6cbea58dd5ddeee0e2409 gcc-3.4.5-ssp-1.0.tar.bz2 31589 -MD5 b4f1d2ab4001a2d186b8d5830fcdccfc gcc-3.4.5-uclibc-patches-1.0.tar.bz2 26048 -RMD160 78e7dbaec309c38064a3e0ad0ff7bf8567518228 gcc-3.4.5-uclibc-patches-1.0.tar.bz2 26048 -SHA256 aa2ce81451297550fe0768c495e79991803673cc266dc27ea3de38acdcce365b gcc-3.4.5-uclibc-patches-1.0.tar.bz2 26048 -MD5 7c3c3c3e764dcee5eb771432062d69e1 gcc-3.4.5.tar.bz2 28254232 -RMD160 611ad033a76ada49d43529fc694142e856a039fa gcc-3.4.5.tar.bz2 28254232 -SHA256 be5738a94076052453894dd7d35b1efbb017bba1da0b28495d145f98fe018a09 gcc-3.4.5.tar.bz2 28254232 diff --git a/sys-devel/gcc/files/digest-gcc-3.4.5-r1 b/sys-devel/gcc/files/digest-gcc-3.4.5-r1 deleted file mode 100644 index 3cff97c2fd47..000000000000 --- a/sys-devel/gcc/files/digest-gcc-3.4.5-r1 +++ /dev/null @@ -1,18 +0,0 @@ -MD5 d5da59b788f30b6e31488cdae51ca822 bounds-checking-gcc-3.4.4-1.00.patch.bz2 815608 -RMD160 b5e1d4716a5ab881b5d7742bb6650e0492edce93 bounds-checking-gcc-3.4.4-1.00.patch.bz2 815608 -SHA256 a29adc9260071f5928f2e491803b73117ee176e4b19b56ce421aa3ca461370b2 bounds-checking-gcc-3.4.4-1.00.patch.bz2 815608 -MD5 14054af39019bcfc4cd2cc579c7cd341 gcc-3.4.5-patches-1.4.tar.bz2 52228 -RMD160 5e1239b75a9db19404c36d99e3507ad0b1fc9d45 gcc-3.4.5-patches-1.4.tar.bz2 52228 -SHA256 c513a05d2ff0a2fd3e36d74e86991758c28c139a0d7c4ebdaafaf3f14a61cc10 gcc-3.4.5-patches-1.4.tar.bz2 52228 -MD5 c9403328cea26d2582310d7c821eb95a gcc-3.4.5-piepatches-v8.7.9.tar.bz2 8140 -RMD160 66aaa00b8261646cff64e7deabb6315dd9f39109 gcc-3.4.5-piepatches-v8.7.9.tar.bz2 8140 -SHA256 4af3c5671cbba9e015a6843ad646ba979fc91226cdaba8a074fbbc8dacfa07ad gcc-3.4.5-piepatches-v8.7.9.tar.bz2 8140 -MD5 cb9fda1432fb18b239935c9e23c0b637 gcc-3.4.5-ssp-1.0.tar.bz2 31589 -RMD160 24bfe531556455bd58833d589b84d09941af615a gcc-3.4.5-ssp-1.0.tar.bz2 31589 -SHA256 30036c39dc0b885c273ec4cbe57042ce6f458fa37ce6cbea58dd5ddeee0e2409 gcc-3.4.5-ssp-1.0.tar.bz2 31589 -MD5 90aa9cb64d7edcd9a2306abe910cbe3b gcc-3.4.5-uclibc-patches-1.1.tar.bz2 70923 -RMD160 89e42889420fbab22e418261d248a89ee2bbbe9b gcc-3.4.5-uclibc-patches-1.1.tar.bz2 70923 -SHA256 5b92fac2afe835a127976fdb6602fb5628cf28e67dd19e8289768a3bb8631ec2 gcc-3.4.5-uclibc-patches-1.1.tar.bz2 70923 -MD5 7c3c3c3e764dcee5eb771432062d69e1 gcc-3.4.5.tar.bz2 28254232 -RMD160 611ad033a76ada49d43529fc694142e856a039fa gcc-3.4.5.tar.bz2 28254232 -SHA256 be5738a94076052453894dd7d35b1efbb017bba1da0b28495d145f98fe018a09 gcc-3.4.5.tar.bz2 28254232 diff --git a/sys-devel/gcc/files/digest-gcc-3.4.6 b/sys-devel/gcc/files/digest-gcc-3.4.6 deleted file mode 100644 index bb21dbb9577c..000000000000 --- a/sys-devel/gcc/files/digest-gcc-3.4.6 +++ /dev/null @@ -1,18 +0,0 @@ -MD5 d5da59b788f30b6e31488cdae51ca822 bounds-checking-gcc-3.4.4-1.00.patch.bz2 815608 -RMD160 b5e1d4716a5ab881b5d7742bb6650e0492edce93 bounds-checking-gcc-3.4.4-1.00.patch.bz2 815608 -SHA256 a29adc9260071f5928f2e491803b73117ee176e4b19b56ce421aa3ca461370b2 bounds-checking-gcc-3.4.4-1.00.patch.bz2 815608 -MD5 c9403328cea26d2582310d7c821eb95a gcc-3.4.5-piepatches-v8.7.9.tar.bz2 8140 -RMD160 66aaa00b8261646cff64e7deabb6315dd9f39109 gcc-3.4.5-piepatches-v8.7.9.tar.bz2 8140 -SHA256 4af3c5671cbba9e015a6843ad646ba979fc91226cdaba8a074fbbc8dacfa07ad gcc-3.4.5-piepatches-v8.7.9.tar.bz2 8140 -MD5 cb9fda1432fb18b239935c9e23c0b637 gcc-3.4.5-ssp-1.0.tar.bz2 31589 -RMD160 24bfe531556455bd58833d589b84d09941af615a gcc-3.4.5-ssp-1.0.tar.bz2 31589 -SHA256 30036c39dc0b885c273ec4cbe57042ce6f458fa37ce6cbea58dd5ddeee0e2409 gcc-3.4.5-ssp-1.0.tar.bz2 31589 -MD5 90aa9cb64d7edcd9a2306abe910cbe3b gcc-3.4.5-uclibc-patches-1.1.tar.bz2 70923 -RMD160 89e42889420fbab22e418261d248a89ee2bbbe9b gcc-3.4.5-uclibc-patches-1.1.tar.bz2 70923 -SHA256 5b92fac2afe835a127976fdb6602fb5628cf28e67dd19e8289768a3bb8631ec2 gcc-3.4.5-uclibc-patches-1.1.tar.bz2 70923 -MD5 0973b71cad5fff6668d4514a66ebd412 gcc-3.4.6-patches-1.0.tar.bz2 53093 -RMD160 f340ae3c80e73525b4f893d0d5eed80714ba6816 gcc-3.4.6-patches-1.0.tar.bz2 53093 -SHA256 f6b23e32d93bebf837dc845bf989ddd599e272fcba7aae55be3ecafd7e620d0c gcc-3.4.6-patches-1.0.tar.bz2 53093 -MD5 4a21ac777d4b5617283ce488b808da7b gcc-3.4.6.tar.bz2 28193401 -RMD160 b15003368cedc7964f6ceaee0c39ddc43a46c442 gcc-3.4.6.tar.bz2 28193401 -SHA256 7791a601878b765669022b8b3409fba33cc72f9e39340fec8af6d0e6f72dec39 gcc-3.4.6.tar.bz2 28193401 diff --git a/sys-devel/gcc/files/digest-gcc-3.4.6-r1 b/sys-devel/gcc/files/digest-gcc-3.4.6-r1 deleted file mode 100644 index 2e3594d51afa..000000000000 --- a/sys-devel/gcc/files/digest-gcc-3.4.6-r1 +++ /dev/null @@ -1,18 +0,0 @@ -MD5 d5da59b788f30b6e31488cdae51ca822 bounds-checking-gcc-3.4.4-1.00.patch.bz2 815608 -RMD160 b5e1d4716a5ab881b5d7742bb6650e0492edce93 bounds-checking-gcc-3.4.4-1.00.patch.bz2 815608 -SHA256 a29adc9260071f5928f2e491803b73117ee176e4b19b56ce421aa3ca461370b2 bounds-checking-gcc-3.4.4-1.00.patch.bz2 815608 -MD5 c9403328cea26d2582310d7c821eb95a gcc-3.4.5-piepatches-v8.7.9.tar.bz2 8140 -RMD160 66aaa00b8261646cff64e7deabb6315dd9f39109 gcc-3.4.5-piepatches-v8.7.9.tar.bz2 8140 -SHA256 4af3c5671cbba9e015a6843ad646ba979fc91226cdaba8a074fbbc8dacfa07ad gcc-3.4.5-piepatches-v8.7.9.tar.bz2 8140 -MD5 cb9fda1432fb18b239935c9e23c0b637 gcc-3.4.5-ssp-1.0.tar.bz2 31589 -RMD160 24bfe531556455bd58833d589b84d09941af615a gcc-3.4.5-ssp-1.0.tar.bz2 31589 -SHA256 30036c39dc0b885c273ec4cbe57042ce6f458fa37ce6cbea58dd5ddeee0e2409 gcc-3.4.5-ssp-1.0.tar.bz2 31589 -MD5 90aa9cb64d7edcd9a2306abe910cbe3b gcc-3.4.5-uclibc-patches-1.1.tar.bz2 70923 -RMD160 89e42889420fbab22e418261d248a89ee2bbbe9b gcc-3.4.5-uclibc-patches-1.1.tar.bz2 70923 -SHA256 5b92fac2afe835a127976fdb6602fb5628cf28e67dd19e8289768a3bb8631ec2 gcc-3.4.5-uclibc-patches-1.1.tar.bz2 70923 -MD5 fe9514353eaf5a09ab16790b7714481b gcc-3.4.6-patches-1.2.tar.bz2 54757 -RMD160 d4e1240b9e45b7661b7f8bf4f57bb2c9cac17686 gcc-3.4.6-patches-1.2.tar.bz2 54757 -SHA256 43253a8defa6111bd6f107178cc46f425ec81efe0eb26b730c11c422a4d4de26 gcc-3.4.6-patches-1.2.tar.bz2 54757 -MD5 4a21ac777d4b5617283ce488b808da7b gcc-3.4.6.tar.bz2 28193401 -RMD160 b15003368cedc7964f6ceaee0c39ddc43a46c442 gcc-3.4.6.tar.bz2 28193401 -SHA256 7791a601878b765669022b8b3409fba33cc72f9e39340fec8af6d0e6f72dec39 gcc-3.4.6.tar.bz2 28193401 diff --git a/sys-devel/gcc/gcc-3.4.1-r3.ebuild b/sys-devel/gcc/gcc-3.4.1-r3.ebuild deleted file mode 100644 index edd1d16e231f..000000000000 --- a/sys-devel/gcc/gcc-3.4.1-r3.ebuild +++ /dev/null @@ -1,946 +0,0 @@ -# Copyright 1999-2006 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/gcc-3.4.1-r3.ebuild,v 1.29 2007/07/15 04:37:55 mr_bones_ Exp $ - -IUSE="static nls bootstrap build multilib gcj gtk fortran objc hardened n32 n64" - -inherit eutils flag-o-matic libtool gnuconfig versionator - -DESCRIPTION="The GNU Compiler Collection. Includes C/C++, java compilers, pie and ssp extensions" -HOMEPAGE="http://gcc.gnu.org/" -LICENSE="GPL-2 LGPL-2.1" - -# previous release known to b0rk glibc on hppa... i dont know if this bug -# still exists, so i'll keep in the -hppa... -KEYWORDS="-* ~amd64 mips ppc64 ~x86 -hppa ppc s390" - -# we need a proper glibc version for the Scrt1.o provided to the pie-ssp specs -# we also need at least glibc 2.3.3 20040420-r1 in order for gcc 3.4 not to nuke -# SSP in glibc. - -# NOTE: we SHOULD be using at least binutils 2.15.90.0.1 everywhere for proper -# .eh_frame ld optimisation and symbol visibility support, but it hasnt been -# well tested in gentoo on any arch other than amd64!! -DEPEND="virtual/libc - >=sys-devel/binutils-2.14.90.0.8-r1 - amd64? ( >=sys-devel/binutils-2.15.90.0.1.1-r1 ) - >=sys-devel/bison-1.875 - || ( app-admin/eselect-compiler >=sys-devel/gcc-config-1.3.1 ) - !build? ( - gcj? ( - gtk? ( >=x11-libs/gtk+-2.2 ) - >=media-libs/libart_lgpl-2.1 - ) - >=sys-libs/ncurses-5.2-r2 - nls? ( sys-devel/gettext ) - )" -RDEPEND="virtual/libc - || ( app-admin/eselect-compiler >=sys-devel/gcc-config-1.3.1 ) - >=sys-libs/zlib-1.1.4 - >=sys-apps/texinfo-4.2-r4 - !build? ( >=sys-libs/ncurses-5.2-r2 )" - -PDEPEND="|| ( sys-devel/gcc-config app-admin/eselect-compiler )" -[ "${ABI}" != "n32" ] && [ "${ABI}" != "n64" ] && PDEPEND="${PDEPEND} - !n32? ( !n64? ( !s390? ( !elibc_uclibc? ( sys-libs/libstdc++-v3 ) ) ) )" - -# <<--------------------SRC_URI variables-------------------->> -# Location of gentoo-specific files. Please dont set this to mirror, that -# would just make the files unavailable until they get mirrored. All files -# in SRC_URI will eventually get mirrored and mirrors will be tried before -# falling back on this location anyways. -GENTOO_BASE_URI="http://dev.gentoo.org/~lv/GCC/" - -# Patch tarball support ... -PATCH_VER="1.1" - -# Snapshot support ... -#SNAPSHOT="2002-08-12" -SNAPSHOT= - -# Pre-release support -if [ ${PV} != ${PV/_pre/-} ] ; then - PRERELEASE=${PV/_pre/-} -fi - -# Branch update support ... -GCC_RELEASE_VER="${PV}" # Tarball, etc used ... -BRANCH_UPDATE=20040803 - -# PIE support -PIE_VER="8.7.6.5" -PIE_CORE="gcc-3.4.0-piepatches-v${PIE_VER}.tar.bz2" - -# ProPolice version -PP_VER="3_4" -PP_FVER="${PP_VER//_/.}-2" - -# magic! =D -if [ -n "${PRERELEASE}" ] ; then - S="${WORKDIR}/gcc-${PRERELEASE}" - SRC_URI="ftp://gcc.gnu.org/pub/gcc/prerelease-${PRERELEASE}/gcc-${PRERELEASE}.tar.bz2" -elif [ -n "${SNAPSHOT}" ] ; then - S="${WORKDIR}/gcc-${SNAPSHOT//-}" - SRC_URI="ftp://sources.redhat.com/pub/gcc/snapshots/${SNAPSHOT}/gcc-${SNAPSHOT//-}.tar.bz2" -else - S="${WORKDIR}/${PN}-${GCC_RELEASE_VER}" - SRC_URI="ftp://gcc.gnu.org/pub/gcc/releases/${P}/${PN}-${GCC_RELEASE_VER}.tar.bz2" - if [ -n "${BRANCH_UPDATE}" ] - then - SRC_URI="${SRC_URI} - ${GENTOO_BASE_URI}/${PN}-${GCC_RELEASE_VER}-branch-update-${BRANCH_UPDATE}.patch.bz2" - fi -fi - -if [ -n "${PATCH_VER}" ] -then - SRC_URI="${SRC_URI} ${GENTOO_BASE_URI}/${P}-patches-${PATCH_VER}.tar.bz2" -fi - -if [ -n "${PP_VER}" ] -then - SRC_URI="${SRC_URI} - mirror://gentoo/protector-${PP_FVER}.tar.gz - http://www.research.ibm.com/trl/projects/security/ssp/gcc${PP_VER}/protector-${PP_FVER}.tar.gz" -fi - -# PERL cannot be present at bootstrap, and is used to build the man pages. So.. -# lets include some pre-generated ones, shall we? -SRC_URI="${SRC_URI} ${GENTOO_BASE_URI}/gcc-3.4.1-manpages.tar.bz2" - -# mmm... PIE =D -SRC_URI="${SRC_URI} ${GENTOO_BASE_URI}${PIE_CORE}" -# >>--------------------SRC_URI variables--------------------<< - -# Recently there has been a lot of stability problem in Gentoo-land. Many -# things can be the cause to this, but I believe that it is due to gcc3 -# still having issues with optimizations, or with it not filtering bad -# combinations (protecting the user maybe from himeself) yet. -# -# This can clearly be seen in large builds like glibc, where too aggressive -# CFLAGS cause the tests to fail miserbly. -# -# Quote from Nick Jones <carpaski@gentoo.org>, who in my opinion -# knows what he is talking about: -# -# People really shouldn't force code-specific options on... It's a -# bad idea. The -march options aren't just to look pretty. They enable -# options that are sensible (and include sse,mmx,3dnow when apropriate). -# -# The next command strips CFLAGS and CXXFLAGS from nearly all flags. If -# you do not like it, comment it, but do not bugreport if you run into -# problems. -# -# <azarah@gentoo.org> (13 Oct 2002) -do_filter_flags() { - strip-flags - - # In general gcc does not like optimization, and add -O2 where - # it is safe. This is especially true for gcc 3.3 + 3.4 - replace-flags -O? -O2 - - # -mcpu is deprecated on these archs, and possibly others - if use amd64 || use x86 ; then - setting="`get-flag mcpu`" - [ ! -z "${setting}" ] && \ - replace-flags -mcpu="${setting}" -mtune="${setting}" && \ - ewarn "-mcpu is deprecated on your arch\a\a\a" && \ - epause 5 - strip-unsupported-flags - fi - - # If we use multilib on mips, we shouldn't pass -mabi flag - it breaks - # build of non-default-abi libraries. - use mips && use multilib && filter-flags "-mabi*" - - # Compile problems with these (bug #6641 among others)... - #filter-flags "-fno-exceptions -fomit-frame-pointer -fforce-addr" - - export GCJFLAGS="${CFLAGS}" -} - -# Theoretical cross compiler support -[ ! -n "${CCHOST}" ] && export CCHOST="${CHOST}" - -LOC="/usr" -#GCC_BRANCH_VER="`echo ${PV} | awk -F. '{ gsub(/_pre.*|_alpha.*/, ""); print $1 "." $2 }'`" -#GCC_RELEASE_VER="`echo ${PV} | awk '{ gsub(/_pre.*|_alpha.*/, ""); print $0 }'`" -GCC_BRANCH_VER="$(get_version_component_range 1-2)" -GCC_RELEASE_VER="$(get_version_component_range 1-3)" - -# GCC 3.4 no longer uses gcc-lib. we'll rename this later for compatibility -# reasons, as a few things would break without gcc-lib. -LIBPATH="${LOC}/lib/gcc/${CCHOST}/${GCC_RELEASE_VER}" -BINPATH="${LOC}/${CCHOST}/gcc-bin/${GCC_BRANCH_VER}" -DATAPATH="${LOC}/share/gcc-data/${CCHOST}/${GCC_BRANCH_VER}" -# Dont install in /usr/include/g++-v3/, but in gcc internal directory. -# We will handle /usr/include/g++-v3/ with gcc-config ... -STDCXX_INCDIR="${LIBPATH}/include/g++-v${GCC_BRANCH_VER/\.*/}" - -# Ok, this is a hairy one again, but lets assume that we -# are not cross compiling, than we want SLOT to only contain -# $PV, as people upgrading to new gcc layout will not have -# their old gcc unmerged ... -# GCC 3.4 introduces a new version of libstdc++ -SLOT="${GCC_BRANCH_VER}" - -has_lib64() { - use amd64 && return 0 - use ppc64 && return 0 - return 1 -} - -chk_gcc_version() { - # This next bit is for updating libtool linker scripts ... - local OLD_GCC_VERSION="`gcc -dumpversion`" - local OLD_GCC_CHOST="$(gcc -v 2>&1 | egrep '^Reading specs' |\ - sed -e 's:^.*/gcc[^/]*/\([^/]*\)/[0-9]\+.*$:\1:')" - - if [ "${OLD_GCC_VERSION}" != "${GCC_RELEASE_VER}" ] - then - echo "${OLD_GCC_VERSION}" > "${WORKDIR}/.oldgccversion" - fi - - if [ -n "${OLD_GCC_CHOST}" ] - then - if [ "${CHOST}" = "${CCHOST}" -a "${OLD_GCC_CHOST}" != "${CHOST}" ] - then - echo "${OLD_GCC_CHOST}" > "${WORKDIR}/.oldgccchost" - fi - fi - - # Did we check the version ? - touch "${WORKDIR}/.chkgccversion" -} - -version_patch() { - [ ! -f "$1" ] && return 1 - [ -z "$2" ] && return 1 - - sed -e "s:@GENTOO@:$2:g" ${1} > ${T}/${1##*/} - epatch ${T}/${1##*/} -} - -check_option_validity() { - # Must compile for mips64-linux target if we want n32/n64 support - case "${CCHOST}" in - mips64-*) - ;; - *) - if use n32 || use n64; then - eerror "n32/n64 can only be used when target host is mips64-*-linux-*"; - die "Invalid USE flags for CCHOST ($CCHOST)"; - fi - ;; - esac - - #cannot have both n32 & n64 without multilib - if use n32 && use n64 && ! use multilib; then - eerror "Please enable multilib if you want to use both n32 & n64"; - die "Invalid USE flag combination"; - fi -} - -glibc_have_ssp() { - # one day lib64 wont be a symlink on amd64, but this still works - # and is what we want to use in the long run - has_lib64 \ - && local libc_prefix="/lib64/" \ - || local libc_prefix="/lib/" - - use elibc_uclibc \ - && local libc_file="libc.so.0" \ - || local libc_file="libc.so.6" - - local my_libc=${ROOT}/${libc_prefix}/${libc_file} - - # Check for the glibc to have the __guard symbols - if [ "$(readelf -s "${my_libc}" 2>/dev/null | \ - grep GLOBAL | grep OBJECT | grep '__guard')" ] && \ - [ "$(readelf -s "${my_libc}" 2>/dev/null | \ - grep GLOBAL | grep FUNC | grep '__stack_smash_handler')" ] - then - return 0 - else - return 1 - fi -} - -glibc_have_pie() { - if [ ! -f ${ROOT}/usr/lib/Scrt1.o ] ; then - echo - ewarn "Your glibc does not have support for pie, the file Scrt1.o is missing" - ewarn "Please update your glibc to a proper version or disable hardened" - echo - return 1 - fi -} - -check_glibc_ssp() { - [ "$GLIBC_SSP_CHECKED" = 1 ] && return 0 - if glibc_have_ssp - then - if [ -n "${GLIBC_SSP_CHECKED}" ] && \ - [ -z "$(readelf -s "${ROOT}/$(gcc-config -L)/libgcc_s.so" 2>/dev/null | \ - grep 'GLOBAL' | grep 'OBJECT' | grep '__guard')" ] - then - # No need to check again ... - return 0 - fi - - echo - ewarn "This sys-libs/glibc has __guard object and __stack_smash_handler functions" - ewarn "scanning the system for binaries with __guard - this may take 5-10 minutes" - ewarn "Please do not press ctrl-C or ctrl-Z during this period - it will continue" - echo - if ! bash ${FILESDIR}/scan_libgcc_linked_ssp.sh - then - echo - eerror "Found binaries that are dynamically linked to the libgcc with __guard@@GCC" - eerror "You need to compile these binaries without CFLAGS -fstack-protector/hcc -r" - echo - eerror "Also, you have to make sure that using ccache needs the cache to be flushed" - eerror "wipe out /var/tmp/ccache or /root/.ccache. This will remove possible saved" - eerror "-fstack-protector arguments that still may reside in such a compiler cache" - echo - eerror "When such binaries are found, gcc cannot remove libgcc propolice functions" - eerror "leading to gcc -static -fstack-protector breaking, see gentoo bug #25299" - echo - einfo "To do a full scan on your system, enter this following command in a shell" - einfo "(Please keep running and remerging broken packages until it do not report" - einfo " any breakage anymore!):" - echo - einfo " # ${FILESDIR}/scan_libgcc_linked_ssp.sh" - echo - die "Binaries with libgcc __guard@GCC dependencies detected!" - else - echo - einfo "No binaries with suspicious libgcc __guard@GCC dependencies detected" - echo - fi - fi - - return 0 -} - -update_gcc_for_libc_ssp() { - if glibc_have_ssp - then - einfo "Updating gcc to use SSP from glibc..." - sed -e 's|^\(LIBGCC2_CFLAGS.*\)$|\1 -D_LIBC_PROVIDES_SSP_|' \ - -i ${S}/gcc/Makefile.in || die "Failed to update gcc!" - fi -} - -do_patch_tarball() { - # Do bulk patches included in ${P}-patches-${PATCH_VER}.tar.bz2 - if [ -n "${PATCH_VER}" ] - then - mkdir -p ${WORKDIR}/patch/exclude - #mv -f ${WORKDIR}/patch/84* ${WORKDIR}/patch/exclude/ - - # for uclibc we rather copy the needed files and patch them - mkdir ${S}/libstdc++-v3/config/{locale/uclibc,os/uclibc} || \ - die "can't create uclibc directories" - cp ${S}/libstdc++-v3/config/locale/gnu/* \ - ${S}/libstdc++-v3/config/locale/uclibc/ || die "can't copy uclibc locale" - cp ${S}/libstdc++-v3/config/locale/ieee_1003.1-2001/codecvt_specializations.h \ - ${S}/libstdc++-v3/config/locale/uclibc/ || die "can't copy uclibc codecvt" - cp ${S}/libstdc++-v3/config/os/gnu-linux/* \ - ${S}/libstdc++-v3/config/os/uclibc/ || die "can't copy uclibc os" - cp ${S}/gcc/config/t-linux ${S}/gcc/config/t-linux-uclibc || \ - die "can't copy t-linux" - cp ${S}/gcc/config/cris/t-linux ${S}/gcc/config/cris/t-linux-uclibc || \ - die "can't copy cris/t-linux" - cp ${S}/gcc/config/sh/t-linux ${S}/gcc/config/sh/t-linux-uclibc || \ - die "can't copy sh/t-linux" - cp ${S}/gcc/config/sh/t-sh64 ${S}/gcc/config/sh/t-sh64-uclibc || \ - die "can't copy sh/t-sh64" - - epatch ${WORKDIR}/patch - - # the uclibc patches need autoconf to be run - # for build stage we need the updated files though - use build || ( cd ${S}/libstdc++-v3; autoconf; cd ${S} ) - #use build && use elibc_uclibc && ewarn "uclibc in build stage is not supported yet" && exit 1 - - fi -} - -do_piessp_patches() { - # TODO: on arches where we lack a Scrt1.o (like parisc) we still need unpack, compile and install logic - # TODO: for the crt1Snocsu.o provided by a custom gcc-pie-ssp.tgz which can also be included in SRC_URI - - if [ -n "${PIE_VER}" ] - then - [ -z "${PATCH_VER}" ] && mv piepatch/upstream/04_* piepatch/ - - # corrects startfile/endfile selection and shared/static/pie flag usage - epatch ${WORKDIR}/piepatch/upstream - # adds non-default pie support (rs6000) - epatch ${WORKDIR}/piepatch/nondef - # adds default pie support (rs6000 too) if DEFAULT_PIE[_SSP] is defined - epatch ${WORKDIR}/piepatch/def - # disable relro/now - use elibc_uclibc && epatch ${FILESDIR}/3.3.3/gcc-3.3.3-norelro.patch - fi - - # non-default SSP support. - if [ "${ARCH}" != "hppa" -a "${ARCH}" != "hppa64" -a -n "${PP_VER}" ] - then - # ProPolice Stack Smashing protection - epatch ${WORKDIR}/protector.dif - epatch ${FILESDIR}/pro-police-docs.patch - - cp ${WORKDIR}/gcc/protector.c ${S}/gcc/ || die "protector.c not found" - cp ${WORKDIR}/gcc/protector.h ${S}/gcc/ || die "protector.h not found" - cp -R ${WORKDIR}/gcc/testsuite/* ${S}/gcc/testsuite/ || die "testsuite not found" - - [ -n "${PATCH_VER}" ] && epatch ${FILESDIR}/3.3.3/gcc-3.3.3-uclibc-add-ssp.patch - - # we apply only the needed parts of protectonly.dif - sed -e 's|^CRTSTUFF_CFLAGS = |CRTSTUFF_CFLAGS = -fno-stack-protector-all |' \ - -i gcc/Makefile.in || die "Failed to update crtstuff!" - #sed -e 's|^\(LIBGCC2_CFLAGS.*\)$|\1 -fno-stack-protector-all|' \ - # -i ${S}/gcc/Makefile.in || die "Failed to update libgcc!" - - # if gcc in a stage3 defaults to ssp, is version 3.4.0 and a stage1 is built - # the build fails building timevar.o w/: - # cc1: stack smashing attack in function ix86_split_to_parts() - if gcc -dumpspecs | grep -q "fno-stack-protector:" - then - use build && epatch ${FILESDIR}/3.4.0/gcc-3.4.0-cc1-no-stack-protector.patch - fi - - release_version="${release_version}, ssp-${PP_FVER}" - - update_gcc_for_libc_ssp - fi - - release_version="${release_version}, pie-${PIE_VER}" - if use hardened && ( use x86 || use sparc || use amd64 ) - then - einfo "Updating gcc to use automatic PIE + SSP building ..." - sed -e 's|^ALL_CFLAGS = |ALL_CFLAGS = -DEFAULT_PIE_SSP |' \ - -i ${S}/gcc/Makefile.in || die "Failed to update gcc!" - - # rebrand to make bug reports easier - release_version="${release_version/Gentoo/Gentoo Hardened}" - fi -} - -src_unpack() { - local release_version="Gentoo Linux ${PVR}" - - if [ -n "${PP_VER}" ] && [ "${ARCH}" != "hppa" ] - then - # the guard check should be very early in the unpack process - check_glibc_ssp - fi - - [ -n "${PIE_VER}" ] && use hardened && glibc_have_pie - - if [ -n "${PRERELEASE}" ] ; then - unpack gcc-${PRERELEASE}.tar.bz2 - elif [ -n "${SNAPSHOT}" ] ; then - unpack gcc-${SNAPSHOT//-}.tar.bz2 - else - unpack ${PN}-${GCC_RELEASE_VER}.tar.bz2 - fi - - if [ -n "${PATCH_VER}" ] - then - unpack ${P}-patches-${PATCH_VER}.tar.bz2 - fi - - if [ -n "${PP_VER}" ] - then - unpack protector-${PP_FVER}.tar.gz - fi - - if [ -n "${PIE_VER}" ] - then - unpack ${PIE_CORE} - fi - - cd ${S} - - # Branch update ... - if [ -n "${BRANCH_UPDATE}" ] - then - epatch ${DISTDIR}/${PN}-${GCC_RELEASE_VER}-branch-update-${BRANCH_UPDATE}.patch.bz2 - fi - - do_patch_tarball - do_piessp_patches - - version_patch ${FILESDIR}/3.4.1/gcc-${PV}-r2-gentoo-branding.patch \ - "${BRANCH_UPDATE} (${release_version})" || die "Failed Branding" - - # misc patches that havent made it into a patch tarball yet - epatch ${FILESDIR}/3.4.0/gcc34-reiser4-fix.patch - epatch ${FILESDIR}/gcc-spec-env.patch - - # MIPS is screwed screwed thing - but it's cool! - # I had to add ABI variable, because during bootstrap - # USE flags get stripped. This doesn't make gcc happy. - # I'll take care of multilib when I actually decide to make it work. - # (That implied somebody has to add appropriate support to portage - # first). - if ! use multilib; then - if [ "${ABI}" = "n32" ]; then - epatch ${FILESDIR}/3.4.1/gcc-3.4.1-mips-n32only.patch - elif [ "${ABI}" = n64 ]; then - epatch ${FILESDIR}/3.4.1/gcc-3.4.1-mips-n64only.patch - fi - fi - - # Misdesign in libstdc++ (Redhat) - cp -a ${S}/libstdc++-v3/config/cpu/i{4,3}86/atomicity.h - - # disable --as-needed from being compiled into gcc specs - # natively when using >=sys-devel/binutils-2.15.90.0.1 this is - # done to keep our gcc backwards compatible with binutils. - # gcc 3.4.1 cvs has patches that need back porting.. - # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14992 (May 3 2004) - sed -i -e s/HAVE_LD_AS_NEEDED/USE_LD_AS_NEEDED/g ${S}/gcc/config.in - - gnuconfig_update - # Fixup libtool to correctly generate .la files with portage - elibtoolize --portage --shallow - - cd ${S}; ./contrib/gcc_update --touch &> /dev/null -} - -src_compile() { - - local myconf= - local gcc_lang= - - check_option_validity - - if ! use build - then - myconf="${myconf} --enable-shared" - gcc_lang="c,c++" - use fortran && gcc_lang="${gcc_lang},f77" - use objc && gcc_lang="${gcc_lang},objc" - use gcj && gcc_lang="${gcc_lang},java" - # We do NOT want 'ADA support' in here! - # use ada && gcc_lang="${gcc_lang},ada" - else - gcc_lang="c" - fi - if ! use nls || use build - then - myconf="${myconf} --disable-nls" - else - myconf="${myconf} --enable-nls --without-included-gettext" - fi - - # GTK+ is preferred over xlib in 3.4.x (xlib is unmaintained - # right now). Much thanks to <csm@gnu.org> for the heads up. - # Travis Tilley <lv@gentoo.org> (11 Jul 2004) - if ! use build && use gcj && use gtk - then - myconf="${myconf} --enable-java-awt=gtk" - fi - - # Multilib not yet supported - if use multilib - then - einfo "Multilib support enabled. This is still experimental." - myconf="${myconf} --enable-multilib" - else - myconf="${myconf} --disable-multilib" - fi - - # Fix linking problem with c++ apps which where linked - # against a 3.2.2 libgcc - [ "${ARCH}" = "hppa" ] && myconf="${myconf} --enable-sjlj-exceptions" - - # --with-gnu-ld needed for cross-compiling - # --enable-sjlj-exceptions : currently the unwind stuff seems to work - # for statically linked apps but not dynamic - # so use setjmp/longjmp exceptions by default - # uclibc uses --enable-clocale=uclibc (autodetected) - # --disable-libunwind-exceptions needed till unwind sections get fixed. see ps.m for details - - if ! use elibc_uclibc - then - # it's getting close to a time where we are going to need USE=glibc, uclibc, bsdlibc -solar - myconf="${myconf} --enable-__cxa_atexit --enable-clocale=gnu" - else - myconf="${myconf} --disable-__cxa_atexit --enable-target-optspace --with-gnu-ld --enable-sjlj-exceptions" - fi - - # Default arch support disabled for now... - #use amd64 && myconf="${myconf} --with-arch=k8" - #use s390 && myconf="${myconf} --with-arch=nofreakingclue" - #use x86 && myconf="${myconf} --with-arch=i586" - #use mips && myconf="${myconf} --with-arch=mips3" - - # Add --with-abi flags to enable respective MIPS ABIs - case "${CCHOST}" in - mips*) - use multilib && myconf="${myconf} --with-abi=32" - [ "${ABI}" = n64 ] && myconf="${myconf} --with-abi=n64" - [ "${ABI}" = n32 ] && myconf="${myconf} --with-abi=n32" - ;; - esac - - do_filter_flags - einfo "CFLAGS=\"${CFLAGS}\"" - einfo "CXXFLAGS=\"${CXXFLAGS}\"" - einfo "GCJFLAGS=\"${GCJFLAGS}\"" - - # Build in a separate build tree - mkdir -p ${WORKDIR}/build - cd ${WORKDIR}/build - - # Install our pre generated manpages if we do not have perl ... - if [ ! -x /usr/bin/perl ] - then - unpack ${P}-manpages.tar.bz2 || die "Failed to unpack man pages" - fi - - einfo "Configuring GCC..." - addwrite "/dev/zero" - ${S}/configure --prefix=${LOC} \ - --bindir=${BINPATH} \ - --includedir=${LIBPATH}/include \ - --datadir=${DATAPATH} \ - --mandir=${DATAPATH}/man \ - --infodir=${DATAPATH}/info \ - --enable-shared \ - --host=${CHOST} \ - --target=${CCHOST} \ - --with-system-zlib \ - --enable-languages=${gcc_lang} \ - --enable-threads=posix \ - --enable-long-long \ - --disable-checking \ - --disable-libunwind-exceptions \ - --enable-cstdio=stdio \ - --enable-version-specific-runtime-libs \ - --with-gxx-include-dir=${STDCXX_INCDIR} \ - --with-local-prefix=${LOC}/local \ - --disable-werror \ - ${myconf} || die - - touch ${S}/gcc/c-gperf.h - - # Do not make manpages if we do not have perl ... - if [ ! -x /usr/bin/perl ] - then - find ${WORKDIR}/build -name '*.[17]' -exec touch {} \; || : - fi - - einfo "Building GCC..." - # Only build it static if we are just building the C frontend, else - # a lot of things break because there are not libstdc++.so .... - if use static && [ "${gcc_lang}" = "c" ] - then - # Fix for our libtool-portage.patch - S="${WORKDIR}/build" \ - emake LDFLAGS="-static" bootstrap \ - LIBPATH="${LIBPATH}" \ - BOOT_CFLAGS="${CFLAGS}" STAGE1_CFLAGS="-O" || die - # Above FLAGS optimize and speedup build, thanks - # to Jeff Garzik <jgarzik@mandrakesoft.com> - else - # Fix for our libtool-portage.patch - S="${WORKDIR}/build" \ - emake profiledbootstrap \ - LIBPATH="${LIBPATH}" \ - BOOT_CFLAGS="${CFLAGS}" STAGE1_CFLAGS="-O" || die - - fi -} - -src_install() { - local x= - - # Do allow symlinks in ${LOC}/lib/gcc-lib/${CHOST}/${PV}/include as - # this can break the build. - for x in ${WORKDIR}/build/gcc/include/* - do - if [ -L ${x} ] - then - rm -f ${x} - continue - fi - done - # Remove generated headers, as they can cause things to break - # (ncurses, openssl, etc). - for x in `find ${WORKDIR}/build/gcc/include/ -name '*.h'` - do - if grep -q 'It has been auto-edited by fixincludes from' ${x} - then - rm -f ${x} - fi - done - - einfo "Installing GCC..." - # Do the 'make install' from the build directory - cd ${WORKDIR}/build - S="${WORKDIR}/build" \ - make prefix=${LOC} \ - bindir=${BINPATH} \ - includedir=${LIBPATH}/include \ - datadir=${DATAPATH} \ - mandir=${DATAPATH}/man \ - infodir=${DATAPATH}/info \ - DESTDIR="${D}" \ - LIBPATH="${LIBPATH}" \ - install || die - - [ -r ${D}${BINPATH}/gcc ] || die "gcc not found in ${D}" - - # Because GCC 3.4 installs into the gcc directory and not the gcc-lib - # directory, we will have to rename it in order to keep compatibility - # with our current libtool check and gcc-config (which would be a pain - # to fix compared to this simple mv and symlink). - mv ${D}/${LOC}/lib/gcc ${D}/${LOC}/lib/gcc-lib - ln -s gcc-lib ${D}/${LOC}/lib/gcc - LIBPATH=${LIBPATH/lib\/gcc/lib\/gcc-lib} - - dodir /lib /usr/bin - dodir /etc/env.d/gcc - echo "PATH=\"${BINPATH}\"" > ${D}/etc/env.d/gcc/${CCHOST}-${GCC_RELEASE_VER} - echo "ROOTPATH=\"${BINPATH}\"" >> ${D}/etc/env.d/gcc/${CCHOST}-${GCC_RELEASE_VER} - - # The LDPATH stuff is kinda iffy now that we need to provide compatibility - # with older versions of GCC for binary apps. - LDPATH="${LIBPATH}" - if [ "${BULIB}" != "" ] - then - LDPATH="${LDPATH}:${LOC}/lib/gcc-lib/${CCHOST}/${BULIB}" - fi - echo "LDPATH=\"${LDPATH}\"" >> ${D}/etc/env.d/gcc/${CCHOST}-${GCC_RELEASE_VER} - - echo "MANPATH=\"${DATAPATH}/man\"" >> ${D}/etc/env.d/gcc/${CCHOST}-${GCC_RELEASE_VER} - echo "INFOPATH=\"${DATAPATH}/info\"" >> ${D}/etc/env.d/gcc/${CCHOST}-${GCC_RELEASE_VER} - echo "STDCXX_INCDIR=\"${STDCXX_INCDIR##*/}\"" >> ${D}/etc/env.d/gcc/${CCHOST}-${GCC_RELEASE_VER} - # Also set CC and CXX - echo "CC=\"gcc\"" >> ${D}/etc/env.d/gcc/${CCHOST}-${GCC_RELEASE_VER} - echo "CXX=\"g++\"" >> ${D}/etc/env.d/gcc/${CCHOST}-${GCC_RELEASE_VER} - - # Make sure we do not check glibc for SSP again, as we did already - if glibc_have_ssp || \ - [ -f "${ROOT}/etc/env.d/99glibc_ssp" ] - then - echo "GLIBC_SSP_CHECKED=1" > ${D}/etc/env.d/99glibc_ssp - fi - - # Make sure we dont have stuff lying around that - # can nuke multiple versions of gcc - if ! use build - then - cd ${D}${LIBPATH} - - # Tell libtool files where real libraries are - for x in ${D}${LOC}/lib/*.la ${D}${LIBPATH}/../*.la - do - if [ -f "${x}" ] - then - sed -i -e "s:/usr/lib:${LIBPATH}:" ${x} - mv ${x} ${D}${LIBPATH} - fi - done - - # Move all the libraries to version specific libdir. - for x in ${D}${LOC}/lib/*.{so,a}* ${D}${LIBPATH}/../*.{so,a}* - do - [ -f "${x}" -o -L "${x}" ] && mv -f ${x} ${D}${LIBPATH} - done - - # Move Java headers to compiler-specific dir - for x in ${D}${LOC}/include/gc*.h ${D}${LOC}/include/j*.h - do - [ -f "${x}" ] && mv -f ${x} ${D}${LIBPATH}/include/ - done - for x in gcj gnu java javax org - do - if [ -d "${D}${LOC}/include/${x}" ] - then - dodir /${LIBPATH}/include/${x} - mv -f ${D}${LOC}/include/${x}/* ${D}${LIBPATH}/include/${x}/ - rm -rf ${D}${LOC}/include/${x} - fi - done - - if [ -d "${D}${LOC}/lib/security" ] - then - dodir /${LIBPATH}/security - mv -f ${D}${LOC}/lib/security/* ${D}${LIBPATH}/security - rm -rf ${D}${LOC}/lib/security - fi - - # Move libgcj.spec to compiler-specific directories - [ -f "${D}${LOC}/lib/libgcj.spec" ] && \ - mv -f ${D}${LOC}/lib/libgcj.spec ${D}${LIBPATH}/libgcj.spec - - # Rename jar because it could clash with Kaffe's jar if this gcc is - # primary compiler (aka don't have the -<version> extension) - cd ${D}${LOC}/${CCHOST}/gcc-bin/${GCC_BRANCH_VER} - [ -f jar ] && mv -f jar gcj-jar - - # Move <cxxabi.h> to compiler-specific directories - [ -f "${D}${STDCXX_INCDIR}/cxxabi.h" ] && \ - mv -f ${D}${STDCXX_INCDIR}/cxxabi.h ${D}${LIBPATH}/include/ - - # These should be symlinks - cd ${D}${BINPATH} - for x in gcc g++ c++ g77 gcj - do - rm -f ${CCHOST}-${x} - [ -f "${x}" ] && ln -sf ${x} ${CCHOST}-${x} - - if [ -f "${CCHOST}-${x}-${PV}" ] - then - rm -f ${CCHOST}-${x}-${PV} - ln -sf ${x} ${CCHOST}-${x}-${PV} - fi - done - fi - - # This one comes with binutils - if [ -f "${D}${LOC}/lib/libiberty.a" ] - then - rm -f ${D}${LOC}/lib/libiberty.a - fi - if [ -f "${D}${LIBPATH}/libiberty.a" ] - then - rm -f ${D}${LIBPATH}/libiberty.a - fi - - cd ${S} - if ! use build - then - cd ${S} - docinto /${CCHOST} - dodoc COPYING COPYING.LIB ChangeLog* FAQ MAINTAINERS README - docinto ${CCHOST}/html - dohtml *.html - cd ${S}/boehm-gc - docinto ${CCHOST}/boehm-gc - dodoc ChangeLog doc/{README*,barrett_diagram} - docinto ${CCHOST}/boehm-gc/html - dohtml doc/*.html - cd ${S}/gcc - docinto ${CCHOST}/gcc - dodoc ChangeLog* FSFChangeLog* LANGUAGES NEWS ONEWS README* SERVICE - if use fortran - then - cd ${S}/libf2c - docinto ${CCHOST}/libf2c - dodoc ChangeLog* README TODO *.netlib - fi - cd ${S}/libffi - docinto ${CCHOST}/libffi - dodoc ChangeLog* LICENSE README - cd ${S}/libiberty - docinto ${CCHOST}/libiberty - dodoc ChangeLog* COPYING.LIB README - if use objc - then - cd ${S}/libobjc - docinto ${CCHOST}/libobjc - dodoc ChangeLog* README* THREADS* - fi - cd ${S}/libstdc++-v3 - docinto ${CCHOST}/libstdc++-v3 - dodoc ChangeLog* README - docinto ${CCHOST}/libstdc++-v3/html - dohtml -r -a css,diff,html,txt,xml docs/html/* - - if use gcj - then - cd ${S}/fastjar - docinto ${CCHOST}/fastjar - dodoc AUTHORS CHANGES COPYING ChangeLog* NEWS README - cd ${S}/libjava - docinto ${CCHOST}/libjava - dodoc ChangeLog* COPYING HACKING LIBGCJ_LICENSE NEWS README THANKS - fi - - prepman ${DATAPATH} - prepinfo ${DATAPATH} - else - rm -rf ${D}/usr/share/{man,info} - rm -rf ${D}${DATAPATH}/{man,info} - fi - - # Rather install the script, else portage with changing $FILESDIR - # between binary and source package borks things .... - insinto /lib/rcscripts/awk - doins ${FILESDIR}/awk/fixlafiles.awk - exeinto /sbin - doexe ${FILESDIR}/fix_libtool_files.sh - - if has_lib64 - then - # GCC 3.4 tries to place libgcc_s in lib64, where it will never be - # found. When multilib is enabled, it also places the 32bit version in - # lib32. This problem could be handled by a symlink if you only plan on - # having one compiler installed at a time, but since these directories - # exist outside the versioned directories, versions from gcc 3.3 and - # 3.4 will overwrite each other. not good. - use multilib && \ - cp -pfd ${D}/${LIBPATH}/../lib32/libgcc_s* ${D}/${LIBPATH} - cp -pfd ${D}/${LIBPATH}/../lib64/libgcc_s* ${D}/${LIBPATH} - fi -} - -pkg_preinst() { - - if [ ! -f "${WORKDIR}/.chkgccversion" ] - then - chk_gcc_version - fi - - # Make again sure that the linker "should" be able to locate - # libstdc++.so ... - export LD_LIBRARY_PATH="${LIBPATH}:${LD_LIBRARY_PATH}" - ${ROOT}/sbin/ldconfig -} - -pkg_postinst() { - - export LD_LIBRARY_PATH="${LIBPATH}:${LD_LIBRARY_PATH}" - if [ "${ROOT}" = "/" -a "${CHOST}" = "${CCHOST}" ] - then - gcc-config --use-portage-chost ${CCHOST}-${GCC_RELEASE_VER} - fi - - # Update libtool linker scripts to reference new gcc version ... - if [ "${ROOT}" = "/" ] && \ - [ -f "${WORKDIR}/.oldgccversion" -o -f "${WORKDIR}/.oldgccchost" ] - then - local OLD_GCC_VERSION= - local OLD_GCC_CHOST= - - if [ -f "${WORKDIR}/.oldgccversion" ] && \ - [ -n "$(cat "${WORKDIR}/.oldgccversion")" ] - then - OLD_GCC_VERSION="$(cat "${WORKDIR}/.oldgccversion")" - else - OLD_GCC_VERSION="${GCC_RELEASE_VER}" - fi - - if [ -f "${WORKDIR}/.oldgccchost" ] && \ - [ -n "$(cat "${WORKDIR}/.oldgccchost")" ] - then - OLD_GCC_CHOST="--oldarch $(cat "${WORKDIR}/.oldgccchost")" - fi - - /sbin/fix_libtool_files.sh ${OLD_GCC_VERSION} ${OLD_GCC_CHOST} - fi - - ewarn "If you are migrating to gcc 3.4 from a previous compiler, it is" - ewarn "HIGHLY suggested you install libstdc++-v3 before uninstalling" - ewarn "your old compiler, even if you dont plan on using any binary only" - ewarn "applications that would otherwise need it. If you dont, then all" - ewarn "c++ applications will break." -} diff --git a/sys-devel/gcc/gcc-3.4.4-r1.ebuild b/sys-devel/gcc/gcc-3.4.4-r1.ebuild deleted file mode 100644 index f3d90125e3b9..000000000000 --- a/sys-devel/gcc/gcc-3.4.4-r1.ebuild +++ /dev/null @@ -1,143 +0,0 @@ -# Copyright 1999-2007 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/gcc-3.4.4-r1.ebuild,v 1.18 2007/07/22 06:35:08 dberkholz Exp $ - -MAN_VER="" -PATCH_VER="1.7" -UCLIBC_VER="1.2" -PIE_VER="8.7.8" -PP_VER="1.0" -HTB_VER="1.00" - -GCC_LIBSSP_SUPPORT="true" - -ETYPE="gcc-compiler" - -# Punt redhat patch #87631 -GENTOO_PATCH_EXCLUDE="08_all_gcc34-chk.patch" - -# arch/libc configurations known to be stable with {PIE,SSP}-by-default -SSP_STABLE="x86 sparc amd64 ppc ppc64" -SSP_UCLIBC_STABLE="arm mips ppc x86" -PIE_GLIBC_STABLE="x86 sparc amd64 ppc ppc64" -PIE_UCLIBC_STABLE="x86 mips ppc" - -# arch/libc configurations known to be broken with {PIE,SSP}-by-default -SSP_UNSUPPORTED="hppa" -SSP_UCLIBC_UNSUPPORTED="${SSP_UNSUPPORTED}" -PIE_UCLIBC_UNSUPPORTED="alpha amd64 arm hppa ia64 m68k ppc64 s390 sh sparc" -PIE_GLIBC_UNSUPPORTED="hppa" - -# whether we should split out specs files for multiple {PIE,SSP}-by-default -# and vanilla configurations. -SPLIT_SPECS=${SPLIT_SPECS-true} - -#GENTOO_PATCH_EXCLUDE="" -#PIEPATCH_EXCLUDE="" - -inherit toolchain eutils - -DESCRIPTION="The GNU Compiler Collection. Includes C/C++, java compilers, pie+ssp extensions, Haj Ten Brugge runtime bounds checking" - -# Stuff to test before adding ~arch -KEYWORDS="-* alpha amd64 arm -hppa ~ia64 mips ppc ppc64 ~s390 sh ~sparc x86" - -# we need a proper glibc version for the Scrt1.o provided to the pie-ssp specs -# NOTE: we SHOULD be using at least binutils 2.15.90.0.1 everywhere for proper -# .eh_frame ld optimisation and symbol visibility support, but it hasnt been -# well tested in gentoo on any arch other than amd64!! -RDEPEND="|| ( >=sys-devel/gcc-config-1.3.12-r4 app-admin/eselect-compiler ) - >=sys-libs/zlib-1.1.4 - elibc_glibc? ( - >=sys-libs/glibc-2.3.3_pre20040420-r1 - hardened? ( >=sys-libs/glibc-2.3.3_pre20040529 ) - ) - !build? ( - gcj? ( - gtk? ( - x11-libs/libXt - x11-libs/libX11 - x11-libs/libXtst - x11-proto/xproto - x11-proto/xextproto - >=x11-libs/gtk+-2.2 - ) - >=media-libs/libart_lgpl-2.1 - ) - >=sys-libs/ncurses-5.2-r2 - nls? ( sys-devel/gettext ) - )" - -if [[ ${CATEGORY/cross-} != ${CATEGORY} ]]; then - RDEPEND="${RDEPEND} ${CATEGORY}/binutils" -fi - -DEPEND="${RDEPEND} - >=sys-apps/texinfo-4.2-r4 - >=sys-devel/bison-1.875 - >=sys-devel/binutils-2.14.90.0.8-r1 - amd64? ( >=sys-devel/binutils-2.15.90.0.1.1-r1 )" -PDEPEND="|| ( sys-devel/gcc-config app-admin/eselect-compiler ) - x86? ( !nocxx? ( !elibc_uclibc? ( !build? ( || ( sys-libs/libstdc++-v3 =sys-devel/gcc-3.3* ) ) ) ) )" - -src_unpack() { - gcc_src_unpack - - # misc patches that havent made it into a patch tarball yet - [[ ${CHOST} == ${CTARGET} ]] && epatch "${FILESDIR}"/gcc-spec-env.patch - - # nothing in the tree provides libssp.so, so nothing will ever trigger this - # logic, but having the patch in the tree makes life so much easier for me - # since I dont have to also have an overlay for this. - want_libssp && epatch "${FILESDIR}"/3.4.3/libssp.patch - - # Anything useful and objc will require libffi. Seriously. Lets just force - # libffi to install with USE="objc", even though it normally only installs - # if you attempt to build gcj. - if ! use build && use objc && ! use gcj ; then - epatch "${FILESDIR}"/3.4.3/libffi-without-libgcj.patch - #epatch ${FILESDIR}/3.4.3/libffi-nogcj-lib-path-fix.patch - fi - - # Fix cross-compiling - epatch "${FILESDIR}"/3.4.4/gcc-3.4.4-cross-compile.patch - - [[ ${CTARGET} == *-softfloat-* ]] && epatch "${FILESDIR}"/3.4.4/gcc-3.4.4-softfloat.patch - - # Arch stuff - case $(tc-arch) in - mips) - # If mips, and we DON'T want multilib, then rig gcc to only use n32 OR n64 - if ! is_multilib; then - use n32 && epatch ${FILESDIR}/3.4.1/gcc-3.4.1-mips-n32only.patch - use n64 && epatch ${FILESDIR}/3.4.1/gcc-3.4.1-mips-n64only.patch - fi - - # Patch forward-ported from a gcc-3.0.x patch that adds -march=r10000 and - # -mtune=r10000 support to gcc (Allows the compiler to generate code to - # take advantage of R10k's second ALU, perform shifts, etc.. - # - # Needs re-porting to DFA in gcc-4.0 - Any Volunteers? :) - epatch ${FILESDIR}/3.4.2/gcc-3.4.x-mips-add-march-r10k.patch - - # This is a very special patch -- it allows us to build semi-usable kernels - # on SGI IP28 (Indigo2 Impact R10000) systems. The patch is henceforth - # regarded as a kludge by upstream, and thus, it will never get accepted upstream, - # but for our purposes of building a kernel, it works. - # Unless you're building an IP28 kernel, you really don't need care about what - # this patch does, because if you are, you are probably already aware of what - # it does. - # All that said, the abilities of this patch are disabled by default and need - # to be enabled by passing -mip28-cache-barrier. Only used to build kernels, - # There is the possibility it may be used for very specific userland apps too. - if use ip28; then - epatch ${FILESDIR}/3.4.2/gcc-3.4.2-mips-ip28_cache_barriers-v2.patch - fi - ;; - amd64) - if is_multilib ; then - sed -i -e '/GLIBCXX_IS_NATIVE=/s:false:true:' libstdc++-v3/configure || die - fi - ;; - esac -} diff --git a/sys-devel/gcc/gcc-3.4.5-r1.ebuild b/sys-devel/gcc/gcc-3.4.5-r1.ebuild deleted file mode 100644 index 1b6620df5dd2..000000000000 --- a/sys-devel/gcc/gcc-3.4.5-r1.ebuild +++ /dev/null @@ -1,144 +0,0 @@ -# Copyright 1999-2007 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/gcc-3.4.5-r1.ebuild,v 1.16 2007/07/22 06:35:08 dberkholz Exp $ - -MAN_VER="" -PATCH_VER="1.4" -UCLIBC_VER="1.1" -PIE_VER="8.7.9" -PP_VER="1.0" -HTB_VER="1.00" -HTB_GCC_VER="3.4.4" - -GCC_LIBSSP_SUPPORT="true" - -ETYPE="gcc-compiler" - -# arch/libc configurations known to be stable with {PIE,SSP}-by-default -SSP_STABLE="x86 sparc amd64 ppc ppc64" -SSP_UCLIBC_STABLE="arm mips ppc x86" -PIE_GLIBC_STABLE="x86 sparc amd64 ppc ppc64" -PIE_UCLIBC_STABLE="x86 mips ppc" - -# arch/libc configurations known to be broken with {PIE,SSP}-by-default -SSP_UNSUPPORTED="hppa" -SSP_UCLIBC_UNSUPPORTED="${SSP_UNSUPPORTED}" -PIE_UCLIBC_UNSUPPORTED="alpha amd64 arm hppa ia64 m68k ppc64 s390 sh sparc" -PIE_GLIBC_UNSUPPORTED="hppa" - -# whether we should split out specs files for multiple {PIE,SSP}-by-default -# and vanilla configurations. -SPLIT_SPECS=${SPLIT_SPECS-true} - -#GENTOO_PATCH_EXCLUDE="" -#PIEPATCH_EXCLUDE="" - -inherit toolchain eutils - -DESCRIPTION="The GNU Compiler Collection. Includes C/C++, java compilers, pie+ssp extensions, Haj Ten Brugge runtime bounds checking" - -KEYWORDS="-* ~amd64 arm -hppa ~ia64 ~mips ppc ~ppc64 ~s390 sh x86" - -# we need a proper glibc version for the Scrt1.o provided to the pie-ssp specs -# NOTE: we SHOULD be using at least binutils 2.15.90.0.1 everywhere for proper -# .eh_frame ld optimisation and symbol visibility support, but it hasnt been -# well tested in gentoo on any arch other than amd64!! -RDEPEND="|| ( >=sys-devel/gcc-config-1.3.12-r4 app-admin/eselect-compiler ) - >=sys-libs/zlib-1.1.4 - elibc_glibc? ( - >=sys-libs/glibc-2.3.3_pre20040420-r1 - hardened? ( >=sys-libs/glibc-2.3.3_pre20040529 ) - ) - !build? ( - gcj? ( - gtk? ( - x11-libs/libXt - x11-libs/libX11 - x11-libs/libXtst - x11-proto/xproto - x11-proto/xextproto - >=x11-libs/gtk+-2.2 - ) - >=media-libs/libart_lgpl-2.1 - ) - >=sys-libs/ncurses-5.2-r2 - nls? ( sys-devel/gettext ) - )" - -if [[ ${CATEGORY/cross-} != ${CATEGORY} ]]; then - RDEPEND="${RDEPEND} ${CATEGORY}/binutils" -fi - -DEPEND="${RDEPEND} - >=sys-apps/texinfo-4.2-r4 - >=sys-devel/bison-1.875 - >=sys-devel/binutils-2.14.90.0.8-r1 - amd64? ( >=sys-devel/binutils-2.15.90.0.1.1-r1 )" -PDEPEND="|| ( sys-devel/gcc-config app-admin/eselect-compiler ) - x86? ( !nocxx? ( !elibc_uclibc? ( !build? ( || ( sys-libs/libstdc++-v3 =sys-devel/gcc-3.3* ) ) ) ) )" - -src_unpack() { - gcc_src_unpack - - # misc patches that havent made it into a patch tarball yet - [[ ${CHOST} == ${CTARGET} ]] && epatch "${FILESDIR}"/gcc-spec-env.patch - - # nothing in the tree provides libssp.so, so nothing will ever trigger this - # logic, but having the patch in the tree makes life so much easier for me - # since I dont have to also have an overlay for this. - want_libssp && epatch "${FILESDIR}"/3.4.3/libssp.patch - - # Anything useful and objc will require libffi. Seriously. Lets just force - # libffi to install with USE="objc", even though it normally only installs - # if you attempt to build gcj. - if ! use build && use objc && ! use gcj ; then - epatch "${FILESDIR}"/3.4.3/libffi-without-libgcj.patch - #epatch ${FILESDIR}/3.4.3/libffi-nogcj-lib-path-fix.patch - fi - - # Fix cross-compiling - epatch "${FILESDIR}"/3.4.4/gcc-3.4.4-cross-compile.patch - - [[ ${CTARGET} == *-softfloat-* ]] && epatch "${FILESDIR}"/3.4.4/gcc-3.4.4-softfloat.patch - - # Arch stuff - case $(tc-arch) in - mips) - # If mips, and we DON'T want multilib, then rig gcc to only use n32 OR n64 - if ! is_multilib; then - use n32 && epatch ${FILESDIR}/3.4.1/gcc-3.4.1-mips-n32only.patch - use n64 && epatch ${FILESDIR}/3.4.1/gcc-3.4.1-mips-n64only.patch - fi - - # Patch forward-ported from a gcc-3.0.x patch that adds -march=r10000 and - # -mtune=r10000 support to gcc (Allows the compiler to generate code to - # take advantage of R10k's second ALU, perform shifts, etc.. - # - # Needs re-porting to DFA in gcc-4.0 - Any Volunteers? :) - epatch ${FILESDIR}/3.4.2/gcc-3.4.x-mips-add-march-r10k.patch - - # This is a very special patch -- it allows us to build semi-usable kernels - # on SGI IP28 (Indigo2 Impact R10000) systems. The patch is henceforth - # regarded as a kludge by upstream, and thus, it will never get accepted upstream, - # but for our purposes of building a kernel, it works. - # Unless you're building an IP28 kernel, you really don't need care about what - # this patch does, because if you are, you are probably already aware of what - # it does. - # All that said, the abilities of this patch are disabled by default and need - # to be enabled by passing -mip28-cache-barrier. Only used to build kernels, - # There is the possibility it may be used for very specific userland apps too. - if use ip28; then - epatch ${FILESDIR}/3.4.2/gcc-3.4.2-mips-ip28_cache_barriers-v3.patch - elif use ip32r10k; then - # similar to the above patch, but we force a whole ton of cache barriers to be - # generated for ther super-experimental ip32-r10k system - epatch ${FILESDIR}/3.4.2/gcc-3.4.2-mips-ip28_cache_barriers-v3-ip32r10k.patch - fi - ;; - amd64) - if is_multilib ; then - sed -i -e '/GLIBCXX_IS_NATIVE=/s:false:true:' libstdc++-v3/configure || die - fi - ;; - esac -} diff --git a/sys-devel/gcc/gcc-3.4.5.ebuild b/sys-devel/gcc/gcc-3.4.5.ebuild deleted file mode 100644 index e2915cf346f5..000000000000 --- a/sys-devel/gcc/gcc-3.4.5.ebuild +++ /dev/null @@ -1,140 +0,0 @@ -# Copyright 1999-2007 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/gcc-3.4.5.ebuild,v 1.19 2007/07/22 06:35:08 dberkholz Exp $ - -MAN_VER="" -PATCH_VER="1.2" -UCLIBC_VER="1.0" -PIE_VER="8.7.9" -PP_VER="1.0" -HTB_VER="1.00" -HTB_GCC_VER="3.4.4" - -GCC_LIBSSP_SUPPORT="true" - -ETYPE="gcc-compiler" - -# arch/libc configurations known to be stable with {PIE,SSP}-by-default -SSP_STABLE="x86 sparc amd64 ppc ppc64" -SSP_UCLIBC_STABLE="arm mips ppc x86" -PIE_GLIBC_STABLE="x86 sparc amd64 ppc ppc64" -PIE_UCLIBC_STABLE="x86 mips ppc" - -# arch/libc configurations known to be broken with {PIE,SSP}-by-default -SSP_UNSUPPORTED="hppa" -SSP_UCLIBC_UNSUPPORTED="${SSP_UNSUPPORTED}" -PIE_UCLIBC_UNSUPPORTED="alpha amd64 arm hppa ia64 m68k ppc64 s390 sh sparc" -PIE_GLIBC_UNSUPPORTED="hppa" - -# whether we should split out specs files for multiple {PIE,SSP}-by-default -# and vanilla configurations. -SPLIT_SPECS=${SPLIT_SPECS-true} - -#GENTOO_PATCH_EXCLUDE="" -#PIEPATCH_EXCLUDE="" - -inherit toolchain eutils - -DESCRIPTION="The GNU Compiler Collection. Includes C/C++, java compilers, pie+ssp extensions, Haj Ten Brugge runtime bounds checking" - -KEYWORDS="-* amd64 ~arm -hppa ~ia64 mips ~ppc ~ppc64 ~s390 sh sparc x86" - -# we need a proper glibc version for the Scrt1.o provided to the pie-ssp specs -# NOTE: we SHOULD be using at least binutils 2.15.90.0.1 everywhere for proper -# .eh_frame ld optimisation and symbol visibility support, but it hasnt been -# well tested in gentoo on any arch other than amd64!! -RDEPEND="|| ( >=sys-devel/gcc-config-1.3.12-r4 app-admin/eselect-compiler ) - >=sys-libs/zlib-1.1.4 - elibc_glibc? ( - >=sys-libs/glibc-2.3.3_pre20040420-r1 - hardened? ( >=sys-libs/glibc-2.3.3_pre20040529 ) - ) - !build? ( - gcj? ( - gtk? ( - x11-libs/libXt - x11-libs/libX11 - x11-libs/libXtst - x11-proto/xproto - x11-proto/xextproto - >=x11-libs/gtk+-2.2 - ) - >=media-libs/libart_lgpl-2.1 - ) - >=sys-libs/ncurses-5.2-r2 - nls? ( sys-devel/gettext ) - )" - -if [[ ${CATEGORY/cross-} != ${CATEGORY} ]]; then - RDEPEND="${RDEPEND} ${CATEGORY}/binutils" -fi - -DEPEND="${RDEPEND} - >=sys-apps/texinfo-4.2-r4 - >=sys-devel/bison-1.875 - >=sys-devel/binutils-2.14.90.0.8-r1 - amd64? ( >=sys-devel/binutils-2.15.90.0.1.1-r1 )" -PDEPEND="|| ( sys-devel/gcc-config app-admin/eselect-compiler ) - x86? ( !nocxx? ( !elibc_uclibc? ( !build? ( || ( sys-libs/libstdc++-v3 =sys-devel/gcc-3.3* ) ) ) ) )" - -src_unpack() { - gcc_src_unpack - - # misc patches that havent made it into a patch tarball yet - [[ ${CHOST} == ${CTARGET} ]] && epatch "${FILESDIR}"/gcc-spec-env.patch - - # nothing in the tree provides libssp.so, so nothing will ever trigger this - # logic, but having the patch in the tree makes life so much easier for me - # since I dont have to also have an overlay for this. - want_libssp && epatch "${FILESDIR}"/3.4.3/libssp.patch - - # Anything useful and objc will require libffi. Seriously. Lets just force - # libffi to install with USE="objc", even though it normally only installs - # if you attempt to build gcj. - if ! use build && use objc && ! use gcj ; then - epatch "${FILESDIR}"/3.4.3/libffi-without-libgcj.patch - #epatch ${FILESDIR}/3.4.3/libffi-nogcj-lib-path-fix.patch - fi - - # Fix cross-compiling - epatch "${FILESDIR}"/3.4.4/gcc-3.4.4-cross-compile.patch - - [[ ${CTARGET} == *-softfloat-* ]] && epatch "${FILESDIR}"/3.4.4/gcc-3.4.4-softfloat.patch - - # Arch stuff - case $(tc-arch) in - mips) - # If mips, and we DON'T want multilib, then rig gcc to only use n32 OR n64 - if ! is_multilib; then - use n32 && epatch ${FILESDIR}/3.4.1/gcc-3.4.1-mips-n32only.patch - use n64 && epatch ${FILESDIR}/3.4.1/gcc-3.4.1-mips-n64only.patch - fi - - # Patch forward-ported from a gcc-3.0.x patch that adds -march=r10000 and - # -mtune=r10000 support to gcc (Allows the compiler to generate code to - # take advantage of R10k's second ALU, perform shifts, etc.. - # - # Needs re-porting to DFA in gcc-4.0 - Any Volunteers? :) - epatch ${FILESDIR}/3.4.2/gcc-3.4.x-mips-add-march-r10k.patch - - # This is a very special patch -- it allows us to build semi-usable kernels - # on SGI IP28 (Indigo2 Impact R10000) systems. The patch is henceforth - # regarded as a kludge by upstream, and thus, it will never get accepted upstream, - # but for our purposes of building a kernel, it works. - # Unless you're building an IP28 kernel, you really don't need care about what - # this patch does, because if you are, you are probably already aware of what - # it does. - # All that said, the abilities of this patch are disabled by default and need - # to be enabled by passing -mip28-cache-barrier. Only used to build kernels, - # There is the possibility it may be used for very specific userland apps too. - if use ip28; then - epatch ${FILESDIR}/3.4.2/gcc-3.4.2-mips-ip28_cache_barriers-v2.patch - fi - ;; - amd64) - if is_multilib ; then - sed -i -e '/GLIBCXX_IS_NATIVE=/s:false:true:' libstdc++-v3/configure || die - fi - ;; - esac -} diff --git a/sys-devel/gcc/gcc-3.4.6-r1.ebuild b/sys-devel/gcc/gcc-3.4.6-r1.ebuild deleted file mode 100644 index 0165f58222f6..000000000000 --- a/sys-devel/gcc/gcc-3.4.6-r1.ebuild +++ /dev/null @@ -1,143 +0,0 @@ -# Copyright 1999-2007 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/gcc-3.4.6-r1.ebuild,v 1.16 2007/07/22 06:35:08 dberkholz Exp $ - -MAN_VER="" -PATCH_VER="1.2" -UCLIBC_VER="1.1" -UCLIBC_GCC_VER="3.4.5" -PIE_VER="8.7.9" -PIE_GCC_VER="3.4.5" -PP_VER="1.0" -PP_GCC_VER="3.4.5" -HTB_VER="1.00" -HTB_GCC_VER="3.4.4" - -GCC_LIBSSP_SUPPORT="true" - -ETYPE="gcc-compiler" - -# arch/libc configurations known to be stable with {PIE,SSP}-by-default -SSP_STABLE="x86 sparc amd64 ppc ppc64" -SSP_UCLIBC_STABLE="arm mips ppc x86" -PIE_GLIBC_STABLE="x86 sparc amd64 ppc ppc64" -PIE_UCLIBC_STABLE="x86 mips ppc" - -# arch/libc configurations known to be broken with {PIE,SSP}-by-default -SSP_UNSUPPORTED="hppa sh" -SSP_UCLIBC_UNSUPPORTED="${SSP_UNSUPPORTED}" -PIE_UCLIBC_UNSUPPORTED="alpha amd64 arm hppa ia64 m68k ppc64 s390 sh sparc" -PIE_GLIBC_UNSUPPORTED="hppa" - -# whether we should split out specs files for multiple {PIE,SSP}-by-default -# and vanilla configurations. -SPLIT_SPECS=${SPLIT_SPECS-true} - -#GENTOO_PATCH_EXCLUDE="" -#PIEPATCH_EXCLUDE="" - -inherit toolchain eutils - -DESCRIPTION="The GNU Compiler Collection. Includes C/C++, java compilers, pie+ssp extensions, Haj Ten Brugge runtime bounds checking" - -KEYWORDS="-* alpha amd64 arm mips ppc ppc64 sh sparc x86 ~x86-fbsd" - -# we need a proper glibc version for the Scrt1.o provided to the pie-ssp specs -# NOTE: we SHOULD be using at least binutils 2.15.90.0.1 everywhere for proper -# .eh_frame ld optimisation and symbol visibility support, but it hasnt been -# well tested in gentoo on any arch other than amd64!! -RDEPEND="|| ( >=sys-devel/gcc-config-1.3.12-r4 app-admin/eselect-compiler ) - >=sys-libs/zlib-1.1.4 - virtual/libiconv - elibc_glibc? ( - >=sys-libs/glibc-2.3.3_pre20040420-r1 - hardened? ( >=sys-libs/glibc-2.3.3_pre20040529 ) - ) - !build? ( - gcj? ( - gtk? ( - x11-libs/libXt - x11-libs/libX11 - x11-libs/libXtst - x11-proto/xproto - x11-proto/xextproto - >=x11-libs/gtk+-2.2 - ) - >=media-libs/libart_lgpl-2.1 - ) - >=sys-libs/ncurses-5.2-r2 - nls? ( sys-devel/gettext ) - )" - -if [[ ${CATEGORY/cross-} != ${CATEGORY} ]]; then - RDEPEND="${RDEPEND} ${CATEGORY}/binutils" -fi - -DEPEND="${RDEPEND} - >=sys-apps/texinfo-4.2-r4 - >=sys-devel/bison-1.875 - >=sys-devel/binutils-2.14.90.0.8-r1 - amd64? ( >=sys-devel/binutils-2.15.90.0.1.1-r1 )" -PDEPEND="|| ( sys-devel/gcc-config app-admin/eselect-compiler )" - -src_unpack() { - gcc_src_unpack - - # misc patches that havent made it into a patch tarball yet - [[ ${CHOST} == ${CTARGET} ]] && epatch "${FILESDIR}"/gcc-spec-env.patch - - # nothing in the tree provides libssp.so, so nothing will ever trigger this - # logic, but having the patch in the tree makes life so much easier for me - # since I dont have to also have an overlay for this. - want_libssp && epatch "${FILESDIR}"/3.4.3/libssp.patch - - # Anything useful and objc will require libffi. Seriously. Lets just force - # libffi to install with USE="objc", even though it normally only installs - # if you attempt to build gcj. - if ! use build && use objc && ! use gcj ; then - epatch "${FILESDIR}"/3.4.3/libffi-without-libgcj.patch - #epatch ${FILESDIR}/3.4.3/libffi-nogcj-lib-path-fix.patch - fi - - # Fix cross-compiling - epatch "${FILESDIR}"/3.4.4/gcc-3.4.4-cross-compile.patch - - [[ ${CTARGET} == *-softfloat-* ]] && epatch "${FILESDIR}"/3.4.4/gcc-3.4.4-softfloat.patch - - # Arch stuff - case $(tc-arch) in - mips) - # If mips, and we DON'T want multilib, then rig gcc to only use n32 OR n64 - if ! is_multilib; then - use n32 && epatch ${FILESDIR}/3.4.1/gcc-3.4.1-mips-n32only.patch - use n64 && epatch ${FILESDIR}/3.4.1/gcc-3.4.1-mips-n64only.patch - fi - - # Patch forward-ported from a gcc-3.0.x patch that adds -march=r10000 and - # -mtune=r10000 support to gcc (Allows the compiler to generate code to - # take advantage of R10k's second ALU, perform shifts, etc.. - # - # Needs re-porting to DFA in gcc-4.0 - Any Volunteers? :) - epatch ${FILESDIR}/3.4.2/gcc-3.4.x-mips-add-march-r10k.patch - - # This is a very special patch -- it allows us to build semi-usable kernels - # on SGI IP28 (Indigo2 Impact R10000) systems. The patch is henceforth - # regarded as a kludge by upstream, and thus, it will never get accepted upstream, - # but for our purposes of building a kernel, it works. - # Unless you're building an IP28 kernel, you really don't need care about what - # this patch does, because if you are, you are probably already aware of what - # it does. - # All that said, the abilities of this patch are disabled by default and need - # to be enabled by passing -mip28-cache-barrier. Only used to build kernels, - # There is the possibility it may be used for very specific userland apps too. - if use ip28 or use ip32r10k; then - epatch ${FILESDIR}/3.4.2/gcc-3.4.2-mips-ip28_cache_barriers-v4.patch - fi - ;; - amd64) - if is_multilib ; then - sed -i -e '/GLIBCXX_IS_NATIVE=/s:false:true:' libstdc++-v3/configure || die - fi - ;; - esac -} diff --git a/sys-devel/gcc/gcc-3.4.6.ebuild b/sys-devel/gcc/gcc-3.4.6.ebuild deleted file mode 100644 index c01695fadd5d..000000000000 --- a/sys-devel/gcc/gcc-3.4.6.ebuild +++ /dev/null @@ -1,143 +0,0 @@ -# Copyright 1999-2007 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/gcc-3.4.6.ebuild,v 1.13 2007/07/22 06:35:08 dberkholz Exp $ - -MAN_VER="" -PATCH_VER="1.0" -UCLIBC_VER="1.1" -UCLIBC_GCC_VER="3.4.5" -PIE_VER="8.7.9" -PIE_GCC_VER="3.4.5" -PP_VER="1.0" -PP_GCC_VER="3.4.5" -HTB_VER="1.00" -HTB_GCC_VER="3.4.4" - -GCC_LIBSSP_SUPPORT="true" - -ETYPE="gcc-compiler" - -# arch/libc configurations known to be stable with {PIE,SSP}-by-default -SSP_STABLE="x86 sparc amd64 ppc ppc64" -SSP_UCLIBC_STABLE="arm mips ppc x86" -PIE_GLIBC_STABLE="x86 sparc amd64 ppc ppc64" -PIE_UCLIBC_STABLE="x86 mips ppc" - -# arch/libc configurations known to be broken with {PIE,SSP}-by-default -SSP_UNSUPPORTED="hppa" -SSP_UCLIBC_UNSUPPORTED="${SSP_UNSUPPORTED}" -PIE_UCLIBC_UNSUPPORTED="alpha amd64 arm hppa ia64 m68k ppc64 s390 sh sparc" -PIE_GLIBC_UNSUPPORTED="hppa" - -# whether we should split out specs files for multiple {PIE,SSP}-by-default -# and vanilla configurations. -SPLIT_SPECS=${SPLIT_SPECS-true} - -#GENTOO_PATCH_EXCLUDE="" -#PIEPATCH_EXCLUDE="" - -inherit toolchain eutils - -DESCRIPTION="The GNU Compiler Collection. Includes C/C++, java compilers, pie+ssp extensions, Haj Ten Brugge runtime bounds checking" - -KEYWORDS="-* ~alpha ~amd64 ~arm ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd" - -# we need a proper glibc version for the Scrt1.o provided to the pie-ssp specs -# NOTE: we SHOULD be using at least binutils 2.15.90.0.1 everywhere for proper -# .eh_frame ld optimisation and symbol visibility support, but it hasnt been -# well tested in gentoo on any arch other than amd64!! -RDEPEND="|| ( >=sys-devel/gcc-config-1.3.12-r4 app-admin/eselect-compiler ) - >=sys-libs/zlib-1.1.4 - elibc_glibc? ( - >=sys-libs/glibc-2.3.3_pre20040420-r1 - hardened? ( >=sys-libs/glibc-2.3.3_pre20040529 ) - ) - !build? ( - gcj? ( - gtk? ( - x11-libs/libXt - x11-libs/libX11 - x11-libs/libXtst - x11-proto/xproto - x11-proto/xextproto - >=x11-libs/gtk+-2.2 - ) - >=media-libs/libart_lgpl-2.1 - ) - >=sys-libs/ncurses-5.2-r2 - nls? ( sys-devel/gettext ) - )" - -if [[ ${CATEGORY/cross-} != ${CATEGORY} ]]; then - RDEPEND="${RDEPEND} ${CATEGORY}/binutils" -fi - -DEPEND="${RDEPEND} - >=sys-apps/texinfo-4.2-r4 - >=sys-devel/bison-1.875 - >=sys-devel/binutils-2.14.90.0.8-r1 - amd64? ( >=sys-devel/binutils-2.15.90.0.1.1-r1 )" -PDEPEND="|| ( sys-devel/gcc-config app-admin/eselect-compiler ) - x86? ( !nocxx? ( !elibc_uclibc? ( !build? ( || ( sys-libs/libstdc++-v3 =sys-devel/gcc-3.3* ) ) ) ) )" - -src_unpack() { - gcc_src_unpack - - # misc patches that havent made it into a patch tarball yet - [[ ${CHOST} == ${CTARGET} ]] && epatch "${FILESDIR}"/gcc-spec-env.patch - - # nothing in the tree provides libssp.so, so nothing will ever trigger this - # logic, but having the patch in the tree makes life so much easier for me - # since I dont have to also have an overlay for this. - want_libssp && epatch "${FILESDIR}"/3.4.3/libssp.patch - - # Anything useful and objc will require libffi. Seriously. Lets just force - # libffi to install with USE="objc", even though it normally only installs - # if you attempt to build gcj. - if ! use build && use objc && ! use gcj ; then - epatch "${FILESDIR}"/3.4.3/libffi-without-libgcj.patch - #epatch ${FILESDIR}/3.4.3/libffi-nogcj-lib-path-fix.patch - fi - - # Fix cross-compiling - epatch "${FILESDIR}"/3.4.4/gcc-3.4.4-cross-compile.patch - - [[ ${CTARGET} == *-softfloat-* ]] && epatch "${FILESDIR}"/3.4.4/gcc-3.4.4-softfloat.patch - - # Arch stuff - case $(tc-arch) in - mips) - # If mips, and we DON'T want multilib, then rig gcc to only use n32 OR n64 - if ! is_multilib; then - use n32 && epatch ${FILESDIR}/3.4.1/gcc-3.4.1-mips-n32only.patch - use n64 && epatch ${FILESDIR}/3.4.1/gcc-3.4.1-mips-n64only.patch - fi - - # Patch forward-ported from a gcc-3.0.x patch that adds -march=r10000 and - # -mtune=r10000 support to gcc (Allows the compiler to generate code to - # take advantage of R10k's second ALU, perform shifts, etc.. - # - # Needs re-porting to DFA in gcc-4.0 - Any Volunteers? :) - epatch ${FILESDIR}/3.4.2/gcc-3.4.x-mips-add-march-r10k.patch - - # This is a very special patch -- it allows us to build semi-usable kernels - # on SGI IP28 (Indigo2 Impact R10000) systems. The patch is henceforth - # regarded as a kludge by upstream, and thus, it will never get accepted upstream, - # but for our purposes of building a kernel, it works. - # Unless you're building an IP28 kernel, you really don't need care about what - # this patch does, because if you are, you are probably already aware of what - # it does. - # All that said, the abilities of this patch are disabled by default and need - # to be enabled by passing -mip28-cache-barrier. Only used to build kernels, - # There is the possibility it may be used for very specific userland apps too. - if use ip28 or use ip32r10k; then - epatch ${FILESDIR}/3.4.2/gcc-3.4.2-mips-ip28_cache_barriers-v4.patch - fi - ;; - amd64) - if is_multilib ; then - sed -i -e '/GLIBCXX_IS_NATIVE=/s:false:true:' libstdc++-v3/configure || die - fi - ;; - esac -} |