On Sat, 2008-09-13 at 12:54 +0200, Michael Banck wrote:
> On Sat, Sep 13, 2008 at 10:43:40AM +0200, Florian Weimer wrote:
> > This is probably a FAQ, and I guess I knew the answer at one point.
> > What are the requirements for /proc and buildds? Can packages assume
> > that /proc/self/stat exist in a buildd environment?
> >
> > The following is from mundy.debian.org, from a testing-security build:
> >
> > | Setting up gij-4.3 (4.3.1-9) ...
> > | GC Warning: Couldn't read /proc/stat
> > | Couldn't read /proc/self/stat
> > | /var/lib/dpkg/info/gij-4.3.postinst: line 29: 10104 Aborted gcj-dbtool-4.3 -n /var/lib/gcj-4.3/classmap.db
> > | dpkg: error processing gij-4.3 (--configure):
> > | subprocess post-installation script returned error exit status 2
> >
> > I don't know yet if the crash is related to the lack of /proc. (The
> > package builds fine on caballero.debian.org, the sid buildd.)
>
> Can't do much about it when this is during Build-Depends installation I
> guess, except keeping the Build-Depends sane. In this case, maybe the
> gij packages could fail more graciously if /proc is not available.
Depending on the architecture, this and several other files in /proc may
be required by the Boehm garbage collector which is part of gcj's
implementation of the Java virtual machine. The quoted message comes
from this:
ptr_t GC_linux_stack_base(void)
{
/* We read the stack base value from /proc/self/stat. We do this */
/* using direct I/O system calls in order to avoid calling malloc */
/* in case REDIRECT_MALLOC is defined. */
...
f = open("/proc/self/stat", O_RDONLY);
if (f < 0 || STAT_READ(f, stat_buf, STAT_BUF_SIZE) < 2 * STAT_SKIP) {
ABORT("Couldn't read /proc/self/stat");
}
Ben.
Attachment:
signature.asc
Description: This is a digitally signed message part