[
https://issues.apache.org/jira/browse/THRIFT-3163?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18112792#comment-18112792
]
Sylwester Lachiewicz edited comment on THRIFT-3163 at 9/8/26 1:45 PM:
----------------------------------------------------------------------
automake still generates ylwrap and still uses it for the lexer and parser; it
is listed in
[Makefile.am:62|https://github.com/apache/thrift/blob/master/Makefile.am#L62].
The defect was in the ylwrap that Ubuntu 15.04's automake shipped in 2015, not
in Thrift, and it was fixed upstream in automake. CI builds the compiler
through the same autotools path on every push and the failure does not appear.
Resolving as Cannot Reproduce.
was (Author: slachiewicz):
ylwrap is no longer part of the build tree; the lex/yacc wrapper setup that
misbehaved is gone. Resolving as Fixed.
> Build failure due to ylwrap being called with wrong arguments
> -------------------------------------------------------------
>
> Key: THRIFT-3163
> URL: https://issues.apache.org/jira/browse/THRIFT-3163
> Project: Thrift
> Issue Type: Bug
> Components: Compiler (General)
> Environment: Ubuntu 15.04
> automake 1.14.1
> GNU Make 4.0
> ylwrap 2013-01-12.17
> Reporter: Tomasz Kupczyk
> Priority: Minor
> Labels: build-failure
>
> Hey, when trying to build on fresh Ubuntu 15.04 installation I got this
> problem:
> floyd@floyd-VirtualBox:~/thrift$ make
> make all-recursive
> make[1]: Entering directory '/home/floyd/thrift'
> Making all in compiler/cpp
> make[2]: Entering directory '/home/floyd/thrift/compiler/cpp'
> make all-am
> make[3]: Entering directory '/home/floyd/thrift/compiler/cpp'
> \
> \
> /bin/bash ../../ylwrap `test -f 'src/thriftl.ll' || echo './'`src/thriftl.ll
> .c thriftl.cc -- /bin/bash /home/floyd/thrift/missing flex
> /home/floyd/thrift/compiler/cpp/src/thriftl.ll:266: warning, rule cannot be
> matched
> /home/floyd/thrift/compiler/cpp/src/thriftl.ll:285: warning, rule cannot be
> matched
> /home/floyd/thrift/compiler/cpp/src/thriftl.ll:413: warning, rule cannot be
> matched
> lex.yythriftl.cc is unchanged
> g++ -DHAVE_CONFIG_H -I. -I../.. -I../../lib/cpp/src/thrift -I./src -Wall
> -Wno-sign-compare -Wno-unused -g -O2 -std=c++11 -MT libparse_a-thriftl.o -MD
> -MP -MF .deps/libparse_a-thriftl.Tpo -c -o libparse_a-thriftl.o `test -f
> 'thriftl.cc' || echo './'`thriftl.cc
> g++: error: ./thriftl.cc: No such file or directory
> g++: fatal error: no input files
> compilation terminated.
> Makefile:790: recipe for target 'libparse_a-thriftl.o' failed
> make[3]: *** [libparse_a-thriftl.o] Error 4
> make[3]: Leaving directory '/home/floyd/thrift/compiler/cpp'
> Makefile:579: recipe for target 'all' failed
> make[2]: *** [all] Error 2
> make[2]: Leaving directory '/home/floyd/thrift/compiler/cpp'
> Makefile:600: recipe for target 'all-recursive' failed
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory '/home/floyd/thrift'
> Makefile:521: recipe for target 'all' failed
> make: *** [all] Error 2
> I found the problem is in this command:
> /bin/bash ../../ylwrap `test -f 'src/thriftl.ll' || echo './'`src/thriftl.ll
> .c thriftl.cc -- /bin/bash /home/floyd/thrift/missing flex
> Exactly in second argument to ylwrap which above is just string '.c'. The
> proper command to run should be:
> floyd@floyd-VirtualBox:~/thrift$ cd compiler/cpp/
> floyd@floyd-VirtualBox:~/thrift/compiler/cpp$ /bin/bash ../../ylwrap `test -f
> 'src/thriftl.ll' || echo './'`src/thriftl.ll lex.yy.c thriftl.cc -- /bin/bash
> /home/floyd/thrift/missing flex
> So instead of '.c' it should have 'lex.yy.c' name which is the default name
> for lex generated filenames AFAIK. After manually running this command the
> build continues and even finishes (hurray!).
--
This message was sent by Atlassian Jira
(v8.20.10#820010)