When building openobex for iMX6 in LTIB 9.1.1, it fails to link due to "relocation R_ARM_MOVW_ABS_NC" error. I modified the openobex build to include "-fPIC" as suggested in this thread:
But I still get the error (see below). It was suggested that the library should be built with -fPIC:
[arm-gnu] Re:Re: [arm-gnu] R_ARM_MOVW_ABS_NC relocation error
In my case, it is libusb, but it appears that it is already being done that way.
Processing: openobex
======================
Build path taken because: directory build, build key set, no prebuilt rpm,
rpmbuild --dbpath /home/ljump/TST/iMX6/boundary/ltib/rootfs//var/lib/rpm --target arm --define '_unpackaged_files_terminate_build 0' --define '_target_cpu arm' --define '__strip strip' --define '_topdir /home/ljump/TST/iMX6/boundary/ltib/rpm' --define '_prefix /usr' --define '_tmppath /home/ljump/TST/iMX6/boundary/ltib/tmp' --define '_rpmdir /home/ljump/TST/iMX6/boundary/ltib/rpm/RPMS' --define '_mandir /usr/share/man' --define '_sysconfdir /etc' --define '_localstatedir /var' -bc --short-circuit /home/ljump/TST/iMX6/boundary/ltib/dist/lfs-5.1/openobex/openobex.spec
Building target platforms: arm
Building for target arm
Executing(%build): /bin/sh -e /home/ljump/TST/iMX6/boundary/ltib/tmp/rpm-tmp.63566
+ umask 022
+ cd /home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD
+ cd openobex-1.2
+ '[' -z '' ']'
+ KERNELDIR=/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/openobex-1.2/../linux
+ KBUILD_OUTPUT=/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/openobex-1.2/../linux
+ ./configure --host=arm-linux --prefix=/usr --enable-apps -C --libdir=/home/ljump/TST/iMX6/boundary/ltib/rootfs//usr
configure: WARNING: If you wanted to set the --build type, don't use --host.
If a cross compiler is detected then cross compile mode will be used.
configure: loading cache config.cache
checking for a BSD-compatible install... (cached) /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... (cached) gawk
checking whether make sets $(MAKE)... (cached) yes
checking for arm-linux-strip... (cached) arm-linux-strip
checking whether to enable maintainer-specific portions of Makefiles... no
checking for arm-linux-gcc... (cached) gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... yes
checking for suffix of executables...
checking for suffix of object files... (cached) o
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ANSI C... (cached) none needed
checking for style of include used by make... GNU
checking dependency style of gcc... (cached) gcc3
checking whether gcc accepts -fPIE... (cached) yes
checking for a BSD-compatible install... /usr/bin/install -c
checking build system type... (cached) i686-pc-linux-gnu
checking host system type... (cached) arm-unknown-linux-gnu
checking for a sed that does not truncate output... (cached) /bin/sed
checking for egrep... (cached) grep -E
checking for ld used by gcc... (cached) ld
checking if the linker (ld) is GNU ld... (cached) yes
checking for ld option to reload object files... (cached) -r
checking for BSD-compatible nm... (cached) /opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-linux-nm -B
checking whether ln -s works... yes
checking how to recognise dependent libraries... (cached) pass_all
checking how to run the C preprocessor... (cached) gcc -E
checking for ANSI C header files... (cached) yes
checking for sys/types.h... (cached) yes
checking for sys/stat.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for memory.h... (cached) yes
checking for strings.h... (cached) yes
checking for inttypes.h... (cached) yes
checking for stdint.h... (cached) yes
checking for unistd.h... (cached) yes
checking for dlfcn.h... (cached) yes
checking the maximum length of command line arguments... (cached) 32768
checking command to parse /opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-linux-nm -B output from gcc object... (cached) ok
checking for objdir... (cached) .libs
checking for arm-linux-ar... (cached) ar
checking for arm-linux-ranlib... (cached) arm-linux-ranlib
checking for arm-linux-strip... (cached) arm-linux-strip
checking if gcc supports -fno-rtti -fno-exceptions... (cached) no
checking for gcc option to produce PIC... -fPIC
checking if gcc PIC flag -fPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
configure: creating libtool
checking for IrDA support... yes
checking for bluetooth/bluetooth.h... (cached) yes
checking for hci_open_dev in -lbluetooth... (cached) yes
checking for sdp_connect in -lbluetooth... (cached) yes
checking for usb.h... (cached) yes
checking for usb_open in -lusb... (cached) yes
checking for usb_get_busses in -lusb... (cached) yes
checking for usb_interrupt_read in -lusb... (cached) yes
checking for /usr/lib/pkgconfig/libusb.pc... (cached) no
configure: creating ./config.status
config.status: creating Makefile
config.status: creating include/Makefile
config.status: creating lib/Makefile
config.status: creating apps/Makefile
config.status: creating ircp/Makefile
config.status: creating doc/Makefile
config.status: creating openobex.pc
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
+ '[' arm-none-linux-gnueabi- = arm-none-linux-gnueabi- ']'
+ sed -i 's,SUBDIRS = include lib apps ircp doc,SUBDIRS = include lib apps doc,' Makefile
+ sed -i 's,CFLAGS = -Wall -O2 -D_FORTIFY_SOURCE=2,CFLAGS = -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2,' Makefile
+ sed -i 's,CFLAGS = -Wall -O2 -D_FORTIFY_SOURCE=2,CFLAGS = -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2,' lib/Makefile
+ make
make all-recursive
make[1]: Entering directory `/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/openobex-1.2'
Making all in include
make[2]: Entering directory `/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/openobex-1.2/include'
make[2]: Leaving directory `/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/openobex-1.2/include'
Making all in lib
make[2]: Entering directory `/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/openobex-1.2/lib'
if /bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT obex.lo -MD -MP -MF ".deps/obex.Tpo" \
-c -o obex.lo `test -f 'obex.c' || echo './'`obex.c; \
then mv -f ".deps/obex.Tpo" ".deps/obex.Plo"; \
else rm -f ".deps/obex.Tpo"; exit 1; \
fi
if /bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT obex_main.lo -MD -MP -MF ".deps/obex_main.Tpo" \
-c -o obex_main.lo `test -f 'obex_main.c' || echo './'`obex_main.c; \
then mv -f ".deps/obex_main.Tpo" ".deps/obex_main.Plo"; \
else rm -f ".deps/obex_main.Tpo"; exit 1; \
fi
if /bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT obex_connect.lo -MD -MP -MF ".deps/obex_connect.Tpo" \
-c -o obex_connect.lo `test -f 'obex_connect.c' || echo './'`obex_connect.c; \
then mv -f ".deps/obex_connect.Tpo" ".deps/obex_connect.Plo"; \
else rm -f ".deps/obex_connect.Tpo"; exit 1; \
fi
if /bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT obex_header.lo -MD -MP -MF ".deps/obex_header.Tpo" \
-c -o obex_header.lo `test -f 'obex_header.c' || echo './'`obex_header.c; \
then mv -f ".deps/obex_header.Tpo" ".deps/obex_header.Plo"; \
else rm -f ".deps/obex_header.Tpo"; exit 1; \
fi
if /bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT obex_object.lo -MD -MP -MF ".deps/obex_object.Tpo" \
-c -o obex_object.lo `test -f 'obex_object.c' || echo './'`obex_object.c; \
then mv -f ".deps/obex_object.Tpo" ".deps/obex_object.Plo"; \
else rm -f ".deps/obex_object.Tpo"; exit 1; \
fi
if /bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT obex_transport.lo -MD -MP -MF ".deps/obex_transport.Tpo" \
-c -o obex_transport.lo `test -f 'obex_transport.c' || echo './'`obex_transport.c; \
then mv -f ".deps/obex_transport.Tpo" ".deps/obex_transport.Plo"; \
else rm -f ".deps/obex_transport.Tpo"; exit 1; \
fi
if /bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT obex_server.lo -MD -MP -MF ".deps/obex_server.Tpo" \
-c -o obex_server.lo `test -f 'obex_server.c' || echo './'`obex_server.c; \
then mv -f ".deps/obex_server.Tpo" ".deps/obex_server.Plo"; \
else rm -f ".deps/obex_server.Tpo"; exit 1; \
fi
if /bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT obex_client.lo -MD -MP -MF ".deps/obex_client.Tpo" \
-c -o obex_client.lo `test -f 'obex_client.c' || echo './'`obex_client.c; \
then mv -f ".deps/obex_client.Tpo" ".deps/obex_client.Plo"; \
else rm -f ".deps/obex_client.Tpo"; exit 1; \
fi
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT obex.lo -MD -MP -MF .deps/obex.Tpo -c obex.c -fPIC -DPIC -o .libs/obex.o
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT obex_main.lo -MD -MP -MF .deps/obex_main.Tpo -c obex_main.c -fPIC -DPIC -o .libs/obex_main.o
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT obex_server.lo -MD -MP -MF .deps/obex_server.Tpo -c obex_server.c -fPIC -DPIC -o .libs/obex_server.o
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT obex_connect.lo -MD -MP -MF .deps/obex_connect.Tpo -c obex_connect.c -fPIC -DPIC -o .libs/obex_connect.o
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT obex_object.lo -MD -MP -MF .deps/obex_object.Tpo -c obex_object.c -fPIC -DPIC -o .libs/obex_object.o
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT obex_header.lo -MD -MP -MF .deps/obex_header.Tpo -c obex_header.c -fPIC -DPIC -o .libs/obex_header.o
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT obex_main.lo -MD -MP -MF .deps/obex_main.Tpo -c obex_main.c -o obex_main.o >/dev/null 2>&1
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT obex.lo -MD -MP -MF .deps/obex.Tpo -c obex.c -o obex.o >/dev/null 2>&1
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT obex_client.lo -MD -MP -MF .deps/obex_client.Tpo -c obex_client.c -fPIC -DPIC -o .libs/obex_client.o
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT obex_transport.lo -MD -MP -MF .deps/obex_transport.Tpo -c obex_transport.c -fPIC -DPIC -o .libs/obex_transport.o
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT obex_server.lo -MD -MP -MF .deps/obex_server.Tpo -c obex_server.c -o obex_server.o >/dev/null 2>&1
obex_connect.c: In function 'obex_parse_connect_header':
obex_connect.c:82:11: warning: variable 'length' set but not used [-Wunused-but-set-variable]
obex_connect.c:79:6: warning: variable 'flags' set but not used [-Wunused-but-set-variable]
obex_connect.c:78:10: warning: variable 'version' set but not used [-Wunused-but-set-variable]
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT obex_connect.lo -MD -MP -MF .deps/obex_connect.Tpo -c obex_connect.c -o obex_connect.o >/dev/null 2>&1
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT obex_header.lo -MD -MP -MF .deps/obex_header.Tpo -c obex_header.c -o obex_header.o >/dev/null 2>&1
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT obex_object.lo -MD -MP -MF .deps/obex_object.Tpo -c obex_object.c -o obex_object.o >/dev/null 2>&1
if /bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT irobex.lo -MD -MP -MF ".deps/irobex.Tpo" \
-c -o irobex.lo `test -f 'irobex.c' || echo './'`irobex.c; \
then mv -f ".deps/irobex.Tpo" ".deps/irobex.Plo"; \
else rm -f ".deps/irobex.Tpo"; exit 1; \
fi
if /bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT inobex.lo -MD -MP -MF ".deps/inobex.Tpo" \
-c -o inobex.lo `test -f 'inobex.c' || echo './'`inobex.c; \
then mv -f ".deps/inobex.Tpo" ".deps/inobex.Plo"; \
else rm -f ".deps/inobex.Tpo"; exit 1; \
fi
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT obex_transport.lo -MD -MP -MF .deps/obex_transport.Tpo -c obex_transport.c -o obex_transport.o >/dev/null 2>&1
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT obex_client.lo -MD -MP -MF .deps/obex_client.Tpo -c obex_client.c -o obex_client.o >/dev/null 2>&1
if /bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT btobex.lo -MD -MP -MF ".deps/btobex.Tpo" \
-c -o btobex.lo `test -f 'btobex.c' || echo './'`btobex.c; \
then mv -f ".deps/btobex.Tpo" ".deps/btobex.Plo"; \
else rm -f ".deps/btobex.Tpo"; exit 1; \
fi
if /bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT usbobex.lo -MD -MP -MF ".deps/usbobex.Tpo" \
-c -o usbobex.lo `test -f 'usbobex.c' || echo './'`usbobex.c; \
then mv -f ".deps/usbobex.Tpo" ".deps/usbobex.Plo"; \
else rm -f ".deps/usbobex.Tpo"; exit 1; \
fi
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT inobex.lo -MD -MP -MF .deps/inobex.Tpo -c inobex.c -fPIC -DPIC -o .libs/inobex.o
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT irobex.lo -MD -MP -MF .deps/irobex.Tpo -c irobex.c -fPIC -DPIC -o .libs/irobex.o
inobex.c: In function 'inobex_connect_request':
inobex.c:145:17: warning: variable 'addr' set but not used [-Wunused-but-set-variable]
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT inobex.lo -MD -MP -MF .deps/inobex.Tpo -c inobex.c -o inobex.o >/dev/null 2>&1
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT btobex.lo -MD -MP -MF .deps/btobex.Tpo -c btobex.c -fPIC -DPIC -o .libs/btobex.o
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT irobex.lo -MD -MP -MF .deps/irobex.Tpo -c irobex.c -o irobex.o >/dev/null 2>&1
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT usbobex.lo -MD -MP -MF .deps/usbobex.Tpo -c usbobex.c -fPIC -DPIC -o .libs/usbobex.o
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT btobex.lo -MD -MP -MF .deps/btobex.Tpo -c btobex.c -o btobex.o >/dev/null 2>&1
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -MT usbobex.lo -MD -MP -MF .deps/usbobex.Tpo -c usbobex.c -o usbobex.o >/dev/null 2>&1
/bin/sh ../libtool --mode=link gcc -Wall -O2 -fPIC -D_FORTIFY_SOURCE=2 -o libopenobex.la -rpath /home/ljump/TST/iMX6/boundary/ltib/rootfs//usr -version-info 3:0:2 -export-symbols ../lib/obex.sym obex.lo obex_main.lo obex_connect.lo obex_header.lo obex_object.lo obex_transport.lo obex_server.lo obex_client.lo irobex.lo inobex.lo btobex.lo netbuf.lo usbobex.lo -lusb
rm -fr .libs/libopenobex.ver
echo "{ global:" > .libs/libopenobex.ver
cat ../lib/obex.sym | sed -e "s/\(.*\)/\1;/" >> .libs/libopenobex.ver
echo "local: *; };" >> .libs/libopenobex.ver
gcc -shared .libs/obex.o .libs/obex_main.o .libs/obex_connect.o .libs/obex_header.o .libs/obex_object.o .libs/obex_transport.o .libs/obex_server.o .libs/obex_client.o .libs/irobex.o .libs/inobex.o .libs/btobex.o .libs/netbuf.o .libs/usbobex.o -lusb -Wl,-soname -Wl,libopenobex.so.1 -Wl,-version-script -Wl,.libs/libopenobex.ver -o .libs/libopenobex.so.1.2.0
/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/../lib/gcc/arm-fsl-linux-gnueabi/4.6.2/../../../../arm-fsl-linux-gnueabi/bin/ld: /home/ljump/TST/iMX6/boundary/ltib/rootfs/usr/lib//libusb.a(usb.o): relocation R_ARM_MOVW_ABS_NC against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/home/ljump/TST/iMX6/boundary/ltib/rootfs/usr/lib//libusb.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[2]: *** [libopenobex.la] Error 1
make[2]: Leaving directory `/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/openobex-1.2/lib'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/openobex-1.2'
make: *** [all] Error 2
error: Bad exit status from /home/ljump/TST/iMX6/boundary/ltib/tmp/rpm-tmp.63566 (%build)
Has anyone gotten this to build?
LTIB 9.1.1? That is not a correct version. I just tried latest release (/L3.0.35_4.1.0_130816), I did 'prep and scbuild' and I did not observe the error. Can you try on latest release?
Leonardo,
Sorry, that was the version returned from "./ltib --version":
ltib 9.1.1 ($Revision: 1.445.6.1 $)
I'm not exactly sure how one properly queries the version number, but what I used is from this tar file:
L3.0.35_4.0.0_130424_source.tar.gz
It is somewhat disruptive to change, but I can do so if you think the problem was fixed between 4.0.0 and 4.1.0.
Oh I see, sorry, my mistake.I got the same version as yours. One thing is LTIB, the building framework, and other thing are the bunch of specs needed as input which some of them change from version A to version B. I do not think moving to 4.1.0 will correct the issue but you may give it a try. I just tried 4.0.0 and it also built fine. So it may be the host system. Are you using Ubuntu? which version?
Leo
Leo,
I believe I have solved the issue, but I don't entirely understand it.To make a long story short (then I'll tell the long one) the solution was to go back to an earlier libusb.spec file and rebuild libusb. Below is a diff for the spec file.
diff dist/lfs-5.1/libusb/libusb.spec.orig dist/lfs-5.1/libusb/libusb.spec
20d19
< #libtoolize --copy --force
23a23,25
> make distclean || true
> libtoolize --copy --force
> #autoreconf
Now the long story... I had also been building a BSP for the G5/gcore6 iMX6Q board using a slightly older version of the 3.0.35 LTIB (I think it was L3.0.35_1.1.0_121218). So, I tried adding openobex there and it worked. After some experimenting, I found that the Sabre openobex build would work if I used the libusb libraries from the G5 RFS. So I rebuilt the libusb on both platforms and found that output messages were different. The libusb source/patches were identical, but I found the above change in the spec file. I copied it over and viola -- everything built.
From looking at the build messages, it appears that there was moving/copying of *.o and *.lo files (the bookkeeping I was trying to follow). My guess is that in the erroneous version, some non-PIC objects got included in the library.
But now my question is why was the change introduced to the presumably newer spec file. What problem did it solve that I will encounter later?
Lance
Looks like I'm not out of the woods yet and I may have answered another of my questions. When I did my testing in the last post, I using the /opt/freescale from the G5 build. When I switched back to the /opt/freescale from the Sabre build and I got a version mismatch error from libtool:
Processing: libusb
====================
Build path taken because: directory build, build key set, no prebuilt rpm,
rpmbuild --dbpath /home/ljump/TST/iMX6/boundary/ltib/rootfs//var/lib/rpm --target arm --define '_unpackaged_files_terminate_build 0' --define '_target_cpu arm' --define '__strip strip' --define '_topdir /home/ljump/TST/iMX6/boundary/ltib/rpm' --define '_prefix /usr' --define '_tmppath /home/ljump/TST/iMX6/boundary/ltib/tmp' --define '_rpmdir /home/ljump/TST/iMX6/boundary/ltib/rpm/RPMS' --define '_mandir /usr/share/man' --define '_sysconfdir /etc' --define '_localstatedir /var' -bc --short-circuit /home/ljump/TST/iMX6/boundary/ltib/dist/lfs-5.1/libusb/libusb.spec
Building target platforms: arm
Building for target arm
Executing(%build): /bin/sh -e /home/ljump/TST/iMX6/boundary/ltib/tmp/rpm-tmp.72397
+ umask 022
+ cd /home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD
+ cd libusb-0.1.8
+ make distclean
make: *** No rule to make target `distclean'. Stop.
+ true
+ libtoolize --copy --force
libtoolize: putting auxiliary files in `.'.
libtoolize: copying file `./ltmain.sh'
libtoolize: You should add the contents of the following files to `aclocal.m4':
libtoolize: `//opt/freescale/ltib/usr/share/aclocal/libtool.m4'
libtoolize: `//opt/freescale/ltib/usr/share/aclocal/ltoptions.m4'
libtoolize: `//opt/freescale/ltib/usr/share/aclocal/ltversion.m4'
libtoolize: `//opt/freescale/ltib/usr/share/aclocal/ltsugar.m4'
libtoolize: `//opt/freescale/ltib/usr/share/aclocal/lt~obsolete.m4'
libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.in and
libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree.
libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
+ ENDIAN=little
+ case $ENDIAN in
+ conf_opts=ac_cv_c_bigendian=no
+ ./configure --prefix=/usr --host=arm-linux --build=i686-pc-linux-gnu --disable-build-docs ac_cv_c_bigendian=no
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/libusb-0.1.8/missing: Unknown `--run' option
Try `/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/libusb-0.1.8/missing --help' for more information
configure: WARNING: `missing' script is too old or missing
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for arm-linux-strip... arm-linux-strip
checking build system type... i686-pc-linux-gnu
checking host system type... arm-unknown-linux-gnu
checking for style of include used by make... GNU
checking for arm-linux-gcc... gcc
checking for C compiler default output... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... yes
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking dependency style of gcc... gcc3
checking for a sed that does not truncate output... /bin/sed
checking for egrep... grep -E
checking for ld used by gcc... ld
checking if the linker (ld) is GNU ld... yes
checking for ld option to reload object files... -r
checking for BSD-compatible nm... /opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-linux-nm -B
checking whether ln -s works... yes
checking how to recognise dependent libraries... file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking dlfcn.h usability... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking for arm-linux-g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking how to run the C++ preprocessor... g++ -E
checking for arm-linux-g77... no
checking for arm-linux-f77... no
checking for arm-linux-xlf... no
checking for arm-linux-frt... no
checking for arm-linux-pgf77... no
checking for arm-linux-fl32... no
checking for arm-linux-af77... no
checking for arm-linux-fort77... no
checking for arm-linux-f90... no
checking for arm-linux-xlf90... no
checking for arm-linux-pgf90... no
checking for arm-linux-epcf90... no
checking for arm-linux-f95... no
checking for arm-linux-fort... no
checking for arm-linux-xlf95... no
checking for arm-linux-lf95... no
checking for arm-linux-g95... no
checking for g77... no
checking for f77... no
checking for xlf... no
checking for frt... no
checking for pgf77... no
checking for fl32... no
checking for af77... no
checking for fort77... no
checking for f90... no
checking for xlf90... no
checking for pgf90... no
checking for epcf90... no
checking for f95... no
checking for fort... no
checking for xlf95... no
checking for lf95... no
checking for g95... no
checking whether we are using the GNU Fortran 77 compiler... no
checking whether accepts -g... no
checking the maximum length of command line arguments... 32768
checking command to parse /opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-linux-nm -B output from gcc object... ok
checking for objdir... .libs
checking for arm-linux-ar... ar
checking for arm-linux-ranlib... arm-linux-ranlib
checking for arm-linux-strip... (cached) arm-linux-strip
checking for arm-linux-file... no
checking for file... /usr/bin/file
checking if gcc static flag works... yes
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC
checking if gcc PIC flag -fPIC works... yes
checking if gcc supports -c -o file.o... yes
checking whether the gcc linker (ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking dynamic linker characteristics... GNU/Linux ld.so
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
configure: creating libtool
appending configuration tag "CXX" to libtool
checking for ld used by g++... ld
checking if the linker (ld) is GNU ld... yes
checking whether the g++ linker (ld) supports shared libraries... yes
checking for g++ option to produce PIC... -fPIC
checking if g++ PIC flag -fPIC works... yes
checking if g++ supports -c -o file.o... yes
checking whether the g++ linker (ld) supports shared libraries... yes
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking dynamic linker characteristics... GNU/Linux ld.so
appending configuration tag "F77" to libtool
checking whether to enable maintainer-specific portions of Makefiles... no
checking for what USB OS support... Linux
checking for arm-linux-gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ANSI C... (cached) none needed
checking dependency style of gcc... (cached) gcc3
checking for gcc option to accept ANSI C... none needed
checking for a BSD-compatible install... /usr/bin/install -c
checking for ANSI C header files... (cached) yes
checking for vprintf... yes
checking for _doprnt... no
checking for an ANSI C-conforming const... yes
checking whether byte ordering is bigendian... (cached) no
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking for unistd.h... (cached) yes
checking values.h usability... yes
checking values.h presence... yes
checking for values.h... yes
checking for memmove... yes
checking if we should build the documentation... no
configure: creating ./config.status
config.status: creating Makefile
config.status: creating doc/Makefile
config.status: creating libusb.spec
config.status: creating libusb-config
config.status: creating tests/Makefile
config.status: creating README
config.status: creating INSTALL.libusb
config.status: creating usb.h
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing default commands
+ make
make all-recursive
make[1]: Entering directory `/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/libusb-0.1.8'
Making all in .
make[2]: Entering directory `/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/libusb-0.1.8'
if /bin/sh ./libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I. -MT usb.lo -MD -MP -MF ".deps/usb.Tpo" \
-c -o usb.lo `test -f 'usb.c' || echo './'`usb.c; \
then mv -f ".deps/usb.Tpo" ".deps/usb.Plo"; \
else rm -f ".deps/usb.Tpo"; exit 1; \
fi
if /bin/sh ./libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I. -MT error.lo -MD -MP -MF ".deps/error.Tpo" \
-c -o error.lo `test -f 'error.c' || echo './'`error.c; \
then mv -f ".deps/error.Tpo" ".deps/error.Plo"; \
else rm -f ".deps/error.Tpo"; exit 1; \
fi
if /bin/sh ./libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I. -MT descriptors.lo -MD -MP -MF ".deps/descriptors.Tpo" \
-c -o descriptors.lo `test -f 'descriptors.c' || echo './'`descriptors.c; \
then mv -f ".deps/descriptors.Tpo" ".deps/descriptors.Plo"; \
else rm -f ".deps/descriptors.Tpo"; exit 1; \
fi
if /bin/sh ./libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I. -MT linux.lo -MD -MP -MF ".deps/linux.Tpo" \
-c -o linux.lo `test -f 'linux.c' || echo './'`linux.c; \
then mv -f ".deps/linux.Tpo" ".deps/linux.Plo"; \
else rm -f ".deps/linux.Tpo"; exit 1; \
fi
./libtool: line 469: CDPATH: command not found
./libtool: line 469: CDPATH: command not found
./libtool: line 469: CDPATH: command not found
./libtool: line 469: CDPATH: command not found
libtool: Version mismatch error. This is libtool 2.4.2, but the
libtool: definition of this LT_INIT comes from an older release.
libtool: You should recreate aclocal.m4 with macros from libtool 2.4.2
libtool: and run autoconf again.
libtool: Version mismatch error. This is libtool 2.4.2, but the
libtool: definition of this LT_INIT comes from an older release.
libtool: You should recreate aclocal.m4 with macros from libtool 2.4.2
libtool: and run autoconf again.
make[2]: *** [usb.lo] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [descriptors.lo] Error 1
libtool: Version mismatch error. This is libtool 2.4.2, but the
libtool: definition of this LT_INIT comes from an older release.
libtool: You should recreate aclocal.m4 with macros from libtool 2.4.2
libtool: and run autoconf again.
libtool: Version mismatch error. This is libtool 2.4.2, but the
libtool: definition of this LT_INIT comes from an older release.
libtool: You should recreate aclocal.m4 with macros from libtool 2.4.2
libtool: and run autoconf again.
make[2]: *** [linux.lo] Error 1
make[2]: *** [error.lo] Error 1
make[2]: Leaving directory `/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/libusb-0.1.8'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/libusb-0.1.8'
make: *** [all] Error 2
error: Bad exit status from /home/ljump/TST/iMX6/boundary/ltib/tmp/rpm-tmp.72397 (%build)
RPM build errors:
Bad exit status from /home/ljump/TST/iMX6/boundary/ltib/tmp/rpm-tmp.72397 (%build)
Build time for libusb: 5 seconds
Failed building libusb
So this may be why the libusb.spec file had to change with the new LTIB. It also highlights one of the issues with a global /opt/freescale, but that's another matter...
By the way, I forgot to mention that when I initially added openobex to the G5, it did not try to link with libusb, so it wouldn't have shown the error in any case. I had to add the Bluez packages to make it use libusb. This may be one reason why it worked so easily for you, Leo. If you get a chance, can you try it including Bluez and try rebuilding libusb? It would be great if you could post the build messages so I can compare them to mine.
Lance
This discussion is closed since no activity. If you still need help, please feel free to reply with an update to this discussion, or create another discussion.
Thanks,
Yixing
Lance
Had your issue got resolved? If yes, we are going to close the discussion in 3 days. If you still need help, please feel
free to reply with an update to this discussion.
Thanks,
Yixing
I am glad you move forward. I will try your last suggestion when I have some time. Thanks.
Leo
Leo,
I rebuilt the 4.0.0 from scratch and got the same error. I actually built it without openobex, which succeeds and then configure in the openobex package and it fails.
Also, when I say "from scratch," I mean I delete everything including /opt/freescale and start again with configuration files I maintain for the kernel and LTIB -- that is
./ltib -b --preconfig config/platform/imx/defconfig --leavesrc
Then I ran the same thing with 4.1.0 and got exactly the same results. I also looked at the packages and spec files that changed and none of the changes included libusb or openobex.
I also looked at the transcript of the build process and found a few suspicious items. One was this line during openobex build:
checking for usb_interrupt_read in -lusb... yes
checking for /usr/lib/pkgconfig/libusb.pc... configure: error: cannot check for file existence when cross compiling
no
updating cache config.cache
configure: creating ./config.status
It appears to be checking the build host rather than the target RFS. You can somewhat see this in context (but without the error) in the original post. (I think I am somewhat misinterpreting this message because I see other instances that look this way, but the files are properly located in the target rootfs.) However, for libusb, the file is not in the target RFS. Shouldn't it be?
Also, when building libusb, it appears to use a mixture of -fPIC and unspecified PIC compiles.I can't quite follow the bookkeeping on this, but it appears that the last compilation of usb.c (the specific one openobex complains about) is without -fPIC:
Processing: libusb
====================
Build path taken because: no prebuilt rpm,
rpmbuild --dbpath /home/ljump/TST/iMX6/boundary/ltib/rootfs//var/lib/rpm --target arm --define '_unpackaged_files_terminate_build 0' --define '_target_cpu arm' --define '__strip strip' --define '_topdir /home/ljump/TST/iMX6/boundary/ltib/rpm' --define '_prefix /usr' --define '_tmppath /home/ljump/TST/iMX6/boundary/ltib/tmp' --define '_rpmdir /home/ljump/TST/iMX6/boundary/ltib/rpm/RPMS' --define '_mandir /usr/share/man' --define '_sysconfdir /etc' --define '_localstatedir /var' -bb /home/ljump/TST/iMX6/boundary/ltib/dist/lfs-5.1/libusb/libusb.spec
Building target platforms: arm
Building for target arm
Executing(%prep): /bin/sh -e /home/ljump/TST/iMX6/boundary/ltib/tmp/rpm-tmp.10791
+ umask 022
+ cd /home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD
+ cd /home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD
+ rm -rf libusb-0.1.8
+ /bin/gzip -dc /home/ljump/TST/iMX6/boundary/ltib/rpm/SOURCES/libusb-0.1.8.tar.gz
+ tar -xvvf -
drwxrwxrwx 500/500 0 2004-02-11 08:27 libusb-0.1.8/
-rw-r--r-- 500/500 1911 2004-02-11 08:27 libusb-0.1.8/README
-rw-r--r-- 500/500 27314 2004-02-11 08:27 libusb-0.1.8/Makefile.in
-rwxr-xr-x 500/500 710215 2004-02-11 08:27 libusb-0.1.8/configure
-rw-r--r-- 500/500 80 2004-01-27 14:36 libusb-0.1.8/AUTHORS
-rw-r--r-- 500/500 26428 2004-01-27 14:36 libusb-0.1.8/COPYING
-rw-r--r-- 500/500 189 2004-01-27 14:36 libusb-0.1.8/ChangeLog
-rw-r--r-- 500/500 2063 2004-01-27 14:36 libusb-0.1.8/INSTALL.libusb.in
-rw-r--r-- 500/500 1338 2004-01-27 14:36 libusb-0.1.8/Makefile.am
-rw-r--r-- 500/500 8 2004-01-27 14:36 libusb-0.1.8/NEWS
-rw-r--r-- 500/500 1922 2004-01-27 14:36 libusb-0.1.8/README.in
-rw-r--r-- 500/500 244630 2004-02-11 08:27 libusb-0.1.8/aclocal.m4
-rwxr-xr-x 500/500 38504 2004-01-27 14:36 libusb-0.1.8/config.guess
-rw-r--r-- 500/500 2282 2004-02-11 08:27 libusb-0.1.8/config.h.in
-rwxr-xr-x 500/500 28224 2004-01-27 14:36 libusb-0.1.8/config.sub
-rw-r--r-- 500/500 6531 2004-02-11 08:27 libusb-0.1.8/configure.in
-rwxr-xr-x 500/500 12117 2004-01-27 14:36 libusb-0.1.8/depcomp
-rwxr-xr-x 500/500 5598 2004-01-27 14:36 libusb-0.1.8/install-sh
-rw-r--r-- 500/500 1267 2004-01-27 14:36 libusb-0.1.8/libusb-config.in
-rw-r--r-- 500/500 1244 2004-01-27 14:36 libusb-0.1.8/libusb.spec.in
-rw-r--r-- 500/500 141554 2004-01-27 14:36 libusb-0.1.8/ltmain.sh
-rwxr-xr-x 500/500 6472 2004-01-27 14:36 libusb-0.1.8/missing
-rwxr-xr-x 500/500 722 2004-01-27 14:36 libusb-0.1.8/mkinstalldirs
-rw-r--r-- 500/500 7995 2004-01-27 14:36 libusb-0.1.8/usb.h.in
-rw-r--r-- 500/500 6220 2004-01-27 14:36 libusb-0.1.8/usb.c
-rw-r--r-- 500/500 1268 2004-01-27 14:36 libusb-0.1.8/usbi.h
-rw-r--r-- 500/500 759 2004-01-27 14:36 libusb-0.1.8/error.c
-rw-r--r-- 500/500 716 2004-01-27 14:36 libusb-0.1.8/error.h
-rw-r--r-- 500/500 13760 2004-01-27 14:36 libusb-0.1.8/descriptors.c
-rw-r--r-- 500/500 16797 2004-01-27 14:36 libusb-0.1.8/bsd.c
-rw-r--r-- 500/500 15854 2004-02-11 08:25 libusb-0.1.8/linux.c
-rw-r--r-- 500/500 2764 2004-01-27 14:36 libusb-0.1.8/linux.h
-rw-r--r-- 500/500 34451 2004-01-27 14:36 libusb-0.1.8/darwin.c
-rw-r--r-- 500/500 2248 2004-01-27 14:36 libusb-0.1.8/LICENSE
-rw-r--r-- 500/500 1240 2004-02-11 08:27 libusb-0.1.8/libusb.spec
-rw-r--r-- 500/500 2041 2004-02-11 08:27 libusb-0.1.8/INSTALL.libusb
drwxrwxrwx 500/500 0 2004-02-11 08:27 libusb-0.1.8/tests/
-rw-r--r-- 500/500 13395 2004-02-11 08:27 libusb-0.1.8/tests/Makefile.in
-rw-r--r-- 500/500 114 2004-01-27 14:36 libusb-0.1.8/tests/Makefile.am
-rw-r--r-- 500/500 3655 2004-01-27 14:36 libusb-0.1.8/tests/testlibusb.c
drwxrwxrwx 500/500 0 2004-02-11 08:27 libusb-0.1.8/doc/
-rw-r--r-- 500/500 9024 2004-02-11 08:27 libusb-0.1.8/doc/Makefile.in
-rw-r--r-- 500/500 812 2004-01-27 14:36 libusb-0.1.8/doc/Makefile.am
-rw-r--r-- 500/500 2155 2004-01-27 14:36 libusb-0.1.8/doc/manual.sgml
-rw-r--r-- 500/500 1901 2004-01-27 14:36 libusb-0.1.8/doc/api.sgml
-rw-r--r-- 500/500 2790 2004-01-27 14:36 libusb-0.1.8/doc/examples.sgml
-rw-r--r-- 500/500 25786 2004-01-27 14:36 libusb-0.1.8/doc/functions.sgml
-rw-r--r-- 500/500 1591 2004-01-27 14:36 libusb-0.1.8/doc/intro.sgml
-rw-r--r-- 500/500 3706 2004-01-27 14:36 libusb-0.1.8/doc/website.dsl
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd libusb-0.1.8
+ exit 0
Executing(%build): /bin/sh -e /home/ljump/TST/iMX6/boundary/ltib/tmp/rpm-tmp.10791
+ umask 022
+ cd /home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD
+ cd libusb-0.1.8
+ ENDIAN=little
+ case $ENDIAN in
+ conf_opts=ac_cv_c_bigendian=no
+ ./configure --prefix=/usr --host=arm-linux --build=i686-pc-linux-gnu --disable-build-docs ac_cv_c_bigendian=no
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/libusb-0.1.8/missing: Unknown `--run' option
Try `/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/libusb-0.1.8/missing --help' for more information
configure: WARNING: `missing' script is too old or missing
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for arm-linux-strip... arm-linux-strip
checking build system type... i686-pc-linux-gnu
checking host system type... arm-unknown-linux-gnu
checking for style of include used by make... GNU
checking for arm-linux-gcc... gcc
checking for C compiler default output... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... yes
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking dependency style of gcc... gcc3
checking for a sed that does not truncate output... /bin/sed
checking for egrep... grep -E
checking for ld used by gcc... ld
checking if the linker (ld) is GNU ld... yes
checking for ld option to reload object files... -r
checking for BSD-compatible nm... /opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-linux-nm -B
checking whether ln -s works... yes
checking how to recognise dependent libraries... file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking dlfcn.h usability... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking for arm-linux-g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking how to run the C++ preprocessor... g++ -E
checking for arm-linux-g77... no
checking for arm-linux-f77... no
checking for arm-linux-xlf... no
checking for arm-linux-frt... no
checking for arm-linux-pgf77... no
checking for arm-linux-fl32... no
checking for arm-linux-af77... no
checking for arm-linux-fort77... no
checking for arm-linux-f90... no
checking for arm-linux-xlf90... no
checking for arm-linux-pgf90... no
checking for arm-linux-epcf90... no
checking for arm-linux-f95... no
checking for arm-linux-fort... no
checking for arm-linux-xlf95... no
checking for arm-linux-lf95... no
checking for arm-linux-g95... no
checking for g77... no
checking for f77... no
checking for xlf... no
checking for frt... no
checking for pgf77... no
checking for fl32... no
checking for af77... no
checking for fort77... no
checking for f90... no
checking for xlf90... no
checking for pgf90... no
checking for epcf90... no
checking for f95... no
checking for fort... no
checking for xlf95... no
checking for lf95... no
checking for g95... no
checking whether we are using the GNU Fortran 77 compiler... no
checking whether accepts -g... no
checking the maximum length of command line arguments... 32768
checking command to parse /opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-linux-nm -B output from gcc object... ok
checking for objdir... .libs
checking for arm-linux-ar... ar
checking for arm-linux-ranlib... arm-linux-ranlib
checking for arm-linux-strip... (cached) arm-linux-strip
checking for arm-linux-file... no
checking for file... /usr/bin/file
checking if gcc static flag works... yes
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC
checking if gcc PIC flag -fPIC works... yes
checking if gcc supports -c -o file.o... yes
checking whether the gcc linker (ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking dynamic linker characteristics... GNU/Linux ld.so
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
configure: creating libtool
appending configuration tag "CXX" to libtool
checking for ld used by g++... ld
checking if the linker (ld) is GNU ld... yes
checking whether the g++ linker (ld) supports shared libraries... yes
checking for g++ option to produce PIC... -fPIC
checking if g++ PIC flag -fPIC works... yes
checking if g++ supports -c -o file.o... yes
checking whether the g++ linker (ld) supports shared libraries... yes
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking dynamic linker characteristics... GNU/Linux ld.so
appending configuration tag "F77" to libtool
checking whether to enable maintainer-specific portions of Makefiles... no
checking for what USB OS support... Linux
checking for arm-linux-gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ANSI C... (cached) none needed
checking dependency style of gcc... (cached) gcc3
checking for gcc option to accept ANSI C... none needed
checking for a BSD-compatible install... /usr/bin/install -c
checking for ANSI C header files... (cached) yes
checking for vprintf... yes
checking for _doprnt... no
checking for an ANSI C-conforming const... yes
checking whether byte ordering is bigendian... (cached) no
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking for unistd.h... (cached) yes
checking values.h usability... yes
checking values.h presence... yes
checking for values.h... yes
checking for memmove... yes
checking if we should build the documentation... no
configure: creating ./config.status
config.status: creating Makefile
config.status: creating doc/Makefile
config.status: creating libusb.spec
config.status: creating libusb-config
config.status: creating tests/Makefile
config.status: creating README
config.status: creating INSTALL.libusb
config.status: creating usb.h
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing default commands
+ make
make all-recursive
make[1]: Entering directory `/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/libusb-0.1.8'
Making all in .
make[2]: Entering directory `/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/libusb-0.1.8'
if /bin/sh ./libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I. -MT usb.lo -MD -MP -MF ".deps/usb.Tpo" \
-c -o usb.lo `test -f 'usb.c' || echo './'`usb.c; \
then mv -f ".deps/usb.Tpo" ".deps/usb.Plo"; \
else rm -f ".deps/usb.Tpo"; exit 1; \
fi
if /bin/sh ./libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I. -MT error.lo -MD -MP -MF ".deps/error.Tpo" \
-c -o error.lo `test -f 'error.c' || echo './'`error.c; \
then mv -f ".deps/error.Tpo" ".deps/error.Plo"; \
else rm -f ".deps/error.Tpo"; exit 1; \
fi
if /bin/sh ./libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I. -MT descriptors.lo -MD -MP -MF ".deps/descriptors.Tpo" \
-c -o descriptors.lo `test -f 'descriptors.c' || echo './'`descriptors.c; \
then mv -f ".deps/descriptors.Tpo" ".deps/descriptors.Plo"; \
else rm -f ".deps/descriptors.Tpo"; exit 1; \
fi
if /bin/sh ./libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I. -MT linux.lo -MD -MP -MF ".deps/linux.Tpo" \
-c -o linux.lo `test -f 'linux.c' || echo './'`linux.c; \
then mv -f ".deps/linux.Tpo" ".deps/linux.Plo"; \
else rm -f ".deps/linux.Tpo"; exit 1; \
fi
mkdir .libs
gcc -DHAVE_CONFIG_H -I. -I. -I. -MT error.lo -MD -MP -MF .deps/error.Tpo -c error.c -fPIC -DPIC -DPIC -o error.o
rm -f .libs/linux.lo
gcc -DHAVE_CONFIG_H -I. -I. -I. -MT linux.lo -MD -MP -MF .deps/linux.Tpo -c linux.c -fPIC -DPIC -DPIC -o linux.o
mv -f error.o .libs/error.lo
rm -f .libs/descriptors.lo
rm -f .libs/usb.lo
gcc -DHAVE_CONFIG_H -I. -I. -I. -MT error.lo -MD -MP -MF .deps/error.Tpo -c error.c -o error.o >/dev/null 2>&1
gcc -DHAVE_CONFIG_H -I. -I. -I. -MT usb.lo -MD -MP -MF .deps/usb.Tpo -c usb.c -fPIC -DPIC -DPIC -o usb.o
gcc -DHAVE_CONFIG_H -I. -I. -I. -MT descriptors.lo -MD -MP -MF .deps/descriptors.Tpo -c descriptors.c -fPIC -DPIC -DPIC -o descriptors.o
mv -f linux.o .libs/linux.lo
gcc -DHAVE_CONFIG_H -I. -I. -I. -MT linux.lo -MD -MP -MF .deps/linux.Tpo -c linux.c -o linux.o >/dev/null 2>&1
mv -f .libs/error.lo error.lo
mv -f usb.o .libs/usb.lo
gcc -DHAVE_CONFIG_H -I. -I. -I. -MT usb.lo -MD -MP -MF .deps/usb.Tpo -c usb.c -o usb.o >/dev/null 2>&1
descriptors.c: In function 'usb_get_descriptor_by_endpoint':
descriptors.c:15:3: warning: incompatible implicit declaration of built-in function 'memset' [enabled by default]
descriptors.c: In function 'usb_get_descriptor':
descriptors.c:24:3: warning: incompatible implicit declaration of built-in function 'memset' [enabled by default]
descriptors.c: In function 'usb_parse_endpoint':
descriptors.c:58:5: warning: incompatible implicit declaration of built-in function 'memcpy' [enabled by default]
descriptors.c: In function 'usb_parse_interface':
descriptors.c:144:5: warning: incompatible implicit declaration of built-in function 'memcpy' [enabled by default]
descriptors.c:221:5: warning: incompatible implicit declaration of built-in function 'memset' [enabled by default]
descriptors.c: In function 'usb_parse_configuration':
descriptors.c:258:3: warning: incompatible implicit declaration of built-in function 'memcpy' [enabled by default]
descriptors.c:277:3: warning: incompatible implicit declaration of built-in function 'memset' [enabled by default]
descriptors.c: In function 'usb_fetch_and_parse_descriptors':
descriptors.c:418:3: warning: incompatible implicit declaration of built-in function 'memset' [enabled by default]
mv -f descriptors.o .libs/descriptors.lo
gcc -DHAVE_CONFIG_H -I. -I. -I. -MT descriptors.lo -MD -MP -MF .deps/descriptors.Tpo -c descriptors.c -o descriptors.o >/dev/null 2>&1
mv -f .libs/usb.lo usb.lo
mv -f .libs/descriptors.lo descriptors.lo
mv -f .libs/linux.lo linux.lo
/bin/sh ./libtool --mode=link gcc -o libusb.la -rpath /usr/lib -version-info 8:0:4 -release 0.1 -export-dynamic usb.lo error.lo descriptors.lo linux.lo
rm -fr .libs/libusb.la .libs/libusb.* .libs/libusb-0.1.*
gcc -shared usb.lo error.lo descriptors.lo linux.lo -Wl,-soname -Wl,libusb-0.1.4 -o .libs/libusb-0.1.4.4.0
(cd .libs && rm -f libusb-0.1.4 && ln -s libusb-0.1.4.4.0 libusb-0.1.4)
(cd .libs && rm -f libusb && ln -s libusb-0.1.4.4.0 libusb)
ar cru .libs/libusb.a usb.o error.o descriptors.o linux.o
arm-linux-ranlib .libs/libusb.a
creating libusb.la
(cd .libs && rm -f libusb.la && ln -s ../libusb.la libusb.la)
make[2]: Leaving directory `/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/libusb-0.1.8'
Making all in tests
make[2]: Entering directory `/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/libusb-0.1.8/tests'
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -g -O2 -g -Wall -MT testlibusb.o -MD -MP -MF ".deps/testlibusb.Tpo" \
-c -o testlibusb.o `test -f 'testlibusb.c' || echo './'`testlibusb.c; \
then mv -f ".deps/testlibusb.Tpo" ".deps/testlibusb.Po"; \
else rm -f ".deps/testlibusb.Tpo"; exit 1; \
fi
/bin/sh ../libtool --mode=link gcc -g -O2 -g -Wall -o testlibusb testlibusb.o ../libusb.la
mkdir .libs
gcc -g -O2 -g -Wall -o .libs/testlibusb testlibusb.o ../.libs/libusb
creating testlibusb
make[2]: Leaving directory `/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/libusb-0.1.8/tests'
Making all in doc
make[2]: Entering directory `/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/libusb-0.1.8/doc'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/libusb-0.1.8/doc'
make[1]: Leaving directory `/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/libusb-0.1.8'
+ exit 0
Executing(%install): /bin/sh -e /home/ljump/TST/iMX6/boundary/ltib/tmp/rpm-tmp.36681
+ umask 022
+ cd /home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD
+ cd libusb-0.1.8
+ rm -rf /home/ljump/TST/iMX6/boundary/ltib/tmp/libusb
+ make install DESTDIR=/home/ljump/TST/iMX6/boundary/ltib/tmp/libusb//opt/freescale/rootfs/arm
Making install in .
make[1]: Entering directory `/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/libusb-0.1.8'
make[2]: Entering directory `/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/libusb-0.1.8'
/bin/sh ./mkinstalldirs /home/ljump/TST/iMX6/boundary/ltib/tmp/libusb//opt/freescale/rootfs/arm/usr/bin
/bin/sh ./mkinstalldirs /home/ljump/TST/iMX6/boundary/ltib/tmp/libusb//opt/freescale/rootfs/arm/usr/lib
/bin/sh ./mkinstalldirs /home/ljump/TST/iMX6/boundary/ltib/tmp/libusb//opt/freescale/rootfs/arm/usr/include
mkdir /home/ljump/TST/iMX6/boundary/ltib/tmp/libusb
mkdir /home/ljump/TST/iMX6/boundary/ltib/tmp/libusb
mkdir /home/ljump/TST/iMX6/boundary/ltib/tmp/libusb/opt
mkdir /home/ljump/TST/iMX6/boundary/ltib/tmp/libusb/opt
mkdir /home/ljump/TST/iMX6/boundary/ltib/tmp/libusb/opt/freescale
mkdir: mkdir: mkdir /home/ljump/TST/iMX6/boundary/ltib/tmp/libusb/opt/freescale/rootfs
cannot create directory `/home/ljump/TST/iMX6/boundary/ltib/tmp/libusb': File exists
cannot create directory `/home/ljump/TST/iMX6/boundary/ltib/tmp/libusb/opt': File existsmkdir /home/ljump/TST/iMX6/boundary/ltib/tmp/libusb/opt/freescale/rootfs
mkdir /home/ljump/TST/iMX6/boundary/ltib/tmp/libusb/opt/freescale/rootfs/arm
mkdir /home/ljump/TST/iMX6/boundary/ltib/tmp/libusb/opt/freescale/rootfs/arm
mkdir: mkdir /home/ljump/TST/iMX6/boundary/ltib/tmp/libusb/opt/freescale/rootfs/arm/usr
mkdir: cannot create directory `/home/ljump/TST/iMX6/boundary/ltib/tmp/libusb/opt/freescale/rootfs': File exists
mkdir /home/ljump/TST/iMX6/boundary/ltib/tmp/libusb/opt/freescale/rootfs/arm/usr
cannot create directory `/home/ljump/TST/iMX6/boundary/ltib/tmp/libusb/opt/freescale/rootfs/arm': File exists
mkdir /home/ljump/TST/iMX6/boundary/ltib/tmp/libusb/opt/freescale/rootfs/arm/usr
mkdir /home/ljump/TST/iMX6/boundary/ltib/tmp/libusb/opt/freescale/rootfs/arm/usr/include
mkdir: mkdir: cannot create directory `/home/ljump/TST/iMX6/boundary/ltib/tmp/libusb/opt/freescale/rootfs/arm/usr': File exists
mkdir /home/ljump/TST/iMX6/boundary/ltib/tmp/libusb/opt/freescale/rootfs/arm/usr/bin
cannot create directory `/home/ljump/TST/iMX6/boundary/ltib/tmp/libusb/opt/freescale/rootfs/arm/usr': File exists
mkdir /home/ljump/TST/iMX6/boundary/ltib/tmp/libusb/opt/freescale/rootfs/arm/usr/lib
/usr/bin/install -c -m 644 usb.h /home/ljump/TST/iMX6/boundary/ltib/tmp/libusb//opt/freescale/rootfs/arm/usr/include/usb.h
/bin/sh ./libtool --mode=install /usr/bin/install -c libusb.la /home/ljump/TST/iMX6/boundary/ltib/tmp/libusb//opt/freescale/rootfs/arm/usr/lib/libusb.la
/usr/bin/install -c libusb-config /home/ljump/TST/iMX6/boundary/ltib/tmp/libusb//opt/freescale/rootfs/arm/usr/bin/libusb-config
/usr/bin/install -c .libs/libusb-0.1.4.4.0 /home/ljump/TST/iMX6/boundary/ltib/tmp/libusb//opt/freescale/rootfs/arm/usr/lib/libusb-0.1.4.4.0
(cd /home/ljump/TST/iMX6/boundary/ltib/tmp/libusb//opt/freescale/rootfs/arm/usr/lib && rm -f libusb-0.1.4 && ln -s libusb-0.1.4.4.0 libusb-0.1.4)
(cd /home/ljump/TST/iMX6/boundary/ltib/tmp/libusb//opt/freescale/rootfs/arm/usr/lib && rm -f libusb && ln -s libusb-0.1.4.4.0 libusb)
/usr/bin/install -c .libs/libusb.lai /home/ljump/TST/iMX6/boundary/ltib/tmp/libusb//opt/freescale/rootfs/arm/usr/lib/libusb.la
/usr/bin/install -c .libs/libusb.a /home/ljump/TST/iMX6/boundary/ltib/tmp/libusb//opt/freescale/rootfs/arm/usr/lib/libusb.a
arm-linux-ranlib /home/ljump/TST/iMX6/boundary/ltib/tmp/libusb//opt/freescale/rootfs/arm/usr/lib/libusb.a
chmod 644 /home/ljump/TST/iMX6/boundary/ltib/tmp/libusb//opt/freescale/rootfs/arm/usr/lib/libusb.a
libtool: install: warning: remember to run `libtool --finish /usr/lib'
make[2]: Leaving directory `/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/libusb-0.1.8'
make[1]: Leaving directory `/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/libusb-0.1.8'
Making install in tests
make[1]: Entering directory `/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/libusb-0.1.8/tests'
make[2]: Entering directory `/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/libusb-0.1.8/tests'
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/libusb-0.1.8/tests'
make[1]: Leaving directory `/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/libusb-0.1.8/tests'
Making install in doc
make[1]: Entering directory `/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/libusb-0.1.8/doc'
make[2]: Entering directory `/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/libusb-0.1.8/doc'
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/libusb-0.1.8/doc'
make[1]: Leaving directory `/home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD/libusb-0.1.8/doc'
+ rm -f /home/ljump/TST/iMX6/boundary/ltib/tmp/libusb//opt/freescale/rootfs/arm//usr/lib/libusb.la
+ exit 0
Processing files: libusb-0.1.8-1
Finding Provides: (using /opt/freescale/ltib/usr/lib/rpm/find-provides)...
Finding Requires: (using /opt/freescale/ltib/usr/lib/rpm/find-requires)...
/usr/bin/ldd: line 161: /lib64/ld-linux-x86-64.so.2: cannot execute binary file
/usr/bin/ldd: line 161: /lib64/ld-linux-x86-64.so.2: cannot execute binary file
/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi-objdump: /home/ljump/TST/iMX6/boundary/ltib/tmp/libusb/opt/freescale/rootfs/arm/usr/bin/libusb-config: File format not recognized
PreReq: rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1
Requires(rpmlib): rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1
Requires: libc.so.6(GLIBC_2.4)
Wrote: /home/ljump/TST/iMX6/boundary/ltib/rpm/RPMS/arm/libusb-0.1.8-1.arm.rpm
Executing(%clean): /bin/sh -e /home/ljump/TST/iMX6/boundary/ltib/tmp/rpm-tmp.38384
+ umask 022
+ cd /home/ljump/TST/iMX6/boundary/ltib/rpm/BUILD
+ cd libusb-0.1.8
+ rm -rf /home/ljump/TST/iMX6/boundary/ltib/tmp/libusb
+ exit 0
Build time for libusb: 8 seconds
sudo /opt/freescale/ltib/usr/bin/rpm --root /home/ljump/TST/iMX6/boundary/ltib/rootfs --dbpath /var/lib/rpm -e --allmatches --nodeps --define '_tmppath /tmp/ltib' libusb 2>/dev/null
sudo /opt/freescale/ltib/usr/bin/rpm --root /home/ljump/TST/iMX6/boundary/ltib/rootfs --dbpath /var/lib/rpm --prefix / --ignorearch -ivh --force --excludedocs --define '_tmppath /tmp/ltib' /home/ljump/TST/iMX6/boundary/ltib/rpm/RPMS/arm/libusb-0.1.8-1.arm.rpm
error: failed to stat /home/ljump/.gvfs: Permission denied
Preparing... ########################################### [100%]
1:libusb ########################################### [100%]
Processing: usbutils
======================
Is there a tool to determine if the final libusb library contains non PIC symbol linkage?
Are you using the same toolchain (gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain)?
Do you have the transcript for your build (especially of libusb and openobex)?
Thanks,
Lance
Answering my own question about the tool, I used readelf to look at libusb. It has the offending symbol types:
ljump@ubuntu:~/TST/iMX6/boundary/ltib/rpm/BUILD/libusb-0.1.8$ readelf -a rootfs/usr/lib/libusb.a | grep R_ARM_MOV
00000018 0000062b R_ARM_MOVW_ABS_NC 00000000 .LANCHOR0
0000001c 0000062c R_ARM_MOVT_ABS 00000000 .LANCHOR0
000000f8 0000062b R_ARM_MOVW_ABS_NC 00000000 .LANCHOR0
000000fc 0000062c R_ARM_MOVT_ABS 00000000 .LANCHOR0
00000158 0000062b R_ARM_MOVW_ABS_NC 00000000 .LANCHOR0
0000015c 0000062c R_ARM_MOVT_ABS 00000000 .LANCHOR0
00000170 0000062b R_ARM_MOVW_ABS_NC 00000000 .LANCHOR0
00000174 0000062c R_ARM_MOVT_ABS 00000000 .LANCHOR0
000005f8 0000062b R_ARM_MOVW_ABS_NC 00000000 .LANCHOR0
000005fc 0000062c R_ARM_MOVT_ABS 00000000 .LANCHOR0
00000228 0000162b R_ARM_MOVW_ABS_NC 00000000 stderr
0000022c 0000162c R_ARM_MOVT_ABS 00000000 stderr
0000025c 0000162b R_ARM_MOVW_ABS_NC 00000000 stderr
00000260 0000162c R_ARM_MOVT_ABS 00000000 stderr
000003c4 0000162b R_ARM_MOVW_ABS_NC 00000000 stderr
000003c8 0000162c R_ARM_MOVT_ABS 00000000 stderr
00000490 0000162b R_ARM_MOVW_ABS_NC 00000000 stderr
00000494 0000162c R_ARM_MOVT_ABS 00000000 stderr
000005bc 0000162b R_ARM_MOVW_ABS_NC 00000000 stderr
000005c0 0000162c R_ARM_MOVT_ABS 00000000 stderr
00000734 0000162b R_ARM_MOVW_ABS_NC 00000000 stderr
00000738 0000162c R_ARM_MOVT_ABS 00000000 stderr
000007fc 0000162b R_ARM_MOVW_ABS_NC 00000000 stderr
00000800 0000162c R_ARM_MOVT_ABS 00000000 stderr
00000c04 0000162b R_ARM_MOVW_ABS_NC 00000000 stderr
00000c08 0000162c R_ARM_MOVT_ABS 00000000 stderr
00000ccc 0000162b R_ARM_MOVW_ABS_NC 00000000 stderr
00000cd0 0000162c R_ARM_MOVT_ABS 00000000 stderr
00000e80 0000402b R_ARM_MOVW_ABS_NC 00000000 stderr
00000e84 0000402c R_ARM_MOVT_ABS 00000000 stderr
00000f00 0000402b R_ARM_MOVW_ABS_NC 00000000 stderr
00000f04 0000402c R_ARM_MOVT_ABS 00000000 stderr
00000f84 0000402b R_ARM_MOVW_ABS_NC 00000000 stderr
00000f88 0000402c R_ARM_MOVT_ABS 00000000 stderr
00001054 0000402b R_ARM_MOVW_ABS_NC 00000000 stderr
00001058 0000402c R_ARM_MOVT_ABS 00000000 stderr
00001094 0000402b R_ARM_MOVW_ABS_NC 00000000 stderr
00001098 0000402c R_ARM_MOVT_ABS 00000000 stderr
00001130 0000402b R_ARM_MOVW_ABS_NC 00000000 stderr
00001134 0000402c R_ARM_MOVT_ABS 00000000 stderr
0000115c 0000402b R_ARM_MOVW_ABS_NC 00000000 stderr
00001160 0000402c R_ARM_MOVT_ABS 00000000 stderr
00001198 0000402b R_ARM_MOVW_ABS_NC 00000000 stderr
0000119c 0000402c R_ARM_MOVT_ABS 00000000 stderr
000011bc 0000402b R_ARM_MOVW_ABS_NC 00000000 stderr
000011c0 0000402c R_ARM_MOVT_ABS 00000000 stderr
000011d8 0000402b R_ARM_MOVW_ABS_NC 00000000 stderr
000011dc 0000402c R_ARM_MOVT_ABS 00000000 stderr
I also found these in descriptors.o, linux.o and usb.o in the libusb build directory. None of the .lo files had them. So, maybe there was an error in the final link of libusb?
Leo, I am building on Xubuntu 12.04/32 bit. I applied a number of patches and everything was building fine until I enabled openobex. From the looks of the report and other similar threads, the problem is likely with the target build and libraries rather than the host system.
You said that it built for you in 4.0.0, so I do suspect something in my setup, although others have had similar issues. Also, that makes me wonder if I need to test 4.1.0.
I have the build "semi-scripted" so I will try it again from the start while I wait for 4.1.0 to download.
Lance