Looks fine to me. Ethan
On Mon, Jul 11, 2011 at 13:58, Ben Pfaff <b...@nicira.com> wrote: > The "cgcc" script included with sparse guesses the target architecture > based on the host architecture instead of based on the GCC architecture. > This means that it often guesses wrong on biarch systems, e.g. my Linux > kernel is x86_64 but userspace is i686 and thus GCC targets i686 by > default. > > This fixes the problem by passing an explicit "-target=i86" to cgcc if > GCC targets x86 or "-target=x86_64" if GCC targets x86_64. > > Bug #6312. > Reported-by: Ethan Jackson <et...@nicira.com> > --- > acinclude.m4 | 24 ++++++++++++++++++++++-- > 1 files changed, 22 insertions(+), 2 deletions(-) > > diff --git a/acinclude.m4 b/acinclude.m4 > index 1618a43..b379489 100644 > --- a/acinclude.m4 > +++ b/acinclude.m4 > @@ -409,10 +409,30 @@ EOF > fi]) > AS_IF([test $ovs_cv_gnu_make_if = yes], [$1], [$2])]) > > +dnl OVS_CHECK_SPARSE_TARGET > +dnl > +dnl The "cgcc" script from "sparse" isn't very good at detecting the > +dnl target for which the code is being built. This helps it out. > +AC_DEFUN([OVS_CHECK_SPARSE_TARGET], > + [AC_CACHE_CHECK( > + [target hint for cgcc], > + [ac_cv_sparse_target], > + [AS_CASE([`$CC -dumpmachine 2>/dev/null`], > + [i?86-* | athlon-*], [ac_cv_sparse_target=x86], > + [x86_64-*], [ac_cv_sparse_target=x86_64], > + [ac_cv_sparse_target=other])]) > + AS_CASE([$ac_cv_sparse_target], > + [x86], [SPARSEFLAGS= CGCCFLAGS=-target=i86], > + [x86_64], [SPARSEFLAGS=-m64 CGCCFLAGS=-target=x86_64], > + [SPARSEFLAGS= CGCCFLAGS=]) > + AC_SUBST([SPARSEFLAGS]) > + AC_SUBST([CGCCFLAGS])]) > + > dnl OVS_ENABLE_SPARSE > AC_DEFUN([OVS_ENABLE_SPARSE], > - [OVS_MAKE_HAS_IF( > + [AC_REQUIRE([OVS_CHECK_SPARSE_TARGET]) > + OVS_MAKE_HAS_IF( > [AC_CONFIG_COMMANDS_PRE( > [: ${SPARSE=sparse} > AC_SUBST([SPARSE]) > - CC='$(if $(C),REAL_CC="'"$CC"'" CHECK="$(SPARSE) -I > $(top_srcdir)/include/sparse" cgcc,'"$CC"')'])])]) > + CC='$(if $(C),REAL_CC="'"$CC"'" CHECK="$(SPARSE) -I > $(top_srcdir)/include/sparse $(SPARSEFLAGS)" cgcc $(CGCCFLAGS),'"$CC"')'])])]) > -- > 1.7.4.4 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev