Patchwork Add -lpwl to ppllibs.

login
register
mail settings
Submitter Sebastian Pop
Date March 2, 2011, 3:49 a.m.
Message ID <AANLkTin+a01komvJEzARXSLb189MHHTdOQ68RyQ+CeT+@mail.gmail.com>
Download mbox | patch
Permalink /patch/85020/
State New
Headers show

Comments

Sebastian Pop - March 2, 2011, 3:49 a.m.
Hi,

On Sun, Feb 27, 2011 at 03:38, Ralf Wildenhues <ralf.wildenhues@gmx.de> wrote:
> * Sebastian Pop wrote on Sun, Feb 27, 2011 at 08:23:15AM CET:
>> On Sun, Feb 27, 2011 at 00:35, Ralf Wildenhues wrote:
>> > * Sebastian Pop wrote on Wed, Feb 23, 2011 at 09:47:07PM CET:
>> >> here is the updated patch with your remarks and the remarks from
>> >> Rainer.  We still have the libs in the same order: -lppl_c -lppl
>> >> $pwllib, and I will change the order following what Roberto says.
>> >
>> > Well, has Roberto replied yet?  The contents of the patch depend
>> > on the answer, and I'd rather review that version of the patch
>> > that is supposed to go in.
>> >
>> > The patch looks OK for the case that pwl doesn't depend on any
>> > of the other PPL libs.
>>
>> I have not yet received an answer for the question of whether PWL is
>> independent of PPL.
>
> He answered now.  So the patch is OK.
>
>> > Please remember that toplevel patches need to be synced to src.
>>
>> Am I supposed to commit the configure changes to a different place
>> than gcc trunk?
>
> Yes, to the src CVS repository, and Cc:ing binutils and gdb-patches
> at sourceware.org.  See
> http://gcc.gnu.org/codingconventions.html#upstream for details.

Here are the two patches that I committed to
svn+ssh://spop@gcc.gnu.org/svn/gcc
and synced to :ext:spop@sourceware.org:/cvs/src

Sebastian
Richard Guenther - March 2, 2011, 12:20 p.m.
On Wed, Mar 2, 2011 at 4:49 AM, Sebastian Pop <sebpop@gmail.com> wrote:
> Hi,
>
> On Sun, Feb 27, 2011 at 03:38, Ralf Wildenhues <ralf.wildenhues@gmx.de> wrote:
>> * Sebastian Pop wrote on Sun, Feb 27, 2011 at 08:23:15AM CET:
>>> On Sun, Feb 27, 2011 at 00:35, Ralf Wildenhues wrote:
>>> > * Sebastian Pop wrote on Wed, Feb 23, 2011 at 09:47:07PM CET:
>>> >> here is the updated patch with your remarks and the remarks from
>>> >> Rainer.  We still have the libs in the same order: -lppl_c -lppl
>>> >> $pwllib, and I will change the order following what Roberto says.
>>> >
>>> > Well, has Roberto replied yet?  The contents of the patch depend
>>> > on the answer, and I'd rather review that version of the patch
>>> > that is supposed to go in.
>>> >
>>> > The patch looks OK for the case that pwl doesn't depend on any
>>> > of the other PPL libs.
>>>
>>> I have not yet received an answer for the question of whether PWL is
>>> independent of PPL.
>>
>> He answered now.  So the patch is OK.
>>
>>> > Please remember that toplevel patches need to be synced to src.
>>>
>>> Am I supposed to commit the configure changes to a different place
>>> than gcc trunk?
>>
>> Yes, to the src CVS repository, and Cc:ing binutils and gdb-patches
>> at sourceware.org.  See
>> http://gcc.gnu.org/codingconventions.html#upstream for details.
>
> Here are the two patches that I committed to
> svn+ssh://spop@gcc.gnu.org/svn/gcc
> and synced to :ext:spop@sourceware.org:/cvs/src

This broke bootstrap for me.

gcc   -g -fkeep-inline-functions -DIN_GCC   -W -Wall -Wwrite-strings
-Wcast-qual -Wstrict-prototypes -Wmissing-prototypes
-Wmissing-format-attribute -pedantic -Wno-long-long
-Wno-variadic-macros -Wno-overlength-strings -Wold-style-definition
-Wc++-compat -fno-common  -DHAVE_CONFIG_H  -o cc1 c-lang.o
c-family/stub-objc.o attribs.o c-errors.o c-decl.o c-typeck.o
c-convert.o c-aux-info.o c-objc-common.o c-parser.o tree-mudflap.o
c-family/c-common.o c-family/c-cppbuiltin.o c-family/c-dump.o
c-family/c-format.o c-family/c-gimplify.o c-family/c-lex.o
c-family/c-omp.o c-family/c-opts.o c-family/c-pch.o
c-family/c-ppoutput.o c-family/c-pragma.o c-family/c-pretty-print.o
c-family/c-semantics.o c-family/c-ada-spec.o i386-c.o \
          cc1-checksum.o main.o tree-browser.o libbackend.a
../libcpp/libcpp.a ../libdecnumber/libdecnumber.a ../libcpp/libcpp.a
../libiberty/libiberty.a ../libdecnumber/libdecnumber.a  -lcloog
-lmpc -lmpfr -lgmp -rdynamic -ldl  -L../zlib -lz
libbackend.a(graphite-ppl.o): In function `ppl_powerset_is_empty':
/space/rguenther/src/svn/trunk/gcc/graphite-ppl.c:552: undefined
reference to `ppl_new_PIP_Problem_from_constraints'
/space/rguenther/src/svn/trunk/gcc/graphite-ppl.c:553: undefined
reference to `ppl_PIP_Problem_is_satisfiable'
/space/rguenther/src/svn/trunk/gcc/graphite-ppl.c:555: undefined
reference to `ppl_delete_PIP_Problem'
collect2: ld returned 1 exit status
make[3]: *** [cc1] Error 1
make[3]: *** Waiting for unfinished jobs....
libbackend.a(graphite-ppl.o): In function `ppl_powerset_is_empty':
/space/rguenther/src/svn/trunk/gcc/graphite-ppl.c:552: undefined
reference to `ppl_new_PIP_Problem_from_constraints'
/space/rguenther/src/svn/trunk/gcc/graphite-ppl.c:553: undefined
reference to `ppl_PIP_Problem_is_satisfiable'
/space/rguenther/src/svn/trunk/gcc/graphite-ppl.c:555: undefined
reference to `ppl_delete_PIP_Problem'
collect2: ld returned 1 exit status
make[3]: *** [lto1] Error 1
rm gcov.pod cpp.pod gfdl.pod fsf-funding.pod gcc.pod
make[3]: Leaving directory `/home/abuild/rguenther/obj/gcc'
make[2]: *** [all-stage1-gcc] Error 2
make[2]: Leaving directory `/home/abuild/rguenther/obj'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/home/abuild/rguenther/obj'
make: *** [all] Error 2

so it seems it broke some configure tests.  I have ppl-0.11 and cloog 0.15.10.

As you can see from the link line it doesn't link ppl at all.  ppllibs is empty
for me.

Please revert or fix ASAP.

Richard.

> Sebastian
>
Paolo Carlini - March 2, 2011, 12:45 p.m.
On 03/02/2011 01:20 PM, Richard Guenther wrote:
> so it seems it broke some configure tests.  I have ppl-0.11 and cloog 0.15.10.
>   
I was about to send a message...

For the record, it broke the boostrap for me too. Until yesterday I used
to build successfully with ppl-0.11 and cloog-0.16.1 with
--enable-cloog-backend=isl. Today I see a lot of undefined references.
For the record, upgrading to ppl-0.11.2 doesn't help.

Paolo.
Jakub Jelinek - March 2, 2011, 12:57 p.m.
On Wed, Mar 02, 2011 at 01:45:01PM +0100, Paolo Carlini wrote:
> On 03/02/2011 01:20 PM, Richard Guenther wrote:
> > so it seems it broke some configure tests.  I have ppl-0.11 and cloog 0.15.10.
> >   
> I was about to send a message...
> 
> For the record, it broke the boostrap for me too. Until yesterday I used
> to build successfully with ppl-0.11 and cloog-0.16.1 with
> --enable-cloog-backend=isl. Today I see a lot of undefined references.
> For the record, upgrading to ppl-0.11.2 doesn't help.

It also broke bootstrap with ppl-0.10.2 and cloog-ppl 0.15.7 (which before
didn't try to compile in graphite, now it does, except it doesn't link in
-lppl and uses unconditionally ppl 0.11+ functions).

	Jakub
Sebastian Pop - March 2, 2011, 6:43 p.m.
On Wed, Mar 2, 2011 at 06:57, Jakub Jelinek <jakub@redhat.com> wrote:
> It also broke bootstrap with ppl-0.10.2 and cloog-ppl 0.15.7 (which before

Unless you specify --disable-ppl-version-check, PPL version 0.11 or later
is required.

> didn't try to compile in graphite, now it does, except it doesn't link in
> -lppl and uses unconditionally ppl 0.11+ functions).

Jakub, I am not sure I addressed the concerns that you raised: could
you please let me know if the patch I committed is not enough to fix
the issue?

Thanks,
Sebastian

Patch

From 9c87128c7e9fd9b67bd99d37b82a7fd55df5c91b Mon Sep 17 00:00:00 2001
From: Sebastian Pop <sebpop@gmail.com>
Date: Fri, 18 Feb 2011 11:24:33 -0600
Subject: [PATCH 2/2] Add -lpwl to ppllibs.

2011-03-02  Sebastian Pop  <sebastian.pop@amd.com>

	* configure.ac: Add -lpwl to ppllibs.
	* configure: Regenerated.
---
 ChangeLog    |    5 +++
 configure    |  108 +++++++++++++++++++++++++++++++++++++++++++++-------------
 configure.ac |   73 +++++++++++++++++++++++++--------------
 3 files changed, 136 insertions(+), 50 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 7f1df97..2921567 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@ 
 2011-03-02  Sebastian Pop  <sebastian.pop@amd.com>
 
+	* configure.ac: Add -lpwl to ppllibs.
+	* configure: Regenerated.
+
+2011-03-02  Sebastian Pop  <sebastian.pop@amd.com>
+
 	* config/cloog.m4: Add -lisl to clooglibs.
 	* configure: Regenerated.
 
diff --git a/configure b/configure
index ac7db39..997282f 100755
--- a/configure
+++ b/configure
@@ -5660,8 +5660,9 @@  fi
 
 
 # Check for PPL
-ppllibs=" -lppl_c -lppl -lgmpxx"
+ppllibs=
 pplinc=
+pwllib=
 
 
 # Check whether --with-ppl was given.
@@ -5682,52 +5683,110 @@  if test "${with_ppl_lib+set}" = set; then :
 fi
 
 
+# Check whether --enable-ppl-version-check was given.
+if test "${enable_ppl_version_check+set}" = set; then :
+  enableval=$enable_ppl_version_check;
+fi
+
+
 case $with_ppl in
-  no)
-    ppllibs=
-    ;;
-  "" | yes)
+  yes | no | "")
     ;;
   *)
-    ppllibs="-L$with_ppl/lib -lppl_c -lppl -lgmpxx"
+    ppllibs="-L$with_ppl/lib"
     pplinc="-I$with_ppl/include $pplinc"
+    if test -d "$with_ppl/lib" && test -d "$with_ppl/include"; then
+      with_ppl=yes
+    else
+      as_fn_error "cannot find directories \"$with_ppl/lib\" or \"$with_ppl/include\"" "$LINENO" 5
+    fi
     ;;
 esac
-if test "x$with_ppl_include" != x; then
+
+if test x"$with_ppl_include" != x; then
   pplinc="-I$with_ppl_include $pplinc"
+  with_ppl=yes
 fi
+
 if test "x$with_ppl_lib" != x; then
-  ppllibs="-L$with_ppl_lib -lppl_c -lppl -lgmpxx"
+  ppllibs="-L$with_ppl_lib"
+  with_ppl=yes
 fi
-if test "x$with_ppl$with_ppl_include$with_ppl_lib" = x && test -d ${srcdir}/ppl; then
-  ppllibs='-L$$r/$(HOST_SUBDIR)/ppl/interfaces/C/'"$lt_cv_objdir"' -L$$r/$(HOST_SUBDIR)/ppl/src/'"$lt_cv_objdir"' -lppl_c -lppl -lgmpxx '
+
+if test x"$with_ppl$with_ppl_include$with_ppl_lib" = x && test -d ${srcdir}/ppl; then
+  if test x"$enable_watchdog" = xyes; then
+    pwllib="-lpwl"
+  fi
+  ppllibs='-L$$r/$(HOST_SUBDIR)/ppl/interfaces/C/'"$lt_cv_objdir"' -L$$r/$(HOST_SUBDIR)/ppl/src/'"$lt_cv_objdir"
   pplinc='-I$$r/$(HOST_SUBDIR)/ppl/src -I$$r/$(HOST_SUBDIR)/ppl/interfaces/C '
   enable_ppl_version_check=no
+  with_ppl=yes
 fi
 
-# Check whether --enable-ppl-version-check was given.
-if test "${enable_ppl_version_check+set}" = set; then :
-  enableval=$enable_ppl_version_check; ENABLE_PPL_CHECK=$enableval
+if test "x$with_ppl" = xyes; then
+  if test "x$pwllib" = x; then
+    saved_LDFLAGS="$LDFLAGS"
+    LDFLAGS="$LDFLAGS $ppllibs"
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PWL_handle_timeout in -lpwl" >&5
+$as_echo_n "checking for PWL_handle_timeout in -lpwl... " >&6; }
+if test "${ac_cv_lib_pwl_PWL_handle_timeout+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpwl  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char PWL_handle_timeout ();
+int
+main ()
+{
+return PWL_handle_timeout ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_pwl_PWL_handle_timeout=yes
 else
-  ENABLE_PPL_CHECK=yes
+  ac_cv_lib_pwl_PWL_handle_timeout=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pwl_PWL_handle_timeout" >&5
+$as_echo "$ac_cv_lib_pwl_PWL_handle_timeout" >&6; }
+if test "x$ac_cv_lib_pwl_PWL_handle_timeout" = x""yes; then :
+  pwllib="-lpwl"
 fi
 
+    LDFLAGS="$saved_LDFLAGS"
+  fi
 
-if test "x$with_ppl" != "xno" -a "${ENABLE_PPL_CHECK}" = "yes"; then
-  saved_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS $pplinc $gmpinc"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for version 0.11 (or later revision) of PPL" >&5
-$as_echo_n "checking for version 0.11 (or later revision) of PPL... " >&6; }
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  ppllibs="$ppllibs -lppl_c -lppl $pwllib -lgmpxx"
+
+  if test "$enable_ppl_version_check" != no; then
+    saved_CFLAGS="$CFLAGS"
+    CFLAGS="$CFLAGS $pplinc $gmpinc"
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for version 0.11 (revision 0 or later) of PPL" >&5
+$as_echo_n "checking for version 0.11 (revision 0 or later) of PPL... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include "ppl_c.h"
 int
 main ()
 {
 
-  #if PPL_VERSION_MAJOR != 0 || PPL_VERSION_MINOR < 11
-  choke me
-  #endif
+    #if PPL_VERSION_MAJOR != 0 || PPL_VERSION_MINOR < 11
+    choke me
+    #endif
 
   ;
   return 0;
@@ -5741,7 +5800,8 @@  else
 $as_echo "no" >&6; }; ppllibs= ; pplinc= ; with_ppl=no
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  CFLAGS="$saved_CFLAGS"
+    CFLAGS="$saved_CFLAGS"
+  fi
 fi
 
 # Flags needed for PPL
diff --git a/configure.ac b/configure.ac
index 9121d65..4fb29c0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1621,8 +1621,9 @@  AC_ARG_WITH(boot-ldflags,
 AC_SUBST(poststage1_ldflags)
 
 # Check for PPL
-ppllibs=" -lppl_c -lppl -lgmpxx"
+ppllibs=
 pplinc=
+pwllib=
 
 AC_ARG_WITH(ppl,
 [AS_HELP_STRING([--with-ppl=PATH],
@@ -1636,45 +1637,65 @@  AC_ARG_WITH(ppl-lib,
 [AS_HELP_STRING([--with-ppl-lib=PATH],
 		[specify directory for the installed PPL library])])
 
-case $with_ppl in 
-  no)
-    ppllibs=
-    ;;
-  "" | yes)
+AC_ARG_ENABLE(ppl-version-check,
+[AS_HELP_STRING([--disable-ppl-version-check],
+		[disable check for PPL version])])
+
+case $with_ppl in
+  yes | no | "")
     ;;
   *)
-    ppllibs="-L$with_ppl/lib -lppl_c -lppl -lgmpxx"
+    ppllibs="-L$with_ppl/lib"
     pplinc="-I$with_ppl/include $pplinc"
+    if test -d "$with_ppl/lib" && test -d "$with_ppl/include"; then
+      with_ppl=yes
+    else
+      AC_MSG_ERROR([cannot find directories "$with_ppl/lib" or "$with_ppl/include"])
+    fi
     ;;
 esac
-if test "x$with_ppl_include" != x; then
+
+if test x"$with_ppl_include" != x; then
   pplinc="-I$with_ppl_include $pplinc"
+  with_ppl=yes
 fi
+
 if test "x$with_ppl_lib" != x; then
-  ppllibs="-L$with_ppl_lib -lppl_c -lppl -lgmpxx"
+  ppllibs="-L$with_ppl_lib"
+  with_ppl=yes
 fi
-if test "x$with_ppl$with_ppl_include$with_ppl_lib" = x && test -d ${srcdir}/ppl; then
-  ppllibs='-L$$r/$(HOST_SUBDIR)/ppl/interfaces/C/'"$lt_cv_objdir"' -L$$r/$(HOST_SUBDIR)/ppl/src/'"$lt_cv_objdir"' -lppl_c -lppl -lgmpxx '
+
+if test x"$with_ppl$with_ppl_include$with_ppl_lib" = x && test -d ${srcdir}/ppl; then
+  if test x"$enable_watchdog" = xyes; then
+    pwllib="-lpwl"
+  fi
+  ppllibs='-L$$r/$(HOST_SUBDIR)/ppl/interfaces/C/'"$lt_cv_objdir"' -L$$r/$(HOST_SUBDIR)/ppl/src/'"$lt_cv_objdir"
   pplinc='-I$$r/$(HOST_SUBDIR)/ppl/src -I$$r/$(HOST_SUBDIR)/ppl/interfaces/C '
   enable_ppl_version_check=no
+  with_ppl=yes
 fi
 
-AC_ARG_ENABLE(ppl-version-check,
-[AS_HELP_STRING([--disable-ppl-version-check],
-		[disable check for PPL version])],
-ENABLE_PPL_CHECK=$enableval,
-ENABLE_PPL_CHECK=yes)
+if test "x$with_ppl" = xyes; then
+  if test "x$pwllib" = x; then
+    saved_LDFLAGS="$LDFLAGS"
+    LDFLAGS="$LDFLAGS $ppllibs"
+    AC_CHECK_LIB(pwl,PWL_handle_timeout,[pwllib="-lpwl"])
+    LDFLAGS="$saved_LDFLAGS"
+  fi
 
-if test "x$with_ppl" != "xno" -a "${ENABLE_PPL_CHECK}" = "yes"; then
-  saved_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS $pplinc $gmpinc"
-  AC_MSG_CHECKING([for version 0.11 (or later revision) of PPL])
-  AC_TRY_COMPILE([#include "ppl_c.h"],[
-  #if PPL_VERSION_MAJOR != 0 || PPL_VERSION_MINOR < 11
-  choke me
-  #endif
-  ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); ppllibs= ; pplinc= ; with_ppl=no ])
-  CFLAGS="$saved_CFLAGS"
+  ppllibs="$ppllibs -lppl_c -lppl $pwllib -lgmpxx"
+
+  if test "$enable_ppl_version_check" != no; then
+    saved_CFLAGS="$CFLAGS"
+    CFLAGS="$CFLAGS $pplinc $gmpinc"
+    AC_MSG_CHECKING([for version 0.11 (revision 0 or later) of PPL])
+    AC_TRY_COMPILE([#include "ppl_c.h"],[
+    #if PPL_VERSION_MAJOR != 0 || PPL_VERSION_MINOR < 11
+    choke me
+    #endif
+    ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); ppllibs= ; pplinc= ; with_ppl=no ])
+    CFLAGS="$saved_CFLAGS"
+  fi
 fi
 
 # Flags needed for PPL
-- 
1.7.1