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 65D9C3836E75 for ; Thu, 26 May 2022 20:04:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 65D9C3836E75 Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24QHNGIq019658 for ; Thu, 26 May 2022 20:04:56 GMT Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3g93tawtxp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 26 May 2022 20:04:55 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 24QJwN4H014229 for ; Thu, 26 May 2022 20:04:54 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2175.outbound.protection.outlook.com [104.47.58.175]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3g93x727j7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 26 May 2022 20:04:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=G2Tlk2svaEUggK4rHnaj7BHbsS4sYTI1iai1QHc7BHSIInTmQgErYG5oqODK1D6QMvt4id4jp9Gg7+PA1fFGY3H7ducYfY/NAbqoWb8xjhNXLkJItfYCKjjjIO58OV6yGZpuhQEI2lIQnrVpHw7+vCAMxeRle+UXNEV3AQP9R7wz0TdNNlC/8WahdzdimO5m5zDs2QvZrrJvyseO/lSQxpdfLY7rcKX1KkeO6S5mqaCE68DyVhNTxj1aiqpLD25IcG+LjI2I08OSgzkzxaUcSNI7TuZnSjvvCRYCEXOH94Swwc8Q7IK0uH9Fc1mmrWssw40gIEjDBEspITBb8V5tkw== 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=BnXomsIyE/2kGXe5fbLKzDRhBKaYKyjMX+sP7z6XwlU=; b=aHqlJjip+VAc9rAMSrFBo/ztn4MAQyZXkTJwnmqZqlQMTa7ZhnUbx9XPVSfgmLBJ5a8shC5o4zmm38GsQOJeXM7n2oKyo+FigoIsyWsP6aASXtxBUwYvhNhqy3xqYklMh4vhLOXM80i3MnGb5uRFNZYFGIdfuuNLTV7sI5ME8vk22KfjMpM0I+CWQmt2V95O+G5jT5cUYGNPGiNcdh6WFnzdgfY+NHRAhqthpJ9s0hLK2V8WJnjGpRywXSjxqTMnZyelu/qkF3W0+3YUFQxCLigUvdp3vailM/TPl7eaBeCXrWQ83HmKuLbq/S9SBRwmo98DD5HR8eXQyFBIN03f0g== 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 Received: from SA2PR10MB4636.namprd10.prod.outlook.com (2603:10b6:806:11e::10) by CO6PR10MB5634.namprd10.prod.outlook.com (2603:10b6:303:149::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5293.13; Thu, 26 May 2022 20:04:52 +0000 Received: from SA2PR10MB4636.namprd10.prod.outlook.com ([fe80::c862:5f33:53fb:aa5]) by SA2PR10MB4636.namprd10.prod.outlook.com ([fe80::c862:5f33:53fb:aa5%6]) with mapi id 15.20.5293.013; Thu, 26 May 2022 20:04:52 +0000 From: vladimir.mezentsev@oracle.com To: binutils@sourceware.org Subject: [PATCH] gprofng: fix build with -mx32 Date: Thu, 26 May 2022 13:04:44 -0700 Message-Id: <20220526200444.2914566-1-vladimir.mezentsev@oracle.com> X-Mailer: git-send-email 2.27.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: SN7PR04CA0218.namprd04.prod.outlook.com (2603:10b6:806:127::13) To SA2PR10MB4636.namprd10.prod.outlook.com (2603:10b6:806:11e::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 54638319-1be9-4db9-5f04-08da3f52fe7e X-MS-TrafficTypeDiagnostic: CO6PR10MB5634:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DvRUFu45U+hsrfrfpHVovbDgwp3BAuzp4Qv/BmbtMDbmGw9dSyraPg0B7pyoKZogw33HexOIP+A+0hO7JlRup54V+gRFs7ZTLVqoADyWJBGs6eUIPdR0ECrrGNV01a7ctbFaRrVtCjFLgIKoFCdD++kKYIrbyBZU2o7mYTMNV8GbVF4jgPAtdwTi3gii4acZ2zsabeVGFCesMsuHS27XX1s09tpajvVKznd5j+AqbcJkSo5LsKRwdX68dZ12d9b3EpfPFY21fFs0WZu57q4urn83fJ6f4g0o4REgktp0C/y3axjdg2QS3mfi3BDeGo54eO9szyoNGCN8cLDZHn5pz8b1hH2iZOlb3ejBmiLilEq9il+N9b2DYvwakMBGTigcp1CGC3wa76N5OZH24gF6qa31H8s16HCZ5sNVvQ+maFTl7lMHmOJGif15iaQ1348jhr0LHsehPxEUwKTgQvYbmxMmbyIi0QKUgyjVvUw4iLefrnUBiidq+buF3fIu1gomkgND2uEtXHK3sqOFkCaJuUFsi+1lvKB9F2wnsmD3V3jzYscGKECl61O5cLRiA2hVYuN5AyrFmTpnZ9Dx37d2oxdGRk+wYBBptcfHVRwYQQsoTZZPNpD108z8dVJPHwFHBk8/yDvQw/SicE8c4F3Zypvil9TkXou8wzPLBRImWHR9gz63WWpozwdd9cBsrznL69XJMTfelp/y/kCAmS4zbg== 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:(13230001)(366004)(30864003)(186003)(2906002)(83380400001)(2616005)(1076003)(6666004)(52116002)(6506007)(38100700002)(316002)(8676002)(508600001)(6486002)(26005)(6512007)(9686003)(36756003)(8936002)(66946007)(66556008)(38350700002)(66476007)(5660300002)(6916009)(86362001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?+mnVqTT/8NpbJOeZtVMzQAVEcaaL34smCZpuCyjIbgBl1hRgJZfh8S8L1yqU?= =?us-ascii?Q?sc2bRKE1ioNgE0KWuywUTRjh78tWYhOXR8Zm0h5y1vD7sbC9FjYO7Hn+YAd5?= =?us-ascii?Q?MfOaLK4HmbuxmuoVV1MknycBqfcFwjejF1CubKG6qeDiQKl8n3eOI0Oyaid1?= =?us-ascii?Q?IdHN0H+fGX4n50Kmcwvan1RiNvtkjSp5gq5LuJZorgbQCW+6fnB8mo3VeVmt?= =?us-ascii?Q?l446fULtVzF9DeSYkgEYwmRbhl0lEZLyCdfqWJSrNBnp/UbF2/5Q5PyJeZBa?= =?us-ascii?Q?Qm21dcBHyi0/qtevOd52krVg+xCMnbQhyVL0g7JvSBBQ31Yf8COl7h02pQ4Z?= =?us-ascii?Q?4jNLTVrNZv6CvkDhbTfOFQHndM5UOyvNKmopRLj5uzj+iupbrcfPgObsDyWA?= =?us-ascii?Q?1yu1KBhKHhmE6OYDdIX2Igs69zRvMyLuVaVMAhD9A9TV4rRtMDDxuiTCUNnE?= =?us-ascii?Q?CgkaxhXrbCi/537eEDtdOjMRpivw395HaeeQdP0l8eaH+UhRuY4QUzyPavjQ?= =?us-ascii?Q?/igAcha5IVtfOFpW4jK0AtjOjFMkeOZUSfv/HRCwNxxRMvFOAsm03uO/iLk/?= =?us-ascii?Q?cHhQb1kpX0TaCdKTPMrFMQHiWiOZ7Ib9nW+8pjoMOAEzoFM8huiipCoI5G3f?= =?us-ascii?Q?oqq2bVYDmuPt5GAqXncCuU0Ie6Vh0KWmJtLBdp9/+Zi/y24nEvBmiZSvybrw?= =?us-ascii?Q?oCx5IUiW1znvmTRSD7T0OIbjNP/RuTQUW3QwXBlHwZFBNzUCVLif+efBXk0X?= =?us-ascii?Q?hCaMyZLSivF9O0wdhR3JROkt3ACNv7YqPq995AhKh2SfOR+AupK+xekY1wsq?= =?us-ascii?Q?tWfIAGPGeXxXLAiUOQrT1mXULjJiAYlBe4OdB/GScSLn0Rqq6OV+mOCzlCby?= =?us-ascii?Q?ua2tiRpWesmOXBRTnT7K6YzVE64bSpVPR5GZOQoAy/yxGQ797LnJ5BPDQh90?= =?us-ascii?Q?u4l7KXKfnOMmOP1zZztMJrrhmPlxiO2kpz8Xv17BhiL7g2IaYK7v29E1y+fA?= =?us-ascii?Q?oZRRL0kjfdG4BT/cYk3RPQl7XJvE4WDFWvybJJ0N0yDCsFO/kayV6hUsnpYQ?= =?us-ascii?Q?npp6kltxPo9T2gXH2Jd8WoJVxTqtcjegCh7EfVZafzhNi3zd9X2ygTfAUIXq?= =?us-ascii?Q?xul7RHVzFmS7Q7jGewKHLQMDvqFmRnJcJXX7Iw4MRaSAsMyJosKG3VVwCK8Z?= =?us-ascii?Q?Cnp6fXhDn355ptPLlq1bwBxoIoEGupjzUTzICDJzxJ0+lXDEyvPXrdi7xCHy?= =?us-ascii?Q?KME7YkfPr/VgfpwCfuvPjfyyDm7SxVkbh2c4CnllYXwss1xSmzq7891nj1Xb?= =?us-ascii?Q?b+ZAdkKcYfd0UxeAk1UETjGbWcerwpvRzuqgrSDMmeqaXwzlz1LRUJ+tN86U?= =?us-ascii?Q?0udZoELCZzduONzA0YvzTD6SiJzw6qzF5Tu1a3qHW0Ld7v/UPltpmOpRh2h9?= =?us-ascii?Q?DPSPaA2fD0Gy3h3EdZhryi4ETQ2AoPchO4b0couWrIBUHYY5V641LygsEbEo?= =?us-ascii?Q?MvUXncaLJdkCZhCJoHwhVlXRWKoHtrs04j/GnhxIO5I7bMoHFSfbGL0lVa8w?= =?us-ascii?Q?42A5B3WeLbqrK/MxM3yQ0jqi7BP8KnIO6vf6L6WdaHs1GpCFm2Kqs/u3+E8H?= =?us-ascii?Q?FYleOJjF7ia4t4wb7UOvlkTYZRT1vU3TorewM8DMounH263S0lC3Ln8n+j3N?= =?us-ascii?Q?iCFRVtu0izmeAh2KuLTL1Hl7vdwoUPA1mcn6tr6Erm0qzKc673U3QAab5YDB?= =?us-ascii?Q?RUDNi/CUKxe0owV9p24Hf0DNkZa6a9o=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 54638319-1be9-4db9-5f04-08da3f52fe7e X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4636.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2022 20:04:51.9814 (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: vANml3jqFtM6/ET2k9JzmW0oxBhU5xoYmEaJbNqT3A8xtAzBhPh6B6c6kQLHs7ivROJE/0TFOgGFn5lueoduntvRQ/3mC/t5fPN96BgEpw4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5634 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486, 18.0.874 definitions=2022-05-26_08:2022-05-25, 2022-05-26 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 mlxscore=0 bulkscore=0 suspectscore=0 mlxlogscore=999 adultscore=0 spamscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2204290000 definitions=main-2205260094 X-Proofpoint-GUID: PAowPaVV-obZU6-iVk1c8Lnx7pm3nSw5 X-Proofpoint-ORIG-GUID: PAowPaVV-obZU6-iVk1c8Lnx7pm3nSw5 X-Spam-Status: No, score=-11.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_NUMSUBJECT, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, 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 X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 May 2022 20:05:00 -0000 From: Vladimir Mezentsev gprofng/ChangeLog 2022-05-26 Vladimir Mezentsev PR gprofng/28983 * libcollector/libcol_util.h (__collector_getsp, __collector_getfp, __collector_getpc): Adapt for build with -mx32 * libcollector/heaptrace.c: Fix -Wpointer-to-int-cast warnings. * libcollector/hwprofile.h: Likewise. * libcollector/mmaptrace.c: Likewise. * libcollector/synctrace.c: Likewise. * libcollector/unwind.c: Likewise. --- gprofng/libcollector/heaptrace.c | 22 +++++++-------------- gprofng/libcollector/hwprofile.h | 2 +- gprofng/libcollector/libcol_util.h | 31 +++++++++++++++--------------- gprofng/libcollector/mmaptrace.c | 2 +- gprofng/libcollector/synctrace.c | 22 ++++++++++----------- gprofng/libcollector/unwind.c | 6 +++--- 6 files changed, 39 insertions(+), 46 deletions(-) diff --git a/gprofng/libcollector/heaptrace.c b/gprofng/libcollector/heaptrace.c index 470a269064f..24e6d2642ec 100644 --- a/gprofng/libcollector/heaptrace.c +++ b/gprofng/libcollector/heaptrace.c @@ -298,8 +298,7 @@ malloc (size_t size) hpacket.comm.tstamp = gethrtime (); hpacket.mtype = MALLOC_TRACE; hpacket.size = (Size_type) size; - hpacket.vaddr = (Vaddr_type) ret; - hpacket.ovaddr = (Vaddr_type) 0; + hpacket.vaddr = (intptr_t) ret; hpacket.comm.frinfo = collector_interface->getFrameInfo (heap_hndl, hpacket.comm.tstamp, FRINFO_FROM_STACK, &hpacket); collector_interface->writeDataRecord (heap_hndl, (Common_packet*) & hpacket); POP_REENTRANCE (guard); @@ -338,9 +337,7 @@ free (void *ptr) hpacket.comm.tsize = sizeof ( Heap_packet); hpacket.comm.tstamp = ts; hpacket.mtype = FREE_TRACE; - hpacket.size = (Size_type) 0; - hpacket.vaddr = (Vaddr_type) ptr; - hpacket.ovaddr = (Vaddr_type) 0; + hpacket.vaddr = (intptr_t) ptr; hpacket.comm.frinfo = collector_interface->getFrameInfo (heap_hndl, hpacket.comm.tstamp, FRINFO_FROM_STACK, &hpacket); collector_interface->writeDataRecord (heap_hndl, (Common_packet*) & hpacket); POP_REENTRANCE (guard); @@ -378,8 +375,7 @@ realloc (void *ptr, size_t size) hpacket.comm.tstamp = ts; hpacket.mtype = REALLOC_TRACE; hpacket.size = (Size_type) size; - hpacket.vaddr = (Vaddr_type) ret; - hpacket.ovaddr = (Vaddr_type) ptr; + hpacket.vaddr = (intptr_t) ret; hpacket.comm.frinfo = collector_interface->getFrameInfo (heap_hndl, hpacket.comm.tstamp, FRINFO_FROM_STACK, &hpacket); collector_interface->writeDataRecord (heap_hndl, (Common_packet*) & hpacket); POP_REENTRANCE (guard); @@ -407,8 +403,7 @@ memalign (size_t align, size_t size) hpacket.comm.tstamp = gethrtime (); hpacket.mtype = MALLOC_TRACE; hpacket.size = (Size_type) size; - hpacket.vaddr = (Vaddr_type) ret; - hpacket.ovaddr = (Vaddr_type) 0; + hpacket.vaddr = (intptr_t) ret; hpacket.comm.frinfo = collector_interface->getFrameInfo (heap_hndl, hpacket.comm.tstamp, FRINFO_FROM_STACK, &hpacket); collector_interface->writeDataRecord (heap_hndl, (Common_packet*) & hpacket); POP_REENTRANCE (guard); @@ -437,8 +432,7 @@ valloc (size_t size) hpacket.comm.tstamp = gethrtime (); hpacket.mtype = MALLOC_TRACE; hpacket.size = (Size_type) size; - hpacket.vaddr = (Vaddr_type) ret; - hpacket.ovaddr = (Vaddr_type) 0; + hpacket.vaddr = (intptr_t) ret; hpacket.comm.frinfo = collector_interface->getFrameInfo (heap_hndl, hpacket.comm.tstamp, FRINFO_FROM_STACK, &hpacket); collector_interface->writeDataRecord (heap_hndl, (Common_packet*) & hpacket); POP_REENTRANCE (guard); @@ -470,8 +464,7 @@ calloc (size_t size, size_t esize) hpacket.comm.tstamp = gethrtime (); hpacket.mtype = MALLOC_TRACE; hpacket.size = (Size_type) (size * esize); - hpacket.vaddr = (Vaddr_type) ret; - hpacket.ovaddr = (Vaddr_type) 0; + hpacket.vaddr = (intptr_t) ret; hpacket.comm.frinfo = collector_interface->getFrameInfo (heap_hndl, hpacket.comm.tstamp, FRINFO_FROM_STACK, &hpacket); collector_interface->writeDataRecord (heap_hndl, (Common_packet*) & hpacket); POP_REENTRANCE (guard); @@ -494,8 +487,7 @@ __collector_heap_record (int mtype, size_t size, void *vaddr) hpacket.comm.tstamp = gethrtime (); hpacket.mtype = mtype; hpacket.size = (Size_type) size; - hpacket.vaddr = (Vaddr_type) vaddr; - hpacket.ovaddr = (Vaddr_type) 0; + hpacket.vaddr = (intptr_t) vaddr; hpacket.comm.frinfo = collector_interface->getFrameInfo (heap_hndl, hpacket.comm.tstamp, FRINFO_FROM_STACK, &hpacket); collector_interface->writeDataRecord (heap_hndl, (Common_packet*) & hpacket); POP_REENTRANCE (guard); diff --git a/gprofng/libcollector/hwprofile.h b/gprofng/libcollector/hwprofile.h index 4d01bf17694..a234b78be56 100644 --- a/gprofng/libcollector/hwprofile.h +++ b/gprofng/libcollector/hwprofile.h @@ -72,7 +72,7 @@ typedef struct MHwcntr_packet #define CONTEXT_SP REG_ESP #endif /* WSIZE() */ #define SETFUNCTIONCONTEXT(ucp,funcp) \ - (ucp)->uc_mcontext.gregs[CONTEXT_PC] = (greg_t)(funcp); \ + (ucp)->uc_mcontext.gregs[CONTEXT_PC] = (intptr_t)(funcp); \ (ucp)->uc_mcontext.gregs[CONTEXT_SP] = 0; \ (ucp)->uc_mcontext.gregs[CONTEXT_FP] = 0; diff --git a/gprofng/libcollector/libcol_util.h b/gprofng/libcollector/libcol_util.h index 4384d47df5c..e13a02ea6d7 100644 --- a/gprofng/libcollector/libcol_util.h +++ b/gprofng/libcollector/libcol_util.h @@ -133,6 +133,7 @@ __collector_dec_32 (volatile uint32_t *ptr) : // "=m" (*ptr) // output : "m" (*ptr)); // input } + /** * This function subtrackts the value "off" of the value stored in target * to occur in an atomic manner, and returns new value stored in target. @@ -148,6 +149,7 @@ __collector_subget_32 (uint32_t *ptr, uint32_t off) ); return (r - offset); } + /** * This function returns the value of the stack pointer register */ @@ -155,14 +157,15 @@ static __attribute__ ((always_inline)) inline void * __collector_getsp () { void *r; -#if WSIZE(64) - __asm__ __volatile__("movq %%rsp, %0" -#else +#if WSIZE(32) || defined(__ILP32__) __asm__ __volatile__("movl %%esp, %0" -#endif +#else + __asm__ __volatile__("movq %%rsp, %0" +#endif : "=r" (r)); // output return r; } + /** * This function returns the value of the frame pointer register */ @@ -170,14 +173,15 @@ static __attribute__ ((always_inline)) inline void * __collector_getfp () { void *r; -#if WSIZE(64) - __asm__ __volatile__("movq %%rbp, %0" -#else +#if WSIZE(32) || defined(__ILP32__) __asm__ __volatile__("movl %%ebp, %0" +#else + __asm__ __volatile__("movq %%rbp, %0" #endif : "=r" (r)); // output return r; } + /** * This function returns the value of the processor counter register */ @@ -185,15 +189,12 @@ static __attribute__ ((always_inline)) inline void * __collector_getpc () { void *r; - __asm__ __volatile__( -#if WSIZE(32) - " call 1f \n" - "1: popl %0 \n" +#if defined(__x86_64) + __asm__ __volatile__("lea (%%rip), %0" : "=r" (r)); #else - " call 1f \n" - "1: popq %0 \n" + __asm__ __volatile__("call 1f \n" + "1: popl %0" : "=r" (r)); #endif - : "=r" (r)); // output return r; } @@ -258,7 +259,7 @@ static __attribute__ ((always_inline)) inline void * __collector_cas_ptr (void *mem, void *cmp, void *new) { void *r; -#if WSIZE(32) +#if WSIZE(32) || defined(__ILP32__) r = (void *) __collector_cas_32 ((volatile uint32_t *)mem, (uint32_t) cmp, (uint32_t)new); #else __asm__ __volatile__("lock; cmpxchgq %2, (%1)" diff --git a/gprofng/libcollector/mmaptrace.c b/gprofng/libcollector/mmaptrace.c index bf3294d4843..ba5c9129f4c 100644 --- a/gprofng/libcollector/mmaptrace.c +++ b/gprofng/libcollector/mmaptrace.c @@ -982,7 +982,7 @@ process_vsyscall_page () if (ap->a_type == AT_SYSINFO_EHDR) { // newer Linuxes do not have a_ptr field, they just have a_val - ehdr = (ELF_EHDR*) ap->a_un.a_val; + ehdr = (ELF_EHDR*)(intptr_t) ap->a_un.a_val; if (ehdr != NULL) break; } diff --git a/gprofng/libcollector/synctrace.c b/gprofng/libcollector/synctrace.c index 969c681d842..492ef9993f7 100644 --- a/gprofng/libcollector/synctrace.c +++ b/gprofng/libcollector/synctrace.c @@ -707,11 +707,11 @@ __collector_jsync_end (hrtime_t reqt, void *object) if (grnt - reqt >= sync_threshold) { Sync_packet spacket; - collector_memset (&spacket, 0, sizeof ( Sync_packet)); - spacket.comm.tsize = sizeof ( Sync_packet); + collector_memset (&spacket, 0, sizeof (Sync_packet)); + spacket.comm.tsize = sizeof (Sync_packet); spacket.comm.tstamp = grnt; spacket.requested = reqt; - spacket.objp = (Vaddr_type) object; + spacket.objp = (intptr_t) object; spacket.comm.frinfo = collector_interface->getFrameInfo (sync_hndl, spacket.comm.tstamp, FRINFO_FROM_STACK_ARG, &spacket); collector_interface->writeDataRecord (sync_hndl, (Common_packet*) & spacket); } @@ -740,11 +740,11 @@ pthread_mutex_lock (pthread_mutex_t *mp) if (grnt - reqt >= sync_threshold) { Sync_packet spacket; - collector_memset (&spacket, 0, sizeof ( Sync_packet)); - spacket.comm.tsize = sizeof ( Sync_packet); + collector_memset (&spacket, 0, sizeof (Sync_packet)); + spacket.comm.tsize = sizeof (Sync_packet); spacket.comm.tstamp = grnt; spacket.requested = reqt; - spacket.objp = (Vaddr_type) mp; + spacket.objp = (intptr_t) mp; spacket.comm.frinfo = collector_interface->getFrameInfo (sync_hndl, spacket.comm.tstamp, FRINFO_FROM_STACK, &spacket); collector_interface->writeDataRecord (sync_hndl, (Common_packet*) & spacket); } @@ -831,11 +831,11 @@ __collector_pthread_cond_wait_symver (int(real_pthread_cond_wait) (), pthread_co if (grnt - reqt >= sync_threshold) { Sync_packet spacket; - collector_memset (&spacket, 0, sizeof ( Sync_packet)); - spacket.comm.tsize = sizeof ( Sync_packet); + collector_memset (&spacket, 0, sizeof (Sync_packet)); + spacket.comm.tsize = sizeof (Sync_packet); spacket.comm.tstamp = grnt; spacket.requested = reqt; - spacket.objp = (Vaddr_type) mutex; + spacket.objp = (intptr_t) mutex; spacket.comm.frinfo = collector_interface->getFrameInfo (sync_hndl, spacket.comm.tstamp, FRINFO_FROM_STACK_ARG, &spacket); collector_interface->writeDataRecord (sync_hndl, (Common_packet*) & spacket); } @@ -938,7 +938,7 @@ __collector_pthread_cond_timedwait_symver (int(real_pthread_cond_timedwait) (), spacket.comm.tsize = sizeof ( Sync_packet); spacket.comm.tstamp = grnt; spacket.requested = reqt; - spacket.objp = (Vaddr_type) mutex; + spacket.objp = (intptr_t) mutex; spacket.comm.frinfo = collector_interface->getFrameInfo (sync_hndl, spacket.comm.tstamp, FRINFO_FROM_STACK_ARG, &spacket); collector_interface->writeDataRecord (sync_hndl, (Common_packet*) & spacket); } @@ -1047,7 +1047,7 @@ sem_wait (sem_t *sp) spacket.comm.tsize = sizeof ( Sync_packet); spacket.comm.tstamp = grnt; spacket.requested = reqt; - spacket.objp = (Vaddr_type) sp; + spacket.objp = (intptr_t) sp; #if ARCH(Intel) && WSIZE(32) spacket.comm.frinfo = collector_interface->getFrameInfo (sync_hndl, spacket.comm.tstamp, FRINFO_FROM_STACK_ARG, &spacket); diff --git a/gprofng/libcollector/unwind.c b/gprofng/libcollector/unwind.c index f309c54bd33..11924378802 100644 --- a/gprofng/libcollector/unwind.c +++ b/gprofng/libcollector/unwind.c @@ -223,9 +223,9 @@ memory_error_func (int status ATTRIBUTE_UNUSED, bfd_vma addr ATTRIBUTE_UNUSED, { \ context->uc_link = NULL; \ void *sp = __collector_getsp(); \ - GET_SP(context) = (greg_t)sp; \ - GET_FP(context) = (greg_t)__collector_getfp(); \ - GET_PC(context) = (greg_t)__collector_getpc(); \ + GET_SP(context) = (intptr_t)sp; \ + GET_FP(context) = (intptr_t)__collector_getfp(); \ + GET_PC(context) = (intptr_t)__collector_getpc(); \ context->uc_stack.ss_sp = sp; \ context->uc_stack.ss_size = 0x100000; \ } -- 2.27.0