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. 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.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.