Message ID | 20181115035659.85245-1-aik@ozlabs.ru (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [qemu] configure/fdt: Use more strict test for libfdt version | expand |
On Thu, Nov 15, 2018 at 02:56:59PM +1100, Alexey Kardashevskiy wrote: > The libfdt installed in the system is preferred to the dtc submodule by > default. The recent libfdt update added a new symbol - fdt_check_full - > and this breaks compile if there is an older libfdt installed in > the system. Unless I'm missing something, QEMU doesn't use the fdt_check_full symbol, so why would the lack of this symbol cause a compile failure. It should be fine if the dtc submodule contains a newer libfdt than the host system. As long as QEMU doesn't actually need any of the APIs in the newer libfdt we should be able to continue using the older system version if it is present. Could you elaborate on what build problems you are having. > This changes the test to force ./configure into using newer libfdt. I'm not convinced we want todo that. > > Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> > --- > configure | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/configure b/configure > index 74e313a..7e16a6c 100755 > --- a/configure > +++ b/configure > @@ -3826,7 +3826,7 @@ if test "$fdt" != "no" ; then > cat > $TMPC << EOF > #include <libfdt.h> > #include <libfdt_env.h> > -int main(void) { fdt_first_subnode(0, 0); return 0; } > +int main(void) { fdt_check_full(NULL, 0); return 0; } > EOF > if compile_prog "" "$fdt_libs" ; then > # system DTC is good - use it Regards, Daniel
On Thu, Nov 15, 2018 at 10:11:12AM +0000, Daniel P. Berrangé wrote: > On Thu, Nov 15, 2018 at 02:56:59PM +1100, Alexey Kardashevskiy wrote: > > The libfdt installed in the system is preferred to the dtc submodule by > > default. The recent libfdt update added a new symbol - fdt_check_full - > > and this breaks compile if there is an older libfdt installed in > > the system. > > Unless I'm missing something, QEMU doesn't use the fdt_check_full symbol, > so why would the lack of this symbol cause a compile failure. > > It should be fine if the dtc submodule contains a newer libfdt than the > host system. As long as QEMU doesn't actually need any of the APIs in > the newer libfdt we should be able to continue using the older system > version if it is present. > > Could you elaborate on what build problems you are having. > > > This changes the test to force ./configure into using newer libfdt. > > I'm not convinced we want todo that. So I think the point here is that Alexey has some other outstanding patches that will use fdt_check_full(). The commit message needs to make that clear though. Or else include this patch in that series. > > > > > Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> > > --- > > configure | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/configure b/configure > > index 74e313a..7e16a6c 100755 > > --- a/configure > > +++ b/configure > > @@ -3826,7 +3826,7 @@ if test "$fdt" != "no" ; then > > cat > $TMPC << EOF > > #include <libfdt.h> > > #include <libfdt_env.h> > > -int main(void) { fdt_first_subnode(0, 0); return 0; } > > +int main(void) { fdt_check_full(NULL, 0); return 0; } > > EOF > > if compile_prog "" "$fdt_libs" ; then > > # system DTC is good - use it > > Regards, > Daniel
On Thu, Nov 15, 2018 at 09:33:08PM +1100, David Gibson wrote: > On Thu, Nov 15, 2018 at 10:11:12AM +0000, Daniel P. Berrangé wrote: > > On Thu, Nov 15, 2018 at 02:56:59PM +1100, Alexey Kardashevskiy wrote: > > > The libfdt installed in the system is preferred to the dtc submodule by > > > default. The recent libfdt update added a new symbol - fdt_check_full - > > > and this breaks compile if there is an older libfdt installed in > > > the system. > > > > Unless I'm missing something, QEMU doesn't use the fdt_check_full symbol, > > so why would the lack of this symbol cause a compile failure. > > > > It should be fine if the dtc submodule contains a newer libfdt than the > > host system. As long as QEMU doesn't actually need any of the APIs in > > the newer libfdt we should be able to continue using the older system > > version if it is present. > > > > Could you elaborate on what build problems you are having. > > > > > This changes the test to force ./configure into using newer libfdt. > > > > I'm not convinced we want todo that. > > So I think the point here is that Alexey has some other outstanding > patches that will use fdt_check_full(). The commit message needs to > make that clear though. Or else include this patch in that series. If they're not merged yet, this patch should be squashed into whichever of those patches first introduces the need for fdt_check_full(), so that series remains fully git bisectable. Regards, Daniel
diff --git a/configure b/configure index 74e313a..7e16a6c 100755 --- a/configure +++ b/configure @@ -3826,7 +3826,7 @@ if test "$fdt" != "no" ; then cat > $TMPC << EOF #include <libfdt.h> #include <libfdt_env.h> -int main(void) { fdt_first_subnode(0, 0); return 0; } +int main(void) { fdt_check_full(NULL, 0); return 0; } EOF if compile_prog "" "$fdt_libs" ; then # system DTC is good - use it
The libfdt installed in the system is preferred to the dtc submodule by default. The recent libfdt update added a new symbol - fdt_check_full - and this breaks compile if there is an older libfdt installed in the system. This changes the test to force ./configure into using newer libfdt. Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> --- configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)