[dpdk-dev] Undefined reference to FUSE

Verbeiren, David david.verbeiren at intel.com
Wed Mar 18 10:37:11 CET 2015


>> I have done what you said but it does not work.  I did it in the 
>> server I usually use and in a VM, in both of them appears the error.
>> To be clear, I have followed the next instructions: 
>> 
>> apt-get install fuse
>> apt-get install libfuse-dev
>> download dpdk-1.8.0
>> modify common_linuxapp:
>> +CONFIG_RTE_BUILD_COMBINE_LIBS=y
>> +CONFIG_RTE_LIBRTE_VHOST=y
>> make config T=x86_64-native-linuxapp-gcc make install 
>> T=x86_64-native-linuxapp-gcc
>> 
>> git clone ovs
>> apply next patch:
>> http://openvswitch.org/pipermail/dev/2015-March/052061.html
>> ./boot.sh
>> ./configure --with-dpdk=$DPDK_BUILD
>> make
>> 
>> Is anything wrong with it? 
>
> I don't see anything obvious that's wrong. I've just checked it now on my own system with the commit I rebased against and it's compiling ok.
> I'm on F20 with 3.16. The part of the patch that adds the fuse library is below, so you could check to make sure it has applied ok.
>
> diff --git a/lib/automake.mk b/lib/automake.mk index 2acfe18..594dec4 100644
> --- a/lib/automake.mk
> +++ b/lib/automake.mk
> @@ -346,6 +346,7 @@ lib_libopenvswitch_la_SOURCES += \  endif
>  
>  if DPDK_NETDEV
> +lib_libopenvswitch_la_LDFLAGS += -lfuse
>
>
> After that I'm not really sure where to go. I'll try it on the head of master when I'm back in the office on Wednesday. 

I can confirm this problem, at least on Ubuntu (14.10). I believe it is due to the fact that dependencies on shared objects (-lfuse) are not captured in .la files. Hence when executables are linked with libopenvswitch.a, the -lfuse link flag doesn't get added automatically.
I've seen this on another project but I'm not sure what is the proper solution. The difference with other shared objects (e.g. -ldl) is that those get added during configure step and land into $(LIBS) that then gets widely applied.

The easy workaround though is to add -lfuse to LIBS at ovs make invocation time:
 make LIBS=-lfuse



More information about the dev mailing list