summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorjmmv <jmmv@FreeBSD.org>2014-07-14 13:53:10 +0000
committerjmmv <jmmv@FreeBSD.org>2014-07-14 13:53:10 +0000
commit3b9fdabf1f3d959f83e5539d2ba59e4cc1680514 (patch)
treeedc8321586c0400e35da3b2ad33a40a477751344 /lib
parente896978a89ed4c7197289b14491cd046e56d2149 (diff)
downloadFreeBSD-src-3b9fdabf1f3d959f83e5539d2ba59e4cc1680514.zip
FreeBSD-src-3b9fdabf1f3d959f83e5539d2ba59e4cc1680514.tar.gz
Make generation of nslexer.c more robust.
Ensure that lex errors fail the build instead of being silently ignored due to the piped call. Also postpone the update of the nslexer.c file until we are sure we have generated it properly. These changes fix some very obscure build failures I encountered while building FreeBSD within a chroot that did not have devfs mounted. The specific errors looked like: .../libc.so.7: undefined reference to `_nsyyerror' .../libc.so.7: undefined reference to `_nsyyin' .../libc.so.7: undefined reference to `_nsyylex' .../libc.so.7: undefined reference to `_nsyylineno' .../libc.so.7: undefined reference to `_nsyytext' and were caused due to a mangled nslexer.c being linked into libc.
Diffstat (limited to 'lib')
-rw-r--r--lib/libc/net/Makefile.inc8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/libc/net/Makefile.inc b/lib/libc/net/Makefile.inc
index 59cbdea..c6307af 100644
--- a/lib/libc/net/Makefile.inc
+++ b/lib/libc/net/Makefile.inc
@@ -34,11 +34,13 @@ CFLAGS+=-I${LIBC_SRCTOP}/resolv
YFLAGS+=-p_nsyy
LFLAGS+=-P_nsyy
-CLEANFILES+=nslexer.c
+CLEANFILES+=nslexer.c nslexer.c.*
nslexer.c: nslexer.l nsparser.h
- ${LEX} ${LFLAGS} -o/dev/stdout ${.IMPSRC} | \
- sed -e '/YY_BUF_SIZE/s/16384/1024/' >${.TARGET}
+ ${LEX} ${LFLAGS} -o${.TARGET}.tmp1 ${.IMPSRC}
+ sed -e '/YY_BUF_SIZE/s/16384/1024/' ${.TARGET}.tmp1 >${.TARGET}.tmp2
+ rm -f ${.TARGET}.tmp1
+ mv -f ${.TARGET}.tmp2 ${.TARGET}
MAN+= byteorder.3 ethers.3 eui64.3 \
getaddrinfo.3 gai_strerror.3 gethostbyname.3 \
OpenPOWER on IntegriCloud