automake-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Automake-commit] [SCM] GNU Automake branch, micro, updated. v1.13.3-11-


From: Stefano Lattarini
Subject: [Automake-commit] [SCM] GNU Automake branch, micro, updated. v1.13.3-11-gddc755a
Date: Thu, 13 Jun 2013 08:00:14 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Automake".

http://git.sv.gnu.org/gitweb/?p=automake.git;a=commitdiff;h=ddc755a63c4318f70e6743f9f0debd0614311699

The branch, micro has been updated
       via  ddc755a63c4318f70e6743f9f0debd0614311699 (commit)
       via  3afe7a86408c6f6db5540626803f9aed64662847 (commit)
       via  4f7cc4fe88b5f802c9dc2ba78326819d2d62f2dc (commit)
       via  0164f83126647476cfb3112441185accdcb157fb (commit)
       via  2d6fec692f032ab60c27f5c22391ae87e49c53c7 (commit)
       via  843fc2e5eb3557c04b960daa0b076b51cf1ebe9a (commit)
       via  004eba9b3c19747652fa9feab9846d646c83f5d8 (commit)
       via  f7492285d9d3ba73448d9946650df8e5dc041f85 (commit)
       via  b2b3692d37e9812a5895b5a054da597731d7eb08 (commit)
      from  de1343a64dd80d931ba6c4f26e35c7db4919dc1f (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
-----------------------------------------------------------------------

Summary of changes:
 NEWS                                              |   11 +++
 THANKS                                            |    2 +-
 automake.in                                       |    9 ++-
 lib/Automake/Rule.pm                              |   19 +-----
 lib/am/distdir.am                                 |    2 +-
 lib/config.guess                                  |    6 ++
 t/ax/deltree.pl                                   |   15 ++++
 t/list-of-tests.mk                                |    8 ++
 t/no-extra-c-stuff.sh                             |   74 +++++++++++++++++++++
 t/no-extra-makefile-code.sh                       |    9 ++-
 t/{cond10.sh => override-conditional-pr13940.sh}  |   31 ++++-----
 t/{distcheck-hook.sh => subobj-indir-pr13928.sh}  |   38 +++++------
 t/subobj-vpath-pr13928.sh                         |   60 +++++++++++++++++
 t/{f90only.sh => suffix-extra-c-stuff-pr14560.sh} |   23 ++++---
 14 files changed, 236 insertions(+), 71 deletions(-)
 create mode 100644 t/no-extra-c-stuff.sh
 copy t/{cond10.sh => override-conditional-pr13940.sh} (59%)
 copy t/{distcheck-hook.sh => subobj-indir-pr13928.sh} (55%)
 create mode 100644 t/subobj-vpath-pr13928.sh
 copy t/{f90only.sh => suffix-extra-c-stuff-pr14560.sh} (64%)

diff --git a/NEWS b/NEWS
index d540aab..a6f0953 100644
--- a/NEWS
+++ b/NEWS
@@ -91,6 +91,17 @@
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
+New in 1.13.4:
+
+* Bugs fixed:
+
+  - Fix a minor regression introduced in Automake 1.13.3: when two or more
+    user-defined suffix rules were present in a single Makefile.am,
+    automake would needlessly include definition of some make variables
+    related to C compilation in the generated Makefile.in (bug#14560).
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
 New in 1.13.3:
 
 * Documentation fixes:
diff --git a/THANKS b/THANKS
index c5c7c49..181f4f5 100644
--- a/THANKS
+++ b/THANKS
@@ -332,7 +332,7 @@ Rainer Orth                     address@hidden
 Rafael Laboissiere              address@hidden
 Rainer Tammer                   address@hidden
 Raja R Harinath                 address@hidden
-Ralf Corsepius                  address@hidden
+Ralf Corsepius                  address@hidden
 Ralf Menzel                     address@hidden
 Ralf Wildenhues                 address@hidden
 Ralph Schleicher                address@hidden
diff --git a/automake.in b/automake.in
index 63d5bdf..835d3bd 100644
--- a/automake.in
+++ b/automake.in
@@ -1572,10 +1572,11 @@ sub handle_languages
     # If the project is entirely C++ or entirely Fortran 77 (i.e., 1
     # suffix rule was learned), don't bother with the C stuff.  But if
     # anything else creeps in, then use it.
-    $needs_c = 1
-      if $need_link || suffix_rules_count > 1;
-
-    if ($needs_c)
+    my @languages_seen = map { $languages{$extension_map{$_}}->name }
+                             (keys %extension_seen);
+    @languages_seen = uniq (@languages_seen);
+    $needs_c = 1 if @languages_seen > 1;
+    if ($need_link || $needs_c)
       {
        &define_compiler_variable ($languages{'c'})
          unless defined $done{$languages{'c'}};
diff --git a/lib/Automake/Rule.pm b/lib/Automake/Rule.pm
index ac4b71a..a28a78d 100644
--- a/lib/Automake/Rule.pm
+++ b/lib/Automake/Rule.pm
@@ -29,8 +29,7 @@ use Automake::DisjConditions;
 require Exporter;
 use vars '@ISA', '@EXPORT', '@EXPORT_OK';
 @ISA = qw/Automake::Item Exporter/;
address@hidden = qw (reset register_suffix_rule suffix_rules_count
-              next_in_suffix_chain
address@hidden = qw (reset register_suffix_rule next_in_suffix_chain
              suffixes rules $KNOWN_EXTENSIONS_PATTERN
              depend %dependencies %actions register_action
              accept_extensions
@@ -465,18 +464,6 @@ sub register_suffix_rule ($$$)
     }
 }
 
-=item C<$count = suffix_rules_count>
-
-Return the number of suffix rules added while processing the current
-F<Makefile> (excluding predefined suffix rules).
-
-=cut
-
-sub suffix_rules_count ()
-{
-  return (scalar keys %_suffix_rules) - (scalar keys %_suffix_rules_builtin);
-}
-
 =item C<@list = suffixes>
 
 Return the list of known suffixes.
@@ -631,7 +618,7 @@ sub _maybe_warn_about_duplicated_target ($$$$$$)
               ## from rules that only add dependencies.  E.g.,
               ##   .PHONY: foo
               ##   .PHONY: bar
-              ## is legitimate. (This is phony.test.)
+              ## is legitimate.  This is checked in the 'phony.sh' test.
 
               # msg ('syntax', $where,
               #      "redefinition of '$target'$condmsg ...", partial => 1);
@@ -734,7 +721,7 @@ sub _conditionals_for_rule ($$$$)
   # condition.  So for now we do our best *here*.  If 'foo:'
   # was already defined in condition COND1 and we want to define
   # it in condition TRUE, then define it only in condition !COND1.
-  # (See cond14.test and cond15.test for some test cases.)
+  # (See cond14.sh and cond15.sh for some test cases.)
   @conds = $rule->not_always_defined_in_cond ($cond)->conds;
 
   # No conditions left to define the rule.
diff --git a/lib/am/distdir.am b/lib/am/distdir.am
index e5d8d5e..566bab7 100644
--- a/lib/am/distdir.am
+++ b/lib/am/distdir.am
@@ -197,7 +197,7 @@ endif %?TOPDIR_P%
 ## Test for file existence because sometimes a file gets included in
 ## DISTFILES twice.  For example this happens when a single source
 ## file is used in building more than one program.
-## See also test 'dist-repeated.test'.
+## See also test 'dist-repeated.sh'.
            test -f "$(distdir)/$$file" \
            || cp -p $$d/$$file "$(distdir)/$$file" \
            || exit 1; \
diff --git a/lib/config.guess b/lib/config.guess
index 120cc0d..516ac6c 100755
--- a/lib/config.guess
+++ b/lib/config.guess
@@ -995,6 +995,12 @@ EOF
     ppc:Linux:*:*)
        echo powerpc-unknown-linux-${LIBC}
        exit ;;
+    ppc64le:Linux:*:*)
+       echo powerpc64le-unknown-linux-${LIBC}
+       exit ;;
+    ppcle:Linux:*:*)
+       echo powerpcle-unknown-linux-${LIBC}
+       exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
        echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
        exit ;;
diff --git a/t/ax/deltree.pl b/t/ax/deltree.pl
index 7060766..9b638dd 100644
--- a/t/ax/deltree.pl
+++ b/t/ax/deltree.pl
@@ -2,6 +2,21 @@
 # deltree: recursively removes file and directory,
 # trying to handle permissions and other complications.
 
+# Copyright (C) 2013 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
 use strict;
 use warnings FATAL => 'all';
 use File::Path qw/rmtree/;
diff --git a/t/list-of-tests.mk b/t/list-of-tests.mk
index fb2e444..007094f 100644
--- a/t/list-of-tests.mk
+++ b/t/list-of-tests.mk
@@ -33,12 +33,15 @@ t/all.sh \
 t/cond17.sh \
 t/gcj6.sh \
 t/override-conditional-2.sh \
+t/override-conditional-pr13940.sh \
 t/dist-pr109765.sh \
 t/instdir-cond2.sh \
 t/java-nobase.sh \
 t/objext-pr10128.sh \
 t/remake-timing-bug-pr8365.sh \
 t/lex-subobj-nodep.sh \
+t/subobj-indir-pr13928.sh \
+t/subobj-vpath-pr13928.sh \
 t/remake-am-pr10111.sh \
 t/remake-m4-pr10111.sh \
 $(perl_fake_XFAIL_TESTS)
@@ -692,6 +695,7 @@ t/mkinst2.sh \
 t/mkinst3.sh \
 t/mmode.sh \
 t/mmodely.sh \
+t/no-extra-c-stuff.sh \
 t/no-extra-makefile-code.sh \
 t/no-spurious-install-recursive.sh \
 t/nobase.sh \
@@ -740,6 +744,7 @@ t/output13.sh \
 t/output-order.sh \
 t/override-conditional-1.sh \
 t/override-conditional-2.sh \
+t/override-conditional-pr13940.sh \
 t/override-html.sh \
 t/override-suggest-local.sh \
 t/parallel-am.sh \
@@ -1032,6 +1037,8 @@ t/subobj11c.sh \
 t/subobjname.sh \
 t/subobj-clean-pr10697.sh \
 t/subobj-clean-lt-pr10697.sh \
+t/subobj-indir-pr13928.sh \
+t/subobj-vpath-pr13928.sh \
 t/subpkg.sh \
 t/subpkg2.sh \
 t/subpkg3.sh \
@@ -1063,6 +1070,7 @@ t/suffix-chain.tap \
 t/suffix-custom-pr14441.sh \
 t/suffix-custom-subobj.sh \
 t/suffix-custom-subobj-and-specflg.sh \
+t/suffix-extra-c-stuff-pr14560.sh \
 t/symlink.sh \
 t/symlink2.sh \
 t/syntax.sh \
diff --git a/t/no-extra-c-stuff.sh b/t/no-extra-c-stuff.sh
new file mode 100644
index 0000000..de0dd12
--- /dev/null
+++ b/t/no-extra-c-stuff.sh
@@ -0,0 +1,74 @@
+#! /bin/sh
+# Copyright (C) 2013 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Check that Automake doesn't generated rules or definitions related
+# to compilation of C sources for a project that doesn't use nor need
+# a C Compiler.  Inspired by the issues reported in automake bug#14560.
+
+am_create_testdir=empty
+. test-init.sh
+
+cat > configure.ac <<END
+AC_INIT([$me], [1.0])
+AC_CONFIG_AUX_DIR([.])
+AM_INIT_AUTOMAKE
+AC_CONFIG_FILES([
+    Makefile
+    sub/Makefile
+    sub2/Makefile
+])
+AC_PROG_CXX
+AC_PROG_F77
+AC_OUTPUT
+END
+
+cat > Makefile.am <<END
+SUBDIRS = sub sub2
+bin_PROGRAMS = bar
+bar_SOURCES = bar.cc
+END
+
+mkdir sub sub2
+
+cat > sub/Makefile.am <<END
+bin_PROGRAMS = foo
+foo_SOURCES = foo.f
+END
+
+cat > sub2/Makefile.am <<END
+bin_PROGRAMS = baz
+baz_SOURCES = baz.cxx
+END
+
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE --add-missing
+
+test   -f install-sh
+test ! -e compile
+
+# Sanity checks.
+$FGREP '$(CXX)' Makefile.in
+$FGREP '$(CXX)' sub2/Makefile.in
+$FGREP '$(F77)' Makefile.in sub2/Makefile.in && exit 1
+$FGREP '$(F77)' sub/Makefile.in
+$FGREP '$(CXX)' sub/Makefile.in && exit 1
+
+$EGREP '(^COMPILE|$\(CC\)|AM_V_CC)' \
+  Makefile.in sub/Makefile.in sub2/Makefile.in && exit 1
+
+:
diff --git a/t/no-extra-makefile-code.sh b/t/no-extra-makefile-code.sh
index 086b6c6..64ef502 100644
--- a/t/no-extra-makefile-code.sh
+++ b/t/no-extra-makefile-code.sh
@@ -1,5 +1,5 @@
 #!/bin/sh
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 2011-2013 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,12 +25,17 @@ echo AC_OUTPUT >> configure.ac
 
 : > Makefile.am
 
+# Automake shouldn't need nor require these.
 rm -f depcomp compile
 
 $ACLOCAL
+
+# Don't use '--add-missing' here, so that we can implicitly
+# check that the auxiliary scripts 'compile' and 'depcomp'
+# are not spuriously required by Automake.
 $AUTOMAKE
 
-$EGREP 'DEFAULT_INCLUDES|@am__isrc@|-compile|\$\(OBJEXT\)|tab\.[ch]' \
+$EGREP 'INCLUDES|@am__isrc@|-compile|\$\(OBJEXT\)|tab\.[ch]' \
   Makefile.in && exit 1
 
 :
diff --git a/t/cond10.sh b/t/override-conditional-pr13940.sh
similarity index 59%
copy from t/cond10.sh
copy to t/override-conditional-pr13940.sh
index 896ef61..4bc4128 100644
--- a/t/cond10.sh
+++ b/t/override-conditional-pr13940.sh
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2013 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -14,34 +14,31 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Test for bug in conditionals.  From Raja R Harinath.
+# Expose automake bug#1394: automake erroneously think that a .PHONY
+# target's rule is overridden only because we declare dependencies
+# to such targets twice: one in an Automake conditional, and once
+# unconditionally.
 
 . test-init.sh
 
 cat >> configure.ac << 'END'
-AC_PROG_CC
-AM_CONDITIONAL([USE_A], [test x = y])
-AM_CONDITIONAL([USE_B], [test x = z])
+AM_CONDITIONAL([FOO], [true])
 AC_OUTPUT
 END
 
 cat > Makefile.am << 'END'
-if USE_A
-out=output_a.c
-else
-if USE_B
-out=output_b.c
-else
-out=output_c.c
+# The conditional here is important: Automake only appears to warn
+# when one of the all-local rules is inside a conditional and the
+# other is not.
+if FOO
+all-local: bar
+bar: ; @echo bar
 endif
-endif
-
-noinst_PROGRAMS=foo
-foo_SOURCES=foo.c $(out)
+all-local: baz
+baz: ; @echo baz
 END
 
 $ACLOCAL
 $AUTOMAKE -a
-grep 'USE_A_FALSE.*USE_B_FALSE.*output_c\...OBJEXT.' Makefile.in
 
 :
diff --git a/t/distcheck-hook.sh b/t/subobj-indir-pr13928.sh
similarity index 55%
copy from t/distcheck-hook.sh
copy to t/subobj-indir-pr13928.sh
index 6d9307c..11b865c 100644
--- a/t/distcheck-hook.sh
+++ b/t/subobj-indir-pr13928.sh
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+# Copyright (C) 2013 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -14,38 +14,36 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Check basic support for distcheck-hook.
+# Expose part of Automake bug#13928: config.status generates broken
+# makefiles if the subdir-objects option is used and a _SOURCES
+# variable lists sources whose directory part is specified as a
+# make variable ("foo_SOURCES = $(src)/foo.c").
 
+required=cc
 . test-init.sh
 
 cat >> configure.ac << 'END'
+AC_PROG_CC
+AM_PROG_CC_C_O
 AC_OUTPUT
 END
 
 cat > Makefile.am <<'END'
-distcheck-hook:
-       ls -l $(distdir)
-       chmod u+w $(distdir)
-       : > $(distdir)/dc-hook-has-run
-       chmod a-w $(distdir)
-check-local:
-       ls -l $(srcdir)
-       test -f $(srcdir)/dc-hook-has-run
+AUTOMAKE_OPTIONS = subdir-objects
+src = s
+bin_PROGRAMS = foo
+foo_SOURCES = $(src)/foo.c
 END
 
-$ACLOCAL
-$AUTOMAKE
-$FGREP 'distcheck-hook' Makefile.in
-$FGREP '$(MAKE) $(AM_MAKEFLAGS) distcheck-hook' Makefile.in
-grep '^distcheck-hook:' Makefile.in
+mkdir s
+echo 'int main(void) { return 0; }' > s/foo.c
 
-$AUTOCONF
-./configure
+$ACLOCAL && $AUTOCONF && $AUTOMAKE -a || fatal_ "autotools failed"
 
+./configure
 $MAKE
-$MAKE check && exit 1
-$MAKE distdir
-test -f $distdir/dc-hook-has-run && exit 1
+test -f s/.deps/foo.Po
+find . | $FGREP '$(src)' && exit 1
 $MAKE distcheck
 
 :
diff --git a/t/subobj-vpath-pr13928.sh b/t/subobj-vpath-pr13928.sh
new file mode 100644
index 0000000..96cb219
--- /dev/null
+++ b/t/subobj-vpath-pr13928.sh
@@ -0,0 +1,60 @@
+#! /bin/sh
+# Copyright (C) 2013 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Expose part of automake bug#13928: if the subdir-objects option is
+# in use and a source file is listed in a _SOURCES variable with a
+# leading $(srcdir) component, Automake will generate a Makefile that
+# tries to create the corresponding object file in $(srcdir) as well.
+
+required=cc
+. test-init.sh
+
+cat >> configure.ac << 'END'
+AC_PROG_CC
+AM_PROG_CC_C_O
+AC_OUTPUT
+END
+
+cat > Makefile.am <<'END'
+AUTOMAKE_OPTIONS = subdir-objects
+noinst_PROGRAMS = test
+test_SOURCES = $(srcdir)/test.c
+test-objs:
+       test ! -f $(srcdir)/test.$(OBJEXT)
+       test -f test.$(OBJEXT)
+END
+
+$ACLOCAL && $AUTOCONF && $AUTOMAKE -a || fatal_ "autotools failed"
+
+$EGREP 'test\.|DEPDIR|dirstamp|srcdir' Makefile.in || : # For debugging.
+$EGREP '\$.srcdir./test\.[o$]' Makefile.in && exit 1
+$FGREP '$(srcdir)/$(am__dirstamp)' Makefile.in && exit 1
+$FGREP '$(srcdir)/$(DEPDIR)' && exit 1
+
+cat > test.c << 'END'
+int main (void)
+{
+  return 0;
+}
+END
+
+mkdir build && cd build || fatal "preparation of build directory failed"
+../configure || fatal_ "./configure failed"
+
+$MAKE
+$MAKE test-objs
+
+:
diff --git a/t/f90only.sh b/t/suffix-extra-c-stuff-pr14560.sh
similarity index 64%
copy from t/f90only.sh
copy to t/suffix-extra-c-stuff-pr14560.sh
index 0ad4ff8..45fdd17 100644
--- a/t/f90only.sh
+++ b/t/suffix-extra-c-stuff-pr14560.sh
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 1998-2013 Free Software Foundation, Inc.
+# Copyright (C) 2013 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -14,21 +14,24 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Make sure programs with only Fortran 90 source are handled properly.
-# (copied from 'fonly.sh') Mike Nolta <address@hidden>
+# Automake bug#14560: if multiple user-specified suffix rules were
+# present, Automake could generate useless definitions and rules
+# related to C compilation.
 
 . test-init.sh
 
-cat >> configure.ac << 'END'
-AC_PROG_FC
-END
-
 cat > Makefile.am <<'END'
-bin_PROGRAMS = zardoz
-zardoz_SOURCES = zardoz.f90
+.foo.bar:
+       foo2bar -o $@ $<
+.baz.qux:
+       baz2qux -o $@ $<
+bin_SCRIPTS = a.bar b.qux
 END
 
 $ACLOCAL
+$AUTOCONF
 $AUTOMAKE
 
-grep 'zardoz.f90' Makefile.in
+$EGREP '\$\(CC\)|COMPILE|AM_V_CC|-compile|INCLUDES' Makefile.in && exit 1
+
+:


hooks/post-receive
-- 
GNU Automake



reply via email to

[Prev in Thread] Current Thread [Next in Thread]