From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A3C5DC6FD18 for ; Tue, 28 Mar 2023 13:24:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233033AbjC1NYZ (ORCPT ); Tue, 28 Mar 2023 09:24:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42016 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232893AbjC1NYQ (ORCPT ); Tue, 28 Mar 2023 09:24:16 -0400 Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 813ECBDE3; Tue, 28 Mar 2023 06:24:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1680009854; x=1711545854; h=message-id:date:mime-version:subject:to:references:from: in-reply-to:content-transfer-encoding; bh=c5NZ8J85PtsVwH4TYBDukAvhMm76lbQ4ukarN3NWcis=; b=OIjpSHE/nVqROh8+uMKldHmwQ3DgNF0tW9ykEfrGJcPnG6kL8F7skf7M 7MnTigg7/+9c7yxFVyZaCWF4P7DrG/Z41s0/5X6P6GnFJXzECUPQxFFLL ehRxyH9N0GTpzAIsxwg5EklFubM85WI2KoUXQ5RHKTlCUl2ourVERL0xs uwItS919juFNXTc5mf8fBBriLjdhKP2dMN65JyrMBZX5nVF5kkGqtVGkC eJdLWCKvs20CmJ0iKE5pNZBIZTPgQmJrU+q6NT7A/Ud0PRmcRpNt8p6ze JJHjEgaLxiZtCAUWIBBDoqSwrwWY9keQDZ7F6fDJ1vqrvjGKYFL9tf19m w==; X-IronPort-AV: E=McAfee;i="6600,9927,10662"; a="329020086" X-IronPort-AV: E=Sophos;i="5.98,297,1673942400"; d="scan'208";a="329020086" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Mar 2023 06:24:13 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10662"; a="929875313" X-IronPort-AV: E=Sophos;i="5.98,297,1673942400"; d="scan'208";a="929875313" Received: from ahunter6-mobl1.ger.corp.intel.com (HELO [10.0.2.15]) ([10.249.32.11]) by fmsmga006-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Mar 2023 06:24:06 -0700 Message-ID: Date: Tue, 28 Mar 2023 16:24:00 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0 Thunderbird/102.9.0 Subject: Re: [PATCH v1 0/6] Simplify linking against tools/perf code Content-Language: en-US To: Ian Rogers , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Adrian Hunter , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Mathieu Poirier , Suzuki K Poulose , Kan Liang , Raul Silvera , Athira Rajeev , Ravi Bangoria , Florian Fischer , Rob Herring , Xing Zhengjun , Sean Christopherson , Chengdong Li , Denis Nikitin , =?UTF-8?Q?Martin_Li=c5=a1ka?= , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, coresight@lists.linaro.org References: <20230328014058.870413-1-irogers@google.com> From: Adrian Hunter Organization: Intel Finland Oy, Registered Address: PL 281, 00181 Helsinki, Business Identity Code: 0357606 - 4, Domiciled in Helsinki In-Reply-To: <20230328014058.870413-1-irogers@google.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-perf-users@vger.kernel.org On 28/03/23 04:40, Ian Rogers wrote: > When fuzzing something like parse-events, having the main function in > perf.c alongside global variables like input_name means that > input_name must be redeclared with the fuzzer function's > main. However, as the fuzzer is using the tools/perf code as a library > this causes backward linking reference that the linker may warn > about. Reorganize perf.c and perf.h to avoid potential backward > references, or so that the declaration/definition locations are more > consistent. > Seems like it could be a pain to maintain. Did you consider just adding: diff --git a/tools/perf/perf.c b/tools/perf/perf.c index 82bbe0ca858b..a75dd47d68ee 100644 --- a/tools/perf/perf.c +++ b/tools/perf/perf.c @@ -456,6 +456,7 @@ static int libperf_print(enum libperf_print_level level, return veprintf(level, verbose, fmt, ap); } +#ifndef CUSTOM_MAIN int main(int argc, const char **argv) { int err; @@ -576,3 +577,4 @@ int main(int argc, const char **argv) out: return 1; } +#endif