Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp1617298pxf; Fri, 12 Mar 2021 14:26:31 -0800 (PST) X-Google-Smtp-Source: ABdhPJwoskx4cPqemKvkgXDMv52mdb3wgG4YmOqz/7N+U4C/4UpMF+9MhciNskF+tWvqbxW84/4E X-Received: by 2002:a17:906:73cd:: with SMTP id n13mr10727071ejl.535.1615587991515; Fri, 12 Mar 2021 14:26:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1615587991; cv=none; d=google.com; s=arc-20160816; b=i+I1VqB2cVJhLXehRLQSvt9bRkZjIjZVAcbbUzL7nCMJbotLTrsijjajPSG9tFNbhD +dUcjGOfE+oTax7aRfK/FD9V9gb0MBp+grXW7yfQxMw/rpQQN3Ht1NJ+ArgRiedoSudb X5aCgfxWg0PYExtjbKX7WwC1ka1vb2KCiSfSjlO9f3RUEjmcdLL0YwoHPp1cHCsIYONn yQ8C4sL2loLO0cgqOauOyb0eVqLkv1YkGwltbwx1WOO7YCcPLDWWzXztJ4Q+FUb2TxWw 0tpNx8kkmIcipwk1d0whfU4y2VO7X6faiqVZJDm/XHqTjeTjptxKA26zW/pGLHdHyuwS gWew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=fUp9bdMACAhipmgQpADFkYf0b9xiq1zIbv0Svm5SjIQ=; b=d/uUg1JGNtyA2H4ze+W5w/cw6nMFOhQ0MxFFvfuSa+seYG8Kxi64NriwFw7MB8TEq5 8+V5l2VjrEi5Tr0KjX7mgVlr9sovIBQPWXgEVLZVG3DipCtsG/8tu2p06bJz9syZaBP4 vJFaku6S/J3MH2PUxmfQNk3AT2JsclHYjRyuTnHwA9UUyd39hLBKGwlN4l50RxUVsHf3 P/aXrA+ennplAXSozzENdiXvYJQb1b9GYWYqf6XaW6WTC/0VwXzE+oZFYMfGwquBZ4F6 pIG1qyrkTSjq7EOXksiwrl996XSuJcgmDD/tYRhnKMHqwjUj2e3MunY5MWtV5E/JneUL n6Dw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=tRMYCue0; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t11si4859359ejt.33.2021.03.12.14.26.06; Fri, 12 Mar 2021 14:26:31 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=tRMYCue0; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235509AbhCLWZK (ORCPT + 99 others); Fri, 12 Mar 2021 17:25:10 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49120 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235469AbhCLWZE (ORCPT ); Fri, 12 Mar 2021 17:25:04 -0500 Received: from mail-pl1-x62c.google.com (mail-pl1-x62c.google.com [IPv6:2607:f8b0:4864:20::62c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 10426C061574 for ; Fri, 12 Mar 2021 14:24:53 -0800 (PST) Received: by mail-pl1-x62c.google.com with SMTP id s7so12580304plg.5 for ; Fri, 12 Mar 2021 14:24:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=fUp9bdMACAhipmgQpADFkYf0b9xiq1zIbv0Svm5SjIQ=; b=tRMYCue0cTuNDzRc5gjlgI5lRzpZB2q1NKrfaqQKEk1Avx+uKY28ypXV1raS171Zd0 BbGLBRWlCmBxwaZRPqlhKELFuYcKTVWbtvD7hRR+rNT+73/mOnaoh2MJIPdOrvUtMhzg Bp+ejJWqrlkiqs+mJ9D3OK3YTg5v5Lt0TTK8Bi5gwhfb9ME97bdoZY0lT7PDbsvWMr0F HJLtbr1keykFIiJsfSGzIE3ofli9unD+UVclb1pLwPA2CJsyhrP8o4IaybUU7iG5vdk6 Fb9c2IlRw/tFNV4Brk7NX1e4prCk+rOhmkMHGbIVA1Voul+BrgAGr6t7eBXkgKPHCcZL tLNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=fUp9bdMACAhipmgQpADFkYf0b9xiq1zIbv0Svm5SjIQ=; b=Iz+22hWPYIhiQ5LhjTgrA9tMhiqTLktG/ORxEeHJNtOtcgYSywgCx+CxoArCXIlC57 GTJRlZkj6Fquvg86rygnVBeoFbPuVbzwReUoFglFyliJdRWbefznD/SHFsopvi5abl1o zkllzMO272ia/paghgVq8BnEFRd931xNesbw5j6RtabGaaOgmKCJOgEDyGuGPv/37/WV vbg49mk+NvlG9YEkj7wL3lrfYQC7kStVeNiXUhUpaxxfE59d7CZ2PMVPDv7+cDQxxIiL SNiHL5n5oqPiCQB8IG+tTBmuvup+JvRMgSYWuB8cGFbgvVmWU0lI8ce1Qg1oUITC08PS 6ODQ== X-Gm-Message-State: AOAM530kKqhC4RViz3e+RzTp96eIHsgRTMvbiYM9YBS503byvdsTlyU0 MCKL8mT0LHBit5Z8pws5182hXw== X-Received: by 2002:a17:902:e74f:b029:e5:fedb:92b9 with SMTP id p15-20020a170902e74fb02900e5fedb92b9mr601002plf.67.1615587892224; Fri, 12 Mar 2021 14:24:52 -0800 (PST) Received: from google.com ([2620:15c:2ce:0:bca6:9fa5:8695:2f0d]) by smtp.gmail.com with ESMTPSA id s27sm5966766pgk.77.2021.03.12.14.24.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Mar 2021 14:24:51 -0800 (PST) Date: Fri, 12 Mar 2021 14:24:47 -0800 From: Fangrui Song To: Nick Desaulniers Cc: Peter Oberparleiter , Andrew Morton , Prasad Sodagudi , Nathan Chancellor , LKML , clang-built-linux Subject: Re: [PATCH] gcov: fix clang-11+ support Message-ID: <20210312222447.rwnvmlp4i5jfmwyy@google.com> References: <20210312192139.2503087-1-ndesaulniers@google.com> <20210312202537.z77v4qnvptbrug2f@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2021-03-12, Nick Desaulniers wrote: >On Fri, Mar 12, 2021 at 12:25 PM 'Fangrui Song' via Clang Built Linux > wrote: >> >> function_name can be unconditionally deleted. It is not used by llvm-cov >> gcov. You'll need to delete a few assignments to gcov_info_free but you >> can then unify the gcov_fn_info_dup and gcov_info_free implementations. >> >> LG. On big-endian systems, clang < 11 emitted .gcno/.gcda files do not >> work with llvm-cov gcov < 11. To fix it and make .gcno/.gcda work with >> gcc gcov I chose to break compatibility (and make all the breaking >> changes like deleting some CC1 options) in a short window. At that time >> I was not aware that there is the kernel implementation. Later on I was >> CCed on a few https://github.com/ClangBuiltLinux/linux/ gcov issues but >> I forgot to mention the interface change. > >These are all good suggestions. Since in v2 I'll drop support for >clang < 11, I will skip additional patches to disable GCOV when using >older clang for BE, and the function_name cleanup. Only llvm_gcda_start_file & llvm_gcda_emit_function need version dispatch. In that case (since there will just be two #if in the file) we don't even need depends on CC_IS_GCC || CLANG_VERSION >= 110000 >> Now in clang 11 onward, clang --coverage defaults to the gcov 4.8 >> compatible format. You can specify the CC1 option (internal option, >> subject to change) -coverage-version to make it compatible with other >> versions' gcov. >> >> -Xclang -coverage-version='407*' => 4.7 >> -Xclang -coverage-version='704*' => 7.4 >> -Xclang -coverage-version='B02*' => 10.2 (('B'-'A')*10 = 10) > >How come LLVM doesn't default to 10.2 format, if it can optionally >produce it? We might be able to reuse more code in the kernel between >the two impelementations, though I expect the symbols the runtime is >expected to provide will still differ. Seeing the `B` in `B02*` is >also curious. > >Thanks for the review, will include your tag in v2. 4.8 has the widest range of compiler support. gcov 4.8~7.* use the same format. clang instrumentation does not support the column field (useless in my opinion) introduced in gcov 9, so it just writes zeros.