multimedia/libkate 0.4.1_2 (needed for VLC) failed to build on this machine. I had installed just installed VLC, and thus libkate, an another machine less than a week prior. The versions and options for libkate were same on both. The most pertinent difference I noticed between the two machines was the version of flex. Reverting to the prior version of flex corrected the build problem. The tail of the libkate build was as follows: [snip; no errors, minor unrelated warnings] /bin/sh ../libtool --tag=CC --silent --mode=link cc -Wall -W -I/usr/src/include -I/usr/local/include/libpng15 -O3 -pipe -march=amdfam10 -I/usr/local/include -fstack-protector -fno-strict-aliasing -fstack-protector -o kateenc kateenc-kateenc.o kateenc-kate_lexer.o kateenc-kate_parser.o kateend-kpng.o ../lib/liboggkate.la ../lib/libkate.la -L/usr/local/lib -logg -L/usr/local/lib -lpng15 -lfl /usr/local/lib/libfl.so: undefined reference to 'yylex' cc:error: linker command failed with exit code 1 (use -v to see invocation) gmake[3]: *** [kateenc] Error 1 gmake[3]: Leaving directory '/usr/obj/usr/ports/multimedia/libkate/work/libkate-0.4.1/tools' gmake[2]: *** [all-recursive] Error 1 gmake[2]: Leaving directory '/usr/obj/usr/ports/multimedia/libkate/work/libkate-0.4.1/tools' [snip; gmake recursion] gmake: *** [all] Error 2 Fix: Revert flex to 2.5.37_1 i.e. cd /usr/ports/textproc/flex && svnlite -r 339569 up && make (re)install clean cd /usr/ports/multimedia/libkate && make install clean (now succeeds) How-To-Repeat: Ensure /usr/ports is at least r344136 (so that flex is at 2.5.38) cd /usr/ports/textproc/flex && make install clean (will succeed) cd /usr/ports/multimedia/libkate && make install clean (will fail)
Responsible Changed From-To: freebsd-ports-bugs->johans Over to maintainer (via the GNATS Auto Assign Tool)
Responsible Changed From-To: johans->bar The port multimedia/libkate does not depend on textproc/flex and it does not need it. The port should probably be tweaked so that it always used flex from base instead. Even better would be to get a fix for libkate upstream to ensure that the kateenc binary is built without linking the fl library, as it doesn't appear to use this libary anyway. I am reassinging this PR to the maintainer of multimedia/libkate (bar@FreeBSD.org) for further investigation. Do let me know if you find any other issues with the latest flex update. I checked many dependencies, but probably not all. However this port (multimedia/libkate) is not a dependency of flex.
I just hit the same problem, undefined reference to yylex in /usr/ local/lib/libfl.so, while building graphics/ender on another box. I noticed there is a flex 2.5.38_1 which corrects missing .la files in pkg-plist. Unfortunately, that still does not help the situation, not that I expected the presence of any .la files to affect use of the .so file. I had to revert flex to 2.5.37_1 to build ender. Maybe the libkate port has a problem since it's not listed as a port requiring flex for build. However, there seems to be a problem with current flex because I've seen more than one failure thus far. I don't know how many other ports might have failed had they been tried prior to reverting to the older flex.
Author: johans Date: Fri Feb 21 09:35:23 2014 New Revision: 345345 URL: http://svnweb.freebsd.org/changeset/ports/345345 QAT: https://qat.redports.org/buildarchive/r345345/ Log: Disable installation of shared libraries. These cause problems with several ports. PR: ports/186790 Submitted by: Matthew Rezny <matthew@reztek.cz> and others Modified: head/textproc/flex/Makefile head/textproc/flex/pkg-plist Modified: head/textproc/flex/Makefile ============================================================================== --- head/textproc/flex/Makefile Fri Feb 21 09:34:10 2014 (r345344) +++ head/textproc/flex/Makefile Fri Feb 21 09:35:23 2014 (r345345) @@ -2,7 +2,7 @@ PORTNAME= flex PORTVERSION= 2.5.38 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= textproc MASTER_SITES= SF/${PORTNAME} @@ -17,7 +17,7 @@ USES= bison gmake USE_BZIP2= yes GNU_CONFIGURE= yes # install flex header to its own dir to avoid conflict with system flex. -CONFIGURE_ARGS= --includedir=${PREFIX}/include/flex +CONFIGURE_ARGS= --includedir=${PREFIX}/include/flex --disable-shared CONFIGURE_ENV= M4=${LOCALBASE}/bin/gm4 INSTALL_TARGET= install-strip Modified: head/textproc/flex/pkg-plist ============================================================================== --- head/textproc/flex/pkg-plist Fri Feb 21 09:34:10 2014 (r345344) +++ head/textproc/flex/pkg-plist Fri Feb 21 09:35:23 2014 (r345345) @@ -3,12 +3,8 @@ bin/flex++ include/flex/FlexLexer.h lib/libfl.a lib/libfl.la -lib/libfl.so -lib/libfl.so.2 lib/libfl_pic.a lib/libfl_pic.la -lib/libfl_pic.so -lib/libfl_pic.so.2 man/man1/flex.1.gz %%PORTDOCS%%%%DOCSDIR%%/AUTHORS %%PORTDOCS%%%%DOCSDIR%%/COPYING _______________________________________________ svn-ports-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-ports-all To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
State Changed From-To: open->closed Has been worked around by removing shared libraries from flex.