On Mon, Feb 14, 2011 at 1:46 PM, Nathanael Noblet <nathanaelnob...@gmail.com
> wrote:
> So on further review, it is because of the build system. It is using
> recursive makefiles, which when built on a machine with make -j16 fails
> since the library isn't yet built by the time the tools start building. The
> fedora people have suggested that it be fixed by not using recursive
> makefiles, and a google search of "recursive make considered harmful" has
> lots of hits as to what the problem is and potential solutions. In the mean
> time I've specified the package to build without taking advantage of the smp
> capabilities of the build system.
Annnnnd that's untrue. The issue stems from a rpath issue. As part of fedora
packaging guidlines we aren't allowed to have embedded rpaths that are
system rpaths (like /usr/lib64) etc. So the spec file runs this.
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g'
libtool
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
to remove that... which results in within tools directory:
DIE_RPATH_DIE="/usr/lib64:$DIE_RPATH_DIE" g++ -Wall -g -O2 -g -pipe
-Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -m64 -mtune=generic -o .libs/bjdwp bjdwp.o
../src/.libs/libbarry.so ../src/.libs/libbarryjdwp.so -lpthread
/usr/bin/ld: warning: libbarrydp.so.17, needed by
../src/.libs/libbarryjdwp.so, not found (try using -rpath or
-rpath-link)
../src/.libs/libbarryjdwp.so: undefined reference to
`Barry::JDG::LoadDebugInfo(Barry::JDG::DebugFileList const&, unsigned
int, std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, Barry::JDG::CodInfo&)'
../src/.libs/libbarryjdwp.so: undefined reference to
`Barry::JDG::SearchDebugFile(Barry::JDG::DebugFileList&)'
../src/.libs/libbarryjdwp.so: undefined reference to
`Barry::JDG::CodInfo::GetUniqueId()'
../src/.libs/libbarryjdwp.so: undefined reference to
`Barry::JDG::ClassList::CreateDefaultEntries()'
collect2: ld returned 1 exit status
if I manually run
DIE_RPATH_DIE="/usr/lib64:$DIE_RPATH_DIE" g++ -Wall -g -O2 -g -pipe
-Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -m64 -mtune=generic -o .libs/bjdwp bjdwp.o
../src/.libs/libbarry.so ../src/.libs/libbarrydp.so.17
../src/.libs/libbarryjdwp.so -lpthread
it completes...
I'm not sure what Makefile.am or whatever to modify to have it add
that dependency when building/linking.
------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Barry-devel mailing list
Barry-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/barry-devel