[ 
https://issues.apache.org/jira/browse/THRIFT-898?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Philip (flip) Kromer updated THRIFT-898:
----------------------------------------

    Description: 
No idea if this was idiosyncratic, but here are two fixes I needed to install 
thrift from source on OSX Snow leopard using fink. Version was 0.4.0.

------

First problem was a complaint about libfl.a being the wrong bitness (wanted 
64-bit), which led to the same "undefined reference to `yywrap'" error as the 
FAQ.  (**Note to future readers**: you should probably try the [FAQ 
fix|http://wiki.apache.org/thrift/FAQ] first).  Thing is I was just fine on 
having flex, bison and byacc, and the fix there didn't help me.  Ultimately, 
uninstalling flex and installing bison from source made that go away.

-------

Next problem was that it crapped out in one of the tests:

{code}
        libtool: link: g++ -g -O2 -o .libs/Benchmark Benchmark.o 
-Wl,-bind_at_load  ./.libs/libtestgencpp.a 
/usr/local/share/thrift/lib/cpp/.libs/libthrift.dylib -lpthread
        ld: warning: in ./.libs/libtestgencpp.a, file was built for unsupported 
file format which is not the architecture being linked (x86_64)
        Undefined symbols:
          
"thrift::test::debug::OneOfEach::write(apache::thrift::protocol::TProtocol*) 
const", referenced from:
              _main in Benchmark.o
          
"thrift::test::debug::OneOfEach::read(apache::thrift::protocol::TProtocol*)", 
referenced from:
              _main in Benchmark.o
        ld: symbol(s) not found
        collect2: ld returned 1 exit status
{code}

in the file test/Makefile, I changed near line 539 the lines to read

{code}

       Benchmark$(EXEEXT): $(Benchmark_OBJECTS) $(Benchmark_DEPENDENCIES)
                true

        #       @rm -f Benchmark$(EXEEXT)
        #       $(CXXLINK) $(Benchmark_OBJECTS) $(Benchmark_LDADD) $(LIBS)
{code}

(skipping that one test).

Finally, when I went to do sudo make install, the ant run as sudo was 
ClassNotFoundException whereas the ant run as me was just fine:


{code}
        Making install in java
        /sw/bin/ant 
        Exception in thread "main" java.lang.NoClassDefFoundError: 
org/apache/tools/ant/launch/Launcher
        Caused by: java.lang.ClassNotFoundException: 
org.apache.tools.ant.launch.Launcher
                at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
                at java.security.AccessController.doPrivileged(Native Method)
                at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
                at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
                at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
                at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
        make[2]: *** [all-local] Error 1
        make[1]: *** [install-recursive] Error 1
        make: *** [install-recursive] Error 1
{code}

I dropped into a root shell and set  'ANT_HOME=/sw/lib/ant' and re-ran make 
install, and life was good.

  was:
No idea if this was idiosyncratic, but here are two fixes I needed to install 
thrift from source on OSX Snow leopard using fink. Version was 0.4.0.

------

First problem was a complaint about libfl.a being the wrong bitness (wanted 
64-bit), which led to the same "undefined reference to `yywrap'" error as the 
FAQ.  Thing is I was just fine on having flex, bison and byacc, and the fix 
there didn't help.  Ultimately uninstalling flex and installing bison from 
source made that go away.

-------

Next problem was that it crapped out in one of the tests:

        libtool: link: g++ -g -O2 -o .libs/Benchmark Benchmark.o 
-Wl,-bind_at_load  ./.libs/libtestgencpp.a 
/usr/local/share/thrift/lib/cpp/.libs/libthrift.dylib -lpthread
        ld: warning: in ./.libs/libtestgencpp.a, file was built for unsupported 
file format which is not the architecture being linked (x86_64)
        Undefined symbols:
          
"thrift::test::debug::OneOfEach::write(apache::thrift::protocol::TProtocol*) 
const", referenced from:
              _main in Benchmark.o
          
"thrift::test::debug::OneOfEach::read(apache::thrift::protocol::TProtocol*)", 
referenced from:
              _main in Benchmark.o
        ld: symbol(s) not found
        collect2: ld returned 1 exit status

in the file test/Makefile, I changed near line 539 the lines to read

        Benchmark$(EXEEXT): $(Benchmark_OBJECTS) $(Benchmark_DEPENDENCIES)
                true

        #       @rm -f Benchmark$(EXEEXT)
        #       $(CXXLINK) $(Benchmark_OBJECTS) $(Benchmark_LDADD) $(LIBS)

(skipping that one test).

Finally, when I went to do sudo make install, the ant run as sudo was 
ClassNotFoundException whereas the ant run as me was just fine:

        Making install in java
        /sw/bin/ant 
        Exception in thread "main" java.lang.NoClassDefFoundError: 
org/apache/tools/ant/launch/Launcher
        Caused by: java.lang.ClassNotFoundException: 
org.apache.tools.ant.launch.Launcher
                at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
                at java.security.AccessController.doPrivileged(Native Method)
                at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
                at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
                at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
                at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
        make[2]: *** [all-local] Error 1
        make[1]: *** [install-recursive] Error 1
        make: *** [install-recursive] Error 1

I dropped into a root shell and set  'ANT_HOME=/sw/lib/ant' and re-ran make 
install, and life was good.


> Hairy install of 0.4 on OSX Snow Leopard / fink: separate complaints re: 
> libfl.a; Benchmark.o; ClassNotFoundException
> ---------------------------------------------------------------------------------------------------------------------
>
>                 Key: THRIFT-898
>                 URL: https://issues.apache.org/jira/browse/THRIFT-898
>             Project: Thrift
>          Issue Type: Bug
>          Components: Test Suite
>    Affects Versions: 0.4
>            Reporter: Philip (flip) Kromer
>
> No idea if this was idiosyncratic, but here are two fixes I needed to install 
> thrift from source on OSX Snow leopard using fink. Version was 0.4.0.
> ------
> First problem was a complaint about libfl.a being the wrong bitness (wanted 
> 64-bit), which led to the same "undefined reference to `yywrap'" error as the 
> FAQ.  (**Note to future readers**: you should probably try the [FAQ 
> fix|http://wiki.apache.org/thrift/FAQ] first).  Thing is I was just fine on 
> having flex, bison and byacc, and the fix there didn't help me.  Ultimately, 
> uninstalling flex and installing bison from source made that go away.
> -------
> Next problem was that it crapped out in one of the tests:
> {code}
>         libtool: link: g++ -g -O2 -o .libs/Benchmark Benchmark.o 
> -Wl,-bind_at_load  ./.libs/libtestgencpp.a 
> /usr/local/share/thrift/lib/cpp/.libs/libthrift.dylib -lpthread
>         ld: warning: in ./.libs/libtestgencpp.a, file was built for 
> unsupported file format which is not the architecture being linked (x86_64)
>         Undefined symbols:
>           
> "thrift::test::debug::OneOfEach::write(apache::thrift::protocol::TProtocol*) 
> const", referenced from:
>               _main in Benchmark.o
>           
> "thrift::test::debug::OneOfEach::read(apache::thrift::protocol::TProtocol*)", 
> referenced from:
>               _main in Benchmark.o
>         ld: symbol(s) not found
>         collect2: ld returned 1 exit status
> {code}
> in the file test/Makefile, I changed near line 539 the lines to read
> {code}
>        Benchmark$(EXEEXT): $(Benchmark_OBJECTS) $(Benchmark_DEPENDENCIES)
>                 true
>         #     @rm -f Benchmark$(EXEEXT)
>         #     $(CXXLINK) $(Benchmark_OBJECTS) $(Benchmark_LDADD) $(LIBS)
> {code}
> (skipping that one test).
> Finally, when I went to do sudo make install, the ant run as sudo was 
> ClassNotFoundException whereas the ant run as me was just fine:
> {code}
>         Making install in java
>         /sw/bin/ant 
>         Exception in thread "main" java.lang.NoClassDefFoundError: 
> org/apache/tools/ant/launch/Launcher
>         Caused by: java.lang.ClassNotFoundException: 
> org.apache.tools.ant.launch.Launcher
>                 at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
>                 at java.security.AccessController.doPrivileged(Native Method)
>                 at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
>                 at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
>                 at 
> sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
>                 at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
>         make[2]: *** [all-local] Error 1
>         make[1]: *** [install-recursive] Error 1
>         make: *** [install-recursive] Error 1
> {code}
> I dropped into a root shell and set  'ANT_HOME=/sw/lib/ant' and re-ran make 
> install, and life was good.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to