From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by sourceware.org (Postfix) with ESMTPS id B6C353858C5E for ; Fri, 22 Dec 2023 05:44:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B6C353858C5E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=oracle.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=oracle.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org B6C353858C5E Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1703223855; cv=pass; b=xRNwhv6zSQSlWz1xdfx/WfQlB74o6s6RbcP43/lIbg/F9jHmlhixJ3hBtBgWA/vqyw+zio6N+N0N+TqgdEndKslQvnAhqAuoj2E7qSC1LxPS9+2FVQlbUKAUmUcCmMzM4Ynuk2/0ent3Keo0OPM+9y3Ji9Nvhrjq/6NMQfxDkbM= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1703223855; c=relaxed/simple; bh=ekcaqN44x7jUKuuo6VAMK9djE003GogpXxh1s2abaEA=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-Id: MIME-Version; b=J8DZoioupTptWfDdr+syNNTxlmGU50zrYAUxoH8MjJH7s/FGW3WEOb6yKhY8tZK/0/W0poLzZ2mTl/XUjALqa5RbOFRRzmS8l5nv/Csbk7jWtrbj1vT4I19uLBA6pj5UPiteH0e8U1j4axu0/SADaduyAwx0eISnTULZFNclgL0= ARC-Authentication-Results: i=2; server2.sourceware.org Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 3BM5iBQV012855 for ; Fri, 22 Dec 2023 05:44:11 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : content-transfer-encoding : content-type : mime-version; s=corp-2023-11-20; bh=5myTFJ3dmLFjxvAKLsjgZiGQJvDR+HPrFBoDD01riEA=; b=ZfrmUw8M4GMbz9GGa7xiX6W3f9o5DD/KslsUWz6IpsoZ96Hlys/lxgDIi3jis8wwXdHu kJgK4CVhf+rFfr0SIe7I4VvxLi1dQFWK6+zlD/uxAPxUtQXDoZcLdv06eM3JLZpI5lxs TiSVqoTjC/1NSHZ/6C3wLk4v3PlkHhCWvsahjJdRCVUwdkgGtlXLJJ83OimspFaMjZpi IYSIPkS7Muwty5JB+4mBwKRYpFZBjtYW3K73PcEdm7Ijrc0ciVDw0MaIAtGYlrtkZBNQ pxWgBu37VJWjoywHZZ9hJXeNv0+Q9ddkwFGEgGJyrNEnOOvBto8Z2PacBcBf6c/pdGG8 1g== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3v4atx34sv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 22 Dec 2023 05:44:11 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 3BM3hbWJ035519 for ; Fri, 22 Dec 2023 05:43:59 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2169.outbound.protection.outlook.com [104.47.59.169]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3v12bd2ufr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 22 Dec 2023 05:43:59 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LVsKvM0LiJ7Lpf7wvm03BJyGUsGRdEaePTO1wJ3WEmUTM44spICyI7lR1B3nTAKrKVDV1TNNRHjb8h3C3TdlqWGn0Cbo4S8RUseCNFroy2iFfrgfdRxtdgV8VRQUVYAvhzoIdbMxknNS3xQbmZCnGSKbp/HUFIHJFQBliK2LphbrULHmbvx3Jp6UO/6c7dIZRxAJGKNFUWOBlY0hsG05wzmzO+BAaJHxvUZsD+le0VzcGhWf4B6UBcnkp+UhQRZQx9BfTNWeVYZ3iTQs4XEqxgo7fIy8crqyiw+uhiKFfQLJOwO9/NkAkEPGCEYEkLRzvQDiX9E+ZLls1DcI57+Ukg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=5myTFJ3dmLFjxvAKLsjgZiGQJvDR+HPrFBoDD01riEA=; b=Br+GZpATyqZvRCWNjng9jSIXq3Xra2OfvKtf6U+i9Ave9AukwtVAEig/Qdv/vKM95uim+sFiazPhaNiKI1cfzVa9To2VOcL/NrPLFAYsh/+ffvXaqK6YpnBEeOGRN1+npFMO8/sm3ZGRZoHGh5cyzFfOiBRQtiW4WUPp+UkPQbbx0TrQuEgX0+B5y/cP01ifotN1iR68P10968lCgMyVlAmZvuOoGKiKhHCppJLo9Vz8iibXg3+zUXkT01EN/8quQFeX4ZgKxz5Mciaq1CqUgHef8ojcebuJSWLJ5WjtI0W3UmjcgTjXVzsIqQA13AVv9h+5qeD1C8sUKwgTyjaO6w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5myTFJ3dmLFjxvAKLsjgZiGQJvDR+HPrFBoDD01riEA=; b=w6duYxCpWZdrJ0WxmOCs1qI+byA+MWJNtZlseBiY326UEbIyZqjdnemKW1FIbaWFwOX2Xcd74ts4c3d950CDJyhPR65MoGsgUwj7LT935n7q1iVzVgS/fOHiFL0HGCbHydEP1QpJERWUNxHGZ8AhX080l5zwCbqnkzqhEjWTdQ0= Received: from SA2PR10MB4636.namprd10.prod.outlook.com (2603:10b6:806:11e::10) by IA1PR10MB6217.namprd10.prod.outlook.com (2603:10b6:208:3a6::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7113.20; Fri, 22 Dec 2023 05:43:57 +0000 Received: from SA2PR10MB4636.namprd10.prod.outlook.com ([fe80::412c:783e:a135:f0d7]) by SA2PR10MB4636.namprd10.prod.outlook.com ([fe80::412c:783e:a135:f0d7%4]) with mapi id 15.20.7113.019; Fri, 22 Dec 2023 05:43:56 +0000 From: vladimir.mezentsev@oracle.com To: binutils@sourceware.org Cc: Vladimir Mezentsev Subject: [PATCH] gprofng: fix build problems on linux-musl Date: Thu, 21 Dec 2023 21:36:03 -0800 Message-Id: <20231222053603.472325-1-vladimir.mezentsev@oracle.com> X-Mailer: git-send-email 2.31.1 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: BLAPR03CA0127.namprd03.prod.outlook.com (2603:10b6:208:32e::12) To SA2PR10MB4636.namprd10.prod.outlook.com (2603:10b6:806:11e::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PR10MB4636:EE_|IA1PR10MB6217:EE_ X-MS-Office365-Filtering-Correlation-Id: 1b13481b-0826-4f2d-0397-08dc02b0fd52 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: yp6UMQSs5tNLNrQv1Q8pJ0BtMIwkFB89t31/WiGRjJ1PEuT8mrGen9lYItk6aLzjirrI58Vb/6Jw3SexP6yX9sHnm1Y/VMYo48EvjjxSZZWwx6MTLQmBhcPnrTsPP8WtQ4tTqJHzLkGheM4Mkl142kldH/ZIVLyn2zgCnBDli7SuiTzLP5tCaERL/nq9L8+QfZ1ZJgh9axujuEsQnqqXfNNJuoKNr+bx+yjc+nlN5xkRWUNye1LWl6LGPA74QIALyL20WxVc/NhfyNSdGuT8ANnu8w75eDo//R8wnsSRWwrleJPf3j4D7wszyVwuXv4WkRBOJ0VfNRw2D1A4Q2ttF6X6EI2RPnjC4zRrXqIpy6op5/0oHrXU7/5FJvRcmyjfQiiceh/1hN/mlYEbRpFROgxZnpyrT5tqLtbvvvF8W0MPpixqWwEMKhAIoxtqM5UniNYZtyzuQ4yYGNp9EKrIVMyQv+ZXLENTxr1Xo2FelNW/fmCZ35hIDdfQG22iwd36JYFCF2sBIdNxV6AFVLBgqmBJGfqULTjQoXwGazwykhR0X7t1u3EekxXjVbobX6bR X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA2PR10MB4636.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(346002)(396003)(376002)(39860400002)(136003)(230922051799003)(64100799003)(186009)(1800799012)(451199024)(83380400001)(36756003)(86362001)(5660300002)(41300700001)(38100700002)(6486002)(4326008)(8676002)(8936002)(316002)(6916009)(66946007)(66476007)(66556008)(4001150100001)(9686003)(2616005)(6512007)(107886003)(478600001)(6506007)(2906002)(1076003)(6666004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?EhYjYX7DbtlBg2h06ENpnxXKp7wzcRaiT0bK+O/gCK4JxatYzqpey53u1gS7?= =?us-ascii?Q?Ly0LZVZjUJJX9rshFtccB15S/rwlcfOXwWtesWB1Sf4WDhcJFzCwRLrYhH6Z?= =?us-ascii?Q?EJBN7UDBj2A7jjPCecZRyrYDPO1WxffNDf611DSRBdEM3sxHD4pNI0vGXu60?= =?us-ascii?Q?XagOpYiygUibEPxGXaX47I6yNIQSzw3nYoM0pBc4jkv8tprFZwI906gAf9dD?= =?us-ascii?Q?JdpnL4OtF8SUmOK4tG/VSVJspHZf/p5C+GGt22jTnIR8LfS5MapQow7JGhDF?= =?us-ascii?Q?5bqcK6R8jOVLCV4sSXvZQlPJ57n47buVIPWe3bSHpfpetXb0MjKQzgKC6JIz?= =?us-ascii?Q?NnM8MS7oAyIaQ+TAKkfcWoMIBDZgD9s5JE7Qwm69pRGeoCy1UR0b7+f2pdzJ?= =?us-ascii?Q?gjsYlYlmbTeXzkLEJhFKpcmrZ6qbKihLMR4w07ip8HM1GoL3qPgF2iv1w8XQ?= =?us-ascii?Q?rY3wUcPxbVexuUfFHiXjzONNZeP3IwRGD3S5snmj+nifGGIhFUeJMIbj0+7a?= =?us-ascii?Q?VJEtes4aZwsU97OVSQaH0Dm3z02szM7mfHokk7DLt4loVpsDd446XSzYhYbt?= =?us-ascii?Q?IKotCJbxceIr3b0yokdVpahAR5Z50oeF2M5LwglEphZhslqC8vWRDdtJOfCI?= =?us-ascii?Q?ffM/ihC7uh7nqQGXP0tafvSztMf2cH71W6kpJYY1kmmLiS40JAuXoJqbZHo2?= =?us-ascii?Q?LBJ8LIvt8/Po5DrIsIZMUzZARTXMS6DOfeC382jqWp1uFsHmxpV1KgMj4Ema?= =?us-ascii?Q?833YmAmF3zfDWUAOuxx0BEhUa2HYode//WljRPG3QUNflIuj4s8BIeTpcJFY?= =?us-ascii?Q?nyx0czeEBsT7VuQse1Hs1B8q/EK6hR6JzUhnVrsD8+ZWnWXPYLuMxztk71xK?= =?us-ascii?Q?Yh4RT2DwVV5N3YAaDvAhuJgEd6urlk4f9wj96zHy+xshJwuKlsjaMv0bx4Kr?= =?us-ascii?Q?JXnb+lwXyASjRdzqj/nOBt7kY4ElvqIBN1Weu98767uddgMAaefwBYfktOVu?= =?us-ascii?Q?iBtzRTInGfXwnC8IsMdF/rCvqauax1sJXXF44LRsrMBJHV3LYqlO2SkvCoWF?= =?us-ascii?Q?mMAvVAfQ+v05kBDfvh4PywT8qOdOynpi8xOVR59XVCaX0HKOHsu8tiZOc9zh?= =?us-ascii?Q?p7aJOeUp72WJaQYVszj+7tbHIrQYyJh8p9FoUeMksJ3IMvTtyxCUbQ+2328b?= =?us-ascii?Q?m3SRREw8JSSgsdT/4fCr1rRji22MjVVrg5G3ES9TSxdCmmCbNqy8rAc+9NLS?= =?us-ascii?Q?rZi7dIeTwEHC0RX1mB/qQoeE4sBhhrgDLaD62rnu6kNiMiJJehM9sZ7V4G21?= =?us-ascii?Q?SgpCkGZ7FAUP6qbrlSJw+gN+q8jN6SIFpqkul9sp7UsP5J+5ktEk3gA17SXZ?= =?us-ascii?Q?7rGoQpMHGnYSc2pNzTwMgkYFnANAqiBghe0L3q6tCNMOLBkhpxILzrATIWK7?= =?us-ascii?Q?vX4IhvVQrwbv5u/yI8cphLs2hWCwtuuUlepHZqIAFG5V5MVRlnrorY61WmBX?= =?us-ascii?Q?8radg5Y1Jf+GHBqY7xPxZpJ3HqEDQF/cwKPONjuFt7TrgnYPK8BEv3kNglUk?= =?us-ascii?Q?q5saX1apwKWP/22/C/31D+xzp176NPkXUr/WDpkvfSHjQIdLn/u+n2/bUvm9?= =?us-ascii?Q?tQQbrxUVUhaofi4vsm2KyaL0wQ9SDXLkbSs358hyxHkW?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: CYcaN/uqZs0DXSweQC//0DEqSTj3qrJegaonPkmHkDbFr7CsRqr4O+SHdJGVSERT/N+yhLMMd6H+ugvRQvQrkgN1A1xAHHHN6mT9DCzXTPMSZTSdkR7dU62Zc9BHIxLDIqdned0j1L/YqwPrL3GCuWWYpUvu/dfHmEN6vLtcC2ldiC7kjLOLp8OZtgmlQUXKmCkj5Xq45Qb2fTiJnbZPYwtcR96HjpStrrTtRaxxk2bfQqbDVv3j8rbIh4hDy3iOkawZLFbMP36QRA0xW4ggVnbmvWZvQkWXRT11o+32MhBdQ6gy1UlT6Sbs8pWrivGbk9jfQ33qr2B1CeuixC+LLAFcBsURx6XGnNBakqSHsrASsSAPu5O4m/rrS6vZozjvzYb7v1BZAU4PresdE4TNEH6MmV555au7MXJuL/aPgvQqv7kT1Z0jWyCCPBXGzGjURNiriRMG1ciBSeefzzmH9SpwStL1OugJeWUpnhid1ARku2t1YYp5McMWCs9/7FXLvs11b//LgSpifmzt9lc2icEwdRqzxlh+L50No58od8KbuOzR1JRR2x6Daa7F0YmkjbEdt0fVzzvrkVfNZyzh/yhKHZp565vJ8xFr961OLwk= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1b13481b-0826-4f2d-0397-08dc02b0fd52 X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4636.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Dec 2023 05:43:56.9031 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: QvkyMGUKpUKJRRp2Y2thxSlaoVtuHHwOU/uSwh9BgX0YTKoqpiXtF7eQ6l5ZXmpigaUdwddYjolX1dvbr0BmpIjAFC7AfBWNiGyCrhbypQ4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6217 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-12-22_02,2023-12-21_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 spamscore=0 mlxscore=0 mlxlogscore=999 bulkscore=0 adultscore=0 suspectscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311290000 definitions=main-2312220038 X-Proofpoint-ORIG-GUID: 2MFp8K0e9gl3pZRZNUjYYjb6MY7GWxaZ X-Proofpoint-GUID: 2MFp8K0e9gl3pZRZNUjYYjb6MY7GWxaZ X-Spam-Status: No, score=-12.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: From: Vladimir Mezentsev ino64_t, off64_t, fpos64_t, stat64, __u64 are not defined on linux-musl. Fixed by declaring these types for linux-musl. 2023-12-21 Vladimir Mezentsev PR gprofng/30779 PR gprofng/29593 * common/gp-defs.h: Define ino64_t, off64_t, fpos64_t for linux-musl. * libcollector/unwind.c: Define __u64 for linux-musl. * src/util.h: Define dbe_stat_t. * src/ClassFile.cc: Use dbe_stat_t instead of "struct stat64". * src/Dbe.cc: Likewise. * src/DbeFile.cc: Likewise. * src/DbeFile.h: Likewise. * src/DbeSession.cc: Likewise. * src/Experiment.cc: Likewise. * src/checks.cc: Likewise. * src/util.cc: Likewise. --- gprofng/common/gp-defs.h | 6 ++++++ gprofng/libcollector/unwind.c | 4 ++++ gprofng/src/ClassFile.cc | 2 +- gprofng/src/Dbe.cc | 2 +- gprofng/src/DbeFile.cc | 6 +++--- gprofng/src/DbeFile.h | 4 ++-- gprofng/src/DbeSession.cc | 2 +- gprofng/src/Experiment.cc | 12 ++++++------ gprofng/src/checks.cc | 2 +- gprofng/src/util.cc | 14 +++++++------- gprofng/src/util.h | 12 +++++++++--- 11 files changed, 41 insertions(+), 25 deletions(-) diff --git a/gprofng/common/gp-defs.h b/gprofng/common/gp-defs.h index 7cef5550696..ee4f545e13d 100644 --- a/gprofng/common/gp-defs.h +++ b/gprofng/common/gp-defs.h @@ -63,4 +63,10 @@ # endif #endif +#if defined(__MUSL_LIBC) +#define ino64_t ino_t +#define off64_t off_t +#define fpos64_t fpos_t +#endif + #endif diff --git a/gprofng/libcollector/unwind.c b/gprofng/libcollector/unwind.c index ff2f7aa9a7e..c2c5aafbc7b 100644 --- a/gprofng/libcollector/unwind.c +++ b/gprofng/libcollector/unwind.c @@ -231,6 +231,10 @@ memory_error_func (int status ATTRIBUTE_UNUSED, bfd_vma addr ATTRIBUTE_UNUSED, } #elif ARCH(Aarch64) +#if defined(__MUSL_LIBC) +typedef uint64_t __u64; +#endif + #define FILL_CONTEXT(context) \ { CALL_UTIL (getcontext) (context); \ context->uc_mcontext.sp = (__u64) __builtin_frame_address(0); \ diff --git a/gprofng/src/ClassFile.cc b/gprofng/src/ClassFile.cc index d59c9630ef1..f35661c4a0a 100644 --- a/gprofng/src/ClassFile.cc +++ b/gprofng/src/ClassFile.cc @@ -1006,7 +1006,7 @@ ClassFile::openFile (const char *fname) append_msg (CMSG_ERROR, GTXT ("Cannot open file %s"), fname); return; } - struct stat64 stat_buf; + dbe_stat_t stat_buf; if ((fstat64 (fd, &stat_buf) == -1) || (stat_buf.st_size == 0)) { close (fd); diff --git a/gprofng/src/Dbe.cc b/gprofng/src/Dbe.cc index 145ea70cd50..f5d7f33ff7a 100644 --- a/gprofng/src/Dbe.cc +++ b/gprofng/src/Dbe.cc @@ -271,7 +271,7 @@ dbeGetFileAttributes (const char *filename, const char *format) if (!strcmp (format, NTXT ("/bin/ls -dl "))) { // A kind of "/bin/ls -dl " simulation - struct stat64 sbuf; + dbe_stat_t sbuf; sbuf.st_mode = 0; dbe_stat (filename, &sbuf); if (S_IREAD & sbuf.st_mode) diff --git a/gprofng/src/DbeFile.cc b/gprofng/src/DbeFile.cc index 9f08b3c9f1f..bae5888fa78 100644 --- a/gprofng/src/DbeFile.cc +++ b/gprofng/src/DbeFile.cc @@ -512,7 +512,7 @@ DbeFile::find_in_classpath (char *filename, Vector *classPath) } } -struct stat64 * +dbe_stat_t * DbeFile::get_stat () { if (sbuf.st_atim.tv_sec == 0) @@ -529,8 +529,8 @@ DbeFile::compare (DbeFile *df) { if (df == NULL) return false; - struct stat64 *st1 = get_stat (); - struct stat64 *st2 = df->get_stat (); + dbe_stat_t *st1 = get_stat (); + dbe_stat_t *st2 = df->get_stat (); if (st1 == NULL || st2 == NULL) return false; if (st1->st_size != st2->st_size) diff --git a/gprofng/src/DbeFile.h b/gprofng/src/DbeFile.h index baee8a2ebe1..fa437c88cb1 100644 --- a/gprofng/src/DbeFile.h +++ b/gprofng/src/DbeFile.h @@ -67,7 +67,7 @@ public: char *get_location (bool find_needed = true); char *getResolvedPath (); char *get_location_info (); - struct stat64 *get_stat (); + dbe_stat_t *get_stat (); bool compare (DbeFile *df); void set_need_refind (bool val); void set_location (const char *filename); @@ -79,7 +79,7 @@ public: bool inArchive; int filetype; - struct stat64 sbuf; + dbe_stat_t sbuf; DbeFile *container; char *orig_location; Experiment *experiment; diff --git a/gprofng/src/DbeSession.cc b/gprofng/src/DbeSession.cc index 86541d97f2e..43812e43074 100644 --- a/gprofng/src/DbeSession.cc +++ b/gprofng/src/DbeSession.cc @@ -1169,7 +1169,7 @@ DbeSession::open_experiment (Experiment *exp, char *path) t_exp_list[j] = NULL; char *lineage_name = exp_names->fetch (j); - struct stat64 sbuf; + dbe_stat_t sbuf; char *dpath = dbe_sprintf (NTXT ("%s/%s"), path, lineage_name); // look for experiments with no profile collected diff --git a/gprofng/src/Experiment.cc b/gprofng/src/Experiment.cc index 1378ad5ce07..16941a7dfca 100644 --- a/gprofng/src/Experiment.cc +++ b/gprofng/src/Experiment.cc @@ -1631,7 +1631,7 @@ Experiment::open (char *path) return status; // Get creation time for experiment - struct stat64 st; + dbe_stat_t st; if (dbe_stat (path, &st) == 0) mtime = st.st_mtime; @@ -5594,7 +5594,7 @@ Experiment::find_expdir (char *path) { // This function checks that the experiment directory // is of the proper form, and accessible - struct stat64 sbuf; + dbe_stat_t sbuf; // Save the name expt_name = dbe_strdup (path); @@ -5703,7 +5703,7 @@ Experiment::get_descendants_names () if (entry->d_name[0] == '_' || strncmp (entry->d_name, "M_r", 3) == 0) { char *dpath = dbe_sprintf (NTXT ("%s/%s"), dir_name, entry->d_name); - struct stat64 sbuf; + dbe_stat_t sbuf; if (dbe_stat (dpath, &sbuf) == 0 && S_ISDIR (sbuf.st_mode)) exp_names->append (dpath); else @@ -5727,7 +5727,7 @@ Experiment::create_dir (char *dname) { return true; } - struct stat64 sbuf; + dbe_stat_t sbuf; if (dbe_stat (dname, &sbuf) != 0 || S_ISDIR (sbuf.st_mode) == 0) { char *buf = dbe_sprintf (GTXT ("Unable to create directory `%s'\n"), @@ -6515,7 +6515,7 @@ Experiment::copy_file_to_archive (const char *name, const char *aname, int hide_ } close (fd_w); - struct stat64 s_buf; + dbe_stat_t s_buf; if (fstat64 (fd_r, &s_buf) == 0) { struct utimbuf u_buf; @@ -6703,7 +6703,7 @@ Experiment::copy_file_to_common_archive (const char *name, const char *aname, return 1; } // Set read-only permissions - struct stat64 statbuf; + dbe_stat_t statbuf; if (0 == dbe_stat_file (name, &statbuf)) { mode_t mask = S_IRUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH; diff --git a/gprofng/src/checks.cc b/gprofng/src/checks.cc index 094c3bbc60a..f48276b685d 100644 --- a/gprofng/src/checks.cc +++ b/gprofng/src/checks.cc @@ -223,7 +223,7 @@ collect::Exec_status collect::check_executable (char *target_name) { char target_path[MAXPATHLEN]; - struct stat64 statbuf; + dbe_stat_t statbuf; if (target_name == NULL) // not set, but assume caller knows what it's doing return EXEC_OK; if (getenv ("GPROFNG_SKIP_VALIDATION")) // don't check target diff --git a/gprofng/src/util.cc b/gprofng/src/util.cc index b942fa057a7..ba83e7266d4 100644 --- a/gprofng/src/util.cc +++ b/gprofng/src/util.cc @@ -880,7 +880,7 @@ struct worker_thread_info int thread_num; /* Application-defined thread # */ volatile int control; /* Thread state */ volatile int result; /* Return status */ - struct stat64 statbuf; /* File info from stat64() */ + dbe_stat_t statbuf; /* File info from stat64() */ const char *path; /* File */ }; @@ -1058,9 +1058,9 @@ extract_and_save_dirname (const char *path, int status) // get status for specified file static int -dbe_stat_internal (const char *path, struct stat64 *sbuf, bool file_only) +dbe_stat_internal (const char *path, dbe_stat_t *sbuf, bool file_only) { - struct stat64 statbuf; + dbe_stat_t statbuf; int dir_status = check_dirname (path); if (dir_status == DIR_STATUS_UNKNOWN) { @@ -1116,7 +1116,7 @@ dbe_stat_internal (const char *path, struct stat64 *sbuf, bool file_only) // get status for the regular file int -dbe_stat_file (const char *path, struct stat64 *sbuf) +dbe_stat_file (const char *path, dbe_stat_t *sbuf) { int res = dbe_stat_internal (path, sbuf, true); return res; @@ -1125,7 +1125,7 @@ dbe_stat_file (const char *path, struct stat64 *sbuf) // get status for specified file int -dbe_stat (const char *path, struct stat64 *sbuf) +dbe_stat (const char *path, dbe_stat_t *sbuf) { int res = dbe_stat_internal (path, sbuf, false); return res; @@ -1159,7 +1159,7 @@ dbe_read_dir (const char *path, const char *format) if (format_aF) { const char *attr = NTXT ("@"); // Link - struct stat64 sbuf; + dbe_stat_t sbuf; sbuf.st_mode = 0; char filename[MAXPATHLEN + 1]; snprintf (filename, sizeof (filename), NTXT ("%s/%s"), path, entry->d_name); @@ -1253,7 +1253,7 @@ dbe_delete_file (const char *pathname) { StringBuilder sb; char *cmd = NULL; - struct stat64 sbuf; + dbe_stat_t sbuf; sbuf.st_mode = 0; int st = dbe_stat (pathname, &sbuf); if (st == 0) diff --git a/gprofng/src/util.h b/gprofng/src/util.h index 5c01b1882c3..9227833b6e2 100644 --- a/gprofng/src/util.h +++ b/gprofng/src/util.h @@ -136,7 +136,13 @@ timestruc2hr (timestruc_t *s) return (hrtime_t) s->tv_sec * NANOSEC + (hrtime_t) s->tv_nsec; } -struct stat64; +#if defined(__MUSL_LIBC) +typedef struct stat dbe_stat_t; +#define fstat64 fstat +#define open64 open +#else +typedef struct stat64 dbe_stat_t; +#endif #if defined(__cplusplus) extern "C" @@ -162,8 +168,8 @@ extern "C" char *get_relative_link (const char *path_to, const char *path_from); char *get_prog_name (int basename); char *dbe_strndup (const char *str, size_t len); - int dbe_stat (const char *path, struct stat64 *sbuf); - int dbe_stat_file (const char *path, struct stat64 *sbuf); + int dbe_stat (const char *path, dbe_stat_t *sbuf); + int dbe_stat_file (const char *path, dbe_stat_t *sbuf); char *dbe_read_dir (const char *path, const char *format); char *dbe_get_processes (const char *format); char *dbe_create_directories (const char *pathname); -- 2.31.1