Menu

#132 scanner.l too complicated for many versions of lex

Git head
closed
nobody
None
5
2013-11-20
2010-04-12
Anonymous
No

~/libpcap-1.1.1$ ./configure --without-flex --without-bison
checking build system type... i386-pc-solaris2.11
checking host system type... i386-pc-solaris2.11
checking target system type... i386-pc-solaris2.11
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking gcc version... 3
checking for inline... inline
checking for __attribute__... yes
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/gnu/bin/grep
checking for egrep... /usr/gnu/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking sys/bitypes.h usability... no
checking sys/bitypes.h presence... no
checking for sys/bitypes.h... no
checking for int8_t... yes
checking for u_int8_t... no
checking for int16_t... yes
checking for u_int16_t... no
checking for int32_t... yes
checking for u_int32_t... no
checking for int64_t... yes
checking for u_int64_t... no
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... 64
checking for _LARGEFILE_SOURCE value needed for large files... no
checking sys/ioccom.h usability... yes
checking sys/ioccom.h presence... yes
checking for sys/ioccom.h... yes
checking sys/sockio.h usability... yes
checking sys/sockio.h presence... yes
checking for sys/sockio.h... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking paths.h usability... no
checking paths.h presence... no
checking for paths.h... no
checking for net/pfvar.h... no
checking for netinet/if_ether.h... no
configure: Rechecking with some additional includes
checking for netinet/if_ether.h... yes
checking for ANSI ioctl definitions... yes
checking for strerror... yes
checking for strlcpy... yes
checking for vsnprintf... yes
checking for snprintf... yes
checking for library containing gethostbyname... -lnsl
checking for library containing socket... -lsocket
checking for library containing putmsg... none required
checking for ether_hostton... yes
checking whether ether_hostton is declared... yes
checking if --disable-protochain option is specified... enabled
checking packet capture type... bpf
checking net/if_media.h usability... no
checking net/if_media.h presence... no
checking for net/if_media.h... no
checking whether the system supports zerocopy BPF... no
checking for struct BPF_TIMEVAL... no
checking for getifaddrs... no
checking for socklen_t... yes
checking for getaddrinfo... yes
checking whether to build optimizer debugging code... no
checking whether to build parser debugging code... no
checking whether we have DAG API headers... no (/usr/local/include)
checking whether we have the DAG API... no
checking whether we have Septel API... no
checking whether we have Myricom Sniffer API... no (/opt/snf)
checking for capable lex... insufficient
configure: error: Your operating system's lex is insufficient to compile
libpcap. flex is a lex replacement that has many advantages, including
being able to compile libpcap. For more information, see
http://www.gnu.org/software/flex/flex.html .
~/libpcap-1.1.1$

Attaching config log.

Discussion

  • Guy Harris

    Guy Harris - 2010-04-28

    What happens if you run

    lex -t scanner.l

    on libpcap's scanner.l file? If it gives an error "Definitions too long", then the configure script is telling the truth - the lex that comes with OpenSolaris 135, just like the lex that comes with Solaris 10, *is*, in fact, insufficient to compile libpcap, because, for better or worse, libpcap's scanner definitions are complex. A lot of the complexity is probably due to the patterns that match IPv6 addresses; unless either

    1) we replace the {f}lex scanner with a hand-written scanner;

    2) use another scanner-generator (which probably doesn't come with Solaris, so you'd *still* have to download and install it, so it's not an improvement over "use flex");

    3) find a way to handle IPv6 addresses, *using only features in lex* (i.e., not using special flex features);

    this is unlikely to be fixed. In any case, it's unlikely to be fixed in the near future; I'd strongly suggest you install flex.

     
  • Guy Harris

    Guy Harris - 2010-04-28
    • summary: can't build libpcap-1.1.1 on OpenSolaris 135 --> scanner.l too complicated for many versions of lex
     
  • Guy Harris

    Guy Harris - 2010-04-28

    Changing title to more accurately the underlying problem.

     
  • Denis Ovsienko

    Denis Ovsienko - 2013-11-20

    Administrators of the "libpcap" SourceForge project have superseded this tracker item (formerly artifact 2985942, now bug 132) with issue 134 of the "libpcap" GitHub project.

     
  • Denis Ovsienko

    Denis Ovsienko - 2013-11-20
    • status: open --> closed
    • Group: --> Git head
     
  • Denis Ovsienko

    Denis Ovsienko - 2013-11-20

    Administrators of the "libpcap" SourceForge project have superseded this tracker item (formerly artifact 2985942, now bug 132) with issue 134 of the "libpcap" GitHub project.