ELF dynamic loader name [was: sbrk(2) broken]
Alexandre "Sunny" Kovalenko
alex.kovalenko at verizon.net
Tue Jan 8 16:22:22 PST 2008
On Tue, 2008-01-08 at 17:04 +1100, Andrew Reilly wrote:
> On Mon, 07 Jan 2008 22:30:18 -0500
> "Alexandre \"Sunny\" Kovalenko" <alex.kovalenko at verizon.net>
> wrote:
>
> > > [I'm doing a lot of my own new coding in PLT scheme at the
> > > moment, and having a ball with it. (lang/drscheme in ports)
> >
> > I suspect you are not running contemporary 7.0 there:
> > twinhead# uname -a
> > FreeBSD twinhead.rabbitslawn.verizon.net 7.0-RC1 FreeBSD 7.0-RC1 #0: Tue
> > Jan 1 19:22:56 EST 2008
> > root at twinhead.rabbitslawn.verizon.net:/usr/obj/usr/src/sys/TWINHEAD
> > i386
> > twinhead# make install
> > ===> drscheme-370 is marked as broken: Fails to install (signal 11).
> > *** Error code 1
> >
> > Stop in /usr/ports/lang/drscheme.
>
> Nope:
> andrew at duncan:/usr/home/andrew $ mzscheme
> Welcome to MzScheme v372 [3m], Copyright (c) 2004-2007 PLT Scheme
> Inc.
> > ^D
> andrew at duncan:/usr/home/andrew $ uname -a
> FreeBSD duncan.reilly.home 7.0-PRERELEASE FreeBSD 7.0-PRERELEASE
> #6: Sat Jan 5 17:53:17 EST 2008
> root at duncan:/usr/obj/usr/src/sys/DUNCAN amd64
>
> :-)
>
> You'll find a patch with my name on it at:
> http://www.freebsd.org/cgi/query-pr.cgi?pr=118808
>
> That fix has been incorporated up-stream, so 372 now builds
> cleanly for me from tarballs, but something is still broken on
> jkoshy's 8-current system, so he hasn't updated the port yet.
That will teach me to check PR database before speaking up. Thank you
for both the patch and the pointer.
>
> > > Fast enough for what I'm doing, byte-code, static or JIT compiled,
> > > and runs everywhere (including Windows and OSX).]
> > >
> > > What would be *really* cool would be the ability to have a JVM or
> > > LLVM back-end in the kernel, as a first-class peer of the ELF
> > > loader. Anyone know if anyone has tried such a thing on *BSD (or
> > > even Linux, I guess)?
> >
> > If you have Linux distribution handy, you can look
> > at /usr/src/linux/Documentation/binfmt_misc.txt.
>
> Or
> http://www.tat.physik.uni-tuebingen.de/~rguenth/linux/binfmt_misc.html
> Thanks for the pointer: that's pretty close to what I was
> thinking of. There's also the PE loader work in NetBSD...
>
> > At least its Java
> > incarnation has been around for a while. I have not seen widespread use
> > of it, but then again, I have not been looking too hard.
>
> Yeah, most existing foreign-executable formats have lots of
> extraneous environment cruft related to compatibility with
> other operating systems, that doesn't really lend themselves to
> this sort of application.
Ah, but let's not blame operating systems:
sunny:RabbitsDen>cat Hello.java
class Hello
{
public static void main(String args[])
{
System.out.println("Hello, world!");
}
}
sunny:RabbitsDen>javac Hello.java
sunny:RabbitsDen>java -version
java version "1.6.0_03-p3"
Java(TM) SE Runtime Environment (build
1.6.0_03-p3-root_17_nov_2007_12_13-b00)
Java HotSpot(TM) Server VM (build
1.6.0_03-p3-root_17_nov_2007_12_13-b00, mixed mode)
sunny:RabbitsDen>java Hello
Hello, world!
sunny:RabbitsDen>scp Hello.class eclipse:
Hello.class 100%
417 0.4KB/s 00:00
sunny:RabbitsDen>ssh eclipse
eclipse:DEV:sunny>java -version
java version "1.5.0_04"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_04-b05)
Java HotSpot(TM) Client VM (build 1.5.0_04-b05, mixed mode, sharing)
eclipse:DEV:sunny>java Hello
Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad
version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
> [This is more -arch or -talk than -current, so I'll stop now.]
Time to subscribe to arch at ... ;)
>
> Cheers,
>
--
Alexandre "Sunny" Kovalenko
More information about the freebsd-current
mailing list