Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp5086699yba; Tue, 30 Apr 2019 08:56:12 -0700 (PDT) X-Google-Smtp-Source: APXvYqyc0VxWKAaSqqJ2gFRRQp0zgeBn9qRRMNxMYbYv5Sx0OEsiR5Yp0NShjNqXxU2V8cY7Mz0+ X-Received: by 2002:aa7:9148:: with SMTP id 8mr40687784pfi.176.1556639772649; Tue, 30 Apr 2019 08:56:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1556639772; cv=none; d=google.com; s=arc-20160816; b=HGwExNiLmhXzN9DTZd9kVHUQ45NEHUp1yPKBsNrIZAR5KLAT1qONVDuB7beRimhIDC yLW3ysJiHWlLbB8+DgUl324jmt0YN1i30RWCYjmcNYmV0vGYxUxQRC2HuT5L6Ej96tvG 2cx6JxloZH+JZ5VuW6g9VwoJMNuq8c11nmbR4x3EXPduvYSAU7Oz0Xt/264t8hdkrwtc KncHCOvehI6nmgEwnPqM4XnVOwaTN0e/ISTh0wQCag9LGlAUzBx9PcDYcEVdN3/mmxIX T0oVM7kdAH5CaumzZnTaOqMzQOiH4of/NJrFn68QqDa73uTkU8VqqJtnvcS2iirRa5t3 sGgQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-language:accept-language:references:message-id:date :thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=MHZTV1sU53fmpgX9fXEMIktOSHrFLO4Ckq7EAvjjQJY=; b=A0Q94WuGf8EVHktHLVkB7cttfoYE2kDuE6b6cZY3hIPmUwUdIHQy73SUsULiyK25L4 igDVZ86Gg3i0H3pSN3E64b/UFgUCzs/h5ORl2zD7ZuGIxSNEm0xtxzIZYpUnjELiXc9M QIiZdqUwJu+GtEwWomVmgNFT5Kah8rMjU/2JF0dvVX0RtH17cAie0VJZk/RlPo9msqZ3 mOaieHjGXP6guunigFu5yVuQXuvBPDwcFCWs+nJ6Iu8rFnm4A0NdxDXgfJCGYwgFpGEY cXRRbuI1GHzqubin7OP9+xtZwbR0oy5djsKOTwiUxpJxwTvDFTDHiC5DBZIA+Jns7DJv pUkg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@synopsys.com header.s=mail header.b=NyNIDopx; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=synopsys.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m10si7893418pff.22.2019.04.30.08.55.56; Tue, 30 Apr 2019 08:56:12 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@synopsys.com header.s=mail header.b=NyNIDopx; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=synopsys.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726387AbfD3Pyx (ORCPT + 99 others); Tue, 30 Apr 2019 11:54:53 -0400 Received: from dc8-smtprelay2.synopsys.com ([198.182.47.102]:47044 "EHLO smtprelay-out1.synopsys.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726050AbfD3Pyx (ORCPT ); Tue, 30 Apr 2019 11:54:53 -0400 Received: from mailhost.synopsys.com (dc8-mailhost1.synopsys.com [10.13.135.209]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtprelay-out1.synopsys.com (Postfix) with ESMTPS id DB323C0039; Tue, 30 Apr 2019 15:54:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=synopsys.com; s=mail; t=1556639694; bh=41EXEwITfkkbVpQOww8Wh+pmfeyi9sINjyuMxudAhdM=; h=From:To:CC:Subject:Date:References:From; b=NyNIDopxUJ64Y4K4Kj0xA+908dHtBQZiqKANb8r0oov0Gx9OuKQQ8aNUclCLCaFof 5Xh7IPVPqEcvXu228CgoVE8BHfa89un35k1BJw0AnVq6UaYi+vth6cDGXQRwjZTeEl YsgECfMlEX08eYRZOQMR9OtP9+eZNOGOaorfdvBu2y1QKThD03ae/hVXjFdpIvPsHA O6LkuvcmhPbi9edZLF5LBx26d64RchnU2FrEj7ltQZzvAJzZ1B7cPiReNkCl5T/rdM PrxEX4/Md3s4JiGXI611x5FFHpMXsxo1xJnU4nAuxrLvXbadc9kYZcfqykNkvriie0 NVzyPZ1xPGF9w== Received: from US01WEHTC2.internal.synopsys.com (us01wehtc2.internal.synopsys.com [10.12.239.237]) (using TLSv1.2 with cipher AES128-SHA256 (128/128 bits)) (No client certificate requested) by mailhost.synopsys.com (Postfix) with ESMTPS id 26259A006B; Tue, 30 Apr 2019 15:54:48 +0000 (UTC) Received: from us01wembx1.internal.synopsys.com ([169.254.1.223]) by US01WEHTC2.internal.synopsys.com ([10.12.239.237]) with mapi id 14.03.0415.000; Tue, 30 Apr 2019 08:53:19 -0700 From: Vineet Gupta To: Arnaldo Carvalho de Melo CC: "devel@uclibc-ng.org" , "linux-perf-users@vger.kernel.org" , Arnaldo Carvalho de Melo , lkml , arcml , Arnd Bergmann , Jiri Olsa , Namhyung Kim , Rich Felker Subject: Detecting libc in perf (was Re: perf tools build broken after v5.1-rc1) Thread-Topic: Detecting libc in perf (was Re: perf tools build broken after v5.1-rc1) Thread-Index: AQHU/2zU3RcD8vNEuk6uLp1+qNlGpA== Date: Tue, 30 Apr 2019 15:53:18 +0000 Message-ID: References: <20190422152027.GB11750@kernel.org> <20190425214800.GC21829@kernel.org> <20190430011818.GE7857@kernel.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.13.184.19] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 4/29/19 6:18 PM, Arnaldo Carvalho de Melo wrote:=0A= >>> Auto-detecting system features:=0A= >>> ... dwarf: [ OFF ]=0A= >>> ... dwarf_getlocations: [ OFF ]=0A= >>> ... glibc: [ on ]=0A= >> Not related to current issue, this run uses a uClibc toolchain and yet i= t is=0A= >> detecting glibc - doesn't seem right to me.=0A= > Ok, I'll improve that, I think it just tries to detect a libc, yeah,=0A= > see:=0A= >=0A= > [acme@quaco linux]$ cat tools/build/feature/test-glibc.c=0A= > // SPDX-License-Identifier: GPL-2.0=0A= > #include =0A= >=0A= > #if !defined(__UCLIBC__)=0A= > #include =0A= > #else=0A= > #define XSTR(s) STR(s)=0A= > #define STR(s) #s=0A= > #endif=0A= >=0A= > int main(void)=0A= > {=0A= > #if !defined(__UCLIBC__)=0A= > const char *version =3D gnu_get_libc_version();=0A= > #else=0A= > const char *version =3D XSTR(__GLIBC__) "." XSTR(__GLIBC_MINOR__);=0A= > #endif=0A= >=0A= > return (long)version;=0A= > }=0A= > [acme@quaco linux]$=0A= >=0A= > [perfbuilder@59ca4b424ded /]$ grep __GLIBC__ /arc_gnu_2017.09-rc2_prebuil= t_uclibc_le_arc700_linux_install/arc-snps-linux-uclibc/sysroot/usr/include/= *.h=0A= > /arc_gnu_2017.09-rc2_prebuilt_uclibc_le_arc700_linux_install/arc-snps-lin= ux-uclibc/sysroot/usr/include/features.h: The macros `__GNU_LIBRARY__', `= __GLIBC__', and `__GLIBC_MINOR__' are=0A= > /arc_gnu_2017.09-rc2_prebuilt_uclibc_le_arc700_linux_install/arc-snps-lin= ux-uclibc/sysroot/usr/include/features.h:#define __GLIBC__ 2=0A= > /arc_gnu_2017.09-rc2_prebuilt_uclibc_le_arc700_linux_install/arc-snps-lin= ux-uclibc/sysroot/usr/include/features.h: ((__GLIBC__ << 16) + __GLIBC_MINO= R__ >=3D ((maj) << 16) + (min))=0A= > [perfbuilder@59ca4b424ded /]$=0A= >=0A= > Isn't that part of uClibc?=0A= =0A= Right you are. Per the big fat comment right above that code, this gross ha= ck in=0A= uclibc is unavoidable as applications tend to rely on that define.=0A= So a better fix would be to check for various !GLIBC libs explicitly.=0A= =0A= #ifdef __UCLIBC__=0A= =0A= #elseif defined __MUSL__=0A= =0A= ...=0A= =0A= Not pretty from app usage pov, but that seems to be the only sane way of do= ing it.=0A= =0A= -Vineet=0A=