[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v8 1/6] tools/libxl: Check if fdt_{first, next}_subnode are present in libfdt
Hi Ian, On 13/05/15 15:07, Ian Campbell wrote: > On Tue, 2015-05-12 at 15:33 +0100, Julien Grall wrote: >> From: Julien Grall <julien.grall@xxxxxxxxxx> >> >> The functions fdt_{fisrt,next}_subnode may not be available because: > > "first" > >> * It has been introduced in 2013 => Doesn't work on Wheezy >> * The prototype exists but the functions are not exposed. Don't ask >> why... >> >> The later has been fixed recently in the dtc repo [1] >> >> When the functions are not available, implement our own in order to use >> them in a following patch. >> >> [1] git://git.kernel.org/pub/scm/utils/dtc/dtc.git >> commit a4b093f7366fdb429ca1781144d3985fa50d0fbb >> >> Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx> >> Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> >> Cc: Wei Liu <wei.liu2@xxxxxxxxxx> > > I'm afraid this failed to build again this time with: > > tools/libxl/libxenlight.so: undefined reference to `fdt_first_property_offset' > tools/libxl/libxenlight.so: undefined reference to > `fdt_get_property_by_offset' > tools/libxl/libxenlight.so: undefined reference to `fdt_next_property_offset' > > That's with arm32 == Debian Wheezy and arm64 == Ubuntu Saucy. :(. Both the distribution are using an old version of libfdt where the 3 prototypes are defined but the implementation is not exposed in the library (this is because they use a whitelist for building it) I gave look to see if we can import them from libfdt. It will require to import few others in order to make them work: - _fdt_check_node_offset - _fdt_offset_ptr - _nextprop I think we can skip the first one because it's only a validity check. FWIW, we declared the the partial device tree should be trusted so valid. Nonetheless we would add 5 more functions (+ the actual 2) in libxl which represents ~50 lines of codes. The 3 offending function have been correctly exposed since the version v1.4.0 released in June 2013. I gave a look to major distribution to see which version is using an old version of libfdt (i.e < 1.4.0: - Centos: < Centos 6 - Debian: < Jessie => Wheezy using an old version - Fedora: < Fedora 20 - openSuse: < opensuse 13.1 - ubuntu: < Ubuntu 14.04 => The LTS (14.04) is using a new version - RedHat: < Redhat 6 AFAICT, all major distributions except debian (for wheezy) are using a libfdt > v1.4. So I would suggest to disable the partial device tree support on distribution using older version. If the user want to use platform device passthrough it would have either to build a newer version of libfdt or append a device tree to the guest kernel. Note: IIRC osstest is using wheezy. If so, we won't be able to test platform device passthrough until the distribution version is upgraded. Although, we don't currently have a platform supporting non-PCI passthrough in osstest. Regards, -- Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |