Thx for fixing this !!!~ Acked-by: Alex Wang <al...@nicira.com>
On Fri, Apr 3, 2015 at 3:11 PM, Ben Pfaff <b...@nicira.com> wrote: > Lately our internal build system has been seeing intermittent failures that > I can't explain. With old glibc versions, the "configure" time check will > pass, but the equivalent (almost identical) "make check" test will fail. > One possibility, I guess, is that occasionally address space randomization > will put valid data at the 0xc0ffee address that the test assumes will > segfault, and another is that some change in compiler optimization flags > is making a difference. At any rate, I think it's safe to just always > assume that this strtok_r() bug is present whenever glibc before 2.8 is > in use. > > Specifically we've seen this happen intermittently when building against > the XenServer DDK 5.6.100 build 39265, which uses glibc 2.5. > > Reported-by: Alex Wang <al...@nicira.com> > Signed-off-by: Ben Pfaff <b...@nicira.com> > --- > acinclude.m4 | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-) > > diff --git a/acinclude.m4 b/acinclude.m4 > index 479da2e..b09f2f2 100644 > --- a/acinclude.m4 > +++ b/acinclude.m4 > @@ -1,6 +1,6 @@ > # -*- autoconf -*- > > -# Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014 Nicira, Inc. > +# Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Nicira, > Inc. > # > # Licensed under the Apache License, Version 2.0 (the "License"); > # you may not use this file except in compliance with the License. > @@ -494,7 +494,13 @@ AC_DEFUN([OVS_CHECK_STRTOK_R], > [AC_LANG_PROGRAM([#include <stdio.h> > #include <string.h> > ], > - [[char string[] = ":::"; > + [[#if __GLIBC__ == 2 && __GLIBC_MINOR__ < 8 > + /* Assume bug is present, because relatively > minor > + changes in compiler settings (e.g. > optimization > + level) can make it crop up. */ > + return 1; > + #else > + char string[] = ":::"; > char *save_ptr = (char *) 0xc0ffee; > char *token1, *token2; > token1 = strtok_r(string, ":", &save_ptr); > @@ -502,6 +508,7 @@ AC_DEFUN([OVS_CHECK_STRTOK_R], > freopen ("/dev/null", "w", stdout); > printf ("%s %s\n", token1, token2); > return 0; > + #endif > ]])], > [ovs_cv_strtok_r_bug=no], > [ovs_cv_strtok_r_bug=yes], > -- > 1.7.10.4 > > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev