svn commit: r268620 - head/lib/libc/net

Julio Merino jmmv at FreeBSD.org
Mon Jul 14 13:53:10 UTC 2014


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 \


More information about the svn-src-head mailing list