Re: utilrb builds into source dir?

Sylvain Joyeux <[email protected]> Fri, 16 May 2014 16:12:04 +0200
Newsgroups gmane.science.robotics.orocos.devel
Message-ID <CAFENT7LDESnNA0OWBwOwK-JNOvntpw=d2yKyFHKeTYJKBVBLgg@mail.gmail.com>
utilrb is following standard practices for ruby packages (actually gem
packages), which is to build extensions in the gem directory. However,
utilrb master deals with the multiarch problem (thanks to the rake-compiler
plugin) by building into a directory that is named after the build
architecture (e.g. tmp/x86-64_linux_gnu or something like that).

Sylvain


2014-02-25 12:35 GMT+01:00 S Roderick <[email protected]>:

> It looks like utilrb builds into the source directory and when combined
> with the need to build the orocos_toolchain from source as sudo, causes
> build errors on an sshfs-mounted filesystem. Separately, this also prevents
> sharing the code directory between multiple machines with different O/S's.
>
> What is utilrb building into the source dir? Is this actually necessary?
> How hard would it be to change it to build into the build dir?
>
> Note that this builds fine on the same machine if I use local source dir's.
>
> Cheers
> S
>
> ==> Processing plain cmake package: 'utilrb'
> ==> Building with env: '/opt/ros/hydro/env.sh'
> Makefile exists, skipping explicit cmake invocation...
> ==> make cmake_check_build_system in
> '/home/sroderick/orocos_ws/build_isolated/utilrb/install'
> ==> make -j8 -l8 in
> '/home/sroderick/orocos_ws/build_isolated/utilrb/install'
> INFO: cannot load the Hoe gem. Distribution is disabled
> INFO: error message is: cannot load such file -- hoe
> creating Makefile
> make[3]: warning: jobserver unavailable: using -j1.  Add `+' to parent
> make rule.
> linking shared-object utilrb_ext.so
> /usr/bin/ld: i386 architecture of input file `proc.o' is incompatible with
> i386:x86-64 output
> /usr/bin/ld: i386 architecture of input file `swap.o' is incompatible with
> i386:x86-64 output
> /usr/bin/ld: i386 architecture of input file `utilrb_ext.o' is
> incompatible with i386:x86-64 output
> /usr/bin/ld: i386 architecture of input file `value_set.o' is incompatible
> with i386:x86-64 output
> /usr/bin/ld: i386 architecture of input file `weakref.o' is incompatible
> with i386:x86-64 output
> utilrb_ext.o: In function
> `__gnu_cxx::new_allocator<std::_Rb_tree_node<unsigned long>
> >::allocate(unsigned int, void const*)':
> /usr/include/c++/4.7/ext/new_allocator.h:94: undefined reference to
> `operator new(unsigned int)'
> value_set.o: In function `value_set_alloc':
> /home/sroderick/ssc/code/orocos_toolchain/utilrb/ext/value_set.cc:22:
> undefined reference to `operator new(unsigned int)'
> weakref.o: In function `weakref_alloc':
> /home/sroderick/ssc/code/orocos_toolchain/utilrb/ext/weakref.cc:45:
> undefined reference to `operator new(unsigned int)'
> weakref.o: In function `std::_Rb_tree<unsigned long, unsigned long,
> std::_Identity<unsigned long>, std::less<unsigned long>,
> std::allocator<unsigned long> >::_M_get_node()':
> /usr/include/c++/4.7/ext/new_allocator.h:94: undefined reference to
> `operator new(unsigned int)'
> weakref.o: In function
> `__gnu_cxx::new_allocator<std::_Rb_tree_node<unsigned long>
> >::allocate(unsigned int, void const*)':
> /usr/include/c++/4.7/ext/new_allocator.h:94: undefined reference to
> `operator new(unsigned int)'
> weakref.o:/usr/include/c++/4.7/ext/new_allocator.h:94: more undefined
> references to `operator new(unsigned int)' follow
> /usr/bin/ld: proc.o: file class ELFCLASS32 incompatible with ELFCLASS64
> /usr/bin/ld: final link failed: File in wrong format
> collect2: error: ld returned 1 exit status
> make[3]: *** [utilrb_ext.so] Error 1
> rake aborted!
> cannot build the C extension
>
> Tasks: TOP => default => setup
> (See full trace by running task with --trace)
> make[2]: *** [CMakeFiles/utilrb_ext] Error 1
> make[1]: *** [CMakeFiles/utilrb_ext.dir/all] Error 2
> make: *** [all] Error 2
>
>
> --
> Orocos-Dev mailing list
> [email protected]
> http://lists.mech.kuleuven.be/mailman/listinfo/orocos-dev
>
>

-- 
Orocos-Dev mailing list
[email protected]
http://lists.mech.kuleuven.be/mailman/listinfo/orocos-dev