[PATCH] disable var-tracking for math/test-tgmath2.c

Markus Trippelsdorf markus@trippelsdorf.de
Thu Oct 18 19:00:00 GMT 2012


On 2012.10.18 at 14:25 -0400, Carlos O'Donell wrote:
> On Tue, Oct 16, 2012 at 4:48 PM, Markus Trippelsdorf
> <markus@trippelsdorf.de> wrote:
> > On 2012.10.16 at 11:57 -0700, Roland McGrath wrote:
> >> Maybe we should split the code up into more functions or something.  If
> >> there are things like that we can do that improve the compilation speed
> >> without reducing our test coverage, there's no reason not to do them.  But
> >> frankly I'd rather have slow compilation of a test case persist through a
> >> few more GCC versions than do a cheesy hack like this.
> >
> > The test coverage is unchanged by the patch.
> > And gcc disables var-tracking anyway as soon as the size limit is exceeded.
> > (clang doesn't and takes over 15 minutes to compile the file with -g)
> 
> It does decrease test coverage, because now we
> aren't compiling the test applications in the
> same way that users would. What if -fno-var-tracking
> was hiding a glibc implementation bug?

I would say that's impossible, because -fno-var-tracking only affects
the generation of debugging information. 

> I would also rather have a slow compilation that
> matches the user use cases than a fast compilation
> that might potentially hide defects.

I really doubt that any sane user uses lines with over 3 million
characters like this test case does.

> Can you provide a patch that adds acomment in the Makefile
> that talks about the slow compilation, and references
> the gcc and llvm upstream bugs that need to be fixed
> in order to speed up the compilation?

Sure. The clang bug is already fixed (it compiles now in ~30 seconds).

diff --git a/math/Makefile b/math/Makefile
index 7759873..9e17695 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -126,6 +126,9 @@ CFLAGS-test-float.c = -fno-inline -ffloat-store -fno-builtin -frounding-math
 CFLAGS-test-double.c = -fno-inline -ffloat-store -fno-builtin -frounding-math
 CFLAGS-test-ldouble.c = -fno-inline -ffloat-store -fno-builtin -frounding-math
 CFLAGS-test-tgmath.c = -fno-builtin
+# The following testcase uses very long lines (>3 million), so it may take a
+# while to compile it. See: http://llvm.org/bugs/show_bug.cgi?id=14106 and
+# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54402
 CFLAGS-test-tgmath2.c = -fno-builtin
 CFLAGS-test-tgmath-ret.c = -fno-builtin
 CFLAGS-test-powl.c = -fno-builtin

-- 
Markus



More information about the Libc-alpha mailing list