[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: /proc and build environments



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


Reply to: