After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 507344 - Fails to build with flex-2.5.34
Fails to build with flex-2.5.34
Status: RESOLVED NOTGNOME
Product: libIDL
Classification: Deprecated
Component: general
0.8.x
Other All
: Normal minor
: ---
Assigned To: Mark McLoughlin
Mark McLoughlin
Depends on:
Blocks:
 
 
Reported: 2008-01-04 20:17 UTC by Ken Moffat
Modified: 2009-10-28 19:27 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Patch to change %p to %pointer (311 bytes, patch)
2008-01-04 20:21 UTC, Ken Moffat
none Details | Review

Description Ken Moffat 2008-01-04 20:17:46 UTC
Please describe the problem:
Flex-2.5.34 gets confused:

libIDL 0.8.9 configuration complete

  C Preprocessor: "gcc -E"
  Standard input supported.

bison -y -d -v 2>/dev/null ./parser.y
touch stamp-parser
test -f y.tab.h && mv -f y.tab.h parser.h || touch parser.h
flex -8 -t ./lexer.l | sed -e 's/yy/__IDL_/g' >lexer.c
./lexer.l:116: bad character: %
./lexer.l:116: unknown error processing section 1
./lexer.l:116: unknown error processing section 1
./lexer.l:116: bad character: 5
./lexer.l:116: bad character: 0
./lexer.l:116: bad character: 0
./lexer.l:116: bad character: 0
test -f y.tab.c && mv -f y.tab.c parser.c || touch parser.c

 This has the unfortunate result that lexer.c does not contain anything from lexer.l. so the link fails with
/bin/sh ./libtool --mode=link gcc  -O2   -o tstidl  tstidl.o libIDL-2.la -lglib-2.0   
gcc -O2 -o .libs/tstidl tstidl.o  ./.libs/libIDL-2.so /usr/lib/libglib-2.0.so 
./.libs/libIDL-2.so: undefined reference to `__IDL_cur_token_line'
./.libs/libIDL-2.so: undefined reference to `__IDL_lex_cleanup'
./.libs/libIDL-2.so: undefined reference to `__IDL_prev_token_line'
./.libs/libIDL-2.so: undefined reference to `__IDL_lex'
./.libs/libIDL-2.so: undefined reference to `__IDL_in'
./.libs/libIDL-2.so: undefined reference to `__IDL_lex_init'
collect2: ld returned 1 exit status


Steps to reproduce:
1. Try to use flex-2.5.34 as your flex.
2. configure ; make
3. 


Actual results:
 As in the summary.

Expected results:
 A successful build would be nice ;-)

Does this happen every time?
 Yes.

Other information:
 Will attach a patch as soon as I've filed this.
Comment 1 Ken Moffat 2008-01-04 20:21:05 UTC
Created attachment 102158 [details] [review]
Patch to change %p to %pointer

 Works for me.
Comment 2 Ken Moffat 2008-02-05 15:04:25 UTC
 Actually, a better fix is to remove this line.  It seems that flex-2.5.34 no longer silently ignores lex table size declarations.  Flex bug 1860773 has already been raised.

 I'll leave this open so that someone can decide whether the '%p' is really needed.
Comment 3 Kjartan Maraas 2009-01-22 11:22:31 UTC
Looks like this works with flex 2.5.35 at least. Close this?
Comment 4 Ken Moffat 2009-01-23 15:18:43 UTC
Seems a good idea: treat it as yet another flex bug.  I'll leave you to decide which of the possible resolutions is most appropriate.
Comment 5 Kjartan Maraas 2009-10-28 19:27:22 UTC
Ok. Closing as a flex bug then.