rebuilt with fortran support for legacy libgfortran3 library [release 6.4.0-2mamba;Mon Apr 16 2018]

This commit is contained in:
Silvan Calarco 2024-01-05 22:38:13 +01:00
parent 12e4b80d96
commit e6a9b30300
24 changed files with 3489 additions and 0 deletions

View File

@ -1,2 +1,5 @@
# gcc6 # gcc6
A compiler aimed at integrating all the optimizations and features necessary for a high-performance and stable development environment.
This package is required for all other GCC compilers, namely C++, Fortran, Objective C and Java.

View File

@ -0,0 +1,299 @@
diff -Nru gcc-4.0.2.orig/libjava/java/awt/Window.java gcc-4.0.2/libjava/java/awt/Window.java
--- gcc-4.0.2.orig/libjava/java/awt/Window.java 2005-10-25 12:54:05.000000000 +0200
+++ gcc-4.0.2/libjava/java/awt/Window.java 2005-10-25 16:19:42.000000000 +0200
@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
@@ -45,6 +45,7 @@
import java.awt.event.WindowFocusListener;
import java.awt.event.WindowListener;
import java.awt.event.WindowStateListener;
+import java.awt.image.BufferStrategy;
import java.awt.peer.WindowPeer;
import java.lang.ref.Reference;
import java.lang.ref.WeakReference;
@@ -90,7 +91,8 @@
private transient boolean shown;
- private transient Component windowFocusOwner;
+ // This is package-private to avoid an accessor method.
+ transient Component windowFocusOwner;
/*
* The number used to generate the name returned by getName.
@@ -153,6 +155,9 @@
}
}
});
+
+ GraphicsEnvironment g = GraphicsEnvironment.getLocalGraphicsEnvironment();
+ graphicsConfiguration = g.getDefaultScreenDevice().getDefaultConfiguration();
}
Window(GraphicsConfiguration gc)
@@ -617,6 +622,8 @@
|| windowStateListener != null
|| (eventMask & AWTEvent.WINDOW_EVENT_MASK) != 0))
processEvent(e);
+ else if (e.id == ComponentEvent.COMPONENT_RESIZED)
+ validate ();
else
super.dispatchEventImpl(e);
}
@@ -739,7 +746,25 @@
if (activeWindow == this)
return manager.getFocusOwner ();
else
- return windowFocusOwner;
+ return null;
+ }
+
+ /**
+ * Returns the child component of this window that would receive
+ * focus if this window were to become focused. If the window
+ * already has the top-level focus, then this method returns the
+ * same component as getFocusOwner. If no child component has
+ * requested focus within the window, then the initial focus owner
+ * is returned. If this is a non-focusable window, this method
+ * returns null.
+ *
+ * @return the child component of this window that most recently had
+ * the focus, or <code>null</code>
+ * @since 1.4
+ */
+ public Component getMostRecentFocusOwner ()
+ {
+ return windowFocusOwner;
}
/**
@@ -771,12 +796,16 @@
/**
* Tests whether or not this window is visible on the screen.
*
+ * In contrast to the normal behaviour of Container, which is that
+ * a container is showing if its parent is visible and showing, a Window
+ * is even showing, if its parent (i.e. an invisible Frame) is not showing.
+ *
* @return <code>true</code> if this window is visible, <code>false</code>
* otherwise.
*/
public boolean isShowing()
{
- return super.isShowing();
+ return isVisible();
}
public void setLocationRelativeTo (Component c)
@@ -796,6 +825,157 @@
}
/**
+ * A BltBufferStrategy for windows.
+ */
+ private class WindowBltBufferStrategy extends BltBufferStrategy
+ {
+ /**
+ * Creates a block transfer strategy for this window.
+ *
+ * @param numBuffers the number of buffers in this strategy
+ * @param accelerated true if the buffer should be accelerated,
+ * false otherwise
+ */
+ WindowBltBufferStrategy(int numBuffers, boolean accelerated)
+ {
+ super(numBuffers,
+ new BufferCapabilities(new ImageCapabilities(accelerated),
+ new ImageCapabilities(accelerated),
+ BufferCapabilities.FlipContents.COPIED));
+ }
+ }
+
+ /**
+ * A FlipBufferStrategy for windows.
+ */
+ private class WindowFlipBufferStrategy extends FlipBufferStrategy
+ {
+ /**
+ * Creates a flip buffer strategy for this window.
+ *
+ * @param numBuffers the number of buffers in this strategy
+ *
+ * @throws AWTException if the requested number of buffers is not
+ * supported
+ */
+ WindowFlipBufferStrategy(int numBuffers)
+ throws AWTException
+ {
+ super(numBuffers,
+ new BufferCapabilities(new ImageCapabilities(true),
+ new ImageCapabilities(true),
+ BufferCapabilities.FlipContents.COPIED));
+ }
+ }
+
+ /**
+ * Creates a buffering strategy that manages how this window is
+ * repainted. This method attempts to create the optimum strategy
+ * based on the desired number of buffers. Hardware or software
+ * acceleration may be used.
+ *
+ * createBufferStrategy attempts different levels of optimization,
+ * but guarantees that some strategy with the requested number of
+ * buffers will be created even if it is not optimal. First it
+ * attempts to create a page flipping strategy, then an accelerated
+ * blitting strategy, then an unaccelerated blitting strategy.
+ *
+ * Calling this method causes any existing buffer strategy to be
+ * destroyed.
+ *
+ * @param numBuffers the number of buffers in this strategy
+ *
+ * @throws IllegalArgumentException if requested number of buffers
+ * is less than one
+ * @throws IllegalStateException if this window is not displayable
+ *
+ * @since 1.4
+ */
+ public void createBufferStrategy(int numBuffers)
+ {
+ if (numBuffers < 1)
+ throw new IllegalArgumentException("Window.createBufferStrategy: number"
+ + " of buffers is less than one");
+
+ if (!isDisplayable())
+ throw new IllegalStateException("Window.createBufferStrategy: window is"
+ + " not displayable");
+
+ BufferStrategy newStrategy = null;
+
+ // try a flipping strategy
+ try
+ {
+ newStrategy = new WindowFlipBufferStrategy(numBuffers);
+ }
+ catch (AWTException e)
+ {
+ }
+
+ // fall back to an accelerated blitting strategy
+ if (newStrategy == null)
+ newStrategy = new WindowBltBufferStrategy(numBuffers, true);
+
+ bufferStrategy = newStrategy;
+ }
+
+ /**
+ * Creates a buffering strategy that manages how this window is
+ * repainted. This method attempts to create a strategy based on
+ * the specified capabilities and throws an exception if the
+ * requested strategy is not supported.
+ *
+ * Calling this method causes any existing buffer strategy to be
+ * destroyed.
+ *
+ * @param numBuffers the number of buffers in this strategy
+ * @param caps the requested buffering capabilities
+ *
+ * @throws AWTException if the requested capabilities are not
+ * supported
+ * @throws IllegalArgumentException if requested number of buffers
+ * is less than one or if caps is null
+ *
+ * @since 1.4
+ */
+ public void createBufferStrategy(int numBuffers,
+ BufferCapabilities caps)
+ {
+ if (numBuffers < 1)
+ throw new IllegalArgumentException("Window.createBufferStrategy: number"
+ + " of buffers is less than one");
+
+ if (caps == null)
+ throw new IllegalArgumentException("Window.createBufferStrategy:"
+ + " capabilities object is null");
+
+ // a flipping strategy was requested
+ if (caps.isPageFlipping())
+ {
+ try
+ {
+ bufferStrategy = new WindowFlipBufferStrategy(numBuffers);
+ }
+ catch (AWTException e)
+ {
+ }
+ }
+ else
+ bufferStrategy = new WindowBltBufferStrategy(numBuffers, true);
+ }
+
+ /**
+ * Returns the buffer strategy used by the window.
+ *
+ * @return the buffer strategy.
+ * @since 1.4
+ */
+ public BufferStrategy getBufferStrategy()
+ {
+ return bufferStrategy;
+ }
+
+ /**
* @since 1.2
*
* @deprecated
@@ -913,44 +1093,6 @@
this.focusableWindowState = focusableWindowState;
}
- // setBoundsCallback is needed so that when a user moves a window,
- // the Window's location can be updated without calling the peer's
- // setBounds method. When a user moves a window the peer window's
- // location is updated automatically and the windowing system sends
- // a message back to the application informing it of its updated
- // dimensions. We must update the AWT Window class with these new
- // dimensions. But we don't want to call the peer's setBounds
- // method, because the peer's dimensions have already been updated.
- // (Under X, having this method prevents Configure event loops when
- // moving windows: Component.setBounds -> peer.setBounds ->
- // postConfigureEvent -> Component.setBounds -> ... In some cases
- // Configure event loops cause windows to jitter back and forth
- // continuously).
- void setBoundsCallback (int x, int y, int w, int h)
- {
- if (this.x == x && this.y == y && width == w && height == h)
- return;
- invalidate();
- boolean resized = width != w || height != h;
- boolean moved = this.x != x || this.y != y;
- this.x = x;
- this.y = y;
- width = w;
- height = h;
- if (resized && isShowing ())
- {
- ComponentEvent ce =
- new ComponentEvent(this, ComponentEvent.COMPONENT_RESIZED);
- getToolkit().getSystemEventQueue().postEvent(ce);
- }
- if (moved && isShowing ())
- {
- ComponentEvent ce =
- new ComponentEvent(this, ComponentEvent.COMPONENT_MOVED);
- getToolkit().getSystemEventQueue().postEvent(ce);
- }
- }
-
/**
* Generate a unique name for this window.
*

View File

@ -0,0 +1,57 @@
diff -Nru gcc-4.0.2.orig/gcc/c-decl.c gcc-4.0.2/gcc/c-decl.c
--- gcc-4.0.2.orig/gcc/c-decl.c 2005-11-14 10:43:28.000000000 +0100
+++ gcc-4.0.2/gcc/c-decl.c 2005-11-14 10:52:53.000000000 +0100
@@ -7527,6 +7527,7 @@
c_write_global_declarations_1 (tree globals)
{
tree decl;
+ bool reconsider;
/* Process the decls in the order they were written. */
for (decl = globals; decl; decl = TREE_CHAIN (decl))
@@ -7545,9 +7546,19 @@
}
wrapup_global_declaration_1 (decl);
- wrapup_global_declaration_2 (decl);
- check_global_declaration_1 (decl);
}
+
+ do
+ {
+ reconsider = false;
+ for (decl = globals; decl; decl = TREE_CHAIN (decl))
+ reconsider |= wrapup_global_declaration_2 (decl);
+ }
+ while (reconsider);
+
+ for (decl = globals; decl; decl = TREE_CHAIN (decl))
+ check_global_declaration_1 (decl);
+
}
/* A subroutine of c_write_global_declarations Emit debug information for each
diff -Nru gcc-4.0.2.orig/gcc/testsuite/gcc.c-torture/execute/20050929-1.c gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20050929-1.c
--- gcc-4.0.2.orig/gcc/testsuite/gcc.c-torture/execute/20050929-1.c 1970-01-01 01:00:00.000000000 +0100
+++ gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20050929-1.c 2005-11-14 10:53:43.000000000 +0100
@@ -0,0 +1,20 @@
+/* PR middle-end/24109 */
+
+extern void abort (void);
+
+struct A { int i; int j; };
+struct B { struct A *a; struct A *b; };
+struct C { struct B *c; struct A *d; };
+struct C e = { &(struct B) { &(struct A) { 1, 2 }, &(struct A) { 3, 4 } }, &(struct A) { 5, 6 } };
+
+int
+main (void)
+{
+ if (e.c->a->i != 1 || e.c->a->j != 2)
+ abort ();
+ if (e.c->b->i != 3 || e.c->b->j != 4)
+ abort ();
+ if (e.d->i != 5 || e.d->j != 6)
+ abort ();
+ return 0;
+}

25
gcc-4.0.2-zextract.patch Normal file
View File

@ -0,0 +1,25 @@
diff -Nru gcc-4.0.2.orig/gcc/java/zextract.c gcc-4.0.2/gcc/java/zextract.c
--- gcc-4.0.2.orig/gcc/java/zextract.c 2005-10-21 12:02:51.000000000 +0200
+++ gcc-4.0.2/gcc/java/zextract.c 2005-10-24 12:10:13.000000000 +0200
@@ -287,6 +287,21 @@
return -1;
if (read (zipf->fd, buffer, ECREC_SIZE+4) != ECREC_SIZE+4)
return -2;
+ if (buffer[0] != 'P' || strncmp ((const char *) &buffer[1], END_CENTRAL_SIG, 3)) {
+ /* We could not find the end-central-header signature, probably
+ because a zipfile comment is present. Scan backwards until we
+ find the signature. */
+ if (lseek (zipf->fd, (long)(-ECREC_SIZE), SEEK_END) <= 0)
+ return -2;
+ while (buffer[0] != 'P' || strncmp ((const char *) &buffer[1], END_CENTRAL_SIG, 3)) {
+ if (lseek (zipf->fd, -5, SEEK_CUR) < 0)
+ return -2;
+ if (read (zipf->fd, buffer, 4) != 4)
+ return -2;
+ }
+ if (read (zipf->fd, buffer + 4, ECREC_SIZE) != ECREC_SIZE)
+ return -2;
+ }
zipf->count = makeword((const uch *) &buffer[TOTAL_ENTRIES_CENTRAL_DIR]);
zipf->dir_size = makelong((const uch *) &buffer[SIZE_CENTRAL_DIRECTORY]);
#define ALLOC xmalloc

View File

@ -0,0 +1,50 @@
diff -Nru gcc-4.1.1.orig/gcc/config/arm/t-linux gcc-4.1.1/gcc/config/arm/t-linux
--- gcc-4.1.1.orig/gcc/config/arm/t-linux 2004-05-15 14:41:35.000000000 +0200
+++ gcc-4.1.1/gcc/config/arm/t-linux 2006-08-23 01:40:35.000000000 +0200
@@ -1,15 +1,37 @@
# Just for these, we omit the frame pointer since it makes such a big
-# difference. It is then pointless adding debugging.
-TARGET_LIBGCC2_CFLAGS = -fomit-frame-pointer -fPIC
-LIBGCC2_DEBUG_CFLAGS = -g0
+# difference. It is then pointless adding debugging.
+
+TARGET_LIBGCC2_CFLAGS = -fno-inline -fomit-frame-pointer -fPIC -Dinhibit_libc
+LIBGCC2_DEBUG_CFLAGS = -g0
+
+# Don't build enquire
+ENQUIRE=
LIB1ASMSRC = arm/lib1funcs.asm
-LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx
-# MULTILIB_OPTIONS = mhard-float/msoft-float
-# MULTILIB_DIRNAMES = hard-float soft-float
+LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls \
+ _bb_init_func _call_via_rX _interwork_call_via_rX \
+ _lshrdi3 _ashrdi3 _ashldi3 \
+ _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
+ _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
+ _fixsfsi _fixunssfsi _floatdidf _floatdisf
+
+MULTILIB_OPTIONS = mlittle-endian/mbig-endian mhard-float/msoft-float
+MULTILIB_DIRNAMES = le be hard-float soft-float
+MULTILIB_MATCHES = mbig-endian=mbe mlittle-endian=mle
+
+EXTRA_MULTILIB_PARTS = crtbegin.o crtbeginS.o crtend.o crtendS.o crti.o crtn.o
+
+LIBGCC = stmp-multilib
+INSTALL_LIBGCC = install-multilib
+
+T_CFLAGS = -Dinhibit_libc
-# EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o
+# Assemble startup files.
+$(T)crti.o: $(srcdir)/config/arm/crti.asm $(GCC_PASSES)
+ $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
+ -c -o $(T)crti.o -x assembler-with-cpp $(srcdir)/config/arm/crti.asm
-# LIBGCC = stmp-multilib
-# INSTALL_LIBGCC = install-multilib
+$(T)crtn.o: $(srcdir)/config/arm/crtn.asm $(GCC_PASSES)
+ $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
+ -c -o $(T)crtn.o -x assembler-with-cpp $(srcdir)/config/arm/crtn.asm

View File

@ -0,0 +1,12 @@
diff -Nru gcc-4.1.1.orig/gcc/config/arm/linux-elf.h gcc-4.1.1/gcc/config/arm/linux-elf.h
--- gcc-4.1.1.orig/gcc/config/arm/linux-elf.h 2005-10-10 03:04:31.000000000 +0200
+++ gcc-4.1.1/gcc/config/arm/linux-elf.h 2006-08-23 10:06:25.000000000 +0200
@@ -49,8 +49,6 @@
%{shared:-lc} \
%{!shared:%{profile:-lc_p}%{!profile:-lc}}"
-#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc"
-
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
#define LINUX_TARGET_LINK_SPEC "%{h*} %{version:-v} \

5
gcc-4.3.2-ecj1-wrapper Normal file
View File

@ -0,0 +1,5 @@
#!/bin/sh
gij --classpath /usr/share/java/ecj.jar \
org.eclipse.jdt.internal.compiler.batch.GCCMain \
${1+"$@"}

298
gcc-4.4.0-pr39543.patch Normal file
View File

@ -0,0 +1,298 @@
--- gcc/fwprop.c.jj 2009-02-20 15:34:11.000000000 +0100
+++ gcc/fwprop.c 2009-03-25 16:34:49.000000000 +0100
@@ -1,5 +1,5 @@
/* RTL-based forward propagation pass for GNU compiler.
- Copyright (C) 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
Contributed by Paolo Bonzini and Steven Bosscher.
This file is part of GCC.
@@ -852,6 +852,96 @@ forward_propagate_subreg (df_ref use, rt
return false;
}
+static int
+check_reg_count_callback (rtx *px, void *data)
+{
+ int *regnop = (int *) data;
+
+ if (!REG_P (*px))
+ return 0;
+
+ if (*regnop < 0 || *regnop == (int) REGNO (*px))
+ {
+ *regnop = REGNO (*px);
+ return 0;
+ }
+
+ return 1;
+}
+
+/* Try to replace USE with SRC (defined in DEF_INSN) in __asm. */
+
+static bool
+forward_propagate_asm (df_ref use, rtx def_set, rtx reg)
+{
+ rtx use_insn = DF_REF_INSN (use), src, use_pat, asm_operands, new_rtx, *loc;
+ int regno, speed_p, i;
+
+ gcc_assert ((DF_REF_FLAGS (use) & DF_REF_IN_NOTE) == 0);
+
+ src = SET_SRC (def_set);
+ use_pat = PATTERN (use_insn);
+
+ /* In __asm don't replace if src might need more registers than
+ reg, as that could increase register pressure on the __asm. */
+ regno = -1;
+ if (for_each_rtx (&src, check_reg_count_callback, &regno) > 0)
+ return false;
+
+ speed_p = optimize_bb_for_speed_p (BLOCK_FOR_INSN (use_insn));
+ asm_operands = NULL_RTX;
+ switch (GET_CODE (use_pat))
+ {
+ case ASM_OPERANDS:
+ asm_operands = use_pat;
+ break;
+ case SET:
+ loc = &SET_DEST (use_pat);
+ new_rtx = propagate_rtx (*loc, GET_MODE (*loc), reg, src, speed_p);
+ if (new_rtx)
+ validate_unshare_change (use_insn, loc, new_rtx, true);
+ asm_operands = SET_SRC (use_pat);
+ break;
+ case PARALLEL:
+ for (i = 0; i < XVECLEN (use_pat, 0); i++)
+ if (GET_CODE (XVECEXP (use_pat, 0, i)) == SET)
+ {
+ loc = &SET_DEST (XVECEXP (use_pat, 0, i));
+ new_rtx = propagate_rtx (*loc, GET_MODE (*loc), reg, src, speed_p);
+ if (new_rtx)
+ validate_unshare_change (use_insn, loc, new_rtx, true);
+ asm_operands = SET_SRC (XVECEXP (use_pat, 0, i));
+ }
+ else if (GET_CODE (XVECEXP (use_pat, 0, i)) == ASM_OPERANDS)
+ asm_operands = XVECEXP (use_pat, 0, i);
+ break;
+ default:
+ gcc_unreachable ();
+ }
+
+ gcc_assert (asm_operands && GET_CODE (asm_operands) == ASM_OPERANDS);
+ for (i = 0; i < ASM_OPERANDS_INPUT_LENGTH (asm_operands); i++)
+ {
+ loc = &ASM_OPERANDS_INPUT (asm_operands, i);
+ new_rtx = propagate_rtx (*loc, GET_MODE (*loc), reg, src, speed_p);
+ if (new_rtx)
+ validate_unshare_change (use_insn, loc, new_rtx, true);
+ }
+
+ if (num_changes_pending () == 0)
+ return false;
+
+ if (!verify_changes (0))
+ {
+ cancel_changes (0);
+ return 0;
+ }
+
+ confirm_change_group ();
+ num_changes++;
+ return true;
+}
+
/* Try to replace USE with SRC (defined in DEF_INSN) and simplify the
result. */
@@ -863,12 +953,16 @@ forward_propagate_and_simplify (df_ref u
rtx src, reg, new_rtx, *loc;
bool set_reg_equal;
enum machine_mode mode;
+ int asm_use = -1;
- if (!use_set)
+ if (INSN_CODE (use_insn) < 0)
+ asm_use = asm_noperands (PATTERN (use_insn));
+
+ if (!use_set && asm_use < 0)
return false;
/* Do not propagate into PC, CC0, etc. */
- if (GET_MODE (SET_DEST (use_set)) == VOIDmode)
+ if (use_set && GET_MODE (SET_DEST (use_set)) == VOIDmode)
return false;
/* If def and use are subreg, check if they match. */
@@ -900,7 +994,7 @@ forward_propagate_and_simplify (df_ref u
if (MEM_P (src) && MEM_READONLY_P (src))
{
rtx x = avoid_constant_pool_reference (src);
- if (x != src)
+ if (x != src && use_set)
{
rtx note = find_reg_note (use_insn, REG_EQUAL, NULL_RTX);
rtx old_rtx = note ? XEXP (note, 0) : SET_SRC (use_set);
@@ -911,6 +1005,9 @@ forward_propagate_and_simplify (df_ref u
return false;
}
+ if (asm_use >= 0)
+ return forward_propagate_asm (use, def_set, reg);
+
/* Else try simplifying. */
if (DF_REF_TYPE (use) == DF_REF_REG_MEM_STORE)
--- gcc/testsuite/gcc.target/i386/pr39543-1.c.jj 2009-03-25 16:40:18.000000000 +0100
+++ gcc/testsuite/gcc.target/i386/pr39543-1.c 2009-03-25 16:40:50.000000000 +0100
@@ -0,0 +1,52 @@
+/* PR rtl-optimization/39543 */
+/* { dg-do compile } */
+/* { dg-options "-O3 -fomit-frame-pointer" } */
+
+float __attribute__ ((aligned (16))) s0[128];
+const float s1 = 0.707;
+float s2[8] __attribute__ ((aligned (16)));
+float s3[8] __attribute__ ((aligned (16)));
+float s4[16] __attribute__ ((aligned (16)));
+float s5[16] __attribute__ ((aligned (16)));
+
+void
+foo (int k, float *x, float *y, const float *d, const float *z)
+{
+ float *a, *b, *c, *e;
+
+ a = x + 2 * k;
+ b = a + 2 * k;
+ c = b + 2 * k;
+ e = y + 2 * k;
+ __asm__ volatile (""
+ : "=m" (x[0]), "=m" (b[0]), "=m" (a[0]), "=m" (c[0])
+ : "m" (y[0]), "m" (y[k * 2]), "m" (x[0]), "m" (a[0])
+ : "memory");
+ for (;;)
+ {
+ __asm__ volatile (""
+ :
+ : "m" (y[2]), "m" (d[2]), "m" (e[2]), "m" (z[2])
+ : "memory");
+ if (!--k)
+ break;
+ }
+ __asm__ volatile (""
+ : "=m" (x[2]), "=m" (x[10]), "=m" (x[6]), "=m" (x[14])
+ : "m" (y[2]), "m" (y[6]), "m" (x[2]), "m" (x[6]),
+ "m" (y[18]), "m" (s1)
+ : "memory");
+}
+
+void
+bar (float *a)
+{
+ foo (4, a, a + 16, s2, s3);
+ foo (8, a, a + 32, s4, s5);
+}
+
+void
+baz (void)
+{
+ bar (s0);
+}
--- gcc/testsuite/gcc.target/i386/pr39543-2.c.jj 2009-03-25 16:40:18.000000000 +0100
+++ gcc/testsuite/gcc.target/i386/pr39543-2.c 2009-03-25 16:40:38.000000000 +0100
@@ -0,0 +1,51 @@
+/* PR rtl-optimization/39543 */
+/* { dg-do compile } */
+/* { dg-options "-O3" } */
+
+float __attribute__ ((aligned (16))) s0[128];
+const float s1 = 0.707;
+float s2[8] __attribute__ ((aligned (16)));
+float s3[8] __attribute__ ((aligned (16)));
+float s4[16] __attribute__ ((aligned (16)));
+float s5[16] __attribute__ ((aligned (16)));
+
+void
+foo (int k, float *x, float *y, const float *d, const float *z)
+{
+ float *a, *b, *c, *e;
+
+ a = x + 2 * k;
+ b = a + 2 * k;
+ c = b + 2 * k;
+ e = y + 2 * k;
+ __asm__ volatile (""
+ : "=m" (x[0]), "=m" (b[0]), "=m" (a[0]), "=m" (c[0])
+ : "m" (y[0]), "m" (y[k * 2]), "m" (x[0]), "m" (a[0])
+ : "memory");
+ for (;;)
+ {
+ __asm__ volatile (""
+ :
+ : "m" (y[2]), "m" (d[2]), "m" (e[2]), "m" (z[2])
+ : "memory");
+ if (!--k)
+ break;
+ }
+ __asm__ volatile (""
+ : "=m" (x[2]), "=m" (x[10]), "=m" (x[6]), "=m" (x[14])
+ : "m" (y[2]), "m" (y[6]), "m" (x[2]), "m" (x[6]), "m" (s1)
+ : "memory");
+}
+
+void
+bar (float *a)
+{
+ foo (4, a, a + 16, s2, s3);
+ foo (8, a, a + 32, s4, s5);
+}
+
+void
+baz (void)
+{
+ bar (s0);
+}
--- gcc/testsuite/gcc.target/i386/pr39543-3.c.jj 2009-03-25 16:41:29.000000000 +0100
+++ gcc/testsuite/gcc.target/i386/pr39543-3.c 2009-03-25 16:41:19.000000000 +0100
@@ -0,0 +1,42 @@
+/* PR rtl-optimization/39543 */
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+int s[128];
+
+void
+f1 (void)
+{
+ int i;
+ asm volatile ("# %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11 %12 %13 %14 %15 %16 %17"
+ : "=r" (i)
+ : "m" (s[0]), "m" (s[2]), "m" (s[4]), "m" (s[6]), "m" (s[8]),
+ "m" (s[10]), "m" (s[12]), "m" (s[14]), "m" (s[16]), "m" (s[18]),
+ "m" (s[20]), "m" (s[22]), "m" (s[24]), "m" (s[26]), "m" (s[28]),
+ "m" (s[30]), "m" (s[32]));
+ asm volatile ("# %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11 %12 %13 %14 %15 %16 %17"
+ : "=r" (i)
+ : "m" (s[0]), "m" (s[2]), "m" (s[4]), "m" (s[6]), "m" (s[8]),
+ "m" (s[10]), "m" (s[12]), "m" (s[14]), "m" (s[16]), "m" (s[18]),
+ "m" (s[20]), "m" (s[22]), "m" (s[24]), "m" (s[26]), "m" (s[28]),
+ "m" (s[30]), "m" (s[32]));
+}
+
+void
+f2 (int *q)
+{
+ int i;
+ int *p = q + 32;
+ asm volatile ("# %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11 %12 %13 %14 %15 %16 %17"
+ : "=r" (i)
+ : "m" (p[0]), "m" (p[2]), "m" (p[4]), "m" (p[6]), "m" (p[8]),
+ "m" (p[10]), "m" (p[12]), "m" (p[14]), "m" (p[16]), "m" (p[18]),
+ "m" (p[20]), "m" (p[22]), "m" (p[24]), "m" (p[26]), "m" (p[28]),
+ "m" (p[30]), "m" (p[32]));
+ asm volatile ("# %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11 %12 %13 %14 %15 %16 %17"
+ : "=r" (i)
+ : "m" (p[0]), "m" (p[2]), "m" (p[4]), "m" (p[6]), "m" (p[8]),
+ "m" (p[10]), "m" (p[12]), "m" (p[14]), "m" (p[16]), "m" (p[18]),
+ "m" (p[20]), "m" (p[22]), "m" (p[24]), "m" (p[26]), "m" (p[28]),
+ "m" (p[30]), "m" (p[32]));
+}

View File

@ -0,0 +1,22 @@
libstdc++-v3/ChangeLog:
2009-12-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
PR libstdc++/40974
* include/c_compatibility/fenv.h (_GLIBCXX_FENV_H):
Turn off multiple inclusion guard for 'include_next <fenv.h>'.
diff --git a/libstdc++-v3/include/c_compatibility/fenv.h b/libstdc++-v3/include/c_compatibility/fenv.h
index 5db6d9d..ce56a95 100644
--- a/libstdc++-v3/include/c_compatibility/fenv.h
+++ b/libstdc++-v3/include/c_compatibility/fenv.h
@@ -33,7 +33,10 @@
#include <bits/c++config.h>
#if _GLIBCXX_HAVE_FENV_H
+# undef _GLIBCXX_FENV_H
# include_next <fenv.h>
+# undef _GLIBCXX_FENV_H
+# define _GLIBCXX_FENV_H 1
#endif
#ifdef __GXX_EXPERIMENTAL_CXX0X__

View File

@ -0,0 +1,12 @@
diff -Nru gcc-4.5.0.orig//gcc/Makefile.in gcc-4.5.0/gcc/Makefile.in
--- gcc-4.5.0.orig//gcc/Makefile.in 2010-04-02 09:49:06.000000000 +0200
+++ gcc-4.5.0/gcc/Makefile.in 2010-05-08 14:28:08.243216408 +0200
@@ -3949,7 +3949,7 @@
gcc_dir=`${PWD_COMMAND}` ; \
export TARGET_MACHINE srcdir SHELL MACRO_LIST && \
cd $(build_objdir)/fixincludes && \
- $(SHELL) ./fixinc.sh "$${gcc_dir}/$${fix_dir}" \
+ $(SHELL) -c true \
$(SYSTEM_HEADER_DIR) $(OTHER_FIXINCLUDES_DIRS) ); \
rm -f $${fix_dir}/syslimits.h; \
if [ -f $${fix_dir}/limits.h ]; then \

View File

@ -0,0 +1,12 @@
diff -Nru gcc-4.5.1.orig//libiberty/strsignal.c gcc-4.5.1/libiberty/strsignal.c
--- gcc-4.5.1.orig//libiberty/strsignal.c 2008-06-19 17:08:53.000000000 +0200
+++ gcc-4.5.1/libiberty/strsignal.c 2010-09-23 20:00:01.972694593 +0200
@@ -551,7 +551,7 @@
#ifndef HAVE_PSIGNAL
void
-psignal (int signo, char *message)
+psignal (int signo, const char *message)
{
if (signal_names == NULL)
{

View File

@ -0,0 +1,17 @@
--- gcc-4.5.2.orig/gcc/config/arm/arm.h (revision 162381)
+++ gcc-4.5.2/gcc/config/arm/arm.h (working copy)
@@ -94,7 +94,13 @@
if (arm_arch_iwmmxt) \
builtin_define ("__IWMMXT__"); \
if (TARGET_AAPCS_BASED) \
- builtin_define ("__ARM_EABI__"); \
+ { \
+ if (TARGET_VFP && TARGET_HARD_FLOAT_ABI) \
+ builtin_define ("__ARM_PCS_VFP"); \
+ else \
+ builtin_define ("__ARM_PCS"); \
+ builtin_define ("__ARM_EABI__"); \
+ } \
} while (0)
/* The various ARM cores. */

View File

@ -0,0 +1,216 @@
diff -ur gcc-4.5.0-clean/gcc/config/avr/avr-devices.c gcc-4.5.0/gcc/config/avr/avr-devices.c
--- gcc-4.5.0-clean/gcc/config/avr/avr-devices.c 2009-07-18 04:49:03.000000000 +1000
+++ gcc-4.5.0/gcc/config/avr/avr-devices.c 2010-07-09 23:32:45.000000000 +1000
@@ -67,15 +67,21 @@
{ "attiny13", ARCH_AVR25, "__AVR_ATtiny13__", 1, 0x0060, "tn13" },
{ "attiny13a", ARCH_AVR25, "__AVR_ATtiny13A__", 1, 0x0060, "tn13a" },
{ "attiny2313", ARCH_AVR25, "__AVR_ATtiny2313__", 1, 0x0060, "tn2313" },
+ { "attiny2313a", ARCH_AVR25, "__AVR_ATtiny2313A__", /*?*/1, 0x0060, "tn2313a" },
{ "attiny24", ARCH_AVR25, "__AVR_ATtiny24__", 1, 0x0060, "tn24" },
+ { "attiny24a", ARCH_AVR25, "__AVR_ATtiny24A__", /*?*/1, 0x0060, "tn24a" },
+ { "attiny4313", ARCH_AVR25, "__AVR_ATtiny4313__", /*?*/0, 0x0060, "tn44313" },
{ "attiny44", ARCH_AVR25, "__AVR_ATtiny44__", 0, 0x0060, "tn44" },
+ { "attiny44a", ARCH_AVR25, "__AVR_ATtiny44A__", /*?*/0, 0x0060, "tn44a" },
{ "attiny84", ARCH_AVR25, "__AVR_ATtiny84__", 0, 0x0060, "tn84" },
{ "attiny25", ARCH_AVR25, "__AVR_ATtiny25__", 1, 0x0060, "tn25" },
{ "attiny45", ARCH_AVR25, "__AVR_ATtiny45__", 0, 0x0060, "tn45" },
{ "attiny85", ARCH_AVR25, "__AVR_ATtiny85__", 0, 0x0060, "tn85" },
{ "attiny261", ARCH_AVR25, "__AVR_ATtiny261__", 1, 0x0060, "tn261" },
+ { "attiny261a", ARCH_AVR25, "__AVR_ATtiny261A__", /*?*/1, 0x0060, "tn261a" },
{ "attiny461", ARCH_AVR25, "__AVR_ATtiny461__", 0, 0x0060, "tn461" },
{ "attiny861", ARCH_AVR25, "__AVR_ATtiny861__", 0, 0x0060, "tn861" },
+ { "attiny861a", ARCH_AVR25, "__AVR_ATtiny861A__", /*?*/0, 0x0060, "tn861a" },
{ "attiny43u", ARCH_AVR25, "__AVR_ATtiny43U__", 0, 0x0060, "tn43u" },
{ "attiny87", ARCH_AVR25, "__AVR_ATtiny87__", 0, 0x0100, "tn87" },
{ "attiny48", ARCH_AVR25, "__AVR_ATtiny48__", 0, 0x0100, "tn48" },
@@ -102,9 +108,12 @@
{ "avr4", ARCH_AVR4, NULL, 0, 0x0060, "m8" },
{ "atmega8", ARCH_AVR4, "__AVR_ATmega8__", 0, 0x0060, "m8" },
{ "atmega48", ARCH_AVR4, "__AVR_ATmega48__", 0, 0x0100, "m48" },
+ { "atmega48a", ARCH_AVR4, "__AVR_ATmega48A__", /*?*/0, 0x0100, "m48a" },
{ "atmega48p", ARCH_AVR4, "__AVR_ATmega48P__", 0, 0x0100, "m48p" },
{ "atmega88", ARCH_AVR4, "__AVR_ATmega88__", 0, 0x0100, "m88" },
+ { "atmega88a", ARCH_AVR4, "__AVR_ATmega88A__", /*?*/0, 0x0100, "m88a" },
{ "atmega88p", ARCH_AVR4, "__AVR_ATmega88P__", 0, 0x0100, "m88p" },
+ { "atmega88pa", ARCH_AVR4, "__AVR_ATmega88PA__", /*?*/0, 0x0100, "m88pa" },
{ "atmega8515", ARCH_AVR4, "__AVR_ATmega8515__", 0, 0x0060, "m8515" },
{ "atmega8535", ARCH_AVR4, "__AVR_ATmega8535__", 0, 0x0060, "m8535" },
{ "atmega8c1", ARCH_AVR4, "__AVR_ATmega8C1__", 0, 0x0100, "m8c1" },
@@ -121,40 +130,62 @@
/* Enhanced, > 8K, <= 64K. */
{ "avr5", ARCH_AVR5, NULL, 0, 0x0060, "m16" },
{ "atmega16", ARCH_AVR5, "__AVR_ATmega16__", 0, 0x0060, "m16" },
+ { "atmega16a", ARCH_AVR5, "__AVR_ATmega16A__", /*?*/0, 0x0060, "m16a" },
{ "atmega161", ARCH_AVR5, "__AVR_ATmega161__", 0, 0x0060, "m161" },
{ "atmega162", ARCH_AVR5, "__AVR_ATmega162__", 0, 0x0100, "m162" },
{ "atmega163", ARCH_AVR5, "__AVR_ATmega163__", 0, 0x0060, "m163" },
+ { "atmega164a", ARCH_AVR5, "__AVR_ATmega164A__", /*?*/0, 0x0100, "m164a" },
{ "atmega164p", ARCH_AVR5, "__AVR_ATmega164P__", 0, 0x0100, "m164p" },
{ "atmega165", ARCH_AVR5, "__AVR_ATmega165__", 0, 0x0100, "m165" },
+ { "atmega165a", ARCH_AVR5, "__AVR_ATmega165A__", 0, 0x0100, "m165a" },
{ "atmega165p", ARCH_AVR5, "__AVR_ATmega165P__", 0, 0x0100, "m165p" },
{ "atmega168", ARCH_AVR5, "__AVR_ATmega168__", 0, 0x0100, "m168" },
+ { "atmega168a", ARCH_AVR5, "__AVR_ATmega168A__", /*?*/0, 0x0100, "m168a" },
{ "atmega168p", ARCH_AVR5, "__AVR_ATmega168P__", 0, 0x0100, "m168p" },
{ "atmega169", ARCH_AVR5, "__AVR_ATmega169__", 0, 0x0100, "m169" },
+ { "atmega169a", ARCH_AVR5, "__AVR_ATmega169A__", /*?*/0, 0x0100, "m169a" },
{ "atmega169p", ARCH_AVR5, "__AVR_ATmega169P__", 0, 0x0100, "m169p" },
+ { "atmega169pa", ARCH_AVR5, "__AVR_ATmega169PA__", /*?*/0, 0x0100, "m169pa" },
{ "atmega32", ARCH_AVR5, "__AVR_ATmega32__", 0, 0x0060, "m32" },
{ "atmega323", ARCH_AVR5, "__AVR_ATmega323__", 0, 0x0060, "m323" },
+ { "atmega324a", ARCH_AVR5, "__AVR_ATmega324A__", /*?*/0, 0x0100, "m324a" },
{ "atmega324p", ARCH_AVR5, "__AVR_ATmega324P__", 0, 0x0100, "m324p" },
+ { "atmega324pa", ARCH_AVR5, "__AVR_ATmega324PA__", /*?*/0, 0x0100, "m324pa" },
{ "atmega325", ARCH_AVR5, "__AVR_ATmega325__", 0, 0x0100, "m325" },
{ "atmega325p", ARCH_AVR5, "__AVR_ATmega325P__", 0, 0x0100, "m325p" },
{ "atmega3250", ARCH_AVR5, "__AVR_ATmega3250__", 0, 0x0100, "m3250" },
{ "atmega3250p", ARCH_AVR5, "__AVR_ATmega3250P__", 0, 0x0100, "m3250p" },
+ { "atmega328", ARCH_AVR5, "__AVR_ATmega328__", /*?*/0, 0x0100, "m328" },
{ "atmega328p", ARCH_AVR5, "__AVR_ATmega328P__", 0, 0x0100, "m328p" },
{ "atmega329", ARCH_AVR5, "__AVR_ATmega329__", 0, 0x0100, "m329" },
{ "atmega329p", ARCH_AVR5, "__AVR_ATmega329P__", 0, 0x0100, "m329p" },
+ { "atmega329pa", ARCH_AVR5, "__AVR_ATmega329PA__", /*?*/0, 0x0100, "m329pa" },
{ "atmega3290", ARCH_AVR5, "__AVR_ATmega3290__", 0, 0x0100, "m3290" },
{ "atmega3290p", ARCH_AVR5, "__AVR_ATmega3290P__", 0, 0x0100, "m3290p" },
{ "atmega406", ARCH_AVR5, "__AVR_ATmega406__", 0, 0x0100, "m406" },
{ "atmega64", ARCH_AVR5, "__AVR_ATmega64__", 0, 0x0100, "m64" },
{ "atmega640", ARCH_AVR5, "__AVR_ATmega640__", 0, 0x0200, "m640" },
{ "atmega644", ARCH_AVR5, "__AVR_ATmega644__", 0, 0x0100, "m644" },
+ { "atmega644a", ARCH_AVR5, "__AVR_ATmega644A__", /*?*/0, 0x0100, "m644a" },
{ "atmega644p", ARCH_AVR5, "__AVR_ATmega644P__", 0, 0x0100, "m644p" },
+ { "atmega644pa", ARCH_AVR5, "__AVR_ATmega644PA__", /*?*/0, 0x0100, "m644pa" },
{ "atmega645", ARCH_AVR5, "__AVR_ATmega645__", 0, 0x0100, "m645" },
+ { "atmega645a", ARCH_AVR5, "__AVR_ATmega645A__", /*?*/0, 0x0100, "m645a" },
+ { "atmega645p", ARCH_AVR5, "__AVR_ATmega645P__", /*?*/0, 0x0100, "m645p" },
{ "atmega6450", ARCH_AVR5, "__AVR_ATmega6450__", 0, 0x0100, "m6450" },
+ { "atmega6450a", ARCH_AVR5, "__AVR_ATmega6450A__", /*?*/0, 0x0100, "m6450a" },
+ { "atmega6450p", ARCH_AVR5, "__AVR_ATmega6450P__", /*?*/0, 0x0100, "m6450p" },
{ "atmega649", ARCH_AVR5, "__AVR_ATmega649__", 0, 0x0100, "m649" },
+ { "atmega649a", ARCH_AVR5, "__AVR_ATmega649A__", /*?*/0, 0x0100, "m649a" },
+ { "atmega649p", ARCH_AVR5, "__AVR_ATmega649P__", /*?*/0, 0x0100, "m649p" },
{ "atmega6490", ARCH_AVR5, "__AVR_ATmega6490__", 0, 0x0100, "m6490" },
+ { "atmega6490a", ARCH_AVR5, "__AVR_ATmega6490A__", /*?*/0, 0x0100, "m6490a" },
+ { "atmega6490p", ARCH_AVR5, "__AVR_ATmega6490P__", /*?*/0, 0x0100, "m6490p" },
{ "atmega16hva", ARCH_AVR5, "__AVR_ATmega16HVA__", 0, 0x0100, "m16hva" },
+ { "atmega16hva2", ARCH_AVR5, "__AVR_ATmega16HVA2__", /*?*/0, 0x0100, "m16hva2" },
{ "atmega16hvb", ARCH_AVR5, "__AVR_ATmega16HVB__", 0, 0x0100, "m16hvb" },
- { "atmega32hvb", ARCH_AVR5, "__AVR_ATmega32HVB__", 0, 0x0100, "m23hvb" },
+ { "atmega32hvb", ARCH_AVR5, "__AVR_ATmega32HVB__", 0, 0x0100, "m32hvb" },
+ { "atmega64hve", ARCH_AVR5, "__AVR_ATmega64HVE__", /*?*/0, 0x0100, "m64hve" },
{ "at90can32", ARCH_AVR5, "__AVR_AT90CAN32__", 0, 0x0100, "can32" },
{ "at90can64", ARCH_AVR5, "__AVR_AT90CAN64__", 0, 0x0100, "can64" },
{ "at90pwm216", ARCH_AVR5, "__AVR_AT90PWM216__", 0, 0x0100, "90pwm216" },
diff -ur gcc-4.5.0-clean/gcc/config/avr/t-avr gcc-4.5.0/gcc/config/avr/t-avr
--- gcc-4.5.0-clean/gcc/config/avr/t-avr 2009-12-25 07:32:38.000000000 +1100
+++ gcc-4.5.0/gcc/config/avr/t-avr 2010-07-09 23:05:26.000000000 +1000
@@ -81,16 +81,23 @@
mmcu?avr25=mmcu?attiny13 \
mmcu?avr25=mmcu?attiny13a \
mmcu?avr25=mmcu?attiny2313 \
+ mmcu?avr25=mmcu?attiny2313a \
mmcu?avr25=mmcu?attiny24 \
- mmcu?avr25=mmcu?attiny44 \
- mmcu?avr25=mmcu?attiny84 \
+ mmcu?avr25=mmcu?attiny24a \
mmcu?avr25=mmcu?attiny25 \
- mmcu?avr25=mmcu?attiny45 \
- mmcu?avr25=mmcu?attiny85 \
mmcu?avr25=mmcu?attiny261 \
+ mmcu?avr25=mmcu?attiny261a \
+ mmcu?avr25=mmcu?attiny4313 \
+ mmcu?avr25=mmcu?attiny43u \
+ mmcu?avr25=mmcu?attiny44 \
+ mmcu?avr25=mmcu?attiny44a \
+ mmcu?avr25=mmcu?attiny45 \
mmcu?avr25=mmcu?attiny461 \
+ mmcu?avr25=mmcu?attiny461a \
+ mmcu?avr25=mmcu?attiny84 \
+ mmcu?avr25=mmcu?attiny85 \
mmcu?avr25=mmcu?attiny861 \
- mmcu?avr25=mmcu?attiny43u \
+ mmcu?avr25=mmcu?attiny861a \
mmcu?avr25=mmcu?attiny87 \
mmcu?avr25=mmcu?attiny48 \
mmcu?avr25=mmcu?attiny88 \
@@ -107,12 +114,15 @@
mmcu?avr35=mmcu?attiny167 \
mmcu?avr35=mmcu?attiny327 \
mmcu?avr4=mmcu?atmega48 \
+ mmcu?avr4=mmcu?atmega48a \
mmcu?avr4=mmcu?atmega48p \
mmcu?avr4=mmcu?atmega8 \
mmcu?avr4=mmcu?atmega8515 \
mmcu?avr4=mmcu?atmega8535 \
mmcu?avr4=mmcu?atmega88 \
+ mmcu?avr4=mmcu?atmega88a \
mmcu?avr4=mmcu?atmega88p \
+ mmcu?avr4=mmcu?atmega88pa \
mmcu?avr4=mmcu?atmega8hva \
mmcu?avr4=mmcu?atmega4hvd \
mmcu?avr4=mmcu?atmega8hvd \
@@ -125,16 +135,21 @@
mmcu?avr4=mmcu?at90pwm3b \
mmcu?avr4=mmcu?at90pwm81 \
mmcu?avr5=mmcu?atmega16 \
+ mmcu?avr5=mmcu?atmega16a \
mmcu?avr5=mmcu?atmega161 \
mmcu?avr5=mmcu?atmega162 \
mmcu?avr5=mmcu?atmega163 \
+ mmcu?avr5=mmcu?atmega164a \
mmcu?avr5=mmcu?atmega164p \
mmcu?avr5=mmcu?atmega165 \
+ mmcu?avr5=mmcu?atmega165a \
mmcu?avr5=mmcu?atmega165p \
mmcu?avr5=mmcu?atmega168 \
mmcu?avr5=mmcu?atmega168p \
mmcu?avr5=mmcu?atmega169 \
+ mmcu?avr5=mmcu?atmega169a \
mmcu?avr5=mmcu?atmega169p \
+ mmcu?avr5=mmcu?atmega169pa \
mmcu?avr5=mmcu?atmega32 \
mmcu?avr5=mmcu?atmega323 \
mmcu?avr5=mmcu?atmega324p \
@@ -142,21 +157,35 @@
mmcu?avr5=mmcu?atmega325p \
mmcu?avr5=mmcu?atmega3250 \
mmcu?avr5=mmcu?atmega3250p \
+ mmcu?avr5=mmcu?atmega328 \
mmcu?avr5=mmcu?atmega328p \
mmcu?avr5=mmcu?atmega329 \
mmcu?avr5=mmcu?atmega329p \
+ mmcu?avr5=mmcu?atmega329pa \
mmcu?avr5=mmcu?atmega3290 \
mmcu?avr5=mmcu?atmega3290p \
+ mmcu?avr5=mmcu?atmega32hvb \
mmcu?avr5=mmcu?atmega406 \
mmcu?avr5=mmcu?atmega64 \
mmcu?avr5=mmcu?atmega640 \
mmcu?avr5=mmcu?atmega644 \
+ mmcu?avr5=mmcu?atmega644a \
mmcu?avr5=mmcu?atmega644p \
+ mmcu?avr5=mmcu?atmega644pa \
mmcu?avr5=mmcu?atmega645 \
+ mmcu?avr5=mmcu?atmega645a \
+ mmcu?avr5=mmcu?atmega645p \
mmcu?avr5=mmcu?atmega6450 \
+ mmcu?avr5=mmcu?atmega6450a \
+ mmcu?avr5=mmcu?atmega6450p \
mmcu?avr5=mmcu?atmega649 \
+ mmcu?avr5=mmcu?atmega649a \
+ mmcu?avr5=mmcu?atmega649p \
mmcu?avr5=mmcu?atmega6490 \
+ mmcu?avr5=mmcu?atmega6490a \
+ mmcu?avr5=mmcu?atmega6490p \
mmcu?avr5=mmcu?atmega16hva \
+ mmcu?avr5=mmcu?atmega16hva2 \
mmcu?avr5=mmcu?atmega16hvb \
mmcu?avr5=mmcu?atmega32hvb \
mmcu?avr5=mmcu?at90can32 \
@@ -172,6 +201,7 @@
mmcu?avr5=mmcu?atmega16u4 \
mmcu?avr5=mmcu?atmega32u4 \
mmcu?avr5=mmcu?atmega32u6 \
+ mmcu?avr5=mmcu?atmega64hve \
mmcu?avr5=mmcu?at90scr100 \
mmcu?avr5=mmcu?at90usb646 \
mmcu?avr5=mmcu?at90usb647 \

View File

@ -0,0 +1,19 @@
--- gcc-4.8.0/libffi/doc/libffi.texi.orig 2013-03-27 14:30:44.349767608 +0100
+++ gcc-4.8.0/libffi/doc/libffi.texi 2013-03-27 14:36:39.440125266 +0100
@@ -360,7 +360,6 @@
new @code{ffi_type} object for it.
@tindex ffi_type
-@deftp ffi_type
The @code{ffi_type} has the following members:
@table @code
@item size_t size
@@ -376,8 +375,6 @@
This is a @samp{NULL}-terminated array of pointers to @code{ffi_type}
objects. There is one element per field of the struct.
@end table
-@end deftp
-
@node Type Example
@subsection Type Example

View File

@ -0,0 +1,102 @@
Submitted By: Armin K. <krejzi at email dot com>
Date: 2014-05-10
Initial Package Version: 4.9.0
Upstream Status: Fixed Upstream
Origin: Upstream VCS
Description: Prevents compiler from generating broken code that would cause
some programs to segfault or behave incorrectly when compiled
with gcc-4.9.0
--- a/gcc/ipa-devirt.c 2014-04-08 07:35:11.000000000 +0200
+++ b/gcc/ipa-devirt.c 2014-05-10 16:46:14.502859179 +0200
@@ -987,6 +987,17 @@
context->outer_type = expected_type;
context->offset = 0;
context->maybe_derived_type = true;
+ context->maybe_in_construction = true;
+ /* POD can be changed to an instance of a polymorphic type by
+ placement new. Here we play safe and assume that any
+ non-polymorphic type is POD. */
+ if ((TREE_CODE (type) != RECORD_TYPE
+ || !TYPE_BINFO (type)
+ || !polymorphic_type_binfo_p (TYPE_BINFO (type)))
+ && (TREE_CODE (TYPE_SIZE (type)) != INTEGER_CST
+ || (offset + tree_to_uhwi (TYPE_SIZE (expected_type)) <=
+ tree_to_uhwi (TYPE_SIZE (type)))))
+ return true;
return false;
}
--- a/gcc/testsuite/g++.dg/ipa/devirt-11.C 2013-09-08 18:42:21.000000000 +0200
+++ b/gcc/testsuite/g++.dg/ipa/devirt-11.C 2014-05-10 16:46:14.503859198 +0200
@@ -45,5 +45,5 @@
/* While inlining function called once we should devirtualize a new call to fn2
and two to fn3. While doing so the new symbol for fn2 needs to be
introduced. */
-/* { dg-final { scan-ipa-dump-times "Discovered a virtual call to a known target" 3 "inline" } } */
+/* { dg-final { scan-ipa-dump-times "Discovered a virtual call to a known target" 1 "inline" } } */
/* { dg-final { cleanup-ipa-dump "inline" } } */
--- a/gcc/testsuite/g++.dg/ipa/devirt-31.C 1970-01-01 01:00:00.000000000 +0100
+++ b/gcc/testsuite/g++.dg/ipa/devirt-31.C 2014-05-10 16:46:14.503859198 +0200
@@ -0,0 +1,23 @@
+/* { dg-options "-O2 -std=c++11 -fdump-ipa-inline" } */
+#include <new>
+
+class EmbeddedObject {
+public:
+ virtual int val() { return 2; }
+};
+
+class Container {
+ alignas(EmbeddedObject) char buffer[sizeof(EmbeddedObject)];
+public:
+ EmbeddedObject *obj() { return (EmbeddedObject*)buffer; }
+ Container() { new (buffer) EmbeddedObject(); }
+};
+
+Container o;
+
+int main()
+{
+ __builtin_printf("%d\n", o.obj()->val());
+}
+/* { dg-final { scan-ipa-dump-not "__builtin_unreachable" "inline" } } */
+/* { dg-final { cleanup-ipa-dump "inline" } } */
--- a/gcc/tree-ssa-threadedge.c 2014-01-02 23:23:26.000000000 +0100
+++ b/gcc/tree-ssa-threadedge.c 2014-05-10 16:45:59.053571881 +0200
@@ -387,7 +387,34 @@
&& (gimple_code (stmt) != GIMPLE_CALL
|| gimple_call_lhs (stmt) == NULL_TREE
|| TREE_CODE (gimple_call_lhs (stmt)) != SSA_NAME))
- continue;
+ {
+ /* STMT might still have DEFS and we need to invalidate any known
+ equivalences for them.
+
+ Consider if STMT is a GIMPLE_ASM with one or more outputs that
+ feeds a conditional inside a loop. We might derive an equivalence
+ due to the conditional. */
+ tree op;
+ ssa_op_iter iter;
+
+ if (backedge_seen)
+ FOR_EACH_SSA_TREE_OPERAND (op, stmt, iter, SSA_OP_DEF)
+ {
+ /* This call only invalidates equivalences created by
+ PHI nodes. This is by design to keep the cost of
+ of invalidation reasonable. */
+ invalidate_equivalences (op, stack, src_map, dst_map);
+
+ /* However, conditionals can imply values for real
+ operands as well. And those won't be recorded in the
+ maps. In fact, those equivalences may be recorded totally
+ outside the threading code. We can just create a new
+ temporary NULL equivalence here. */
+ record_temporary_equivalence (op, NULL_TREE, stack);
+ }
+
+ continue;
+ }
/* The result of __builtin_object_size depends on all the arguments
of a phi node. Temporarily using only one edge produces invalid

View File

@ -0,0 +1,15 @@
--- trunk/gcc/lra-lives.c 2014/05/30 08:43:05 211074
+++ trunk/gcc/lra-lives.c 2014/06/16 09:58:34 211701
@@ -558,7 +558,11 @@
/* It might be 'inheritance pseudo <- reload pseudo'. */
|| (src_regno >= lra_constraint_new_regno_start
&& ((int) REGNO (SET_DEST (set))
- >= lra_constraint_new_regno_start))))
+ >= lra_constraint_new_regno_start)
+ /* Remember to skip special cases where src/dest regnos are
+ the same, e.g. insn SET pattern has matching constraints
+ like =r,0. */
+ && src_regno != (int) REGNO (SET_DEST (set)))))
{
int hard_regno = -1, regno = -1;

View File

@ -0,0 +1,11 @@
--- gcc-5.2.0/Makefile.in.orig 2015-08-16 18:06:23.099725324 +0200
+++ gcc-5.2.0/Makefile.in 2015-08-16 18:06:33.553684921 +0200
@@ -43118,7 +43118,7 @@
$$s/$$module_srcdir/configure \
--srcdir=$${topdir}/$$module_srcdir \
$(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
- --target=${target_alias} $(EXTRA_CONFIGARGS_LIBJAVA) \
+ --target=${target_alias} $(EXTRA_CONFIGARGS_LIBJAVA) --disable-multilib \
|| exit 1
@endif target-libjava

View File

@ -0,0 +1,36 @@
--- gcc-6.1.0/gcc/java/decl.c.orig 2016-02-08 16:36:16.000000000 +0100
+++ gcc-6.1.0/gcc/java/decl.c 2016-05-08 13:57:25.854163381 +0200
@@ -507,7 +507,7 @@
parse_version (void)
{
const char *p = version_string;
- unsigned int major = 0, minor = 0;
+ unsigned int major = 0;
unsigned int abi_version;
/* Skip leading junk. */
@@ -525,13 +525,6 @@
gcc_assert (*p == '.' && ISDIGIT (p[1]));
++p;
- /* Extract minor version. */
- while (ISDIGIT (*p))
- {
- minor = minor * 10 + *p - '0';
- ++p;
- }
-
if (flag_indirect_dispatch)
{
abi_version = GCJ_CURRENT_BC_ABI_VERSION;
--- gcc-6.1.0/gcc/java/decl.c.orig 2016-05-08 17:15:16.964134546 +0200
+++ gcc-6.1.0/gcc/java/decl.c 2016-05-08 17:15:25.304134521 +0200
@@ -535,7 +535,7 @@
/* Implicit in this computation is the idea that we won't break the
old-style binary ABI in a sub-minor release (e.g., from 4.0.0 to
4.0.1). */
- abi_version = 100000 * major + 1000 * minor;
+ abi_version = 100000 * major;
}
if (flag_bootstrap_classes)
abi_version |= FLAG_BOOTSTRAP_LOADER;

View File

@ -0,0 +1,24 @@
diff -Nru gcc-6.4.0/libjava.orig/include/i386-signal.h gcc-6.4.0/libjava/include/i386-signal.h
--- gcc-6.4.0/libjava.orig/include/i386-signal.h 2011-12-20 13:18:26.524825000 +0100
+++ gcc-6.4.0/libjava/include/i386-signal.h 2017-10-21 19:28:54.131211566 +0200
@@ -29,7 +29,7 @@
#define HANDLE_DIVIDE_OVERFLOW \
do \
{ \
- struct ucontext *_uc = (struct ucontext *)_p; \
+ struct ucontext_t *_uc = (struct ucontext_t *)_p; \
gregset_t &_gregs = _uc->uc_mcontext.gregs; \
unsigned char *_eip = (unsigned char *)_gregs[REG_EIP]; \
\
diff -Nru gcc-6.4.0/libjava.orig/include/x86_64-signal.h gcc-6.4.0/libjava/include/x86_64-signal.h
--- gcc-6.4.0/libjava.orig/include/x86_64-signal.h 2017-10-21 19:28:37.415142991 +0200
+++ gcc-6.4.0/libjava/include/x86_64-signal.h 2017-10-21 19:12:38.627239709 +0200
@@ -28,7 +28,7 @@
#define HANDLE_DIVIDE_OVERFLOW \
do \
{ \
- struct ucontext *_uc = (struct ucontext *)_p; \
+ struct ucontext_t *_uc = (struct ucontext_t *)_p; \
gregset_t &_gregs = _uc->uc_mcontext.gregs; \
unsigned char *_rip = (unsigned char *)_gregs[REG_RIP]; \
\

View File

@ -0,0 +1,160 @@
From 4c07606bb77bbd30f02adb947d480516da3fa3f7 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 11 Jun 2017 10:09:13 -0700
Subject: [PATCH] libsanitizer: Use stack_t instead of struct sigaltstack
Upstream-Status: Submitted
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
libsanitizer/sanitizer_common/sanitizer_linux.cc | 4 ++--
libsanitizer/sanitizer_common/sanitizer_linux.h | 6 +++---
.../sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc | 3 ++-
3 files changed, 7 insertions(+), 6 deletions(-)
Index: gcc-7.1.0/libsanitizer/sanitizer_common/sanitizer_linux.cc
===================================================================
--- gcc-7.1.0.orig/libsanitizer/sanitizer_common/sanitizer_linux.cc
+++ gcc-7.1.0/libsanitizer/sanitizer_common/sanitizer_linux.cc
@@ -14,6 +14,10 @@
#if SANITIZER_FREEBSD || SANITIZER_LINUX
+#if !SANITIZER_ANDROID
+#include <sys/signal.h>
+#endif
+
#include "sanitizer_common.h"
#include "sanitizer_flags.h"
#include "sanitizer_internal_defs.h"
@@ -71,10 +75,6 @@ extern "C" {
extern char **environ; // provided by crt1
#endif // SANITIZER_FREEBSD
-#if !SANITIZER_ANDROID
-#include <sys/signal.h>
-#endif
-
#if SANITIZER_LINUX
// <linux/time.h>
struct kernel_timeval {
@@ -605,8 +605,8 @@ uptr internal_prctl(int option, uptr arg
}
#endif
-uptr internal_sigaltstack(const struct sigaltstack *ss,
- struct sigaltstack *oss) {
+uptr internal_sigaltstack(const stack_t *ss,
+ stack_t *oss) {
return internal_syscall(SYSCALL(sigaltstack), (uptr)ss, (uptr)oss);
}
Index: gcc-7.1.0/libsanitizer/sanitizer_common/sanitizer_linux.h
===================================================================
--- gcc-7.1.0.orig/libsanitizer/sanitizer_common/sanitizer_linux.h
+++ gcc-7.1.0/libsanitizer/sanitizer_common/sanitizer_linux.h
@@ -19,7 +19,10 @@
#include "sanitizer_platform_limits_posix.h"
struct link_map; // Opaque type returned by dlopen().
-struct sigaltstack;
+
+#ifndef __stack_t_defined
+struct stack_t;
+#endif
namespace __sanitizer {
// Dirent structure for getdents(). Note that this structure is different from
@@ -28,8 +31,8 @@ struct linux_dirent;
// Syscall wrappers.
uptr internal_getdents(fd_t fd, struct linux_dirent *dirp, unsigned int count);
-uptr internal_sigaltstack(const struct sigaltstack* ss,
- struct sigaltstack* oss);
+uptr internal_sigaltstack(const stack_t* ss,
+ stack_t* oss);
uptr internal_sigprocmask(int how, __sanitizer_sigset_t *set,
__sanitizer_sigset_t *oldset);
Index: gcc-7.1.0/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc
===================================================================
--- gcc-7.1.0.orig/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc
+++ gcc-7.1.0/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc
@@ -16,6 +16,7 @@
defined(__aarch64__) || defined(__powerpc64__) || \
defined(__s390__))
+#include <signal.h>
#include "sanitizer_stoptheworld.h"
#include "sanitizer_platform_limits_posix.h"
@@ -273,7 +274,7 @@ static int TracerThread(void* argument)
// Alternate stack for signal handling.
InternalScopedBuffer<char> handler_stack_memory(kHandlerStackSize);
- struct sigaltstack handler_stack;
+ stack_t handler_stack;
internal_memset(&handler_stack, 0, sizeof(handler_stack));
handler_stack.ss_sp = handler_stack_memory.data();
handler_stack.ss_size = kHandlerStackSize;
Index: gcc-7.1.0/libsanitizer/tsan/tsan_platform_linux.cc
===================================================================
--- gcc-7.1.0.orig/libsanitizer/tsan/tsan_platform_linux.cc
+++ gcc-7.1.0/libsanitizer/tsan/tsan_platform_linux.cc
@@ -14,6 +14,7 @@
#include "sanitizer_common/sanitizer_platform.h"
#if SANITIZER_LINUX || SANITIZER_FREEBSD
+#include <signal.h>
#include "sanitizer_common/sanitizer_common.h"
#include "sanitizer_common/sanitizer_libc.h"
#include "sanitizer_common/sanitizer_linux.h"
@@ -28,7 +29,6 @@
#include <fcntl.h>
#include <pthread.h>
-#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -287,7 +287,7 @@ void InitializePlatform() {
int ExtractResolvFDs(void *state, int *fds, int nfd) {
#if SANITIZER_LINUX && !SANITIZER_ANDROID
int cnt = 0;
- __res_state *statp = (__res_state*)state;
+ res_state statp = (res_state)state;
for (int i = 0; i < MAXNS && cnt < nfd; i++) {
if (statp->_u._ext.nsaddrs[i] && statp->_u._ext.nssocks[i] != -1)
fds[cnt++] = statp->_u._ext.nssocks[i];
Index: gcc-7.1.0/libsanitizer/sanitizer_common/sanitizer_linux_libcdep.cc
===================================================================
--- gcc-7.1.0.orig/libsanitizer/sanitizer_common/sanitizer_linux_libcdep.cc
+++ gcc-7.1.0/libsanitizer/sanitizer_common/sanitizer_linux_libcdep.cc
@@ -14,6 +14,7 @@
#if SANITIZER_FREEBSD || SANITIZER_LINUX
+#include <signal.h>
#include "sanitizer_allocator_internal.h"
#include "sanitizer_atomic.h"
#include "sanitizer_common.h"
@@ -30,7 +31,6 @@
#include <link.h>
#include <pthread.h>
-#include <signal.h>
#include <sys/resource.h>
#include <syslog.h>
Index: gcc-7.1.0/libsanitizer/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc
===================================================================
--- gcc-7.1.0.orig/libsanitizer/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc
+++ gcc-7.1.0/libsanitizer/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc
@@ -12,6 +12,7 @@
#include "sanitizer_platform.h"
#if SANITIZER_POSIX
+#include <signal.h>
#include "sanitizer_allocator_internal.h"
#include "sanitizer_common.h"
#include "sanitizer_flags.h"

View File

@ -0,0 +1,119 @@
--- branches/gcc-6-branch/libgcc/config/aarch64/linux-unwind.h 2017/07/04 10:22:56 249956
--- b/libgcc/config/aarch64/linux-unwind.h 2017/07/04 10:23:57 249957
@@ -52,7 +52,7 @@
struct rt_sigframe
{
siginfo_t info;
- struct ucontext uc;
+ ucontext_t uc;
};
struct rt_sigframe *rt_;
--- branches/gcc-6-branch/libgcc/config/alpha/linux-unwind.h 2017/07/04 10:22:56 249956
--- b/libgcc/config/alpha/linux-unwind.h 2017/07/04 10:23:57 249957
@@ -51,7 +51,7 @@
{
struct rt_sigframe {
siginfo_t info;
- struct ucontext uc;
+ ucontext_t uc;
} *rt_ = context->cfa;
sc = &rt_->uc.uc_mcontext;
}
--- branches/gcc-6-branch/libgcc/config/bfin/linux-unwind.h 2017/07/04 10:22:56 249956
--- b/libgcc/config/bfin/linux-unwind.h 2017/07/04 10:23:57 249957
@@ -52,7 +52,7 @@
void *puc;
char retcode[8];
siginfo_t info;
- struct ucontext uc;
+ ucontext_t uc;
} *rt_ = context->cfa;
/* The void * cast is necessary to avoid an aliasing warning.
--- branches/gcc-6-branch/libgcc/config/i386/linux-unwind.h 2017/07/04 10:22:56 249956
--- b/libgcc/config/i386/linux-unwind.h 2017/07/04 10:23:57 249957
@@ -58,7 +58,7 @@
if (*(unsigned char *)(pc+0) == 0x48
&& *(unsigned long long *)(pc+1) == RT_SIGRETURN_SYSCALL)
{
- struct ucontext *uc_ = context->cfa;
+ ucontext_t *uc_ = context->cfa;
/* The void * cast is necessary to avoid an aliasing warning.
The aliasing warning is correct, but should not be a problem
because it does not alias anything. */
@@ -138,7 +138,7 @@
siginfo_t *pinfo;
void *puc;
siginfo_t info;
- struct ucontext uc;
+ ucontext_t uc;
} *rt_ = context->cfa;
/* The void * cast is necessary to avoid an aliasing warning.
The aliasing warning is correct, but should not be a problem
--- branches/gcc-6-branch/libgcc/config/m68k/linux-unwind.h 2017/07/04 10:22:56 249956
--- b/libgcc/config/m68k/linux-unwind.h 2017/07/04 10:23:57 249957
@@ -33,7 +33,7 @@
/* <sys/ucontext.h> is unfortunately broken right now. */
struct uw_ucontext {
unsigned long uc_flags;
- struct ucontext *uc_link;
+ ucontext_t *uc_link;
stack_t uc_stack;
mcontext_t uc_mcontext;
unsigned long uc_filler[80];
--- branches/gcc-6-branch/libgcc/config/nios2/linux-unwind.h 2017/07/04 10:22:56 249956
--- b/libgcc/config/nios2/linux-unwind.h 2017/07/04 10:23:57 249957
@@ -38,7 +38,7 @@
struct nios2_ucontext {
unsigned long uc_flags;
- struct ucontext *uc_link;
+ ucontext_t *uc_link;
stack_t uc_stack;
struct nios2_mcontext uc_mcontext;
sigset_t uc_sigmask; /* mask last for extensibility */
--- branches/gcc-6-branch/libgcc/config/pa/linux-unwind.h 2017/07/04 10:22:56 249956
--- b/libgcc/config/pa/linux-unwind.h 2017/07/04 10:23:57 249957
@@ -80,7 +80,7 @@
struct sigcontext *sc;
struct rt_sigframe {
siginfo_t info;
- struct ucontext uc;
+ ucontext_t uc;
} *frame;
/* rt_sigreturn trampoline:
--- branches/gcc-6-branch/libgcc/config/sh/linux-unwind.h 2017/07/04 10:22:56 249956
--- b/libgcc/config/sh/linux-unwind.h 2017/07/04 10:23:57 249957
@@ -180,7 +180,7 @@
{
struct rt_sigframe {
siginfo_t info;
- struct ucontext uc;
+ ucontext_t uc;
} *rt_ = context->cfa;
/* The void * cast is necessary to avoid an aliasing warning.
The aliasing warning is correct, but should not be a problem
--- branches/gcc-6-branch/libgcc/config/tilepro/linux-unwind.h 2017/07/04 10:22:56 249956
--- b/libgcc/config/tilepro/linux-unwind.h 2017/07/04 10:23:57 249957
@@ -61,7 +61,7 @@
struct rt_sigframe {
unsigned char save_area[C_ABI_SAVE_AREA_SIZE];
siginfo_t info;
- struct ucontext uc;
+ ucontext_t uc;
} *rt_;
/* Return if this is not a signal handler. */
--- branches/gcc-6-branch/libgcc/config/xtensa/linux-unwind.h 2017/07/04 10:22:56 249956
--- b/libgcc/config/xtensa/linux-unwind.h 2017/07/04 10:23:57 249957
@@ -67,7 +67,7 @@
struct rt_sigframe {
siginfo_t info;
- struct ucontext uc;
+ ucontext_t uc;
} *rt_;
/* movi a2, __NR_rt_sigreturn; syscall */

14
gcc-shared-openmp.patch Normal file
View File

@ -0,0 +1,14 @@
diff -Naur ./libgomp/configure.tgt ../../gcc-4.2.0/libgomp/configure.tgt
--- ./libgomp/configure.tgt 2006-12-02 18:02:00.000000000 -0200
+++ ../../gcc-4.2.0/libgomp/configure.tgt 2007-07-07 15:24:51.000000000 -0300
@@ -17,8 +17,8 @@
case "${target}" in
*-*-linux*)
- XCFLAGS="${XCFLAGS} -ftls-model=initial-exec"
- XLDFLAGS="${XLDFLAGS} -Wl,-z,nodlopen"
+# XCFLAGS="${XCFLAGS} -ftls-model=initial-exec"
+# XLDFLAGS="${XLDFLAGS} -Wl,-z,nodlopen"
;;
esac
fi

25
gcc4-java-nomulti.patch Normal file
View File

@ -0,0 +1,25 @@
--- libjava/configure.ac.jj 2004-08-16 21:13:29.000000000 +0200
+++ libjava/configure.ac 2004-08-21 11:44:59.020755542 +0200
@@ -367,6 +367,10 @@ use_gtk_awt=""
TOOLKIT=
AC_SUBST(TOOLKIT)
+if test -n "${with_multisubdir}"; then
+ peerlibs=no
+fi
+
for peer in $peerlibs ; do
case $peer in
xlib)
--- libjava/configure.jj 2004-08-16 21:22:14.000000000 +0200
+++ libjava/configure 2004-08-21 11:45:16.260738060 +0200
@@ -4118,6 +4118,9 @@ use_gtk_awt=""
# The default toolkit to use is the first one specified.
TOOLKIT=
+if test -n "${with_multisubdir}"; then
+ peerlibs=no
+fi
for peer in $peerlibs ; do
case $peer in

1936
gcc6.spec Normal file

File diff suppressed because it is too large Load Diff