On 2/20/2010 1:52 AM, huyle wrote:
Hi,
I am currently building an linux system for arm board. I am stuck with
udev. So can you help me with some commands to compile udev with cross
compilation?
Thanks for your time
I am cross compiling udev, but not for the ARM.
The only trouble that I have encountered when cross compiling version
151 is with the configure scripts determination of the pci.ids file
location. This is caused by autoconf's AC_CHECK_FILES macro generating
an error when cross compiling. However, this can be worked around by setting
ac_cv_file__usr_share_pci_ids='no'
ac_cv_file__usr_share_hwdata_pci_ids='no'
ac_cv_file__usr_share_misc_pci_ids='no'
in the build system's environment before running configure and setting
the configure script's --with-pci-ids-path argument.
I have had this work around for so long that I have not given it much
thought. However, it is relatively easy to fix the configure script so
that it only attempting to determine the pci.ids file location when
--with-pci-ids-path is not set. Therefore, I have created and attached a
patch that should do this. Of course, after applying, you would need to
rerun autoconf or autoreconf.
diff -Naur udev-151-old/configure.ac udev-151-new/configure.ac
--- udev-151-old/configure.ac 2010-01-24 23:21:07.000000000 -0800
+++ udev-151-new/configure.ac 2010-02-20 08:21:22.000000000 -0800
@@ -69,15 +69,13 @@
PKG_CHECK_MODULES(USBUTILS, usbutils >= 0.82)
AC_SUBST([USB_DATABASE], [$($PKG_CONFIG --variable=usbids usbutils)])
- AC_CHECK_FILES([/usr/share/pci.ids], [pciids=/usr/share/pci.ids])
- AC_CHECK_FILES([/usr/share/hwdata/pci.ids], [pciids=/usr/share/hwdata/pci.ids])
- AC_CHECK_FILES([/usr/share/misc/pci.ids], [pciids=/usr/share/misc/pci.ids])
AC_ARG_WITH(pci-ids-path,
AS_HELP_STRING([--pci-ids-path=DIR], [Path to pci.ids file]),
[PCI_DATABASE=${withval}],
- [if test -n "$pciids" ; then
- PCI_DATABASE="$pciids"
- else
+ [AC_CHECK_FILES([/usr/share/pci.ids], [PCI_DATABASE=/usr/share/pci.ids])
+ AC_CHECK_FILES([/usr/share/hwdata/pci.ids], [PCI_DATABASE=/usr/share/hwdata/pci.ids])
+ AC_CHECK_FILES([/usr/share/misc/pci.ids], [PCI_DATABASE=/usr/share/misc/pci.ids])
+ if test -x "$PCI_DATABASE" ; then
AC_MSG_ERROR([pci.ids not found, try --with-pci-ids-path=])
fi])
AC_SUBST(PCI_DATABASE)