[
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.