#1 requires flex v 2.5.33 or lower

open-works-for-me
nobody
None
5
2010-12-05
2009-10-04
Stevan White
No

This may not be properly a bug with rlabplus, but it is likely to soon render the package obsolete.
Already on my Ubuntu 9.04 system, flex is at 2.5.35, and rlabplus won't install because of it.

$ ./configure --with-pgplot=pgplot/
...
checking for flex... rlabplus requires flex version 2.5.33 or lower
no
...

It then builds, but then refuses to install
$ make install
gcc -DHAVE_CONFIG_H -DDEFAULT_RC0=\"/usr/local/lib/rlab-2.2.11-gcc4.3.3/.rlab\" -DDEFAULT_HELP=\"/usr/local/lib/rlab-2.2.11-gcc4.3.3/doc/help\" -DDEFAULT_LIB=\"/usr/local/lib/rlab-2.2.11-gcc4.3.3/rlib\" -DDEFAULT_PAGER=\""less"\" -DDEFAULT_HELP_PAGER=\""less"\" -DDEFAULT_SEARCH_PATH=\"".:/usr/local/lib/rlab-2.2.11-gcc4.3.3/rlib:/usr/local/lib/rlab-2.2.11-gcc4.3.3/toolbox:/usr/local/lib/rlab-2.2.11-gcc4.3.3/controls-toolbox"\" -DASSERT_OFF -I./gc/include -c main.c
echo 'expect 17 shift/reduce conflicts' ;\
bison -y -vdtl rlab.y ;\
mv y.tab.c rlab.c ;
expect 17 shift/reduce conflicts
rlab.y:97 parser name defined to default :"parse"
conflicts: 17 shift/reduce
gcc -DASSERT_OFF -I./gc/include -DHAVE_CONFIG_H -c rlab.c
if test -n "flex" ;\
then flex -I -L -X scan.l ;\
sed -f misc/r.sed lex.yy.c > lex.tmp;\
mv lex.tmp lex.yy.c;\
else echo 'copying from distribution files' ;\
cp lex.yy.c_dist lex.yy.c ;\
fi
gcc -DASSERT_OFF -I./gc/include -DHAVE_CONFIG_H \
-c lex.yy.c
lex.yy.c: In function ‘yy_get_next_buffer’:
lex.yy.c:1879: error: lvalue required as unary ‘&’ operand
lex.yy.c: In function ‘rlab_yy_input’:
lex.yy.c:2801: warning: format not a string literal and no format arguments
make: *** [lex.yy.o] Error 1

Discussion

  • I am also affected by this bug.

     
  • mk
    mk
    2010-12-05

    To whom it concerns,

    lex_yy.c produced by flex-2.5.33 compiles correctly, while that produced by flex-2.5.35 fails with error "lvalue required as unary ‘&’ operand".
    The problem is in flex, as the version flex-2.5.35 produces the following code at, or near, line 1864:
    [snip]
    1864: /* Read in more data. */
    1865: YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
    1866: (yy_n_chars), (size_t) num_to_read );
    [snip]
    More precisely, the definition in the line 1866: (size_t) num_to_read, (size_t) has to be removed, and then the code compiles without problem.

    The developers of flex have been notified of the issue.

    Regards,
    mk

     
  • mk
    mk
    2010-12-05

    • status: open --> open-works-for-me