added CACAO to IcedTea's build system

Christian Thalinger twisti at complang.tuwien.ac.at
Sun Jun 29 14:31:43 PDT 2008


On Sun, 2008-06-29 at 21:47 +0200, Mark Wielaard wrote:
> Hi Christian,
> 
> On Thu, 2008-06-26 at 15:19 +0200, Christian Thalinger wrote:
> > I finally integrated building CACAO to the IcedTea build system.  So,
> > when you're now using --with-cacao, it downloads the latest release
> > (0.99.1), builds it and the resulting libjvm.so is then used via
> > ALT_HOTSPOT_IMPORT_PATH.
> 
> Awesome! This is really big!
> 
> You forgot to add the ChangeLog entry to the ChangeLog file. I have
> added it for you:

Yes, sorry.  Thanks a lot for fixing this.

> I also added two dependencies. The icedtea-ecj target, which you use for
> a completely clean bootstrap, needs cacao already build. cacao itself
> needs the rt-classes available before it is build.

Right.  I've only tested a --with-icedtea build.

> Finally on some GNU/Linux systems you will get:
> LOG: [0xb80586c0] system_mmap_anonymous: mmap failed: Permission denied
> somewhere in the middle of the build when the cacao is actually used for
> the first time in the bootstrap build.
> 
> This seems to be caused by cacao trying to mmap a page at address zero.
> Something that isn't allowed on some systems. A workaround is to do as
> root: echo 0 > /proc/sys/vm/mmap_min_addr
> Then things do work, but it would be nice if cacao didn't do this on
> systems that don't allow it.
> 
> It seems you do this to catch null pointer dereferences. But on systems
> that don't allow mmapping on address zero in the first place, you will
> get a segv always anyway for such accesses.

I wonder why systems changed to disallow to mmap a page at zero.  We
could ignore the error but I'm very sure there will be somewhere a
strange system where the system call fails but the page is readable...

> P.S. Anybody know how we can now finally get rid of that extra
> branch/head in the mercurial tree called cacao-b19. If we only have one
> head then things like the fetch extension would work out of the box.

Getting rid of branches in Mercurial is something I would also need.
But I haven't found a good solution yet.  The bad solution is cloning
only the default branch of the repository.  But I'm not exactly sure
what else is missing then.

- twisti




More information about the distro-pkg-dev mailing list