From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11135 invoked by alias); 29 Dec 2007 03:03:47 -0000 Received: (qmail 11104 invoked by uid 367); 29 Dec 2007 03:03:45 -0000 Date: Sat, 29 Dec 2007 03:03:00 -0000 Message-ID: <20071229030345.11089.qmail@sourceware.org> From: cagney@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Fix typo; "==" vs "!=". X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: cb8bb46ddd11fa1b1521e2bdd4349172c36a23e6 X-Git-Newrev: 9fe41592a9cf5fe5eb8c460f8b1506035eac4651 Mailing-List: contact frysk-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: frysk-cvs-owner@sourceware.org Reply-To: frysk@sourceware.org X-SW-Source: 2007-q4/txt/msg00636.txt.bz2 The branch, master has been updated via 9fe41592a9cf5fe5eb8c460f8b1506035eac4651 (commit) via 00aba854dfdcad4d1693f67637ecd15973c15c10 (commit) via 228bc1e2bb2efc5e10d8ab03eba853e19ea619d8 (commit) via 445f0bcd01204b750aa02e75783e80b04b3341b4 (commit) from cb8bb46ddd11fa1b1521e2bdd4349172c36a23e6 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 9fe41592a9cf5fe5eb8c460f8b1506035eac4651 Author: Andrew Cagney Date: Fri Dec 28 22:03:40 2007 -0500 Fix typo; "==" vs "!=". frysk-core/frysk/syscall/ChangeLog 2007-12-28 Andrew Cagney * LinuxIA32SyscallTable.java (getSyscall(Task)): Fix typo, test if equals IPC_NUM. * LinuxPPC64SyscallTable.java: Ditto. * LinuxPPC32SyscallTable.java: Ditto. commit 00aba854dfdcad4d1693f67637ecd15973c15c10 Author: Andrew Cagney Date: Fri Dec 28 21:53:56 2007 -0500 Add unresolvedOn32On64. frysk-core/frysk/util/ChangeLog 2007-12-28 Andrew Cagney * TestCoredumpAction.java (testGeneralPurposeRegisters()): Mark as unresolved on 32-on-64, bug 5525. frysk-sys/frysk/junit/ChangeLog 2007-12-28 Andrew Cagney * TestCase.java (unresolvedOn32On64()): New. commit 228bc1e2bb2efc5e10d8ab03eba853e19ea619d8 Author: Andrew Cagney Date: Fri Dec 28 21:24:32 2007 -0500 Replace skip32on64 with missing32or64. frysk-core/frysk/proc/ChangeLog 2007-12-28 Andrew Cagney * TestIsa.java (test64To32To64()): Update; skip32on64 renamed to missing32or64. frysk-sys/frysk/junit/ChangeLog 2007-12-28 Andrew Cagney * TestCase.java (missing32or64()): Rename skip32on64(); check both 32-bit and 64-bit library paths are valid. commit 445f0bcd01204b750aa02e75783e80b04b3341b4 Author: Andrew Cagney Date: Fri Dec 28 19:39:43 2007 -0500 Set up 32-on-64 and pure 32 configs differently. frysk-sys/frysk/ChangeLog 2007-12-28 Andrew Cagney * cni/Config.cxx-in (Config::createInstallConfig) (Config::createInstallConfig32, Config::createInstallConfig64) (Config::createBuildConfig, Config::createBuildConfig32) (Config::createBuildConfig64): Set thePkgLib32Dir when 32-bit testing needed. * TestConfig.java (verify(int)): Replace verify(boolean). ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/ChangeLog | 3 + frysk-core/frysk/proc/TestIsa.java | 2 +- frysk-core/frysk/syscall/ChangeLog | 5 ++ .../frysk/syscall/LinuxIA32SyscallTable.java | 2 +- .../frysk/syscall/LinuxPPC32SyscallTable.java | 2 +- .../frysk/syscall/LinuxPPC64SyscallTable.java | 2 +- frysk-core/frysk/util/ChangeLog | 5 ++ frysk-core/frysk/util/TestCoredumpAction.java | 11 +-- frysk-sys/frysk/ChangeLog | 7 ++ frysk-sys/frysk/TestConfig.java | 71 ++++++++++++++------ frysk-sys/frysk/cni/Config.cxx-in | 54 ++++++--------- frysk-sys/frysk/junit/ChangeLog | 5 ++ frysk-sys/frysk/junit/TestCase.java | 32 +++++++-- 13 files changed, 129 insertions(+), 72 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index 5aa3bc6..0bccd95 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,5 +1,8 @@ 2007-12-28 Andrew Cagney + * TestIsa.java (test64To32To64()): Update; skip32on64 renamed to + missing32or64. + * TestIsa.java (test64To32To64()): Use skip32on64(). * TestTaskSyscallObserver.java (SyscallInterruptObserver): In diff --git a/frysk-core/frysk/proc/TestIsa.java b/frysk-core/frysk/proc/TestIsa.java index 4eab6f2..1ecb4e3 100644 --- a/frysk-core/frysk/proc/TestIsa.java +++ b/frysk-core/frysk/proc/TestIsa.java @@ -259,7 +259,7 @@ public class TestIsa } public void test64To32To64 () { - if (skip32on64()) + if (missing32or64()) return; ExecCommand invoke64 = new ExecCommand(ExecCommand.Executable.BIT64); diff --git a/frysk-core/frysk/syscall/ChangeLog b/frysk-core/frysk/syscall/ChangeLog index 3a25b0f..5069f24 100644 --- a/frysk-core/frysk/syscall/ChangeLog +++ b/frysk-core/frysk/syscall/ChangeLog @@ -1,5 +1,10 @@ 2007-12-28 Andrew Cagney + * LinuxIA32SyscallTable.java (getSyscall(Task)): Fix typo, test if + equals IPC_NUM. + * LinuxPPC64SyscallTable.java: Ditto. + * LinuxPPC32SyscallTable.java: Ditto. + * package.html: New. * Syscall.java: Move from frysk.proc. * SyscallTable.java: Move from frysk.proc. diff --git a/frysk-core/frysk/syscall/LinuxIA32SyscallTable.java b/frysk-core/frysk/syscall/LinuxIA32SyscallTable.java index 328b7ed..1f94cbd 100644 --- a/frysk-core/frysk/syscall/LinuxIA32SyscallTable.java +++ b/frysk-core/frysk/syscall/LinuxIA32SyscallTable.java @@ -516,7 +516,7 @@ class LinuxIA32SyscallTable extends SyscallTable { if (syscall == SOCKET_NUM) return findSubcall(socketSubcallList, subcall(task), unknownSocketSubSyscall); - else if (syscall != IPC_NUM) + else if (syscall == IPC_NUM) return findSubcall(ipcSubcallList, subcall(task), unknownIpcSubSyscall); else diff --git a/frysk-core/frysk/syscall/LinuxPPC32SyscallTable.java b/frysk-core/frysk/syscall/LinuxPPC32SyscallTable.java index 2115f29..13f8e52 100644 --- a/frysk-core/frysk/syscall/LinuxPPC32SyscallTable.java +++ b/frysk-core/frysk/syscall/LinuxPPC32SyscallTable.java @@ -530,7 +530,7 @@ class LinuxPPC32SyscallTable extends SyscallTable { if (syscall == SOCKET_NUM) return findSubcall(socketSubcallList, subcall(task), unknownSocketSubSyscall); - else if (syscall != IPC_NUM) + else if (syscall == IPC_NUM) return findSubcall(ipcSubcallList, subcall(task), unknownIpcSubSyscall); else diff --git a/frysk-core/frysk/syscall/LinuxPPC64SyscallTable.java b/frysk-core/frysk/syscall/LinuxPPC64SyscallTable.java index a2bb342..11fd634 100644 --- a/frysk-core/frysk/syscall/LinuxPPC64SyscallTable.java +++ b/frysk-core/frysk/syscall/LinuxPPC64SyscallTable.java @@ -535,7 +535,7 @@ class LinuxPPC64SyscallTable extends SyscallTable { if (syscall == SOCKET_NUM) return findSubcall(socketSubcallList, subcall(task), unknownSocketSubSyscall); - else if (syscall != IPC_NUM) + else if (syscall == IPC_NUM) return findSubcall(ipcSubcallList, subcall(task), unknownIpcSubSyscall); else diff --git a/frysk-core/frysk/util/ChangeLog b/frysk-core/frysk/util/ChangeLog index 124aaac..cce17d9 100644 --- a/frysk-core/frysk/util/ChangeLog +++ b/frysk-core/frysk/util/ChangeLog @@ -1,3 +1,8 @@ +2007-12-28 Andrew Cagney + + * TestCoredumpAction.java (testGeneralPurposeRegisters()): Mark as + unresolved on 32-on-64, bug 5525. + 2007-12-21 Andrew Cagney * TestCoredumpAction.java (getArch(String)): Delete. diff --git a/frysk-core/frysk/util/TestCoredumpAction.java b/frysk-core/frysk/util/TestCoredumpAction.java index 61fce34..f0ae0d4 100644 --- a/frysk-core/frysk/util/TestCoredumpAction.java +++ b/frysk-core/frysk/util/TestCoredumpAction.java @@ -64,7 +64,6 @@ import frysk.proc.dead.LinuxHost; import frysk.testbed.DaemonBlockedAtEntry; import frysk.testbed.SlaveOffspring; import frysk.testbed.TestLib; -import frysk.Config; public class TestCoredumpAction extends TestLib @@ -201,13 +200,9 @@ public class TestCoredumpAction } - public void testGeneralPurposeRegisters () - { - - File exec32 = Config.getPkgLib32File(null); - File nativeFile = Config.getPkgLibFile(null); - if (nativeFile == exec32) - return; + public void testGeneralPurposeRegisters () { + if (unresolvedOn32On64(5525)) + return; // Construct a process Proc ackProc = giveMeABlockedProc(); diff --git a/frysk-sys/frysk/ChangeLog b/frysk-sys/frysk/ChangeLog index d81f20e..9ac5273 100644 --- a/frysk-sys/frysk/ChangeLog +++ b/frysk-sys/frysk/ChangeLog @@ -1,5 +1,12 @@ 2007-12-28 Andrew Cagney + * cni/Config.cxx-in (Config::createInstallConfig) + (Config::createInstallConfig32, Config::createInstallConfig64) + (Config::createBuildConfig, Config::createBuildConfig32) + (Config::createBuildConfig64): Set thePkgLib32Dir when 32-bit + testing needed. + * TestConfig.java (verify(int)): Replace verify(boolean). + * cni/Config.cxx-in (Config::createInstall32On64Config): Delete. (Config::createBuild32On64Config): Delete. (Config::createInstallConfig): When 64-bit, set 32- and 64- bit paths. diff --git a/frysk-sys/frysk/TestConfig.java b/frysk-sys/frysk/TestConfig.java index bf87364..8f6dcf6 100644 --- a/frysk-sys/frysk/TestConfig.java +++ b/frysk-sys/frysk/TestConfig.java @@ -65,23 +65,48 @@ public class TestConfig Config.set (old); } - private void validate(boolean pure) { + private void validate(int pure) { // The expected paths are valid. - assertNotNull("getGladeDir", Config.getGladeDir ()); - assertNotNull("getHelpDir", Config.getHelpDir ()); - assertNotNull("getImagesDir", Config.getImagesDir ()); - assertNotNull("getBinFile", Config.getBinFile (null)); - assertNotNull("getPkgDataFile", Config.getPkgDataFile (null)); - assertNotNull("getPkgLibFile", Config.getPkgLibFile (null)); - if (pure) { - assertNull("getPkgLib32File", Config.getPkgLib32File(null)); + assertNotNull("getGladeDir", Config.getGladeDir()); + assertNotNull("getHelpDir", Config.getHelpDir()); + assertNotNull("getImagesDir", Config.getImagesDir()); + assertNotNull("getBinFile", Config.getBinFile(null)); + assertNotNull("getPkgDataFile", Config.getPkgDataFile(null)); + assertNotNull("getPkgLibFile", Config.getPkgLibFile(null)); + + switch (pure) { + case 32: + // Testing a pure 32-bit environment; the corresponding + // 64-bit lib must be NULL. + assertSame("getPkgLib32File", Config.getPkgLibFile(null), + Config.getPkgLib32File(null)); assertNull("getPkgLib64File", Config.getPkgLib64File(null)); - } else { + break; + case 64: + // Testing a pure 64-bit environment; the corresponding + // 32-bit lib must be NULL. + assertNull("getPkgLib32File", Config.getPkgLib32File(null)); + assertSame("getPkgLib64File", Config.getPkgLibFile(null), + Config.getPkgLib64File(null)); + break; + case -32: + // Testing a 32-on-64 environment. + assertNull("getPkgLib32File", Config.getPkgLib32File(null)); + assertNotNull("getPkgLib64File", Config.getPkgLib64File(null)); + assertTrue("getPkgLibFile != getPkgLib64File", + Config.getPkgLibFile(null) + != Config.getPkgLib64File(null)); + break; + case -64: + // Testing a 64-on-64 environment assertNotNull("getPkgLib32File", Config.getPkgLib32File(null)); assertNotNull("getPkgLib64File", Config.getPkgLib64File(null)); - assertEquals("getPkgLibFile is getPkgLib64File", - Config.getPkgLibFile(null), - Config.getPkgLib64File(null)); + assertSame("getPkgLibFile == getPkgLib64File", + Config.getPkgLibFile(null), + Config.getPkgLib64File(null)); + break; + default: + fail("bad switch"); } } @@ -94,10 +119,10 @@ public class TestConfig Config.set (Config.createInstallConfig ()); switch (Config.getWordSize()) { case 32: - validate(true); + validate(32); break; case 64: - validate(false); + validate(-64); break; default: fail("unknown word size"); @@ -113,10 +138,10 @@ public class TestConfig Config.set (Config.createBuildConfig ("src-dir", "build-dir")); switch (Config.getWordSize()) { case 32: - validate(true); + validate(32); break; case 64: - validate(false); + validate(-64); break; default: fail("unknown word size"); @@ -127,8 +152,10 @@ public class TestConfig Config.set (Config.createBuildConfig32("src-dir", "build-dir")); switch (Config.getWordSize()) { case 32: + validate(32); + break; case 64: - validate (true); + validate(-32); break; default: fail("unknown word size"); @@ -138,8 +165,10 @@ public class TestConfig Config.set (Config.createInstallConfig32()); switch (Config.getWordSize()) { case 32: + validate(32); + break; case 64: - validate (true); + validate(-32); break; default: fail("unknown word size"); @@ -152,7 +181,7 @@ public class TestConfig assertNull("config", Config.get()); break; case 64: - validate (true); + validate(64); break; default: fail("unknown word size"); @@ -165,7 +194,7 @@ public class TestConfig assertNull("config", Config.get()); break; case 64: - validate (true); + validate(64); break; default: fail("unknown word size"); diff --git a/frysk-sys/frysk/cni/Config.cxx-in b/frysk-sys/frysk/cni/Config.cxx-in index 23bd626..b9d176c 100644 --- a/frysk-sys/frysk/cni/Config.cxx-in +++ b/frysk-sys/frysk/cni/Config.cxx-in @@ -104,12 +104,12 @@ frysk::Config::createInstallConfig () config->thePkgLibDir = asFile ("@pkglibdir@"); switch (sizeof(void*)) { case 4: - config->thePkgLib32Dir = NULL; + config->thePkgLib32Dir = config->thePkgLibDir; config->thePkgLib64Dir = NULL; break; case 8: config->thePkgLib32Dir = asFile ("@pkglib32dir@"); - config->thePkgLib64Dir = asFile ("@pkglib64dir@"); + config->thePkgLib64Dir = config->thePkgLibDir; break; } return config; @@ -118,45 +118,40 @@ frysk::Config::createInstallConfig () frysk::Config* frysk::Config::createInstallConfig32 () { - java::io::File* pkgLibDir; + frysk::Config* config = frysk::Config::createInstallConfig(); switch (sizeof(long)) { case 4: - pkgLibDir = asFile("@pkglibdir@"); + // default break; case 8: // Test against 32-bit binaries. - pkgLibDir = asFile ("@pkglib32dir@"); + config->thePkgLibDir = config->thePkgLib32Dir; + // Disable "native" 32-bit. + config->thePkgLib32Dir = NULL; break; default: return NULL; } - frysk::Config* config = frysk::Config::createInstallConfig(); - config->thePkgLibDir = pkgLibDir; - config->thePkgLib32Dir = NULL; - config->thePkgLib64Dir = NULL; return config; } frysk::Config* frysk::Config::createInstallConfig64 () { - java::io::File* pkgLibDir; + frysk::Config* config = frysk::Config::createInstallConfig(); switch (sizeof(long)) { case 4: // 64-bit target not supported on 32-bit host. return NULL; case 8: - pkgLibDir = asFile ("@pkglibdir@"); + // disable 32-on-64 testing. + config->thePkgLib32Dir = NULL; break; default: return NULL; } - frysk::Config* config = frysk::Config::createInstallConfig(); - config->thePkgLibDir = pkgLibDir; - config->thePkgLib32Dir = NULL; - config->thePkgLib64Dir = NULL; return config; } @@ -173,12 +168,12 @@ frysk::Config::createBuildConfig (jstring absSrcDir, config->thePkgLibDir = asFile (absBuildDir, "/frysk/pkglibdir/"); switch (sizeof(void*)) { case 4: - config->thePkgLib32Dir = NULL; + config->thePkgLib32Dir = config->thePkgLibDir; config->thePkgLib64Dir = NULL; break; case 8: config->thePkgLib32Dir = asFile (absBuildDir, "/frysk/pkglibdir/arch32/"); - config->thePkgLib64Dir = asFile (absBuildDir, "/frysk/pkglibdir/"); + config->thePkgLib64Dir = config->thePkgLibDir; break; } return config; @@ -188,24 +183,22 @@ frysk::Config* frysk::Config::createBuildConfig32 (jstring absSrcDir, jstring absBuildDir) { - java::io::File* pkgLibDir; + frysk::Config* config = frysk::Config::createBuildConfig(absSrcDir, + absBuildDir); switch (sizeof(long)) { case 4: - pkgLibDir = asFile (absBuildDir, "/frysk/pkglibdir/"); + // default break; case 8: // Test against 32-bit binaries. - pkgLibDir = asFile (absBuildDir, "/frysk/pkglibdir/arch32/"); + config->thePkgLibDir = config->thePkgLib32Dir; + // disable cross testing. + config->thePkgLib32Dir = NULL; break; default: return NULL; } - frysk::Config* config = frysk::Config::createBuildConfig(absSrcDir, - absBuildDir); - config->thePkgLibDir = pkgLibDir; - config->thePkgLib32Dir = NULL; - config->thePkgLib64Dir = NULL; return config; } @@ -213,7 +206,8 @@ frysk::Config* frysk::Config::createBuildConfig64 (jstring absSrcDir, jstring absBuildDir) { - java::io::File* pkgLibDir; + frysk::Config* config = frysk::Config::createBuildConfig(absSrcDir, + absBuildDir); switch (sizeof(long)) { case 4: @@ -221,15 +215,11 @@ frysk::Config::createBuildConfig64 (jstring absSrcDir, return NULL; break; case 8: - pkgLibDir = asFile (absBuildDir, "/frysk/pkglibdir/"); + // disable cross testing + config->thePkgLib32Dir = NULL; break; default: return NULL; } - frysk::Config* config = frysk::Config::createBuildConfig(absSrcDir, - absBuildDir); - config->thePkgLibDir = pkgLibDir; - config->thePkgLib32Dir = NULL; - config->thePkgLib64Dir = NULL; return config; } diff --git a/frysk-sys/frysk/junit/ChangeLog b/frysk-sys/frysk/junit/ChangeLog index 96d485c..1fef743 100644 --- a/frysk-sys/frysk/junit/ChangeLog +++ b/frysk-sys/frysk/junit/ChangeLog @@ -1,5 +1,10 @@ 2007-12-28 Andrew Cagney + * TestCase.java (unresolvedOn32On64()): New. + + * TestCase.java (missing32or64()): Rename skip32on64(); check both + 32-bit and 64-bit library paths are valid. + * Result.java (Problem.compareTo(Object)): New. * Results.java: Replace HashSet with TreeSet. diff --git a/frysk-sys/frysk/junit/TestCase.java b/frysk-sys/frysk/junit/TestCase.java index 9e15ef7..8ceb981 100644 --- a/frysk-sys/frysk/junit/TestCase.java +++ b/frysk-sys/frysk/junit/TestCase.java @@ -73,17 +73,21 @@ public class TestCase } /** - * A method that returns true, and reports either UNSUPPORTED - * (32-bit) or UNRESOLVED (64-bit) when 32-on-64-bit tests are not - * possible. + * The test requires both 32-bit and 64-bit executables. + * + * This method returns true, and reports either UNSUPPORTED + * (32-bit) or UNRESOLVED (64-bit), when a full 32-bit and 64-bit + * testing environment is not available. */ - protected static boolean skip32on64() { + protected static boolean missing32or64() { + String msg = "requires both 32-bit and 64-bit"; switch (Config.getWordSize()) { case 32: - return Runner.unsupported("32-on-64", true); + return Runner.unsupported(msg, true); case 64: - return Runner.unresolved("32-on-64", - Config.getPkgLib32File(null) == null); + return Runner.unresolved(msg, + Config.getPkgLib32File(null) == null + || Config.getPkgLib64File(null) == null); default: throw new RuntimeException("unknown word-size: " + Config.getWordSize()); @@ -138,6 +142,20 @@ public class TestCase } /** + * The test has problems that have not been resolved on 64-bit + * systems trying to control a 32-bit process; see BUG for more + * details. Returns true and reports UNRESOLVED when testing + * 32-bit programs on a 64-bit system. + */ + protected static boolean unresolvedOn32On64(int bug) { + // 32-on-64 sets lib32 to NULL. + return Runner.unresolved(bug, + Config.getPkgLib32File(null) == null + && (Config.getPkgLibFile(null) + != Config.getPkgLib64File(null))); + } + + /** * Results from uname(2) call. */ private static Uname uname; hooks/post-receive -- frysk system monitor/debugger