Hi all
i am trying to build OVS 2.5.3 with shared libraries for aarch64 with a Linaro toolchain based on GCC 5.3.1 “gcc –v” gives gcc version 5.3.1 20160412 (Linaro GCC 5.3-2016.05) my configure line shows this (from config.log). note that it was generated by buildroot so some options are meaningless for OVS /configure --target=aarch64-buildroot-linux-gnu --host=aarch64-buildroot-linux-gnu --build=x86_64-pc-linux-gnu --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var --program-prefix= --disable-gtk-doc --disable-gtk-doc-html --disable-doc --disable-docs --disable-documentation --with-xmlto=no --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-static --enable-shared i come across 2 issues during link time. The first issue is linking the ovs-ofctl utility. during link time ld complains that i can't find the libsflow which ofproto needs. Here is the link line and related error. link: /home/yehuday/projects/ucpe/buildroot/output/host/usr/bin/aarch64-linux-gnu-gcc -Wstrict-prototypes -Wall -Wextra -Wno-sign-compare -Wpointer-arith -Wswitch-enum -Wunused-parameter -Wbad-function-cast -Wcast-align -Wmissing-prototypes -Wmissing-field-initializers -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -o utilities/.libs/ovs-ofctl utilities/ovs-ofctl.o -L/home/yehuday/projects/ucpe/buildroot/output/host/usr/aarch64-buildroot-linux-gnu/sysroot/usr//lib ofproto/.libs/libofproto.so lib/.libs/libopenvswitch.so -latomic -lpthread -lrt -lm /home/yehuday/compilers/armv8/gcc-linaro-5.3.1-2016.05-i686_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/5.3.1/../../../../aarch64-linux-gnu/bin/ld: warning: libsflow.so.1, needed by ofproto/.libs/libofproto.so, not found (try using -rpath or -rpath-link) ofproto/.libs/libofproto.so: undefined reference to `sfl_poller_set_bridgePort@libsflow_1' ofproto/.libs/libofproto.so: undefined reference to `sfl_agent_removePoller@libsflow_1' ofproto/.libs/libofproto.so: undefined reference to `sfl_receiver_set_sFlowRcvrTimeout@libsflow_1' ofproto/.libs/libofproto.so: undefined reference to `sfl_agent_addPoller@libsflow_1' ofproto/.libs/libofproto.so: undefined reference to `sfl_sampler_get_sFlowFsPacketSamplingRate@libsflow_1' ofproto/.libs/libofproto.so: undefined reference to `sfl_receiver_set_sFlowRcvrOwner@libsflow_1' ofproto/.libs/libofproto.so: undefined reference to `sfl_sampler_set_sFlowFsPacketSamplingRate@libsflow_1' ofproto/.libs/libofproto.so: undefined reference to `sfl_agent_tick@libsflow_1' ofproto/.libs/libofproto.so: undefined reference to `sfl_poller_set_sFlowCpInterval@libsflow_1' ofproto/.libs/libofproto.so: undefined reference to `sfl_sampler_set_sFlowFsReceiver@libsflow_1' ofproto/.libs/libofproto.so: undefined reference to `sfl_agent_removeSampler@libsflow_1' ofproto/.libs/libofproto.so: undefined reference to `sfl_agent_init@libsflow_1' ofproto/.libs/libofproto.so: undefined reference to `sfl_sampler_set_sFlowFsMaximumHeaderSize@libsflow_1' ofproto/.libs/libofproto.so: undefined reference to `sfl_agent_release@libsflow_1' ofproto/.libs/libofproto.so: undefined reference to `sfl_poller_writeCountersSample@libsflow_1' ofproto/.libs/libofproto.so: undefined reference to `sfl_agent_addReceiver@libsflow_1' ofproto/.libs/libofproto.so: undefined reference to `sfl_sampler_writeFlowSample@libsflow_1' ofproto/.libs/libofproto.so: undefined reference to `sfl_agent_addSampler@libsflow_1' ofproto/.libs/libofproto.so: undefined reference to `sfl_poller_set_sFlowCpReceiver@libsflow_1' collect2: error: ld returned 1 exit status make[2]: *** [utilities/ovs-ofctl] Error 1 libsflow.so is not mentioned anywhere in the build command, i assume ld extracts it from ofproto. However libsflow's path, "./lib/.libs", is not specified so i'm not sure how ld can find it i managed to resolve this issue by adding "-Wl,-rpath-link,lib/.libs" but I think that’s not so clean. What is even stranger is that the problem disappears when i use the custom ubuntu aarch64 compiler (GCC 4.8.4) or when i compile for x86. maybe the builtin compilers know that they need to search under project folders ? another issue i come accross is related to Buildroot panic checks. buildroot makes sure that when cross-compiling the linker never uses the host libraries. when relinking ofproto a "-L/usr/lib" causes a failure of that check. thechnically there is no reason to include /usr/lib in the search path but i can't find how to disable that here is the link line and error libtool: relink: /home/yehuday/projects/ucpe/buildroot/output/host/usr/bin/aarch64-linux-gnu-gcc -shared -fPIC -DPIC ofproto /.libs/ofproto_libofproto_la-bond.o ofproto/.libs/ofproto_libofproto_la-collectors.o ofproto/.libs/ofproto_libofproto_la-connm gr.o ofproto/.libs/ofproto_libofproto_la-fail-open.o ofproto/.libs/ofproto_libofproto_la-in-band.o ofproto/.libs/ofproto_libof proto_la-names.o ofproto/.libs/ofproto_libofproto_la-netflow.o ofproto/.libs/ofproto_libofproto_la-ofproto.o ofproto/.libs/ofp roto_libofproto_la-ofproto-dpif.o ofproto/.libs/ofproto_libofproto_la-ofproto-dpif-ipfix.o ofproto/.libs/ofproto_libofproto_la -ofproto-dpif-mirror.o ofproto/.libs/ofproto_libofproto_la-ofproto-dpif-monitor.o ofproto/.libs/ofproto_libofproto_la-ofproto- dpif-rid.o ofproto/.libs/ofproto_libofproto_la-ofproto-dpif-sflow.o ofproto/.libs/ofproto_libofproto_la-ofproto-dpif-upcall.o ofproto/.libs/ofproto_libofproto_la-ofproto-dpif-xlate.o ofproto/.libs/ofproto_libofproto_la-pktbuf.o ofproto/.libs/ofproto_li bofproto_la-pinsched.o ofproto/.libs/ofproto_libofproto_la-tunnel.o ofproto/.libs/ofproto_libofproto_la-bundles.o -L/home/ye huday/projects/ucpe/buildroot/output/host/usr/aarch64-buildroot-linux-gnu/sysroot/usr//lib -L/home/yehuday/projects/ucpe/build root/output/host/usr/aarch64-buildroot-linux-gnu/sysroot/usr/lib -L/usr/lib -lsflow -latomic -lpthread -lrt -lm -Os -Wl,--ver sion-script=./ofproto/libofproto.sym -Wl,-soname -Wl,libofproto.so.1 -o ofproto/.libs/libofproto.so.1.0.0 aarch64-linux-gnu-gcc: ERROR: unsafe header/library path used in cross-compilation: '-L/usr/lib' libtool: install: error: relink `ofproto/libofproto.la' with the above command before installing it make[5]: *** [install-libLTLIBRARIES] Error 1 any help is greatly appreciated Thanks Yehuda
_______________________________________________ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss