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 <[EMAIL PROTECTED]>.

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 [EMAIL PROTECTED]
Marcus Brinkmann              GNU    http://www.gnu.org    [EMAIL PROTECTED]
[EMAIL PROTECTED]
http://www.marcus-brinkmann.de

_______________________________________________
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd

Reply via email to