Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 14 Jul 2014 13:53:10 +0000 (UTC)
From:      Julio Merino <jmmv@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r268620 - head/lib/libc/net
Message-ID:  <201407141353.s6EDrA0L083434@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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 \



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201407141353.s6EDrA0L083434>