1.1b1 doesn't build with gcj 4.2
--------------------------------
Key: JRUBY-1542
URL: http://jira.codehaus.org/browse/JRUBY-1542
Project: JRuby
Issue Type: Bug
Affects Versions: JRuby 1.1b1
Environment: Debian sid, GCJ 4.2
Reporter: Sebastien Delafond
Assignee: Thomas E Enebo
When trying to build with GCJ 4.2, I get the following:
generate-method-classes:
[touch] Creating
/home/seb/work/debian/jruby/1.1b1/jruby-1.1b1/build/__empty.rb
[java] Exception in thread "main" java.lang.NoClassDefFoundError:
org.jruby.RubyModuleInvoker$include_p_method_1_0
[java] at java.lang.Class.initializeClass(libgcj.so.81)
[java] at java.lang.reflect.Constructor.newInstance(libgcj.so.81)
[java] at
org.jruby.internal.runtime.methods.InvocationMethodFactory.getAnnotatedMethod(InvocationMethodFactory.java:379)
[java] at
org.jruby.RubyModule.defineAnnotatedMethod(RubyModule.java:471)
[java] at
org.jruby.RubyModule.defineAnnotatedMethods(RubyModule.java:458)
[java] at org.jruby.RubyModule.createModuleClass(RubyModule.java:99)
[java] at org.jruby.Ruby.initCoreClasses(Ruby.java:1276)
[java] at org.jruby.Ruby.init(Ruby.java:1171)
[java] at org.jruby.Ruby.newInstance(Ruby.java:322)
[java] at org.jruby.Main.runInterpreter(Main.java:168)
[java] at org.jruby.Main.run(Main.java:117)
[java] at org.jruby.Main.main(Main.java:92)
[java] Caused by: java.lang.VerifyError: verification failed at PC 82 in
org.jruby.RubyModuleInvoker$include_p_method_1_0:call((Lorg.jruby.runtime.ThreadContext;Lorg.jruby.runtime.builtin.IRubyObject;Lorg.jruby.RubyModule;Ljava.lang.String;[Lorg.jruby.runtime.builtin.IRubyObject;Lorg.jruby.runtime.Block;)Lorg.jruby.runtime.builtin.IRubyObject;):
incompatible return type
[java] at java.lang.Class.initializeClass(libgcj.so.81)
[java] ...11 more
1.0.2 built fine with GCJ, after the following patches were applied:
diff -urNad jruby-1.1.0~/src/org/jruby/RubyZlib.java
jruby-1.0.2/src/org/jruby/RubyZlib.java
--- jruby-1.1.0~/src/org/jruby/RubyZlib.java 2007-11-01 08:32:20.000000000
-0700
+++ jruby-1.1.0/src/org/jruby/RubyZlib.java 2007-11-06 13:17:51.000000000
-0800
@@ -663,7 +663,7 @@
return orig_name == null ? getRuntime().getNil() :
getRuntime().newString(orig_name);
}
- public Object to_io() {
+ public IRubyObject to_io() {
return realIo;
}
diff -urNad jruby-1.1.0~/src/org/jruby/compiler/impl/StandardASMCompiler.java
jruby-1.0.2/src/org/jruby/compiler/impl/StandardASMCompiler.java
--- jruby-1.1.0~/src/org/jruby/compiler/impl/StandardASMCompiler.java
2007-11-06 13:17:06.000000000 -0800
+++ jruby-1.1.0/src/org/jruby/compiler/impl/StandardASMCompiler.java
2007-11-06 13:17:14.000000000 -0800
@@ -289,7 +289,7 @@
cv.visitField(ACC_STATIC | ACC_PRIVATE | ACC_FINAL, "$isClassLoaded",
cg.ci(Boolean.TYPE), null, Boolean.FALSE);
cv.visitField(ACC_STATIC | ACC_PRIVATE | ACC_FINAL, "$class",
cg.ci(Class.class), null, null);
- SkinnyMethodAdapter mv = new
SkinnyMethodAdapter(cv.visitMethod(ACC_PUBLIC, "<clinit>", cg.sig(Void.TYPE),
null, null));
+ SkinnyMethodAdapter mv = new
SkinnyMethodAdapter(cv.visitMethod(ACC_PUBLIC | ACC_STATIC, "<clinit>",
cg.sig(Void.TYPE), null, null));
mv.start();
// This is a little hacky...since clinit recurses, set a boolean so we
don't continue trying to load class
diff -urNad jruby-1.1.0~/src/org/jruby/libraries/ThreadLibrary.java
jruby-1.0.2/src/org/jruby/libraries/ThreadLibrary.java
--- jruby-1.1.0~/src/org/jruby/libraries/ThreadLibrary.java 2007-11-01
08:32:20.000000000 -0700
+++ jruby-1.1.0/src/org/jruby/libraries/ThreadLibrary.java 2007-11-06
13:19:07.000000000 -0800
@@ -249,7 +249,7 @@
return RubyNumeric.int2fix(getRuntime(), entries.size());
}
- public int num_waiting() { return 0; }
+ public IRubyObject num_waiting() { return getRuntime().newFixnum(0); }
public synchronized IRubyObject pop(IRubyObject[] args) {
boolean should_block = true;
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email