Author: jmmv
Date: Mon Jul 14 13:53:10 2014
New Revision: 268620
URL: http://svnweb.freebsd.org/changeset/base/268620

Log:
  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.

Modified:
  head/lib/libc/net/Makefile.inc

Modified: head/lib/libc/net/Makefile.inc
==============================================================================
--- head/lib/libc/net/Makefile.inc      Mon Jul 14 12:24:38 2014        
(r268619)
+++ head/lib/libc/net/Makefile.inc      Mon Jul 14 13:53:10 2014        
(r268620)
@@ -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 \
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to