Why this linking fail?

Mel fbsd.questions at rachie.is-a-geek.net
Sat Jul 19 16:35:25 UTC 2008


On Thursday 17 July 2008 07:37:43 Unga wrote:
> --- On Thu, 7/17/08, Unga <unga888 at yahoo.com> wrote:
> > Sorry guys, I have found an issue. In the libc compile log
> > shows following error:
> > lex  -P_nsyy -o/dev/stdout /usr/src/lib/libc/net/nslexer.l
> >
> > |  sed -e '/YY_BUF_SIZE/s/16384/1024/'
> > |
> > >nslexer.c
> >
> > lex: fatal internal error, exec failed
> >
> > Let me check why the lex failed.
>
> Ok, I managed to narrow down the problem.
>
> I'm  in a chroot jail.
>
> lex  -P_nsyy -o/dev/stdout /usr/src/lib/libc/net/nslexer.l >nslexer.c
> lex: could not create /dev/stdout
>
> ls -l /dev/stdout
> lrwxr-xr-x  1 root  wheel  4 Jul 17 12:24 /dev/stdout -> fd/1
>
> ls -l /dev/fd/
> crw-rw-rw-  1 root  wheel    0,  17 Jul 17 10:30 0
> crw-rw-rw-  1 root  wheel    0,  19 Jul 17 10:30 1
> crw-rw-rw-  1 root  wheel    0,  21 Jul 17 10:30 2
>
> echo xxx > /dev/stdout
> xxx
>
> Note, writing /dev/stdout works, it prints back the xxx.
>
> Before I enter into chroot jail, this is how mount devfs:
> mount -v -o rw -t devfs dev /somepath/dev

Usually, it's:
mount -t devfs devfs /somepath/dev
                  ^^

However, I don't know if that token distinction matters or that it's just a 
label.

> But this statement works well outside of jail:
> lex  -P_nsyy -o/dev/stdout /usr/src/lib/libc/net/nslexer.l >nslexer.c
>
> Is my devfs mount correct? I did not do any devfs configuration. Does it
> require any devfs configuration on the new /somepath/dev mount?
>
> Appreciate very much your reply on this.


This can be a problem, if you jexec into the jail as no full environment is 
created, but it's usually just the /dev/tty that is the problem, not std{out|
err|null}.

Have you considered compiling on the host and using DESTDIR on installworld?
-- 
Mel

Problem with today's modular software: they start with the modules
    and never get to the software part.


More information about the freebsd-questions mailing list