From patchwork Thu Sep 13 05:06:02 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Teresa Johnson X-Patchwork-Id: 183494 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id 185152C007C for ; Thu, 13 Sep 2012 15:06:31 +1000 (EST) Comment: DKIM? See http://www.dkim.org DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=gcc.gnu.org; s=default; x=1348117593; h=Comment: DomainKey-Signature:Received:Received:Received:Received:Received: MIME-Version:Received:Received:In-Reply-To:References:Date: Message-ID:Subject:From:To:Cc:Content-Type:Mailing-List: Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:Sender:Delivered-To; bh=g4Au9Y/O7PUzTYYH/VMyi2hIogE=; b=X4gvyEv/mx+mEIbXYzplm8PKfaP8kGY9d67FGXzXYg3VlE+whwyErkzI9Gta9u vShXrIJQF0MuktFFYtd3MHzqd6VIOog8Kcnmvi9vfJ9iJvKbne0nc6dkpq4BKbb/ v9fMS+lLlZfGpYc+jX6/BgzPe7nKH+mVDxvQ3F0XnDFno= Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=gcc.gnu.org; h=Received:Received:X-SWARE-Spam-Status:X-Spam-Check-By:Received:Received:X-Google-DKIM-Signature:Received:MIME-Version:Received:Received:In-Reply-To:References:Date:Message-ID:Subject:From:To:Cc:Content-Type:X-System-Of-Record:X-Gm-Message-State:X-IsSubscribed:Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post:List-Help:Sender:Delivered-To; b=G1NQD+6dvCkmVhfS4hqIyxS3eubdO5+pWaaAq5eTGw5mcmjVRNOVjPwQaHCVkz 9TnNbzZIOc6Lol2ZTVsAhmnyy6XZ3lvCp7WKmmtfFaNJhBQkRzuMxCHCwCkfSdvu cwlpZPWIwW25cBs3Nixd3j3PKjMXMpDzsGmhgNNqBZwn0=; Received: (qmail 7204 invoked by alias); 13 Sep 2012 05:06:26 -0000 Received: (qmail 7190 invoked by uid 22791); 13 Sep 2012 05:06:25 -0000 X-SWARE-Spam-Status: No, hits=-5.8 required=5.0 tests=AWL, BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, KHOP_RCVD_TRUST, KHOP_THREADED, RCVD_IN_DNSWL_LOW, RCVD_IN_HOSTKARMA_YE, RP_MATCHES_RCVD, TW_FC X-Spam-Check-By: sourceware.org Received: from mail-pb0-f47.google.com (HELO mail-pb0-f47.google.com) (209.85.160.47) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 13 Sep 2012 05:06:03 +0000 Received: by pbcwy7 with SMTP id wy7so3365342pbc.20 for ; Wed, 12 Sep 2012 22:06:02 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:x-system-of-record:x-gm-message-state; bh=H1e5yYnZ/hc+6pveGmA9E4oT6lCH0peMDMAbtDoWTYA=; b=b+1z2aq8iJc16qjCODqvvbr5gdZ2xMCsv6EYqHj/76Cmj/mS811OViB36E9kRh6Fak Sbc/8DOLJZCCkcPIxUBaB/urEQeDFFTxKi697gvj3nIyvHyVjFptknZfd1MQNbnAArA0 rlE57W+IyhMyYLfCH/pckO+Yiv2uNxWNxvzUeo7WNU7YSf7UhyFprkIJ0E+6TrFD1uC5 wRq2MQdb3A/j7C5FxuMxzs2Of/JBEKrhBEt76kE+LI9zyPRN6+ArAsq4mN3wVsTjed7v ioBuLKlxMVnwdNc9lb6V1ZwbAy+b5Xq6lBaT1SQQw6ZnNQeadxsIMs4/HPUr027j2UdL UaOg== Received: by 10.66.76.106 with SMTP id j10mr1755563paw.51.1347512762290; Wed, 12 Sep 2012 22:06:02 -0700 (PDT) MIME-Version: 1.0 Received: by 10.66.76.106 with SMTP id j10mr1755543paw.51.1347512762134; Wed, 12 Sep 2012 22:06:02 -0700 (PDT) Received: by 10.68.213.73 with HTTP; Wed, 12 Sep 2012 22:06:02 -0700 (PDT) In-Reply-To: References: <20120912204512.7ABC861490@tjsboxrox.mtv.corp.google.com> <20120912205434.GA22619@tucnak.redhat.com> Date: Wed, 12 Sep 2012 22:06:02 -0700 Message-ID: Subject: Re: [PATCH] Fix PR gcov-profile/54487 (profiledbootstrap intermittent failures) (issue6496113) From: Teresa Johnson To: Jakub Jelinek Cc: reply@codereview.appspotmail.com, gcc-patches@gcc.gnu.org X-System-Of-Record: true X-Gm-Message-State: ALoCoQlCNZdaPJzfB4bZm/sgUqbs9n7XcnHnw8ChBmalhm/u91YHF4dMr4+guESxZMrhsdeNPn006Bfk+u20hFWpOGq34b/LC8u8NzyeWYKn8cjG73EF4Oa1i24PBnmgRCTM8RbIpCP4FwY6lXHtnwcW25VvUUN6ZQx7taBlBassmERBXNrXSutBFa8dzN5ev1CEmhOieJH0 X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org On Wed, Sep 12, 2012 at 2:12 PM, Teresa Johnson wrote: > On Wed, Sep 12, 2012 at 1:54 PM, Jakub Jelinek wrote: >> On Wed, Sep 12, 2012 at 01:45:12PM -0700, Teresa Johnson wrote: >>> This fixes PR gcov-profile/54487 where the gcda files were not locked >>> by the profile-use read, enabling writes by other instrumented compiles >>> to change the profile in the middle of the profile use read. The GCOV_LOCKED >>> macro was not set because it was guarded by HOST_HAS_F_SETLKW, which was >>> never set. The fix is to add a compile test in the configure to set it. >>> >>> Tested with bootstrap and profiledbootstrap on x86_64-unknown-linux-gnu. >>> Ok for trunk? >>> >>> Thanks, >>> Teresa >>> >>> 2012-09-12 Teresa Johnson >>> >> >> Please include >> PR gcov-profile/54487 >> here in the ChangeLog entry. >> >>> * configure.ac(HOST_HAS_F_SETLKW): Set based on compile >> >> Space before (. >> >>> test using F_SETLKW with fcntl. >>> * configure, config.in: Regenerate. >>> >>> --- configure.ac (revision 191225) >>> +++ configure.ac (working copy) >>> @@ -1159,6 +1159,16 @@ if test $gcc_cv_type_clock_t = yes; then >>> [Define if defines clock_t.]) >>> fi >>> >>> +# Check if F_SETLKW is supported by fcntl. >>> +AC_CACHE_CHECK(for F_SETLKW, ac_cv_f_setlkw, [ >>> +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ >>> +#include "fcntl.h" >> >> Please use >> #include >> instead. >> >>> +]], [[struct flock fl; fl.l_whence = 0; fl.l_start = 0; fl.l_len = 0; fl.l_pid = 0; return fcntl (1, F_SETLKW, &fl);]])],[ac_cv_f_setlkw=yes],[ac_cv_f_setlkw=no])]) >> >> And split this overlong line, there is no reason why you can't use a newline >> e.g. after every ; in the test proglet. >> >>> +if test $ac_cv_f_setlkw = yes; then >>> + AC_DEFINE(HOST_HAS_F_SETLKW, 1, >>> + [Define if F_SETLKW supported by fcntl.]) >>> +fi >>> + >>> # Restore CFLAGS, CXXFLAGS from before the gcc_AC_NEED_DECLARATIONS tests. >>> CFLAGS="$saved_CFLAGS" >>> CXXFLAGS="$saved_CXXFLAGS" >> >> Ok for trunk with those changes, IMHO it would be worthwhile to put this >> into 4.7 too, I've seen several unexplained profiledbootstrap errors on >> that branch in the past already when using make -jN with high N. > > Ok, thanks. I will fix the issues you pointed out above and retest > before committing. I'll prepare a backport patch for 4.7 as well. Patch committed. I have the 4_7 backport ready. It is basically the same patch. Also tested with bootstap and profiledbootstrap. Ok for gcc/4_7? Thanks, Teresa 2012-09-12 Teresa Johnson Backport from mainline. 2012-09-12 Teresa Johnson PR gcov-profile/54487 * configure.ac (HOST_HAS_F_SETLKW): Set based on compile test using F_SETLKW with fcntl. * configure, config.in: Regenerate. > > Teresa > >> >> Jakub > > > > -- > Teresa Johnson | Software Engineer | tejohnson@google.com | 408-460-2413 Index: configure =================================================================== --- configure (revision 191237) +++ configure (working copy) @@ -10968,6 +10968,46 @@ $as_echo "#define HAVE_CLOCK_T 1" >>confdefs.h fi +# Check if F_SETLKW is supported by fcntl. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for F_SETLKW" >&5 +$as_echo_n "checking for F_SETLKW... " >&6; } +if test "${ac_cv_f_setlkw+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +int +main () +{ + +struct flock fl; +fl.l_whence = 0; +fl.l_start = 0; +fl.l_len = 0; +fl.l_pid = 0; +return fcntl (1, F_SETLKW, &fl); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_f_setlkw=yes +else + ac_cv_f_setlkw=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_f_setlkw" >&5 +$as_echo "$ac_cv_f_setlkw" >&6; } +if test $ac_cv_f_setlkw = yes; then + +$as_echo "#define HOST_HAS_F_SETLKW 1" >>confdefs.h + +fi + # Restore CFLAGS, CXXFLAGS from before the gcc_AC_NEED_DECLARATIONS tests. CFLAGS="$saved_CFLAGS" CXXFLAGS="$saved_CXXFLAGS" @@ -17970,7 +18010,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 17973 "configure" +#line 18013 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -18076,7 +18116,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 18079 "configure" +#line 18119 "configure" #include "confdefs.h" #if HAVE_DLFCN_H Index: config.in =================================================================== --- config.in (revision 191237) +++ config.in (working copy) @@ -1588,6 +1588,12 @@ #endif +/* Define if F_SETLKW supported by fcntl. */ +#ifndef USED_FOR_TARGET +#undef HOST_HAS_F_SETLKW +#endif + + /* Define as const if the declaration of iconv() needs const. */ #ifndef USED_FOR_TARGET #undef ICONV_CONST Index: configure.ac =================================================================== --- configure.ac (revision 191237) +++ configure.ac (working copy) @@ -1187,6 +1187,22 @@ if test $gcc_cv_type_clock_t = yes; then [Define if defines clock_t.]) fi +# Check if F_SETLKW is supported by fcntl. +AC_CACHE_CHECK(for F_SETLKW, ac_cv_f_setlkw, [ +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ +#include ]], [[ +struct flock fl; +fl.l_whence = 0; +fl.l_start = 0; +fl.l_len = 0; +fl.l_pid = 0; +return fcntl (1, F_SETLKW, &fl);]])], +[ac_cv_f_setlkw=yes],[ac_cv_f_setlkw=no])]) +if test $ac_cv_f_setlkw = yes; then + AC_DEFINE(HOST_HAS_F_SETLKW, 1, + [Define if F_SETLKW supported by fcntl.]) +fi + # Restore CFLAGS, CXXFLAGS from before the gcc_AC_NEED_DECLARATIONS tests. CFLAGS="$saved_CFLAGS" CXXFLAGS="$saved_CXXFLAGS"