Thrift
  1. Thrift
  2. THRIFT-1614

Thrift build from svn repo sources fails with automake-1.12

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 0.9
    • Fix Version/s: 0.9.2
    • Component/s: Build Process
    • Labels:
      None
    • Environment:

      Reproduced on OS X 10.7 with homebrew automake-1.12

      Description

      The yacc.am included in automake-1.12 creates the file "thrifty.hh" instead of "thrifty.h", but the generated file "thriftl.cc" includes "thrifty.h".

      Problem goes away when I downgrade automake to 1.11.5

        Issue Links

          Activity

          Hide
          Jeff Whiting added a comment -

          I ran into this problem as well. I just went and changed the include in "thriftl.cc" to be "thrifty.hh" by hand. Not really a solution but it let me compile it.

          My vote is to get this fixed as well.

          Show
          Jeff Whiting added a comment - I ran into this problem as well. I just went and changed the include in "thriftl.cc" to be "thrifty.hh" by hand. Not really a solution but it let me compile it. My vote is to get this fixed as well.
          Hide
          Krishna Guda added a comment -

          I changed this by hand from the "thriftl.cc". I also vote for a fix to this issue.

          Show
          Krishna Guda added a comment - I changed this by hand from the "thriftl.cc". I also vote for a fix to this issue.
          Hide
          Volodymyr Krestiannykov added a comment - - edited

          Well, this is definitely problem of automake >= 12.
          Here is the release info here:
          http://lists.gnu.org/archive/html/automake/2012-04/msg00060.html

          See "Changes to Yacc and Lex support" section.

          Currently not only OS X uses this version of automake, but also Fedora, OpenSuse, anything else?
          The bad thing here that there is not a normal solution, probably we will have to write all yacc rules directly in
          compiler/cpp/src/Makefile (I tried it and it looks like hack)

          Any ideas how to do it in a normal way?

          Also, I think that, it makes sense to increase the priority of this bug.

          Show
          Volodymyr Krestiannykov added a comment - - edited Well, this is definitely problem of automake >= 12. Here is the release info here: http://lists.gnu.org/archive/html/automake/2012-04/msg00060.html See "Changes to Yacc and Lex support" section. Currently not only OS X uses this version of automake, but also Fedora, OpenSuse, anything else? The bad thing here that there is not a normal solution, probably we will have to write all yacc rules directly in compiler/cpp/src/Makefile (I tried it and it looks like hack) Any ideas how to do it in a normal way? Also, I think that, it makes sense to increase the priority of this bug.
          Hide
          Chris Piro added a comment - - edited

          The attached patch seems to work for "automake (GNU automake) 1.13.1" on my Mac+Homebrew box and "automake (GNU automake) 1.11.1" on my older Ubuntu 11.04 box – can't say for Windows

          Show
          Chris Piro added a comment - - edited The attached patch seems to work for "automake (GNU automake) 1.13.1" on my Mac+Homebrew box and "automake (GNU automake) 1.11.1" on my older Ubuntu 11.04 box – can't say for Windows
          Hide
          Chris Piro added a comment -

          (I committed my patch)

          Show
          Chris Piro added a comment - (I committed my patch)
          Hide
          Hudson added a comment -

          Integrated in Thrift #626 (See https://builds.apache.org/job/Thrift/626/)
          THRIFT-1614: handle automake >= 1.12 yacc output name (thrifty.hh) (Revision 92e3860cfbaab5132439b9bac2e18dba06494bcc)

          Result = ABORTED
          cpiro : https://git-wip-us.apache.org/repos/asf?p=thrift.git&a=commit&h=92e3860cfbaab5132439b9bac2e18dba06494bcc
          Files :

          • compiler/cpp/compiler.vcxproj.filters
          • bootstrap.sh
          • compiler/cpp/src/thriftl.ll
          • .gitignore
          • rat_exclude
          • compiler/cpp/README_Windows.txt
          • compiler/cpp/Makefile.am
          • compiler/cpp/compiler.vcxproj
          Show
          Hudson added a comment - Integrated in Thrift #626 (See https://builds.apache.org/job/Thrift/626/ ) THRIFT-1614 : handle automake >= 1.12 yacc output name (thrifty.hh) (Revision 92e3860cfbaab5132439b9bac2e18dba06494bcc) Result = ABORTED cpiro : https://git-wip-us.apache.org/repos/asf?p=thrift.git&a=commit&h=92e3860cfbaab5132439b9bac2e18dba06494bcc Files : compiler/cpp/compiler.vcxproj.filters bootstrap.sh compiler/cpp/src/thriftl.ll .gitignore rat_exclude compiler/cpp/README_Windows.txt compiler/cpp/Makefile.am compiler/cpp/compiler.vcxproj
          Hide
          Jake Farrell added a comment -

          breaks dist build

          Show
          Jake Farrell added a comment - breaks dist build
          Hide
          Jake Farrell added a comment -

          Fixed 92f24b2

          Show
          Jake Farrell added a comment - Fixed 92f24b2
          Hide
          Hudson added a comment -

          FAILURE: Integrated in Thrift #857 (See https://builds.apache.org/job/Thrift/857/)
          THRIFT-1614: Thrift build from svn repo sources fails with automake-1.12 (jfarrell: rev 92f24b2780fb7ca81063c3a0bb399500ee819d82)

          • compiler/cpp/Makefile.am
          • configure.ac
          • compiler/cpp/src/thriftl.ll
          • bootstrap.sh
          Show
          Hudson added a comment - FAILURE: Integrated in Thrift #857 (See https://builds.apache.org/job/Thrift/857/ ) THRIFT-1614 : Thrift build from svn repo sources fails with automake-1.12 (jfarrell: rev 92f24b2780fb7ca81063c3a0bb399500ee819d82) compiler/cpp/Makefile.am configure.ac compiler/cpp/src/thriftl.ll bootstrap.sh
          Hide
          Hudson added a comment -

          FAILURE: Integrated in Thrift #860 (See https://builds.apache.org/job/Thrift/860/)
          Thrift-1614:Thrift build from svn repo sources fails with automake-1.12 (jfarrell: rev f7516e13d3f80ee0386e6ec647bc5c554e7f9cfb)

          • compiler/cpp/Makefile.am
          Show
          Hudson added a comment - FAILURE: Integrated in Thrift #860 (See https://builds.apache.org/job/Thrift/860/ ) Thrift-1614:Thrift build from svn repo sources fails with automake-1.12 (jfarrell: rev f7516e13d3f80ee0386e6ec647bc5c554e7f9cfb) compiler/cpp/Makefile.am
          Hide
          Jens Geyer added a comment -

          Again, make dist fails on openSUSE and Ubuntu. This is what I get:

          $> make dist
          make  dist-gzip am__post_remove_distdir='@:'
          make[1]: Entering directory `/home/jens/Arbeitsfläche/Thrift/thrift1'
          if test -d "thrift-1.0.0-dev"; then find "thrift-1.0.0-dev" -type d ! -perm -200 -exec chmod u+w {} ';' && rm -rf "thrift-1.0.0-dev" || { sleep 5 && rm -rf "thrift-1.0.0-dev"; }; else :; fi
          test -d "thrift-1.0.0-dev" || mkdir "thrift-1.0.0-dev"
           (cd compiler/cpp && make  top_distdir=../../thrift-1.0.0-dev distdir=../../thrift-1.0.0-dev/compiler/cpp \
               am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)
          make[2]: Entering directory `/home/jens/Arbeitsfläche/Thrift/thrift1/compiler/cpp'
          \
           \
          /bin/sh ../../ylwrap `test -f 'src/thrifty.yy' || echo './'`src/thrifty.yy y.tab.c thrifty.cc y.tab.h `echo thrifty.cc | sed -e s/cc$/h/ -e s/cpp$/hpp/ -e s/cxx$/hxx/ -e s/c++$/h++/ -e s/c$/h/` y.output thrifty.output -- bison -y -d 
          updating thrifty.h
          make[3]: Entering directory `/home/jens/Arbeitsfläche/Thrift/thrift1/compiler/cpp'
          \
           \
          /bin/sh ../../ylwrap `test -f 'src/thrifty.yy' || echo './'`src/thrifty.yy y.tab.c thrifty.cc y.tab.h `echo thrifty.cc | sed -e s/cc$/h/ -e s/cpp$/hpp/ -e s/cxx$/hxx/ -e s/c++$/h++/ -e s/c$/h/` y.output thrifty.output -- bison -y -d 
          thrifty.h is unchanged
          make[3]: Leaving directory `/home/jens/Arbeitsfläche/Thrift/thrift1/compiler/cpp'
          \
           \
          /bin/sh ../../ylwrap `test -f 'src/thriftl.ll' || echo './'`src/thriftl.ll lex.yy.c thriftl.cc -- flex  
          cp: der Aufruf von stat für „./thrifty.hh“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
          make[2]: *** [distdir] Fehler 1
          make[2]: Leaving directory `/home/jens/Arbeitsfläche/Thrift/thrift1/compiler/cpp'
          make[1]: *** [distdir] Fehler 1
          make[1]: Leaving directory `/home/jens/Arbeitsfläche/Thrift/thrift1'
          make: *** [dist] Fehler 2
          

          The error above translates to sth. like "cp: calling stat for „./thrifty.hh“ is not possible: File or directory not found.

          Henrique gets a similar message on Ubuntu 13.10.

          Show
          Jens Geyer added a comment - Again, make dist fails on openSUSE and Ubuntu. This is what I get: $> make dist make dist-gzip am__post_remove_distdir='@:' make[1]: Entering directory `/home/jens/Arbeitsfläche/Thrift/thrift1' if test -d "thrift-1.0.0-dev" ; then find "thrift-1.0.0-dev" -type d ! -perm -200 -exec chmod u+w {} ';' && rm -rf "thrift-1.0.0-dev" || { sleep 5 && rm -rf "thrift-1.0.0-dev" ; }; else :; fi test -d "thrift-1.0.0-dev" || mkdir "thrift-1.0.0-dev" (cd compiler/cpp && make top_distdir=../../thrift-1.0.0-dev distdir=../../thrift-1.0.0-dev/compiler/cpp \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[2]: Entering directory `/home/jens/Arbeitsfläche/Thrift/thrift1/compiler/cpp' \ \ /bin/sh ../../ylwrap `test -f 'src/thrifty.yy' || echo './'`src/thrifty.yy y.tab.c thrifty.cc y.tab.h `echo thrifty.cc | sed -e s/cc$/h/ -e s/cpp$/hpp/ -e s/cxx$/hxx/ -e s/c++$/h++/ -e s/c$/h/` y.output thrifty.output -- bison -y -d updating thrifty.h make[3]: Entering directory `/home/jens/Arbeitsfläche/Thrift/thrift1/compiler/cpp' \ \ /bin/sh ../../ylwrap `test -f 'src/thrifty.yy' || echo './'`src/thrifty.yy y.tab.c thrifty.cc y.tab.h `echo thrifty.cc | sed -e s/cc$/h/ -e s/cpp$/hpp/ -e s/cxx$/hxx/ -e s/c++$/h++/ -e s/c$/h/` y.output thrifty.output -- bison -y -d thrifty.h is unchanged make[3]: Leaving directory `/home/jens/Arbeitsfläche/Thrift/thrift1/compiler/cpp' \ \ /bin/sh ../../ylwrap `test -f 'src/thriftl.ll' || echo './'`src/thriftl.ll lex.yy.c thriftl.cc -- flex cp: der Aufruf von stat für „./thrifty.hh“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden make[2]: *** [distdir] Fehler 1 make[2]: Leaving directory `/home/jens/Arbeitsfläche/Thrift/thrift1/compiler/cpp' make[1]: *** [distdir] Fehler 1 make[1]: Leaving directory `/home/jens/Arbeitsfläche/Thrift/thrift1' make: *** [dist] Fehler 2 The error above translates to sth. like "cp: calling stat for „./thrifty.hh“ is not possible: File or directory not found. Henrique gets a similar message on Ubuntu 13.10.
          Hide
          Henrique Mendonça added a comment -

          I think this was already fixed elsewhere, please reopen if you still see this effect.

          Show
          Henrique Mendonça added a comment - I think this was already fixed elsewhere, please reopen if you still see this effect.

            People

            • Assignee:
              Jake Farrell
              Reporter:
              Andrew Cox
            • Votes:
              5 Vote for this issue
              Watchers:
              12 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development