diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7b87da391c5501a70f04d940ae78ec8b92305177..8b44f8f7f2c35b5cd01fb7724aa5b07b3af22117 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2010-08-21  Olivier Hainque  <hainque@adacore.com>
+
+	* config/rs6000/vxworks.h:  (PREFERRED_STACK_BOUNDARY,
+	ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
+
 2010-08-20  Jan Hubicka  <jh@suse.cz>
 
 	* tree-pass.h (pass_ipa_cdtor_merge): New function.
diff --git a/gcc/config/rs6000/vxworks.h b/gcc/config/rs6000/vxworks.h
index c302ad2015d3afd89b8cd8a4ec1d583af54c3381..d2aecec559f0bf251e6b08348ba58b85f87166d2 100644
--- a/gcc/config/rs6000/vxworks.h
+++ b/gcc/config/rs6000/vxworks.h
@@ -113,10 +113,17 @@ VXWORKS_ADDITIONAL_CPP_SPEC
 #undef SDATA_DEFAULT_SIZE
 #define SDATA_DEFAULT_SIZE (TARGET_VXWORKS_RTP ? 8 : 0)
 
+/* Enforce 16bytes alignment for the stack pointer, to permit general
+   compliance with e.g. Altivec instructions requirements.  Make sure
+   this isn't overruled by the EABI constraints.  */
+
 #undef  STACK_BOUNDARY
 #define STACK_BOUNDARY (16*BITS_PER_UNIT)
-/* Override sysv4.h, reset to the default.  */
+
 #undef  PREFERRED_STACK_BOUNDARY
+#define PREFERRED_STACK_BOUNDARY STACK_BOUNDARY
+
+#undef  ABI_STACK_BOUNDARY
 
 /* Make -mcpu=8540 imply SPE.  ISEL is automatically enabled, the
    others must be done by hand.  Handle -mrtp.  Disable -fPIC