bug-hurd
[Top][All Lists]
Advanced

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

it's make's fault (was: Re: fakeroot status (an ongoing story :)


From: Marcus Brinkmann
Subject: it's make's fault (was: Re: fakeroot status (an ongoing story :)
Date: Fri, 24 May 2002 15:57:55 +0200
User-agent: Mutt/1.3.28i

On Fri, May 24, 2002 at 04:43:47AM +0200, Marcus Brinkmann wrote:
> The thing that does not work is "fakeroot debian/rules target", where
> debian/rules is a makefile.  It fails with:
> 
> fakeauth: Segmentation fault for child NR

Who could expect that this is actually a problem in make with /dev/fd/3
files?  A simple program that forces exec to use the /dev/fd/3 trick for the
make invocation shows this segfault in a normal non-fakeroot environment.
Below is more data, I will see if a make with debugging symbols sheds some
light on this issue.

> Obviously proc gets confused by something.

I guess this will still be an issue, but maybe it won't be as severe
anymore.  At some time we will have to spent some serious effort to make our
core servers robust against misuse/abuse (exec has some code for this
already, but also some places marked with XXX, libpager needs more care,
auth should be quite fine, proc seems to have issues, too).

Thanks,
Marcus

======= makefile =======================
#! /usr/bin/make -f

all:
        echo foo
========================================

======= exectest.c =====================
#include <unistd.h>

int
main (int argc, char argv[])
{
  char *args[] = { "somefile", "-d", 0 };

  execv ("makefile", args);
}
========================================

======= output of bad testrun ==========
GNU Make version 3.79.1, by Richard Stallman and Roland McGrath.
Built for i386-pc-gnu
Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000
        Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

Report bugs to <bug-make@gnu.org>.

Reading makefiles...
Reading makefile `/dev/fd/3'...
Updating makefiles....
 Considering target file `/dev/fd/3'.
  Looking for an implicit rule for `/dev/fd/3'.
  Trying pattern rule with stem `3'.
  Trying implicit prerequisite `/dev/fd/3.o'.
  Trying pattern rule with stem `3'.
  Trying implicit prerequisite `/dev/fd/3.c'.
  Trying pattern rule with stem `3'.
  Trying implicit prerequisite `/dev/fd/3.cc'.
  Trying pattern rule with stem `3'.
  Trying implicit prerequisite `/dev/fd/3.C'.
  Trying pattern rule with stem `3'.
  Trying implicit prerequisite `/dev/fd/3.cpp'.
  Trying pattern rule with stem `3'.
  Trying implicit prerequisite `/dev/fd/3.p'.
  Trying pattern rule with stem `3'.
  Trying implicit prerequisite `/dev/fd/3.f'.
  Trying pattern rule with stem `3'.
  Trying implicit prerequisite `/dev/fd/3.F'.
  Trying pattern rule with stem `3'.
  Trying implicit prerequisite `/dev/fd/3.r'.
  Trying pattern rule with stem `3'.
  Trying implicit prerequisite `/dev/fd/3.s'.
  Trying pattern rule with stem `3'.
  Trying implicit prerequisite `/dev/fd/3.S'.
  Trying pattern rule with stem `3'.
  Trying implicit prerequisite `/dev/fd/3.mod'.
  Trying pattern rule with stem `3'.
  Trying implicit prerequisite `/dev/fd/3.sh'.
  Trying pattern rule with stem `3'.
  Trying implicit prerequisite `/dev/fd/3,v'.
  Trying pattern rule with stem `3'.
  Trying implicit prerequisite `/dev/fd/RCS/3,v'.
  Trying pattern rule with stem `3'.
  Trying implicit prerequisite `/dev/fd/RCS/3'.
  Trying pattern rule with stem `3'.
  Trying implicit prerequisite `/dev/fd/s.3'.
  Trying pattern rule with stem `3'.
  Trying implicit prerequisite `/dev/fd/SCCS/s.3'.
  Trying pattern rule with stem `3'.
  Trying implicit prerequisite `/dev/fd/3.o'.
  Looking for a rule with intermediate file `/dev/fd/3.o'.
   Avoiding implicit rule recursion.
   Trying pattern rule with stem `3'.
   Trying implicit prerequisite `/dev/fd/3.c'.
   Trying pattern rule with stem `3'.
   Trying implicit prerequisite `/dev/fd/3.cc'.
   Trying pattern rule with stem `3'.
   Trying implicit prerequisite `/dev/fd/3.C'.
   Trying pattern rule with stem `3'.
   Trying implicit prerequisite `/dev/fd/3.cpp'.
   Trying pattern rule with stem `3'.
   Trying implicit prerequisite `/dev/fd/3.p'.
   Trying pattern rule with stem `3'.
   Trying implicit prerequisite `/dev/fd/3.f'.
   Trying pattern rule with stem `3'.
   Trying implicit prerequisite `/dev/fd/3.F'.
   Trying pattern rule with stem `3'.
   Trying implicit prerequisite `/dev/fd/3.r'.
   Trying pattern rule with stem `3'.
   Trying implicit prerequisite `/dev/fd/3.s'.
   Trying pattern rule with stem `3'.
   Trying implicit prerequisite `/dev/fd/3.S'.
   Trying pattern rule with stem `3'.
   Trying implicit prerequisite `/dev/fd/3.mod'.
   Trying pattern rule with stem `3.o'.
   Trying implicit prerequisite `/dev/fd/3.o,v'.
   Trying pattern rule with stem `3.o'.
   Trying implicit prerequisite `/dev/fd/RCS/3.o,v'.
   Trying pattern rule with stem `3.o'.
   Trying implicit prerequisite `/dev/fd/RCS/3.o'.
   Trying pattern rule with stem `3.o'.
   Trying implicit prerequisite `/dev/fd/s.3.o'.
   Trying pattern rule with stem `3.o'.
   Trying implicit prerequisite `/dev/fd/SCCS/s.3.o'.
   Trying pattern rule with stem `3'.
   Trying implicit prerequisite `/dev/fd/3.c'.
   Looking for a rule with intermediate file `/dev/fd/3.c'.
    Avoiding implicit rule recursion.
    Avoiding implicit rule recursion.
    Trying pattern rule with stem `3'.
    Trying implicit prerequisite `/dev/fd/3.y'.
    Trying pattern rule with stem `3'.
    Trying implicit prerequisite `/dev/fd/3.l'.
    Trying pattern rule with stem `3'.
    Trying implicit prerequisite `/dev/fd/3.w'.
    Trying pattern rule with stem `3'.
    Trying implicit prerequisite `/dev/fd/3.w'.
    Trying pattern rule with stem `3.c'.
    Trying implicit prerequisite `/dev/fd/3.c,v'.
    Trying pattern rule with stem `3.c'.
    Trying implicit prerequisite `/dev/fd/RCS/3.c,v'.
    Trying pattern rule with stem `3.c'.
    Trying implicit prerequisite `/dev/fd/RCS/3.c'.
    Trying pattern rule with stem `3.c'.
    Trying implicit prerequisite `/dev/fd/s.3.c'.
    Trying pattern rule with stem `3.c'.
    Trying implicit prerequisite `/dev/fd/SCCS/s.3.c'.
    Trying pattern rule with stem `3'.
    Trying implicit prerequisite `/dev/fd/3.y'.
    Looking for a rule with intermediate file `/dev/fd/3.y'.
     Avoiding implicit rule recursion.
     Avoiding implicit rule recursion.
     Avoiding implicit rule recursion.
     Trying pattern rule with stem `3.y'.
     Trying implicit prerequisite `/dev/fd/3.y,v'.
     Trying pattern rule with stem `3.y'.
     Trying implicit prerequisite `/dev/fd/RCS/3.y,v'.
     Trying pattern rule with stem `3.y'.
     Trying implicit prerequisite `/dev/fd/RCS/3.y'.
     Trying pattern rule with stem `3.y'.
     Trying implicit prerequisite `/dev/fd/s.3.y'.
     Trying pattern rule with stem `3.y'.
     Trying implicit prerequisite `/dev/fd/SCCS/s.3.y'.
    Trying pattern rule with stem `3'.
    Trying implicit prerequisite `/dev/fd/3.l'.
    Looking for a rule with intermediate file `/dev/fd/3.l'.
     Avoiding implicit rule recursion.
     Avoiding implicit rule recursion.
     Avoiding implicit rule recursion.
     Trying pattern rule with stem `3.l'.
     Trying implicit prerequisite `/dev/fd/3.l,v'.
     Trying pattern rule with stem `3.l'.
     Trying implicit prerequisite `/dev/fd/RCS/3.l,v'.
     Trying pattern rule with stem `3.l'.
     Trying implicit prerequisite `/dev/fd/RCS/3.l'.
     Trying pattern rule with stem `3.l'.
     Trying implicit prerequisite `/dev/fd/s.3.l'.
     Trying pattern rule with stem `3.l'.
     Trying implicit prerequisite `/dev/fd/SCCS/s.3.l'.
    Trying pattern rule with stem `3'.
    Trying implicit prerequisite `/dev/fd/3.w'.
    Looking for a rule with intermediate file `/dev/fd/3.w'.
     Avoiding implicit rule recursion.
     Avoiding implicit rule recursion.
     Avoiding implicit rule recursion.
     Trying pattern rule with stem `3.w'.
     Trying implicit prerequisite `/dev/fd/3.w,v'.
     Trying pattern rule with stem `3.w'.
     Trying implicit prerequisite `/dev/fd/RCS/3.w,v'.
     Trying pattern rule with stem `3.w'.
     Trying implicit prerequisite `/dev/fd/RCS/3.w'.
     Trying pattern rule with stem `3.w'.
     Trying implicit prerequisite `/dev/fd/s.3.w'.
     Trying pattern rule with stem `3.w'.
     Trying implicit prerequisite `/dev/fd/SCCS/s.3.w'.
    Trying pattern rule with stem `3'.
    Rejecting impossible implicit prerequisite `/dev/fd/3.w'.
   Trying pattern rule with stem `3'.
   Trying implicit prerequisite `/dev/fd/3.cc'.
   Looking for a rule with intermediate file `/dev/fd/3.cc'.
    Avoiding implicit rule recursion.
    Avoiding implicit rule recursion.
    Trying pattern rule with stem `3.cc'.
    Trying implicit prerequisite `/dev/fd/3.cc,v'.
    Trying pattern rule with stem `3.cc'.
    Trying implicit prerequisite `/dev/fd/RCS/3.cc,v'.
    Trying pattern rule with stem `3.cc'.
    Trying implicit prerequisite `/dev/fd/RCS/3.cc'.
    Trying pattern rule with stem `3.cc'.
    Trying implicit prerequisite `/dev/fd/s.3.cc'.
    Trying pattern rule with stem `3.cc'.
    Trying implicit prerequisite `/dev/fd/SCCS/s.3.cc'.
   Trying pattern rule with stem `3'.
   Trying implicit prerequisite `/dev/fd/3.C'.
   Looking for a rule with intermediate file `/dev/fd/3.C'.
    Avoiding implicit rule recursion.
    Avoiding implicit rule recursion.
    Trying pattern rule with stem `3.C'.
    Trying implicit prerequisite `/dev/fd/3.C,v'.
    Trying pattern rule with stem `3.C'.
    Trying implicit prerequisite `/dev/fd/RCS/3.C,v'.
    Trying pattern rule with stem `3.C'.
    Trying implicit prerequisite `/dev/fd/RCS/3.C'.
    Trying pattern rule with stem `3.C'.
    Trying implicit prerequisite `/dev/fd/s.3.C'.
    Trying pattern rule with stem `3.C'.
    Trying implicit prerequisite `/dev/fd/SCCS/s.3.C'.
   Trying pattern rule with stem `3'.
   Trying implicit prerequisite `/dev/fd/3.cpp'.
   Looking for a rule with intermediate file `/dev/fd/3.cpp'.
    Avoiding implicit rule recursion.
    Avoiding implicit rule recursion.
    Trying pattern rule with stem `3.cpp'.
    Trying implicit prerequisite `/dev/fd/3.cpp,v'.
    Trying pattern rule with stem `3.cpp'.
    Trying implicit prerequisite `/dev/fd/RCS/3.cpp,v'.
    Trying pattern rule with stem `3.cpp'.
    Trying implicit prerequisite `/dev/fd/RCS/3.cpp'.
    Trying pattern rule with stem `3.cpp'.
    Trying implicit prerequisite `/dev/fd/s.3.cpp'.
    Trying pattern rule with stem `3.cpp'.
    Trying implicit prerequisite `/dev/fd/SCCS/s.3.cpp'.
   Trying pattern rule with stem `3'.
   Trying implicit prerequisite `/dev/fd/3.p'.
   Looking for a rule with intermediate file `/dev/fd/3.p'.
    Avoiding implicit rule recursion.
    Avoiding implicit rule recursion.
    Trying pattern rule with stem `3'.
    Trying implicit prerequisite `/dev/fd/3.web'.
    Trying pattern rule with stem `3.p'.
    Trying implicit prerequisite `/dev/fd/3.p,v'.
    Trying pattern rule with stem `3.p'.
    Trying implicit prerequisite `/dev/fd/RCS/3.p,v'.
    Trying pattern rule with stem `3.p'.
    Trying implicit prerequisite `/dev/fd/RCS/3.p'.
    Trying pattern rule with stem `3.p'.
    Trying implicit prerequisite `/dev/fd/s.3.p'.
    Trying pattern rule with stem `3.p'.
    Trying implicit prerequisite `/dev/fd/SCCS/s.3.p'.
    Trying pattern rule with stem `3'.
    Trying implicit prerequisite `/dev/fd/3.web'.
    Looking for a rule with intermediate file `/dev/fd/3.web'.
     Avoiding implicit rule recursion.
     Avoiding implicit rule recursion.
     Avoiding implicit rule recursion.
     Trying pattern rule with stem `3.web'.
     Trying implicit prerequisite `/dev/fd/3.web,v'.
     Trying pattern rule with stem `3.web'.
     Trying implicit prerequisite `/dev/fd/RCS/3.web,v'.
     Trying pattern rule with stem `3.web'.
     Trying implicit prerequisite `/dev/fd/RCS/3.web'.
     Trying pattern rule with stem `3.web'.
     Trying implicit prerequisite `/dev/fd/s.3.web'.
     Trying pattern rule with stem `3.web'.
     Trying implicit prerequisite `/dev/fd/SCCS/s.3.web'.
   Trying pattern rule with stem `3'.
   Trying implicit prerequisite `/dev/fd/3.f'.
   Looking for a rule with intermediate file `/dev/fd/3.f'.
    Avoiding implicit rule recursion.
    Avoiding implicit rule recursion.
    Trying pattern rule with stem `3'.
    Trying implicit prerequisite `/dev/fd/3.F'.
    Trying pattern rule with stem `3'.
    Trying implicit prerequisite `/dev/fd/3.r'.
    Trying pattern rule with stem `3.f'.
    Trying implicit prerequisite `/dev/fd/3.f,v'.
    Trying pattern rule with stem `3.f'.
    Trying implicit prerequisite `/dev/fd/RCS/3.f,v'.
    Trying pattern rule with stem `3.f'.
    Trying implicit prerequisite `/dev/fd/RCS/3.f'.
    Trying pattern rule with stem `3.f'.
    Trying implicit prerequisite `/dev/fd/s.3.f'.
    Trying pattern rule with stem `3.f'.
    Trying implicit prerequisite `/dev/fd/SCCS/s.3.f'.
    Trying pattern rule with stem `3'.
    Trying implicit prerequisite `/dev/fd/3.F'.
    Looking for a rule with intermediate file `/dev/fd/3.F'.
     Avoiding implicit rule recursion.
     Avoiding implicit rule recursion.
     Avoiding implicit rule recursion.
     Trying pattern rule with stem `3.F'.
     Trying implicit prerequisite `/dev/fd/3.F,v'.
     Trying pattern rule with stem `3.F'.
     Trying implicit prerequisite `/dev/fd/RCS/3.F,v'.
     Trying pattern rule with stem `3.F'.
     Trying implicit prerequisite `/dev/fd/RCS/3.F'.
     Trying pattern rule with stem `3.F'.
     Trying implicit prerequisite `/dev/fd/s.3.F'.
     Trying pattern rule with stem `3.F'.
     Trying implicit prerequisite `/dev/fd/SCCS/s.3.F'.
    Trying pattern rule with stem `3'.
    Trying implicit prerequisite `/dev/fd/3.r'.
    Looking for a rule with intermediate file `/dev/fd/3.r'.
     Avoiding implicit rule recursion.
     Avoiding implicit rule recursion.
     Avoiding implicit rule recursion.
     Trying pattern rule with stem `3'.
     Rejecting impossible implicit prerequisite `/dev/fd/3.l'.
     Trying pattern rule with stem `3.r'.
     Trying implicit prerequisite `/dev/fd/3.r,v'.
     Trying pattern rule with stem `3.r'.
     Trying implicit prerequisite `/dev/fd/RCS/3.r,v'.
     Trying pattern rule with stem `3.r'.
     Trying implicit prerequisite `/dev/fd/RCS/3.r'.
     Trying pattern rule with stem `3.r'.
     Trying implicit prerequisite `/dev/fd/s.3.r'.
     Trying pattern rule with stem `3.r'.
     Trying implicit prerequisite `/dev/fd/SCCS/s.3.r'.
   Trying pattern rule with stem `3'.
   Rejecting impossible implicit prerequisite `/dev/fd/3.F'.
   Trying pattern rule with stem `3'.
   Rejecting impossible implicit prerequisite `/dev/fd/3.r'.
   Trying pattern rule with stem `3'.
   Trying implicit prerequisite `/dev/fd/3.s'.
   Looking for a rule with intermediate file `/dev/fd/3.s'.
    Avoiding implicit rule recursion.
    Avoiding implicit rule recursion.
    Trying pattern rule with stem `3'.
    Trying implicit prerequisite `/dev/fd/3.S'.
    Trying pattern rule with stem `3.s'.
    Trying implicit prerequisite `/dev/fd/3.s,v'.
    Trying pattern rule with stem `3.s'.
    Trying implicit prerequisite `/dev/fd/RCS/3.s,v'.
    Trying pattern rule with stem `3.s'.
    Trying implicit prerequisite `/dev/fd/RCS/3.s'.
    Trying pattern rule with stem `3.s'.
    Trying implicit prerequisite `/dev/fd/s.3.s'.
    Trying pattern rule with stem `3.s'.
    Trying implicit prerequisite `/dev/fd/SCCS/s.3.s'.
    Trying pattern rule with stem `3'.
    Trying implicit prerequisite `/dev/fd/3.S'.
    Looking for a rule with intermediate file `/dev/fd/3.S'.
     Avoiding implicit rule recursion.
     Avoiding implicit rule recursion.
     Avoiding implicit rule recursion.
     Trying pattern rule with stem `3.S'.
     Trying implicit prerequisite `/dev/fd/3.S,v'.
     Trying pattern rule with stem `3.S'.
     Trying implicit prerequisite `/dev/fd/RCS/3.S,v'.
     Trying pattern rule with stem `3.S'.
     Trying implicit prerequisite `/dev/fd/RCS/3.S'.
     Trying pattern rule with stem `3.S'.
     Trying implicit prerequisite `/dev/fd/s.3.S'.
     Trying pattern rule with stem `3.S'.
     Trying implicit prerequisite `/dev/fd/SCCS/s.3.S'.
   Trying pattern rule with stem `3'.
   Rejecting impossible implicit prerequisite `/dev/fd/3.S'.
   Trying pattern rule with stem `3'.
   Trying implicit prerequisite `/dev/fd/3.mod'.
   Looking for a rule with intermediate file `/dev/fd/3.mod'.
    Avoiding implicit rule recursion.
    Avoiding implicit rule recursion.
    Trying pattern rule with stem `3.mod'.
    Trying implicit prerequisite `/dev/fd/3.mod,v'.
    Trying pattern rule with stem `3.mod'.
    Trying implicit prerequisite `/dev/fd/RCS/3.mod,v'.
    Trying pattern rule with stem `3.mod'.
    Trying implicit prerequisite `/dev/fd/RCS/3.mod'.
    Trying pattern rule with stem `3.mod'.
    Trying implicit prerequisite `/dev/fd/s.3.mod'.
    Trying pattern rule with stem `3.mod'.
    Trying implicit prerequisite `/dev/fd/SCCS/s.3.mod'.
  Trying pattern rule with stem `3'.
  Rejecting impossible implicit prerequisite `/dev/fd/3.c'.
  Trying pattern rule with stem `3'.
  Rejecting impossible implicit prerequisite `/dev/fd/3.cc'.
  Trying pattern rule with stem `3'.
  Rejecting impossible implicit prerequisite `/dev/fd/3.C'.
  Trying pattern rule with stem `3'.
  Rejecting impossible implicit prerequisite `/dev/fd/3.cpp'.
  Trying pattern rule with stem `3'.
  Rejecting impossible implicit prerequisite `/dev/fd/3.p'.
  Trying pattern rule with stem `3'.
  Rejecting impossible implicit prerequisite `/dev/fd/3.f'.
  Trying pattern rule with stem `3'.
  Rejecting impossible implicit prerequisite `/dev/fd/3.F'.
  Trying pattern rule with stem `3'.
  Rejecting impossible implicit prerequisite `/dev/fd/3.r'.
  Trying pattern rule with stem `3'.
  Rejecting impossible implicit prerequisite `/dev/fd/3.s'.
  Trying pattern rule with stem `3'.
  Rejecting impossible implicit prerequisite `/dev/fd/3.S'.
  Trying pattern rule with stem `3'.
  Rejecting impossible implicit prerequisite `/dev/fd/3.mod'.
  Trying pattern rule with stem `3'.
  Trying implicit prerequisite `/dev/fd/3.sh'.
  Looking for a rule with intermediate file `/dev/fd/3.sh'.
   Avoiding implicit rule recursion.
   Trying pattern rule with stem `3.sh'.
   Trying implicit prerequisite `/dev/fd/3.sh,v'.
   Trying pattern rule with stem `3.sh'.
   Trying implicit prerequisite `/dev/fd/RCS/3.sh,v'.
   Trying pattern rule with stem `3.sh'.
   Trying implicit prerequisite `/dev/fd/RCS/3.sh'.
   Trying pattern rule with stem `3.sh'.
   Trying implicit prerequisite `/dev/fd/s.3.sh'.
   Trying pattern rule with stem `3.sh'.
   Trying implicit prerequisite `/dev/fd/SCCS/s.3.sh'.
  No implicit rule found for `/dev/fd/3'.
  Finished prerequisites of target file `/dev/fd/3'.
 No need to remake target `/dev/fd/3'.
Updating goal targets....
Considering target file `all'.
 File `all' does not exist.
 Finished prerequisites of target file `all'.
Must remake target `all'.
Segmentation fault

-- 
`Rhubarb is no Egyptian god.' Debian http://www.debian.org brinkmd@debian.org
Marcus Brinkmann              GNU    http://www.gnu.org    marcus@gnu.org
Marcus.Brinkmann@ruhr-uni-bochum.de
http://www.marcus-brinkmann.de



reply via email to

[Prev in Thread] Current Thread [Next in Thread]