From bdacbfbd5e67d8d08dc832d1d0bbd300660319d8 Mon Sep 17 00:00:00 2001 From: Igor Pashev Date: Wed, 30 Jan 2013 19:20:39 +0400 Subject: Revert "Implement -fstrict-calling-conventions" This reverts commit a3682466c8947692d55445f24569af48f7f82cb6. --- gcc-4.4/patches/gcc-4.4.7.illumos.patch | 292 ++++++++++++++------------------ 1 file changed, 123 insertions(+), 169 deletions(-) diff --git a/gcc-4.4/patches/gcc-4.4.7.illumos.patch b/gcc-4.4/patches/gcc-4.4.7.illumos.patch index 1f65f42..e17b58f 100644 --- a/gcc-4.4/patches/gcc-4.4.7.illumos.patch +++ b/gcc-4.4/patches/gcc-4.4.7.illumos.patch @@ -1,6 +1,6 @@ -diff -dubr orig/fixincludes/fixincl.x source/fixincludes/fixincl.x ---- orig/fixincludes/fixincl.x 2010-12-13 21:22:09.000000000 +0300 -+++ source/fixincludes/fixincl.x 2013-01-30 15:54:16.862369245 +0400 +diff -dubr gcc-4.4.7/fixincludes/fixincl.x gcc-4.4.7.illumos/fixincludes/fixincl.x +--- gcc-4.4.7/fixincludes/fixincl.x 2010-12-13 21:22:09.000000000 +0300 ++++ gcc-4.4.7.illumos/fixincludes/fixincl.x 2012-09-27 21:10:47.000000000 +0400 @@ -6420,10 +6420,22 @@ */ tSCC zSun_Auth_ProtoBypass0[] = @@ -25,9 +25,10 @@ diff -dubr orig/fixincludes/fixincl.x source/fixincludes/fixincl.x { TT_EGREP, zSun_Auth_ProtoSelect0, (regex_t*)NULL }, }; /* -diff -dubr orig/fixincludes/inclhack.def source/fixincludes/inclhack.def ---- orig/fixincludes/inclhack.def 2010-12-13 21:22:09.000000000 +0300 -+++ source/fixincludes/inclhack.def 2013-01-30 15:54:16.868839459 +0400 +Только в gcc-4.4.7.illumos/fixincludes: fixincl.x.orig +diff -dubr gcc-4.4.7/fixincludes/inclhack.def gcc-4.4.7.illumos/fixincludes/inclhack.def +--- gcc-4.4.7/fixincludes/inclhack.def 2010-12-13 21:22:09.000000000 +0300 ++++ gcc-4.4.7.illumos/fixincludes/inclhack.def 2012-09-27 21:10:47.000000000 +0400 @@ -3459,6 +3459,21 @@ */ select = '\(\*[a-z][a-z_]*\)\(\)'; @@ -50,23 +51,11 @@ diff -dubr orig/fixincludes/inclhack.def source/fixincludes/inclhack.def c_fix = format; c_fix_arg = "#ifdef __cplusplus\n%1(...);%2\n" "#else\n%1();%2\n#endif"; -diff -dubr orig/gcc/common.opt source/gcc/common.opt ---- orig/gcc/common.opt 2009-03-28 20:28:45.000000000 +0300 -+++ source/gcc/common.opt 2013-01-30 16:01:35.033232511 +0400 -@@ -1108,6 +1108,10 @@ - Common Report Var(flag_strict_aliasing) Optimization - Assume strict aliasing rules apply - -+fstrict-calling-conventions -+Common Report Var(flag_strict_calling_conventions) Init(1) -+Use strict ABI calling conventions even for static functions -+ - fstrict-overflow - Common Report Var(flag_strict_overflow) - Treat signed overflow as undefined -diff -dubr orig/gcc/config/i386/i386.c source/gcc/config/i386/i386.c ---- orig/gcc/config/i386/i386.c 2012-02-22 23:47:42.000000000 +0400 -+++ source/gcc/config/i386/i386.c 2013-01-30 16:01:35.059836672 +0400 +Только в gcc-4.4.7.illumos/fixincludes: inclhack.def.orig +Только в gcc-4.4.7.illumos/gcc: ChangeLog.orig +diff -dubr gcc-4.4.7/gcc/config/i386/i386.c gcc-4.4.7.illumos/gcc/config/i386/i386.c +--- gcc-4.4.7/gcc/config/i386/i386.c 2012-02-22 23:47:42.000000000 +0400 ++++ gcc-4.4.7.illumos/gcc/config/i386/i386.c 2012-09-27 21:10:47.000000000 +0400 @@ -1654,10 +1654,14 @@ saved frame pointer if frame_pointer_needed @@ -130,25 +119,7 @@ diff -dubr orig/gcc/config/i386/i386.c source/gcc/config/i386/i386.c /* Validate -mpreferred-stack-boundary= value or default it to PREFERRED_STACK_BOUNDARY_DEFAULT. */ ix86_preferred_stack_boundary = PREFERRED_STACK_BOUNDARY_DEFAULT; -@@ -4387,6 +4401,7 @@ - if (decl - && TREE_CODE (decl) == FUNCTION_DECL - && optimize -+ && (TARGET_64BIT || !flag_strict_calling_conventions) - && !profile_flag) - { - /* FIXME: remove this CONST_CAST when cgraph.[ch] is constified. */ -@@ -4471,7 +4486,8 @@ - - /* For local functions, pass up to SSE_REGPARM_MAX SFmode - (and DFmode for SSE2) arguments in SSE registers. */ -- if (decl && TARGET_SSE_MATH && optimize && !profile_flag) -+ if (decl && TARGET_SSE_MATH && optimize && !profile_flag && -+ (TARGET_64BIT || !flag_strict_calling_conventions)) - { - /* FIXME: remove this CONST_CAST when cgraph.[ch] is constified. */ - struct cgraph_local_info *i = cgraph_local_info (CONST_CAST_TREE(decl)); -@@ -7375,8 +7391,8 @@ +@@ -7375,8 +7389,8 @@ return 0; ix86_compute_frame_layout (&frame); @@ -159,7 +130,7 @@ diff -dubr orig/gcc/config/i386/i386.c source/gcc/config/i386/i386.c } /* Value should be nonzero if functions must have frame pointers. -@@ -7396,6 +7412,9 @@ +@@ -7396,6 +7410,9 @@ if (SUBTARGET_FRAME_POINTER_REQUIRED) return 1; @@ -169,7 +140,7 @@ diff -dubr orig/gcc/config/i386/i386.c source/gcc/config/i386/i386.c /* In override_options, TARGET_OMIT_LEAF_FRAME_POINTER turns off the frame pointer by default. Turn it back on now if we've not got a leaf function. */ -@@ -7761,6 +7780,7 @@ +@@ -7761,6 +7778,7 @@ frame->nregs = ix86_nsaved_regs (); frame->nsseregs = ix86_nsaved_sseregs (); @@ -177,7 +148,7 @@ diff -dubr orig/gcc/config/i386/i386.c source/gcc/config/i386/i386.c total_size = size; stack_alignment_needed = crtl->stack_alignment_needed / BITS_PER_UNIT; -@@ -7816,6 +7836,11 @@ +@@ -7816,6 +7834,11 @@ else frame->save_regs_using_mov = false; @@ -189,7 +160,7 @@ diff -dubr orig/gcc/config/i386/i386.c source/gcc/config/i386/i386.c /* Skip return address and saved base pointer. */ offset = frame_pointer_needed ? UNITS_PER_WORD * 2 : UNITS_PER_WORD; -@@ -7827,17 +7852,27 @@ +@@ -7827,17 +7850,27 @@ if (stack_realign_fp) offset = (offset + stack_alignment_needed -1) & -stack_alignment_needed; @@ -220,7 +191,7 @@ diff -dubr orig/gcc/config/i386/i386.c source/gcc/config/i386/i386.c /* Va-arg area */ frame->va_arg_size = ix86_varargs_gpr_size + ix86_varargs_fpr_size; -@@ -7888,8 +7923,10 @@ +@@ -7888,8 +7921,10 @@ (size + frame->padding1 + frame->padding2 + frame->outgoing_arguments_size + frame->va_arg_size); @@ -233,7 +204,7 @@ diff -dubr orig/gcc/config/i386/i386.c source/gcc/config/i386/i386.c frame->save_regs_using_mov = false; if (!TARGET_64BIT_MS_ABI && TARGET_RED_ZONE -@@ -7899,7 +7936,11 @@ +@@ -7899,7 +7934,11 @@ { frame->red_zone_size = frame->to_allocate; if (frame->save_regs_using_mov) @@ -246,7 +217,7 @@ diff -dubr orig/gcc/config/i386/i386.c source/gcc/config/i386/i386.c if (frame->red_zone_size > RED_ZONE_SIZE - RED_ZONE_RESERVE) frame->red_zone_size = RED_ZONE_SIZE - RED_ZONE_RESERVE; } -@@ -7912,7 +7953,9 @@ +@@ -7912,7 +7951,9 @@ fprintf (stderr, "size: %ld\n", (long)size); fprintf (stderr, "nregs: %ld\n", (long)frame->nregs); fprintf (stderr, "nsseregs: %ld\n", (long)frame->nsseregs); @@ -256,7 +227,7 @@ diff -dubr orig/gcc/config/i386/i386.c source/gcc/config/i386/i386.c fprintf (stderr, "alignment1: %ld\n", (long)stack_alignment_needed); fprintf (stderr, "padding1: %ld\n", (long)frame->padding1); fprintf (stderr, "va_arg: %ld\n", (long)frame->va_arg_size); -@@ -7929,6 +7972,7 @@ +@@ -7929,6 +7970,7 @@ #endif } @@ -264,7 +235,7 @@ diff -dubr orig/gcc/config/i386/i386.c source/gcc/config/i386/i386.c /* Emit code to save registers in the prologue. */ static void -@@ -7937,6 +7981,22 @@ +@@ -7937,6 +7979,22 @@ unsigned int regno; rtx insn; @@ -287,7 +258,7 @@ diff -dubr orig/gcc/config/i386/i386.c source/gcc/config/i386/i386.c for (regno = FIRST_PSEUDO_REGISTER - 1; regno-- > 0; ) if (!SSE_REGNO_P (regno) && ix86_save_reg (regno, true)) { -@@ -7962,6 +8022,24 @@ +@@ -7962,6 +8020,24 @@ RTX_FRAME_RELATED_P (insn) = 1; offset += UNITS_PER_WORD; } @@ -312,7 +283,7 @@ diff -dubr orig/gcc/config/i386/i386.c source/gcc/config/i386/i386.c } /* Emit code to save registers using MOV insns. First register -@@ -8288,12 +8366,13 @@ +@@ -8288,12 +8364,13 @@ RTX_FRAME_RELATED_P (insn) = 1; } @@ -328,7 +299,7 @@ diff -dubr orig/gcc/config/i386/i386.c source/gcc/config/i386/i386.c /* When using red zone we may start register saving before allocating the stack frame saving one cycle of the prologue. However I will -@@ -8306,7 +8385,8 @@ +@@ -8306,7 +8383,8 @@ && !crtl->stack_realign_needed) ? hard_frame_pointer_rtx : stack_pointer_rtx, @@ -338,7 +309,7 @@ diff -dubr orig/gcc/config/i386/i386.c source/gcc/config/i386/i386.c if (allocate == 0) ; -@@ -8360,16 +8440,20 @@ +@@ -8360,16 +8438,20 @@ && !(!TARGET_64BIT_MS_ABI && TARGET_RED_ZONE && (! TARGET_STACK_PROBE || allocate < CHECK_STACK_LIMIT))) { @@ -364,7 +335,7 @@ diff -dubr orig/gcc/config/i386/i386.c source/gcc/config/i386/i386.c if (!frame_pointer_needed || !(frame.to_allocate + frame.padding0) || crtl->stack_realign_needed) -@@ -8379,7 +8463,7 @@ +@@ -8379,7 +8461,7 @@ ix86_emit_save_sse_regs_using_mov (hard_frame_pointer_rtx, - frame.nregs * UNITS_PER_WORD - frame.nsseregs * 16 @@ -373,7 +344,7 @@ diff -dubr orig/gcc/config/i386/i386.c source/gcc/config/i386/i386.c pic_reg_used = false; if (pic_offset_table_rtx -@@ -8538,11 +8622,11 @@ +@@ -8538,11 +8620,11 @@ must be taken for the normal return case of a function using eh_return: the eax and edx registers are marked as saved, but not restored along this path. */ @@ -387,7 +358,7 @@ diff -dubr orig/gcc/config/i386/i386.c source/gcc/config/i386/i386.c /* If we're only restoring one register and sp is not valid then using a move instruction to restore the register since it's -@@ -8584,7 +8668,7 @@ +@@ -8584,7 +8666,7 @@ ix86_emit_restore_regs_using_mov (stack_pointer_rtx, frame.to_allocate + frame.nsseregs * 16 @@ -396,7 +367,7 @@ diff -dubr orig/gcc/config/i386/i386.c source/gcc/config/i386/i386.c } else { -@@ -8593,7 +8677,7 @@ +@@ -8593,7 +8675,7 @@ ix86_emit_restore_regs_using_mov (hard_frame_pointer_rtx, offset + frame.nsseregs * 16 @@ -405,7 +376,7 @@ diff -dubr orig/gcc/config/i386/i386.c source/gcc/config/i386/i386.c } /* eh_return epilogues need %ecx added to the stack pointer. */ -@@ -8620,18 +8704,20 @@ +@@ -8620,18 +8702,20 @@ { tmp = gen_rtx_PLUS (Pmode, stack_pointer_rtx, sa); tmp = plus_constant (tmp, (frame.to_allocate @@ -430,7 +401,7 @@ diff -dubr orig/gcc/config/i386/i386.c source/gcc/config/i386/i386.c style); /* If not an i386, mov & pop is faster than "leave". */ else if (TARGET_USE_LEAVE || optimize_function_for_size_p (cfun) -@@ -8676,12 +8762,17 @@ +@@ -8676,12 +8760,17 @@ pro_epilogue_adjust_stack (stack_pointer_rtx, stack_pointer_rtx, GEN_INT (frame.to_allocate + frame.nsseregs * 16 @@ -449,7 +420,7 @@ diff -dubr orig/gcc/config/i386/i386.c source/gcc/config/i386/i386.c if (frame_pointer_needed) { /* Leave results in shorter dependency chains on CPUs that are -@@ -9110,10 +9201,21 @@ +@@ -9110,10 +9199,21 @@ return CONSTANT_P (x) && legitimate_address_p (Pmode, x, 1); } @@ -472,10 +443,10 @@ diff -dubr orig/gcc/config/i386/i386.c source/gcc/config/i386/i386.c bool legitimate_pic_operand_p (rtx x) { -Only in source/gcc/config/i386: i386.c.orig -diff -dubr orig/gcc/config/i386/i386.opt source/gcc/config/i386/i386.opt ---- orig/gcc/config/i386/i386.opt 2009-02-20 18:20:38.000000000 +0300 -+++ source/gcc/config/i386/i386.opt 2013-01-30 15:54:17.053239970 +0400 +Только в gcc-4.4.7.illumos/gcc/config/i386: i386.c.orig +diff -dubr gcc-4.4.7/gcc/config/i386/i386.opt gcc-4.4.7.illumos/gcc/config/i386/i386.opt +--- gcc-4.4.7/gcc/config/i386/i386.opt 2009-02-20 18:20:38.000000000 +0300 ++++ gcc-4.4.7.illumos/gcc/config/i386/i386.opt 2012-09-27 21:10:47.000000000 +0400 @@ -224,6 +224,10 @@ Target Report Mask(TLS_DIRECT_SEG_REFS) Use direct references against %gs when accessing tls data @@ -487,9 +458,9 @@ diff -dubr orig/gcc/config/i386/i386.opt source/gcc/config/i386/i386.opt mtune= Target RejectNegative Joined Var(ix86_tune_string) Schedule code for given CPU -diff -dubr orig/gcc/config/i386/sol2-10.h source/gcc/config/i386/sol2-10.h ---- orig/gcc/config/i386/sol2-10.h 2010-07-15 14:08:56.000000000 +0400 -+++ source/gcc/config/i386/sol2-10.h 2013-01-30 15:54:17.058045558 +0400 +diff -dubr gcc-4.4.7/gcc/config/i386/sol2-10.h gcc-4.4.7.illumos/gcc/config/i386/sol2-10.h +--- gcc-4.4.7/gcc/config/i386/sol2-10.h 2010-07-15 14:08:56.000000000 +0400 ++++ gcc-4.4.7.illumos/gcc/config/i386/sol2-10.h 2012-09-27 21:10:47.000000000 +0400 @@ -94,7 +94,7 @@ %{R*} \ %{compat-bsd: \ @@ -499,9 +470,9 @@ diff -dubr orig/gcc/config/i386/sol2-10.h source/gcc/config/i386/sol2-10.h -R /usr/ucblib/64} \ %{!compat-bsd: \ %{!YP,*:%{p|pg:-Y P,/usr/lib/libp/64:/lib/64:/usr/lib/64} \ -diff -dubr orig/gcc/config/sol2-c.c source/gcc/config/sol2-c.c ---- orig/gcc/config/sol2-c.c 2007-09-18 02:07:46.000000000 +0400 -+++ source/gcc/config/sol2-c.c 2013-01-30 15:54:17.084717399 +0400 +diff -dubr gcc-4.4.7/gcc/config/sol2-c.c gcc-4.4.7.illumos/gcc/config/sol2-c.c +--- gcc-4.4.7/gcc/config/sol2-c.c 2007-09-18 02:07:46.000000000 +0400 ++++ gcc-4.4.7.illumos/gcc/config/sol2-c.c 2012-09-27 21:10:47.000000000 +0400 @@ -114,8 +114,9 @@ { tree decl = identifier_global_value (t); @@ -514,9 +485,9 @@ diff -dubr orig/gcc/config/sol2-c.c source/gcc/config/sol2-c.c else solaris_pending_aligns = tree_cons (t, build_tree_list (NULL, x), solaris_pending_aligns); -diff -dubr orig/gcc/config/sol2.h source/gcc/config/sol2.h ---- orig/gcc/config/sol2.h 2010-06-02 21:51:29.000000000 +0400 -+++ source/gcc/config/sol2.h 2013-01-30 15:54:17.086673707 +0400 +diff -dubr gcc-4.4.7/gcc/config/sol2.h gcc-4.4.7.illumos/gcc/config/sol2.h +--- gcc-4.4.7/gcc/config/sol2.h 2010-06-02 21:51:29.000000000 +0400 ++++ gcc-4.4.7.illumos/gcc/config/sol2.h 2012-09-27 21:10:47.000000000 +0400 @@ -123,12 +123,12 @@ %{YP,*} \ %{R*} \ @@ -534,9 +505,9 @@ diff -dubr orig/gcc/config/sol2.h source/gcc/config/sol2.h #undef LINK_ARCH32_SPEC #define LINK_ARCH32_SPEC LINK_ARCH32_SPEC_BASE -diff -dubr orig/gcc/config/sparc/sol2-bi.h source/gcc/config/sparc/sol2-bi.h ---- orig/gcc/config/sparc/sol2-bi.h 2007-10-19 08:29:38.000000000 +0400 -+++ source/gcc/config/sparc/sol2-bi.h 2013-01-30 15:54:17.100479017 +0400 +diff -dubr gcc-4.4.7/gcc/config/sparc/sol2-bi.h gcc-4.4.7.illumos/gcc/config/sparc/sol2-bi.h +--- gcc-4.4.7/gcc/config/sparc/sol2-bi.h 2007-10-19 08:29:38.000000000 +0400 ++++ gcc-4.4.7.illumos/gcc/config/sparc/sol2-bi.h 2012-09-27 21:10:47.000000000 +0400 @@ -172,12 +172,12 @@ %{YP,*} \ %{R*} \ @@ -554,9 +525,9 @@ diff -dubr orig/gcc/config/sparc/sol2-bi.h source/gcc/config/sparc/sol2-bi.h #define LINK_ARCH64_SPEC LINK_ARCH64_SPEC_BASE -diff -dubr orig/gcc/config/sparc/sparc.c source/gcc/config/sparc/sparc.c ---- orig/gcc/config/sparc/sparc.c 2011-06-06 03:20:56.000000000 +0400 -+++ source/gcc/config/sparc/sparc.c 2013-01-30 15:54:17.157423107 +0400 +diff -dubr gcc-4.4.7/gcc/config/sparc/sparc.c gcc-4.4.7.illumos/gcc/config/sparc/sparc.c +--- gcc-4.4.7/gcc/config/sparc/sparc.c 2011-06-06 03:20:56.000000000 +0400 ++++ gcc-4.4.7.illumos/gcc/config/sparc/sparc.c 2012-09-27 21:10:47.000000000 +0400 @@ -2984,6 +2984,9 @@ if (TARGET_ARCH32 && !optimize && (mode == DFmode || mode == DImode)) @@ -577,18 +548,19 @@ diff -dubr orig/gcc/config/sparc/sparc.c source/gcc/config/sparc/sparc.c && mem_min_alignment (mem, 8)) return 0; -diff -dubr orig/gcc/config/sparc/sparc.h source/gcc/config/sparc/sparc.h ---- orig/gcc/config/sparc/sparc.h 2011-05-22 02:05:52.000000000 +0400 -+++ source/gcc/config/sparc/sparc.h 2013-01-30 15:54:17.169212875 +0400 +Только в gcc-4.4.7.illumos/gcc/config/sparc: sparc.c.orig +diff -dubr gcc-4.4.7/gcc/config/sparc/sparc.h gcc-4.4.7.illumos/gcc/config/sparc/sparc.h +--- gcc-4.4.7/gcc/config/sparc/sparc.h 2011-05-22 02:05:52.000000000 +0400 ++++ gcc-4.4.7.illumos/gcc/config/sparc/sparc.h 2012-09-27 21:10:47.000000000 +0400 @@ -2402,3 +2402,5 @@ /* We use gcc _mcount for profiling. */ #define NO_PROFILE_COUNTERS 0 + +#define ASSUME_32BIT_CALLERS sparc_assume_32bit_callers -diff -dubr orig/gcc/config/sparc/sparc.md source/gcc/config/sparc/sparc.md ---- orig/gcc/config/sparc/sparc.md 2011-06-09 23:51:17.000000000 +0400 -+++ source/gcc/config/sparc/sparc.md 2013-01-30 15:54:17.183928516 +0400 +diff -dubr gcc-4.4.7/gcc/config/sparc/sparc.md gcc-4.4.7.illumos/gcc/config/sparc/sparc.md +--- gcc-4.4.7/gcc/config/sparc/sparc.md 2011-06-09 23:51:17.000000000 +0400 ++++ gcc-4.4.7.illumos/gcc/config/sparc/sparc.md 2012-09-27 21:10:47.000000000 +0400 @@ -1959,7 +1959,7 @@ "=o,T,U,o,r,r,r,?T,?f,?f,?o,?f") (match_operand:DI 1 "input_operand" @@ -770,9 +742,10 @@ diff -dubr orig/gcc/config/sparc/sparc.md source/gcc/config/sparc/sparc.md && mems_ok_for_ldd_peep (operands[2], operands[0], NULL_RTX)" [(set (match_dup 2) (match_dup 3))] -diff -dubr orig/gcc/config/sparc/sparc.opt source/gcc/config/sparc/sparc.opt ---- orig/gcc/config/sparc/sparc.opt 2007-08-02 14:49:31.000000000 +0400 -+++ source/gcc/config/sparc/sparc.opt 2013-01-30 15:54:17.186554687 +0400 +Только в gcc-4.4.7.illumos/gcc/config/sparc: sparc.md.orig +diff -dubr gcc-4.4.7/gcc/config/sparc/sparc.opt gcc-4.4.7.illumos/gcc/config/sparc/sparc.opt +--- gcc-4.4.7/gcc/config/sparc/sparc.opt 2007-08-02 14:49:31.000000000 +0400 ++++ gcc-4.4.7.illumos/gcc/config/sparc/sparc.opt 2012-09-27 21:10:47.000000000 +0400 @@ -38,6 +38,10 @@ Target Report Pass -assert pure-text to linker @@ -795,9 +768,9 @@ diff -dubr orig/gcc/config/sparc/sparc.opt source/gcc/config/sparc/sparc.opt Mask(LITTLE_ENDIAN) ;; Generate code for little-endian -diff -dubr orig/gcc/config.gcc source/gcc/config.gcc ---- orig/gcc/config.gcc 2011-02-19 00:39:51.000000000 +0300 -+++ source/gcc/config.gcc 2013-01-30 15:54:17.210323665 +0400 +diff -dubr gcc-4.4.7/gcc/config.gcc gcc-4.4.7.illumos/gcc/config.gcc +--- gcc-4.4.7/gcc/config.gcc 2011-02-19 00:39:51.000000000 +0300 ++++ gcc-4.4.7.illumos/gcc/config.gcc 2012-09-27 21:10:47.000000000 +0400 @@ -1237,6 +1237,8 @@ "":*:yes | yes:*:yes ) thread_file=solaris @@ -807,9 +780,10 @@ diff -dubr orig/gcc/config.gcc source/gcc/config.gcc esac ;; i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae) -diff -dubr orig/gcc/cp/g++spec.c source/gcc/cp/g++spec.c ---- orig/gcc/cp/g++spec.c 2009-02-20 18:20:38.000000000 +0300 -+++ source/gcc/cp/g++spec.c 2013-01-30 15:54:17.234616940 +0400 +Только в gcc-4.4.7.illumos/gcc: config.gcc.orig +diff -dubr gcc-4.4.7/gcc/cp/g++spec.c gcc-4.4.7.illumos/gcc/cp/g++spec.c +--- gcc-4.4.7/gcc/cp/g++spec.c 2009-02-20 18:20:38.000000000 +0300 ++++ gcc-4.4.7.illumos/gcc/cp/g++spec.c 2012-09-27 21:10:52.000000000 +0400 @@ -260,7 +260,7 @@ #endif @@ -819,9 +793,9 @@ diff -dubr orig/gcc/cp/g++spec.c source/gcc/cp/g++spec.c arglist = XNEWVEC (const char *, num_args); i = 0; -diff -dubr orig/gcc/cp/Make-lang.in source/gcc/cp/Make-lang.in ---- orig/gcc/cp/Make-lang.in 2009-09-09 12:46:32.000000000 +0400 -+++ source/gcc/cp/Make-lang.in 2013-01-30 15:54:17.246253599 +0400 +diff -dubr gcc-4.4.7/gcc/cp/Make-lang.in gcc-4.4.7.illumos/gcc/cp/Make-lang.in +--- gcc-4.4.7/gcc/cp/Make-lang.in 2009-09-09 12:46:32.000000000 +0400 ++++ gcc-4.4.7.illumos/gcc/cp/Make-lang.in 2012-09-27 21:10:52.000000000 +0400 @@ -55,7 +55,7 @@ g++spec.o: $(srcdir)/cp/g++spec.c $(SYSTEM_H) coretypes.h $(TM_H) $(GCC_H) $(CONFIG_H) (SHLIB_LINK='$(SHLIB_LINK)'; \ @@ -831,9 +805,9 @@ diff -dubr orig/gcc/cp/Make-lang.in source/gcc/cp/Make-lang.in # Create the compiler driver for g++. GXX_OBJS = $(GCC_OBJS) g++spec.o intl.o prefix.o version.o -diff -dubr orig/gcc/doc/cpp.texi source/gcc/doc/cpp.texi ---- orig/gcc/doc/cpp.texi 2008-08-05 21:24:37.000000000 +0400 -+++ source/gcc/doc/cpp.texi 2013-01-30 15:54:17.278229678 +0400 +diff -dubr gcc-4.4.7/gcc/doc/cpp.texi gcc-4.4.7.illumos/gcc/doc/cpp.texi +--- gcc-4.4.7/gcc/doc/cpp.texi 2008-08-05 21:24:37.000000000 +0400 ++++ gcc-4.4.7.illumos/gcc/doc/cpp.texi 2012-09-27 21:10:52.000000000 +0400 @@ -3508,8 +3508,6 @@ official GNU extensions either. What historical information we have been able to find, suggests they originated with System V@. @@ -843,9 +817,9 @@ diff -dubr orig/gcc/doc/cpp.texi source/gcc/doc/cpp.texi @cindex null directive The @dfn{null directive} consists of a @samp{#} followed by a newline, with only whitespace (including comments) in between. A null directive -diff -dubr orig/gcc/doc/invoke.texi source/gcc/doc/invoke.texi ---- orig/gcc/doc/invoke.texi 2011-03-24 01:02:12.000000000 +0300 -+++ source/gcc/doc/invoke.texi 2013-01-30 16:01:35.077478020 +0400 +diff -dubr gcc-4.4.7/gcc/doc/invoke.texi gcc-4.4.7.illumos/gcc/doc/invoke.texi +--- gcc-4.4.7/gcc/doc/invoke.texi 2011-03-24 01:02:12.000000000 +0300 ++++ gcc-4.4.7.illumos/gcc/doc/invoke.texi 2012-09-27 21:10:52.000000000 +0400 @@ -793,7 +793,8 @@ -mfaster-structs -mno-faster-structs @gol -mfpu -mno-fpu -mhard-float -msoft-float @gol @@ -856,20 +830,7 @@ diff -dubr orig/gcc/doc/invoke.texi source/gcc/doc/invoke.texi -mstack-bias -mno-stack-bias @gol -munaligned-doubles -mno-unaligned-doubles @gol -mv8plus -mno-v8plus -mvis -mno-vis -@@ -6586,6 +6587,12 @@ - The @option{-fstrict-aliasing} option is enabled at levels - @option{-O2}, @option{-O3}, @option{-Os}. - -+@item -fstrict-calling-conventions -+@opindex fstrict-calling-conventions -+Use strict ABI calling conventions even with local functions. -+This disable certain optimizations that may cause GCC to call local -+functions in a manner other than that described by the ABI. -+ - @item -fstrict-overflow - @opindex fstrict-overflow - Allow the compiler to assume strict signed overflow rules, depending -@@ -11549,6 +11556,10 @@ +@@ -11549,6 +11550,10 @@ @opindex mcmodel=large Generate code for the large model: This model makes no assumptions about addresses and sizes of sections. @@ -880,7 +841,7 @@ diff -dubr orig/gcc/doc/invoke.texi source/gcc/doc/invoke.texi @end table @node i386 and x86-64 Windows Options -@@ -15178,6 +15189,23 @@ +@@ -15178,6 +15183,23 @@ @opindex mno-vis With @option{-mvis}, GCC generates code that takes advantage of the UltraSPARC Visual Instruction Set extensions. The default is @option{-mno-vis}. @@ -904,10 +865,10 @@ diff -dubr orig/gcc/doc/invoke.texi source/gcc/doc/invoke.texi @end table These @samp{-m} options are supported in addition to the above -Only in source/gcc/doc: invoke.texi.orig -diff -dubr orig/gcc/dwarf2.h source/gcc/dwarf2.h ---- orig/gcc/dwarf2.h 2009-04-10 03:23:07.000000000 +0400 -+++ source/gcc/dwarf2.h 2013-01-30 15:54:17.334481906 +0400 +Только в gcc-4.4.7.illumos/gcc/doc: invoke.texi.orig +diff -dubr gcc-4.4.7/gcc/dwarf2.h gcc-4.4.7.illumos/gcc/dwarf2.h +--- gcc-4.4.7/gcc/dwarf2.h 2009-04-10 03:23:07.000000000 +0400 ++++ gcc-4.4.7.illumos/gcc/dwarf2.h 2012-09-27 21:10:52.000000000 +0400 @@ -377,6 +377,8 @@ DW_AT_GNU_vector = 0x2107, /* VMS extensions. */ @@ -917,9 +878,9 @@ diff -dubr orig/gcc/dwarf2.h source/gcc/dwarf2.h /* UPC extension. */ DW_AT_upc_threads_scaled = 0x3210, /* PGI (STMicroelectronics) extensions. */ -diff -dubr orig/gcc/dwarf2out.c source/gcc/dwarf2out.c ---- orig/gcc/dwarf2out.c 2011-04-08 01:27:59.000000000 +0400 -+++ source/gcc/dwarf2out.c 2013-01-30 15:54:17.372644177 +0400 +diff -dubr gcc-4.4.7/gcc/dwarf2out.c gcc-4.4.7.illumos/gcc/dwarf2out.c +--- gcc-4.4.7/gcc/dwarf2out.c 2011-04-08 01:27:59.000000000 +0400 ++++ gcc-4.4.7.illumos/gcc/dwarf2out.c 2012-09-27 21:10:53.000000000 +0400 @@ -9362,10 +9362,6 @@ base_type_result = new_die (DW_TAG_base_type, comp_unit_die, type); @@ -984,9 +945,9 @@ diff -dubr orig/gcc/dwarf2out.c source/gcc/dwarf2out.c at_import_die = force_type_die (TREE_TYPE (decl)); /* For namespace N { typedef void T; } using N::T; base_type_die returns NULL, but DW_TAG_imported_declaration requires -diff -dubr orig/gcc/expr.c source/gcc/expr.c ---- orig/gcc/expr.c 2011-07-21 13:39:16.000000000 +0400 -+++ source/gcc/expr.c 2013-01-30 15:54:17.407674851 +0400 +diff -dubr gcc-4.4.7/gcc/expr.c gcc-4.4.7.illumos/gcc/expr.c +--- gcc-4.4.7/gcc/expr.c 2011-07-21 13:39:16.000000000 +0400 ++++ gcc-4.4.7.illumos/gcc/expr.c 2012-09-27 21:10:53.000000000 +0400 @@ -79,6 +79,10 @@ #endif #endif @@ -1008,9 +969,10 @@ diff -dubr orig/gcc/expr.c source/gcc/expr.c gcc_assert (GET_MODE (decl_rtl) == pmode); temp = gen_lowpart_SUBREG (mode, decl_rtl); -diff -dubr orig/gcc/function.c source/gcc/function.c ---- orig/gcc/function.c 2010-08-17 00:24:54.000000000 +0400 -+++ source/gcc/function.c 2013-01-30 15:54:17.436735886 +0400 +Только в gcc-4.4.7.illumos/gcc: expr.c.orig +diff -dubr gcc-4.4.7/gcc/function.c gcc-4.4.7.illumos/gcc/function.c +--- gcc-4.4.7/gcc/function.c 2010-08-17 00:24:54.000000000 +0400 ++++ gcc-4.4.7.illumos/gcc/function.c 2012-09-27 21:10:53.000000000 +0400 @@ -83,6 +83,10 @@ #define NAME__MAIN "__main" #endif @@ -1032,9 +994,10 @@ diff -dubr orig/gcc/function.c source/gcc/function.c parmreg = gen_reg_rtx (promoted_nominal_mode); -diff -dubr orig/gcc/Makefile.in source/gcc/Makefile.in ---- orig/gcc/Makefile.in 2010-09-07 15:07:31.000000000 +0400 -+++ source/gcc/Makefile.in 2013-01-30 15:54:17.524137235 +0400 +Только в gcc-4.4.7.illumos/gcc: function.c.orig +diff -dubr gcc-4.4.7/gcc/Makefile.in gcc-4.4.7.illumos/gcc/Makefile.in +--- gcc-4.4.7/gcc/Makefile.in 2010-09-07 15:07:31.000000000 +0400 ++++ gcc-4.4.7.illumos/gcc/Makefile.in 2012-09-27 21:10:53.000000000 +0400 @@ -4725,7 +4725,7 @@ # script does that. .po.gmo: @@ -1044,9 +1007,10 @@ diff -dubr orig/gcc/Makefile.in source/gcc/Makefile.in # The new .po has to be gone over by hand, so we deposit it into # build/po with a different extension. -diff -dubr orig/gcc/testsuite/gcc.dg/pragma-align-2.c source/gcc/testsuite/gcc.dg/pragma-align-2.c ---- orig/gcc/testsuite/gcc.dg/pragma-align-2.c 2008-09-23 13:42:50.000000000 +0400 -+++ source/gcc/testsuite/gcc.dg/pragma-align-2.c 2013-01-30 15:54:17.606682932 +0400 +Только в gcc-4.4.7.illumos/gcc/testsuite: ChangeLog.orig +diff -dubr gcc-4.4.7/gcc/testsuite/gcc.dg/pragma-align-2.c gcc-4.4.7.illumos/gcc/testsuite/gcc.dg/pragma-align-2.c +--- gcc-4.4.7/gcc/testsuite/gcc.dg/pragma-align-2.c 2008-09-23 13:42:50.000000000 +0400 ++++ gcc-4.4.7.illumos/gcc/testsuite/gcc.dg/pragma-align-2.c 2012-09-27 21:10:53.000000000 +0400 @@ -25,9 +25,9 @@ #pragma align bad_align /* { dg-warning "malformed" } */ #pragma align 1(bad_align /* { dg-warning "malformed" } */ @@ -1069,21 +1033,9 @@ diff -dubr orig/gcc/testsuite/gcc.dg/pragma-align-2.c source/gcc/testsuite/gcc.d if (__alignof__ (x32) < 32) abort (); -diff -dubr orig/gcc/testsuite/gcc.target/i386/local.c source/gcc/testsuite/gcc.target/i386/local.c ---- orig/gcc/testsuite/gcc.target/i386/local.c 2007-08-22 13:59:14.000000000 +0400 -+++ source/gcc/testsuite/gcc.target/i386/local.c 2013-01-30 16:01:35.080021106 +0400 -@@ -1,5 +1,6 @@ - /* { dg-do compile } */ --/* { dg-options "-O2 -funit-at-a-time" } */ -+/* { dg-options "-O2 -funit-at-a-time -fno-strict-calling-conventions" { target ilp32 } } */ -+/* { dg-options "-O2 -funit-at-a-time" { target lp64 } } */ - /* { dg-final { scan-assembler "magic\[^\\n\]*eax" { target ilp32 } } } */ - /* { dg-final { scan-assembler "magic\[^\\n\]*edi" { target lp64 } } } */ - -Only in source/gcc/testsuite/gcc.target/i386: strict-cc.c -diff -dubr orig/gcc/testsuite/lib/gcc-dg.exp source/gcc/testsuite/lib/gcc-dg.exp ---- orig/gcc/testsuite/lib/gcc-dg.exp 2009-04-22 15:35:25.000000000 +0400 -+++ source/gcc/testsuite/lib/gcc-dg.exp 2013-01-30 15:54:17.719981362 +0400 +diff -dubr gcc-4.4.7/gcc/testsuite/lib/gcc-dg.exp gcc-4.4.7.illumos/gcc/testsuite/lib/gcc-dg.exp +--- gcc-4.4.7/gcc/testsuite/lib/gcc-dg.exp 2009-04-22 15:35:25.000000000 +0400 ++++ gcc-4.4.7.illumos/gcc/testsuite/lib/gcc-dg.exp 2012-09-27 21:11:00.000000000 +0400 @@ -343,6 +343,37 @@ } } @@ -1122,9 +1074,9 @@ diff -dubr orig/gcc/testsuite/lib/gcc-dg.exp source/gcc/testsuite/lib/gcc-dg.exp # Prune any messages matching ARGS[1] (a regexp) from test output. proc dg-prune-output { args } { global additional_prunes -diff -dubr orig/gcc/varasm.c source/gcc/varasm.c ---- orig/gcc/varasm.c 2010-01-20 14:27:49.000000000 +0300 -+++ source/gcc/varasm.c 2013-01-30 15:54:17.771296966 +0400 +diff -dubr gcc-4.4.7/gcc/varasm.c gcc-4.4.7.illumos/gcc/varasm.c +--- gcc-4.4.7/gcc/varasm.c 2010-01-20 14:27:49.000000000 +0300 ++++ gcc-4.4.7.illumos/gcc/varasm.c 2012-09-27 21:11:00.000000000 +0400 @@ -5484,6 +5484,9 @@ #endif } @@ -1135,9 +1087,9 @@ diff -dubr orig/gcc/varasm.c source/gcc/varasm.c /* We must force creation of DECL_RTL for debug info generation, even though we don't use it here. */ make_decl_rtl (decl); -diff -dubr orig/intl/configure source/intl/configure ---- orig/intl/configure 2010-10-02 15:40:32.000000000 +0400 -+++ source/intl/configure 2013-01-30 15:54:17.811363052 +0400 +diff -dubr gcc-4.4.7/intl/configure gcc-4.4.7.illumos/intl/configure +--- gcc-4.4.7/intl/configure 2010-10-02 15:40:32.000000000 +0400 ++++ gcc-4.4.7.illumos/intl/configure 2012-09-27 21:11:00.000000000 +0400 @@ -1557,8 +1557,8 @@ test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do @@ -1160,9 +1112,10 @@ diff -dubr orig/intl/configure source/intl/configure : ; else GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'` -diff -dubr orig/libcpp/directives.c source/libcpp/directives.c ---- orig/libcpp/directives.c 2011-01-05 02:18:52.000000000 +0300 -+++ source/libcpp/directives.c 2013-01-30 15:54:17.856636764 +0400 +Только в gcc-4.4.7.illumos/libcpp: ChangeLog.orig +diff -dubr gcc-4.4.7/libcpp/directives.c gcc-4.4.7.illumos/libcpp/directives.c +--- gcc-4.4.7/libcpp/directives.c 2011-01-05 02:18:52.000000000 +0300 ++++ gcc-4.4.7.illumos/libcpp/directives.c 2012-09-27 21:11:00.000000000 +0400 @@ -152,11 +152,11 @@ D(pragma, T_PRAGMA, STDC89, IN_I) /* 195 */ \ D(warning, T_WARNING, EXTENSION, 0) /* 22 */ \ @@ -1177,9 +1130,9 @@ diff -dubr orig/libcpp/directives.c source/libcpp/directives.c /* #sccs is synonymous with #ident. */ #define do_sccs do_ident -diff -dubr orig/libstdc++-v3/acinclude.m4 source/libstdc++-v3/acinclude.m4 ---- orig/libstdc++-v3/acinclude.m4 2009-05-06 13:00:57.000000000 +0400 -+++ source/libstdc++-v3/acinclude.m4 2013-01-30 15:54:17.880129312 +0400 +diff -dubr gcc-4.4.7/libstdc++-v3/acinclude.m4 gcc-4.4.7.illumos/libstdc++-v3/acinclude.m4 +--- gcc-4.4.7/libstdc++-v3/acinclude.m4 2009-05-06 13:00:57.000000000 +0400 ++++ gcc-4.4.7.illumos/libstdc++-v3/acinclude.m4 2012-09-27 21:11:00.000000000 +0400 @@ -2444,7 +2444,11 @@ old_CXXFLAGS="$CXXFLAGS" @@ -1193,9 +1146,9 @@ diff -dubr orig/libstdc++-v3/acinclude.m4 source/libstdc++-v3/acinclude.m4 # Fake what AC_TRY_COMPILE does, without linking as this is # unnecessary for a builtins test. -diff -dubr orig/libstdc++-v3/configure source/libstdc++-v3/configure ---- orig/libstdc++-v3/configure 2009-08-26 23:04:11.000000000 +0400 -+++ source/libstdc++-v3/configure 2013-01-30 15:54:18.171278430 +0400 +diff -dubr gcc-4.4.7/libstdc++-v3/configure gcc-4.4.7.illumos/libstdc++-v3/configure +--- gcc-4.4.7/libstdc++-v3/configure 2009-08-26 23:04:11.000000000 +0400 ++++ gcc-4.4.7.illumos/libstdc++-v3/configure 2012-09-27 21:11:00.000000000 +0400 @@ -14758,7 +14758,11 @@ old_CXXFLAGS="$CXXFLAGS" @@ -1209,3 +1162,4 @@ diff -dubr orig/libstdc++-v3/configure source/libstdc++-v3/configure # Fake what AC_TRY_COMPILE does, without linking as this is # unnecessary for a builtins test. +Только в gcc-4.4.7.illumos/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char: 12.cc.orig -- cgit v1.2.3