changeset 781:51ca07f4ffe3

* tests/signal2.c (cause_illegal_access): PowerPC only generates alignment exceptions in little-endian mode, so make that a special case. * tests/mutex3.c: Include POSIX headers before feature tests to prevent spurious CYG_TEST_NA.
author jlarmour
date Mon, 03 Mar 2003 05:15:32 +0000
parents 57c645adccd8
children a9ff9f7e3010
files packages/compat/posix/current/ChangeLog packages/compat/posix/current/tests/mutex3.c packages/compat/posix/current/tests/signal2.c
diffstat 3 files changed, 22 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/packages/compat/posix/current/ChangeLog
+++ b/packages/compat/posix/current/ChangeLog
@@ -1,3 +1,12 @@
+2003-03-03  Jonathan Larmour  <jifl@eCosCentric.com>
+
+	* tests/signal2.c (cause_illegal_access): PowerPC only generates
+	alignment exceptions in little-endian mode, so make that a special
+	case.
+
+	* tests/mutex3.c: Include POSIX headers before feature tests to
+	prevent spurious CYG_TEST_NA.
+
 2003-02-24  Jonathan Larmour  <jifl@eCosCentric.com>
 
 	* doc/posix.sgml: Expunge EL/IX. Dead standard.
--- a/packages/compat/posix/current/tests/mutex3.c
+++ b/packages/compat/posix/current/tests/mutex3.c
@@ -56,6 +56,13 @@
 #include <pkgconf/kernel.h>
 #endif
 
+#ifdef CYGPKG_ISOINFRA
+# include <sys/types.h>
+# include <pthread.h>
+# include <semaphore.h>
+# include <time.h>
+#endif
+
 #if !defined(CYGPKG_POSIX_PTHREAD)
 #define NA_MSG "POSIX threads not enabled"
 
@@ -86,11 +93,6 @@ cyg_start(void)
 }
 #else
 
-#include <sys/types.h>
-#include <pthread.h>
-#include <semaphore.h>
-#include <time.h>
-
 #include <cyg/infra/cyg_ass.h>
 #include <cyg/infra/cyg_trac.h>
 #include <cyg/infra/diag.h>             // diag_printf
--- a/packages/compat/posix/current/tests/signal2.c
+++ b/packages/compat/posix/current/tests/signal2.c
@@ -82,7 +82,9 @@ static jmp_buf jbuf;
 
 //--------------------------------------------------------------------------
 
-#ifdef CYGNUM_HAL_EXCEPTION_DATA_UNALIGNED_ACCESS
+// PowerPC is a special case as it has the alignment exception, but it
+// doesn't trigger unless in little-endian mode.
+#if defined(CYGNUM_HAL_EXCEPTION_DATA_UNALIGNED_ACCESS) && !(defined(CYGPKG_HAL_POWERPC) && (CYG_BYTEORDER==CYG_MSBFIRST))
 
 static void
 cause_unaligned_access(void)
@@ -243,7 +245,9 @@ int main(int argc, char **argv)
 #endif
 #endif
 
-#ifdef CYGNUM_HAL_EXCEPTION_DATA_UNALIGNED_ACCESS
+    // PowerPC is a special case as it has the alignment exception, but it
+    // doesn't trigger unless in little-endian mode.
+#if defined(CYGNUM_HAL_EXCEPTION_DATA_UNALIGNED_ACCESS) && !(defined(CYGPKG_HAL_POWERPC) && (CYG_BYTEORDER==CYG_MSBFIRST))
     
     CYG_TEST_INFO("Test 1 - provoke unaligned access");