From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1894 invoked by alias); 4 Mar 2008 04:52:51 -0000 Received: (qmail 1841 invoked by uid 367); 4 Mar 2008 04:52:43 -0000 Date: Tue, 04 Mar 2008 04:52:00 -0000 Message-ID: <20080304045243.1826.qmail@sourceware.org> From: cagney@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Replace CompilerVersion with BuildCompiler; fix #5858. X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 8619a25b9a745c72cb2484767062146dd4c8166c X-Git-Newrev: 7a6afe575bcd1f6ca52d55c97c0fe77a1b248477 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: 2008-q1/txt/msg00302.txt.bz2 The branch, master has been updated via 7a6afe575bcd1f6ca52d55c97c0fe77a1b248477 (commit) via 6bf23c845cfdb68a55d9804d588b26906d69c123 (commit) from 8619a25b9a745c72cb2484767062146dd4c8166c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 7a6afe575bcd1f6ca52d55c97c0fe77a1b248477 Author: Andrew Cagney Date: Mon Mar 3 23:51:49 2008 -0500 Replace CompilerVersion with BuildCompiler; fix #5858. frysk-core/frysk/value/ChangeLog 2008-03-03 Andrew Cagney * TestClass.java: Use frysk.config.BuildCompiler. * TestInterface.java: Ditto. frysk-sys/frysk/config/ChangeLog 2008-03-03 Andrew Cagney * BuildCompiler.java: Replace CompilerVersion.java * cni/BuildCompiler.cxx: Replace cni/CompilerVersion.cxx * TestBuildCompiler.java: New. frysk-sys/frysk/junit/ChangeLog 2008-03-03 Andrew Cagney * TestCase.java (compilerVersionGreaterThanOrEqualTo()): Delete. (unresolvedCompilerNoSupportForAT_CLASS()): Delete. (unresolvedCompilerNoSupportForAT_INTERFACE()): Delete. commit 6bf23c845cfdb68a55d9804d588b26906d69c123 Author: Andrew Cagney Date: Mon Mar 3 22:31:34 2008 -0500 Factor out FryskVersion from Config. frysk-core/frysk/util/ChangeLog 2008-03-03 Andrew Cagney * CommandlineParser.java: Use FryskVersion. frysk-sys/frysk/config/ChangeLog 2008-03-03 Andrew Cagney * cni/FryskVersion.cxx-in (getVersion()): Extract from Config.cxx-in. * FryskVersion.java: Extract from Config.java. * Config.java (getVersion()): Delete. * cni/Config.cxx-in (getVersion()): Delete. frysk-sys/frysk/junit/ChangeLog 2008-03-03 Andrew Cagney * Runner.java: Pass FryskVersion to Parser. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/util/ChangeLog | 2 + frysk-core/frysk/util/CommandlineParser.java | 4 +- frysk-core/frysk/value/ChangeLog | 3 + frysk-core/frysk/value/TestClass.java | 33 ++++++------ frysk-core/frysk/value/TestInterface.java | 14 +++-- .../{CompilerVersion.java => BuildCompiler.java} | 36 ++++++++++++- frysk-sys/frysk/config/ChangeLog | 10 ++++ frysk-sys/frysk/config/Config.java | 6 -- .../frysk/config/FryskVersion.java | 24 ++++---- .../TestBuildCompiler.java} | 40 +++++++------- .../cni/{CompilerVersion.cxx => BuildCompiler.cxx} | 10 ++-- frysk-sys/frysk/config/cni/Config.cxx-in | 6 -- .../cni/Pid.cxx => config/cni/FryskVersion.cxx-in} | 23 ++++---- frysk-sys/frysk/junit/ChangeLog | 6 ++ frysk-sys/frysk/junit/Runner.java | 4 +- frysk-sys/frysk/junit/TestCase.java | 56 -------------------- 16 files changed, 135 insertions(+), 142 deletions(-) rename frysk-sys/frysk/config/{CompilerVersion.java => BuildCompiler.java} (72%) copy frysk-gui/frysk/bindir/frysk.java => frysk-sys/frysk/config/FryskVersion.java (84%) copy frysk-sys/frysk/{sys/TestProcessIdentifier.java => config/TestBuildCompiler.java} (70%) rename frysk-sys/frysk/config/cni/{CompilerVersion.cxx => BuildCompiler.cxx} (91%) copy frysk-sys/frysk/{sys/cni/Pid.cxx => config/cni/FryskVersion.cxx-in} (87%) First 500 lines of diff: diff --git a/frysk-core/frysk/util/ChangeLog b/frysk-core/frysk/util/ChangeLog index 232cc1c..92268a5 100644 --- a/frysk-core/frysk/util/ChangeLog +++ b/frysk-core/frysk/util/ChangeLog @@ -1,5 +1,7 @@ 2008-03-03 Andrew Cagney + * CommandlineParser.java: Use FryskVersion. + * TestCommandlineParser.java: Use frysk.config. * CommandlineParser.java: Ditto. * TestStackTraceAction.java: Ditto. diff --git a/frysk-core/frysk/util/CommandlineParser.java b/frysk-core/frysk/util/CommandlineParser.java index 3442864..b096128 100644 --- a/frysk-core/frysk/util/CommandlineParser.java +++ b/frysk-core/frysk/util/CommandlineParser.java @@ -39,6 +39,7 @@ package frysk.util; +import frysk.config.FryskVersion; import java.io.File; import java.util.LinkedList; import lib.dwfl.Elf; @@ -47,7 +48,6 @@ import lib.dwfl.ElfEHeader; import gnu.classpath.tools.getopt.Option; import gnu.classpath.tools.getopt.OptionException; import gnu.classpath.tools.getopt.Parser; -import frysk.config.Config; import frysk.rsl.LogOption; import frysk.rsl.Log; import frysk.dwfl.DwflCache; @@ -81,7 +81,7 @@ public class CommandlineParser { } public CommandlineParser(String programName) { - this(programName, Config.getVersion()); + this(programName, FryskVersion.getVersion()); } /** diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index 98598cf..52b78f9 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,5 +1,8 @@ 2008-03-03 Andrew Cagney + * TestClass.java: Use frysk.config.BuildCompiler. + * TestInterface.java: Ditto. + * TestValue.java: Use frysk.config. * TestInterface.java: Extend TestLib; fix bug 5856. diff --git a/frysk-core/frysk/value/TestClass.java b/frysk-core/frysk/value/TestClass.java index 9cd23eb..95eee2f 100644 --- a/frysk-core/frysk/value/TestClass.java +++ b/frysk-core/frysk/value/TestClass.java @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2007, Red Hat Inc. +// Copyright 2007, 2008, Red Hat Inc. // // FRYSK is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by @@ -46,6 +46,7 @@ import frysk.junit.TestCase; import frysk.proc.Task; import frysk.rsl.Log; import frysk.testbed.DaemonBlockedAtSignal; +import frysk.config.BuildCompiler; public class TestClass extends TestCase { @@ -110,27 +111,27 @@ public class TestClass extends TestCase { public void testComplexStruct() { CompositeType type = getType("funit-complex-struct", "complex"); - - // Check the type of the variable, new compiler says struct, old - // compiler says class. - if (unresolvedCompilerNoSupportForAT_CLASS()) - assertEquals("Variable is considered a class", "class", type - .getPrefix()); + // Check the type of the variable, new compiler says struct, + // old compiler says class. Don't look at the producer field + // as that would be circular. + String expected; + if (BuildCompiler.supports_AT_CLASS()) + expected = "struct"; else - assertEquals("Variable is a struct", "struct", type.getPrefix()); - + expected = "class"; + assertEquals("Variable prefix", expected, type.getPrefix()); } public void testInheritedStruct() { CompositeType type = getType("funit-inherited-struct", "der"); - - // Check the type of the variable, new compiler says struct, old - // compiler says class. - if (unresolvedCompilerNoSupportForAT_CLASS()) - assertEquals("Variable is considered a class", "class", type - .getPrefix()); + // Check the type of the variable, new compiler says struct, + // old compiler says class. + String expected; + if (BuildCompiler.supports_AT_CLASS()) + expected = "struct"; else - assertEquals("Variable is a struct", "struct", type.getPrefix()); + expected = "class"; + assertEquals("Variable prefix", expected, type.getPrefix()); } } diff --git a/frysk-core/frysk/value/TestInterface.java b/frysk-core/frysk/value/TestInterface.java index 6f6ecb6..bacdfa7 100644 --- a/frysk-core/frysk/value/TestInterface.java +++ b/frysk-core/frysk/value/TestInterface.java @@ -45,6 +45,7 @@ import frysk.debuginfo.ObjectDeclarationSearchEngine; import frysk.testbed.TestLib; import frysk.proc.Task; import frysk.testbed.DaemonBlockedAtSignal; +import frysk.config.BuildCompiler; public class TestInterface extends TestLib { @@ -78,14 +79,15 @@ public class TestInterface extends TestLib { public void testSimpleInterface() { CompositeType type = getType("FunitSimpleInterfaceTest", "inter"); - if (unresolvedCompilerNoSupportForAT_CLASS()) { - assertEquals("Variable is a struct", "struct", type.getPrefix()); - } else if (unresolvedCompilerNoSupportForAT_INTERFACE()) { - assertEquals("Variable is a class", "class", type.getPrefix()); + String expected; + if (BuildCompiler.supports_AT_INTERFACE()) { + expected = "interface"; + } else if (BuildCompiler.supports_AT_CLASS()) { + expected = "struct"; } else { - assertEquals("Variable is an interface", "interface", type - .getPrefix()); + expected = "class"; } + assertEquals("Variable prefix", expected, type.getPrefix()); } } diff --git a/frysk-sys/frysk/config/CompilerVersion.java b/frysk-sys/frysk/config/BuildCompiler.java similarity index 72% rename from frysk-sys/frysk/config/CompilerVersion.java rename to frysk-sys/frysk/config/BuildCompiler.java index 1b50302..95202d2 100644 --- a/frysk-sys/frysk/config/CompilerVersion.java +++ b/frysk-sys/frysk/config/BuildCompiler.java @@ -39,10 +39,44 @@ package frysk.config; -public class CompilerVersion { +/** + * The build compiler's version information. Useful for build tests; + * not useful for deciding what the target's compiler supports. + */ + +public class BuildCompiler { public static native int getVersion(); public static native int getMinorVersion(); public static native int getPatchLevel(); public static native int getRHRelease(); + + public static int compareVersionTo(int version, int minorVersion, + int patchLevel, int rhRelease) { + int diff = getVersion() - version; + if (diff != 0) + return diff; + + diff = getMinorVersion() - minorVersion; + if (diff != 0) + return diff; + + diff = getPatchLevel() - patchLevel; + if (diff != 0) + return diff; + + return getRHRelease() - rhRelease; + } + + public static boolean supports_AT_CLASS() { + return compareVersionTo(4, 1, 2, 37) >= 0; + } + + /** + * A method that returns true, and prints UNRESOLVED, when the compiler + * does not support AT_CLASS + */ + public static boolean supports_AT_INTERFACE() { + return compareVersionTo(4, 3, 0, 7) >= 0; + } } diff --git a/frysk-sys/frysk/config/ChangeLog b/frysk-sys/frysk/config/ChangeLog index 9b32038..625fef8 100644 --- a/frysk-sys/frysk/config/ChangeLog +++ b/frysk-sys/frysk/config/ChangeLog @@ -1,5 +1,15 @@ 2008-03-03 Andrew Cagney + * BuildCompiler.java: Replace CompilerVersion.java + * cni/BuildCompiler.cxx: Replace cni/CompilerVersion.cxx + * TestBuildCompiler.java: New. + + * cni/FryskVersion.cxx-in (getVersion()): Extract from + Config.cxx-in. + * FryskVersion.java: Extract from Config.java. + * Config.java (getVersion()): Delete. + * cni/Config.cxx-in (getVersion()): Delete. + * package.html: New. * cni/Config.cxx-in: Move from frysk-sys/frysk/cni. * cni/CompilerVersion.cxx: Move from frysk-sys/frysk/cni. diff --git a/frysk-sys/frysk/config/Config.java b/frysk-sys/frysk/config/Config.java index 6639104..ac4355c 100644 --- a/frysk-sys/frysk/config/Config.java +++ b/frysk-sys/frysk/config/Config.java @@ -211,12 +211,6 @@ public class Config return getFile(current.thePkgLib64Dir, file); } - /** - * The frysk version number. Typically of the form: - * MAJOR.MINOR.PATCH.YYYY.MM.DD. - */ - public static final native String getVersion (); - public static File getFryskDir(){ File file = new File(getHomeDir()+"/"+".frysk/"); if(file.exists()){ diff --git a/frysk-gui/frysk/bindir/frysk.java b/frysk-sys/frysk/config/FryskVersion.java similarity index 84% copy from frysk-gui/frysk/bindir/frysk.java copy to frysk-sys/frysk/config/FryskVersion.java index 475cbf8..7f6e12e 100644 --- a/frysk-gui/frysk/bindir/frysk.java +++ b/frysk-sys/frysk/config/FryskVersion.java @@ -37,20 +37,20 @@ // version and license this file solely under the GPL without // exception. -package frysk.bindir; - -import frysk.config.Config; -import frysk.gui.Gui; +package frysk.config; /** - * Start the frysk GUI. + * All the run-time (install time) configuration information. */ -class frysk -{ - public static void main (String[] args) - { - Config.set (Config.createInstallConfig ()); - Gui.gui(args); - } +public class FryskVersion { + private static native String version(); + private static final String v = version(); + /** + * The frysk version number as a String. Typically of the form: + * MAJOR.MINOR.PATCH.YYYY.MM.DD. + */ + public static String getVersion() { + return v; + } } diff --git a/frysk-sys/frysk/sys/TestProcessIdentifier.java b/frysk-sys/frysk/config/TestBuildCompiler.java similarity index 70% copy from frysk-sys/frysk/sys/TestProcessIdentifier.java copy to frysk-sys/frysk/config/TestBuildCompiler.java index 44c6daa..25aabb2 100644 --- a/frysk-sys/frysk/sys/TestProcessIdentifier.java +++ b/frysk-sys/frysk/config/TestBuildCompiler.java @@ -37,32 +37,34 @@ // version and license this file solely under the GPL without // exception. -package frysk.sys; +package frysk.config; import frysk.junit.TestCase; /** - * Generates ProcessIdentifiers (and ensures that they are unique). + * The build compiler's version information. Useful for build tests. */ -public class TestProcessIdentifier extends TestCase { +public class TestBuildCompiler extends TestCase { - public void testSingleton() { - assertSame("pid", ProcessIdentifierFactory.create(1), - ProcessIdentifierFactory.create(1)); - } + private final int major = BuildCompiler.getVersion(); + private final int minor = BuildCompiler.getMinorVersion(); + private final int patch = BuildCompiler.getPatchLevel(); + private final int rh = BuildCompiler.getRHRelease(); - public void testEquals() { - ProcessIdentifier one = ProcessIdentifierFactory.create(1); - ProcessIdentifier two = ProcessIdentifierFactory.create(2); - assertTrue("one == one", one.equals(one)); - assertFalse("one != two", one.equals(two)); + public void testLessThanMajor() { + assertTrue("major", + BuildCompiler.compareVersionTo(major + 1, 0, 0, 0) > 0); } - - public void testCompareTo() { - ProcessIdentifier one = ProcessIdentifierFactory.create(1); - ProcessIdentifier two = ProcessIdentifierFactory.create(2); - assertTrue("one == one", one.compareTo(one) == 0); - assertTrue("one < two", one.compareTo(two) < 0); - assertTrue("two > one", two.compareTo(one) > 0); + public void testLessThanMinor() { + assertTrue("minor", + BuildCompiler.compareVersionTo(major, minor + 1, 0, 0) > 0); + } + public void testLessThanPatch() { + assertTrue("minor", + BuildCompiler.compareVersionTo(major, minor, patch + 1, 0) > 0); + } + public void testLessThanRH() { + assertTrue("minor", + BuildCompiler.compareVersionTo(major, minor, patch, rh + 1) > 0); } } diff --git a/frysk-sys/frysk/config/cni/CompilerVersion.cxx b/frysk-sys/frysk/config/cni/BuildCompiler.cxx similarity index 91% rename from frysk-sys/frysk/config/cni/CompilerVersion.cxx rename to frysk-sys/frysk/config/cni/BuildCompiler.cxx index 588e324..3af38b2 100644 --- a/frysk-sys/frysk/config/cni/CompilerVersion.cxx +++ b/frysk-sys/frysk/config/cni/BuildCompiler.cxx @@ -39,10 +39,10 @@ #include -#include "frysk/config/CompilerVersion.h" +#include "frysk/config/BuildCompiler.h" jint -frysk::config::CompilerVersion::getVersion() { +frysk::config::BuildCompiler::getVersion() { #ifdef __GNUC__ return (jint) __GNUC__; #else @@ -52,7 +52,7 @@ frysk::config::CompilerVersion::getVersion() { jint -frysk::config::CompilerVersion::getMinorVersion() { +frysk::config::BuildCompiler::getMinorVersion() { #ifdef __GNUC_MINOR__ return (jint) __GNUC_MINOR__; #else @@ -61,7 +61,7 @@ frysk::config::CompilerVersion::getMinorVersion() { } jint -frysk::config::CompilerVersion::getPatchLevel() { +frysk::config::BuildCompiler::getPatchLevel() { #ifdef __GNUC_PATCHLEVEL__ return (jint) __GNUC_PATCHLEVEL__; #else @@ -70,7 +70,7 @@ frysk::config::CompilerVersion::getPatchLevel() { } jint -frysk::config::CompilerVersion::getRHRelease() { +frysk::config::BuildCompiler::getRHRelease() { #ifdef __GNUC_RH_RELEASE__ return (jint) __GNUC_RH_RELEASE__; #else diff --git a/frysk-sys/frysk/config/cni/Config.cxx-in b/frysk-sys/frysk/config/cni/Config.cxx-in index 385866a..f81747b 100644 --- a/frysk-sys/frysk/config/cni/Config.cxx-in +++ b/frysk-sys/frysk/config/cni/Config.cxx-in @@ -63,12 +63,6 @@ asFile (jstring prefix, const char *suffix) } jstring -frysk::config::Config::getVersion () -{ - return JvNewStringUTF ("@VERSION@"); -} - -jstring frysk::config::Config::getRootSrcDir () { return JvNewStringUTF ("@root_srcdir@"); diff --git a/frysk-sys/frysk/sys/cni/Pid.cxx b/frysk-sys/frysk/config/cni/FryskVersion.cxx-in similarity index 87% copy from frysk-sys/frysk/sys/cni/Pid.cxx copy to frysk-sys/frysk/config/cni/FryskVersion.cxx-in index 9569c25..48fe5b0 100644 --- a/frysk-sys/frysk/sys/cni/Pid.cxx +++ b/frysk-sys/frysk/config/cni/FryskVersion.cxx-in @@ -1,6 +1,8 @@ +// -*- C++ -*- + // This file is part of the program FRYSK. // -// Copyright 2005, 2008, Red Hat Inc. +// Copyright 2006, 2007, 2008, Red Hat Inc. // // FRYSK is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by @@ -37,19 +39,16 @@ // version and license this file solely under the GPL without // exception. -#include -#include - #include -#include "frysk/sys/Pid.h" +#include "frysk/config/FryskVersion.h" -jint -frysk::sys::Pid::pid() { - return ::getpid(); -} +// Why not use autoconf's config.h? + +// Because config.h does not expand variables the way Makefile and +// SUBST_SED do. -jint -frysk::sys::Pid::parentPid() { - return ::getppid (); +jstring +frysk::config::FryskVersion::version() { + return JvNewStringUTF ("@VERSION@"); } diff --git a/frysk-sys/frysk/junit/ChangeLog b/frysk-sys/frysk/junit/ChangeLog index 09320f0..0368a31 100644 --- a/frysk-sys/frysk/junit/ChangeLog +++ b/frysk-sys/frysk/junit/ChangeLog @@ -1,5 +1,11 @@ 2008-03-03 Andrew Cagney + * TestCase.java (compilerVersionGreaterThanOrEqualTo()): Delete. + (unresolvedCompilerNoSupportForAT_CLASS()): Delete. + (unresolvedCompilerNoSupportForAT_INTERFACE()): Delete. + + * Runner.java: Pass FryskVersion to Parser. + * Runner.java: Use frysk.config. * TestCase.java: Ditto. diff --git a/frysk-sys/frysk/junit/Runner.java b/frysk-sys/frysk/junit/Runner.java index e6007ed..d8af8ff 100755 --- a/frysk-sys/frysk/junit/Runner.java +++ b/frysk-sys/frysk/junit/Runner.java @@ -39,6 +39,7 @@ package frysk.junit; +import frysk.config.FryskVersion; import frysk.config.Config; import frysk.rsl.LogOption; import frysk.expunit.Expect; @@ -212,7 +213,8 @@ public class Runner extends TestRunner { * tests. */ private Parser createCommandLineParser (String programName) { - Parser parser = new Parser (programName, "1.0", true); + Parser parser = new Parser(programName, FryskVersion.getVersion(), + true); parser.add(new LogOption("debug", 'c')); diff --git a/frysk-sys/frysk/junit/TestCase.java b/frysk-sys/frysk/junit/TestCase.java index 6dc4d89..885e72d 100644 --- a/frysk-sys/frysk/junit/TestCase.java +++ b/frysk-sys/frysk/junit/TestCase.java @@ -39,7 +39,6 @@ package frysk.junit; -import frysk.config.CompilerVersion; import frysk.config.Config; import frysk.sys.Uname; hooks/post-receive -- frysk system monitor/debugger