On 04/01 22:15:34, Anders Roxell wrote:
> On 25 March 2016 at 20:25, Brian Brooks <brian.bro...@linaro.org> wrote:
> > If --with-cunit-path=DIR is used, skip the AC_CHECK_LIB and modify the 
> > linker
> > flags accordingly.
> 
> Why should we skip the AC_CHECK_LIB and AC_CHECK_HEADERS step
> don't feel right.
> 
> >
> > Signed-off-by: Brian Brooks <brian.bro...@linaro.org>
> > ---
> >  test/m4/validation.m4 | 8 ++++++--
> >  1 file changed, 6 insertions(+), 2 deletions(-)
> >
> > diff --git a/test/m4/validation.m4 b/test/m4/validation.m4
> > index b137118..f6c93f7 100644
> > --- a/test/m4/validation.m4
> > +++ b/test/m4/validation.m4
> > @@ -33,12 +33,16 @@ AC_HELP_STRING([--with-cunit-path=DIR   path to CUnit 
> > libs and headers],
> >  ##########################################################################
> >  # Check for CUnit availability
> >  ##########################################################################
> > -if test x$cunit_support = xyes
> > +if test x$cunit_support = xyes -a -z "$CUNIT_PATH"
> >  then
> >      AC_CHECK_LIB([cunit],[CU_get_error], [],
> >          [AC_MSG_ERROR([CUnit libraries required])])
> >      AC_CHECK_HEADERS([CUnit/Basic.h], [],
> >          [AC_MSG_FAILURE(["can't find cunit headers"])])
> >  else
> > -    cunit_support=no
> > +    if test -z "$CUNIT_PATH"; then
> > +        cunit_support=no
> > +    else
> > +        AM_LDFLAGS="$AM_LDFLAGS -lcunit"
> > +    fi
> 
> this patch is still incomplete you miss to add the headers right.

Hi Anders,

Can you help me understand why this patch is incomplete?

The include & lib path for OOT CUnit is taken care of via AM_CPPFLAGS and
AM_LDFLAGS when --with-cunit-path=DIR is used. Only "-lcunit" is required
if AC_CHECK_LIB is skipped.

AC_CHECK_LIB has side effect of LIBS+="-lcunit" which makes subsequent
autoconf checking, e.g. for GCC atomics, fail because the include & lib
path for OOT CUnit is in AM_CPPFLAGS and AM_LDFLAGS not CPPFLAGS and
LDFLAGS. The previous workaround is rather tricky to do cleanly here--if
possible at all. The reason is the location of the WAR and CUnit checking
was at the very bottom of the configure stage. So, no subsequent building
of tiny programs for checking feature support was happening. Now, the
CUnit checking is happening earlier in configure stage which makes the
previous WAR very difficult to support. I do not think it is possible.

The proposal here is to simply skip the AC_CHECK_LIB & AC_CHECK_HEADERS
and add the "-lcunit" side effect via AM_LDFLAGS _only_ when
--with-cunit-path=DIR is used. If DIR is incorrect, the build will still
fail, just at later stage instead of in configure stage. This might be
acceptable to developers who choose to work on ODP with an OOT CUnit.

What do you think? Do you have alternate recommendation e.g. moving CUnit
checking back to bottom of configure stage so WAR can be used?

AC_CHECK_LIB can also be considered dangerous for this LIBS side effect.
It is possible to end up with many objects having unnecessary lib deps.

Brian
_______________________________________________
lng-odp mailing list
lng-odp@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to