From patchwork Fri Jun 23 04:44:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Indu Bhagat X-Patchwork-Id: 111917 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp5529007vqr; Thu, 22 Jun 2023 21:50:49 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6/sO/ELxx28yL6Fa0pH2R6SPzL02bvxmKJoOArZpf/WADsTBs+s1QnMxPtRVbDPNy7ApXe X-Received: by 2002:aa7:c6c5:0:b0:51a:4d98:e5ce with SMTP id b5-20020aa7c6c5000000b0051a4d98e5cemr10425763eds.36.1687495848979; Thu, 22 Jun 2023 21:50:48 -0700 (PDT) Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id b17-20020aa7d491000000b0051643861867si4050683edr.226.2023.06.22.21.50.48 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 Jun 2023 21:50:48 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=DWA+c7dW; arc=fail (signature failed); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id DABD8385020B for ; Fri, 23 Jun 2023 04:47:29 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DABD8385020B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1687495649; bh=fE2dcIM2hgvlXpIGmbS9AWkiDPHdUbp+0AuburqMn4E=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=DWA+c7dWe1kGYDaREp6CXQuSay8Ava67PPUztKtkoMql+Uw+MrfSXOpQcXAWtd8n+ 1kgauPyn/kLr6rD5gEJ7MeNYiyGaI5OF7XcOxgGDNPC7OL8H+e5KsBH8NRwqLVItKw uOIrDyuhcqEEknwQKOu+F3nV2DHaRpTGxzq/ALG4= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by sourceware.org (Postfix) with ESMTPS id A1AA23857C48 for ; Fri, 23 Jun 2023 04:45:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A1AA23857C48 Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 35N4MXBg018006 for ; Fri, 23 Jun 2023 04:45:14 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 3r93rbu7ry-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 23 Jun 2023 04:45:14 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 35N2ASsR038671 for ; Fri, 23 Jun 2023 04:45:13 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2041.outbound.protection.outlook.com [104.47.66.41]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3r9398g437-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 23 Jun 2023 04:45:12 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZuFQN/3vK9iD042uDERTqAl+trwvlj/SQ2F1o9kDTyAa5LyG3Vuw9xcaRtyoLC7xVvUfrWi7kBhcEj4Jwn2cXbm8HlSLA9IHus2swPRXLbNE/dPQLaIOY0Q67l//RamGmkB6mJSMUI4gqwzAQP2gfrVDRf0E59+9zg6p06RTkBw573J9DzbDCKBwt/m+XRz509qu6M5wxHX2pFV9k6Vuzs1+jhXyVuyG3SERi/98vrOdKsP73ZNIct2IPfX+99nvOAz8QnrP//qPup+33diLcfSQvrZmgt/jANfyQdxtO9lVewbhnA4TUHnRb89e6MUpWWqeiFLtYQOjuyya+73c2g== 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=fE2dcIM2hgvlXpIGmbS9AWkiDPHdUbp+0AuburqMn4E=; b=TKd4pvWNqS/v8z7I+ZBxgSa6IVsSmIMO7B+0LftdW/bytQhsRGmfyLGz7RXZ1WH8+h80I7uWxYiUcmV/cSKewIOCEMVl16+pxsUpjWQNWZ6v5F37mqYTGs8DYbJbQaBaQRGYx0e0jZics6O8atyKqXuy6is4V1mYKAOm52+yEcgh0GcQ7UsRjmCC1JqKv+pywj3QtGT09uZYtw7MDfeMnTfcZSmqPuxveYQzAKGBZekUbcD+el9UHifQ24oBaGl0ryc1nnSZh+G3Mo7xI7wsYgTjf9V8zVtLq7gJtvBsWjTyVexJb8wpXP5xuH4BEMvMCPywc633e+ieE70I+hoc9w== 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 MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) by DM4PR10MB5966.namprd10.prod.outlook.com (2603:10b6:8:b2::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.24; Fri, 23 Jun 2023 04:45:04 +0000 Received: from MWHPR1001MB2158.namprd10.prod.outlook.com ([fe80::fdbb:b921:1ef:2d44]) by MWHPR1001MB2158.namprd10.prod.outlook.com ([fe80::fdbb:b921:1ef:2d44%4]) with mapi id 15.20.6521.026; Fri, 23 Jun 2023 04:45:03 +0000 To: binutils@sourceware.org Cc: Indu Bhagat Subject: [PATCH 03/10] libsframe: add symbol versioning Date: Thu, 22 Jun 2023 21:44:41 -0700 Message-Id: <20230623044448.2617101-4-indu.bhagat@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230623044448.2617101-1-indu.bhagat@oracle.com> References: <20230623044448.2617101-1-indu.bhagat@oracle.com> X-ClientProxiedBy: MW2PR16CA0008.namprd16.prod.outlook.com (2603:10b6:907::21) To MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWHPR1001MB2158:EE_|DM4PR10MB5966:EE_ X-MS-Office365-Filtering-Correlation-Id: 6ac82a9b-fc09-47a9-adc8-08db73a49c59 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: P3dX4Tp9nN2mG9GcUAJfHcSV89W6pVBisljItSysTWY/lZDq6LPJwZvtLYNY5x+0rqr6ADDzRnA27Ds/M55Ol+hp1U/uGbVhtqGT48U8sQxyf28ywOSDSAdIM9cQ9waw5raS5PkCYV8JHpC8AuN1spXbJpRxvYoGQOk644ZirWlO3YPjy/P6c8f16pNTtyQy7XWpjrmeiPizl0eH2JVTWvowcjWOUIoWNghZ+4l9/1E71BHTfN0+3hVNwdqq/GDatAW2/g6lXednuuM67ArBueJowaXVHevGBxW6XLADGxx5BK90ihBVtwVum1eEeXLeIlxk9lfPhgoIK1DWUZ0NV0+0VfckFvPEA0uETdKsIP9X80rCWmO/Tyv786xhoBEc4Q3KVi6YIoDx6K6EvfTB/T4zjkxhpSn2PVRfeXnQ7VQo84ceaKfgjw9fteR5Ls3Km/4bxj+mz7+JAxpYZEY50mpfSDv1DcnSZsbhBh5P4+u6FsQXyesfpCsANsI5Gebhzhl0yxLUDeQyvA3bO9vpogFsRNr2xWnxi4/sb/y58PVVFMOyNCCZLR3wrzdNhDUM X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MWHPR1001MB2158.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(396003)(136003)(346002)(366004)(39860400002)(376002)(451199021)(2906002)(478600001)(38100700002)(2616005)(36756003)(6666004)(5660300002)(6486002)(66946007)(66556008)(66476007)(83380400001)(316002)(6916009)(86362001)(41300700001)(44832011)(8936002)(8676002)(4326008)(6506007)(6512007)(1076003)(107886003)(186003)(26005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: bE9Mc5HIYaNxQ1oswR26EPOjJkD3NQS3bLAZhxj5PxmsPzT8rP2TVBKK4eaVzik4okcG2j0Wn6NtZSyoqa8B3tOxaiPcyjAisHGvoDp4pAbZNdM/mHN/K83Pw2V6KZeGzexLkd5ZMmAnPtaRbHKowvzk8ebMMdxDKWX/ebPsECMYAnWTyuKkwLnJgNHYfYsfDLuMx7r1tjxkQWeEGmGAMsNt86b0qH717MF88Yz7PLZJIZOD/IJ2oahV1TfdnWrtym3+h3Sp4zQvn/kqB3epJiqkd9hI2aJIJQvi/P6NtM9ddml0yFrX5cmehsVnjjVVVkJhX6E/URFxYAfGNZWOMbT7fFVuh0DcqbasBCjP1gJg/A/0iz8AFr3HHzHXyzeZpcV9gyKjNaUHFrFy+QIR3zFp+gIyIiTRexePHEW+OO3yYkza8yw//YsFc8ZC8WZ/m4g4Z+Z3DYClO6GJvDvStd2mD+SiIDTERZeH/elGYwTQYtbsifB26R2agNiCn4z9C5S+j/6Bc20GW1N5VQHmvje49nUZnkjZTzyO5mYykJVQwcqwHOcIuTpFk+X33Kq19CjxwS1wOexnoEQIU3QrdNh4E5OwuvKMrDmXcsSX6fTLGyzVqpdCRkhZXsdkyxu4nOUVAx4cN7F/rlEPUeZnMcQM/53+n/g6TceJv6Oc0rnfSIRBvR2xI/yfX1LWEiTkkOUjYf/K4YUNKy0FJZjHoo+wBn71xg1Ne71o0SrmfVCZMxW204WgesSEDrp/o1LlXtTlC8qEJCvJoc2nkUkyA/DY0QtobCIVzfceu+iF2OLp/ywBPHqmpuSwletIX/zM75kcwEazJKLY6CCC85R3MSNT/4WiP62c8etXFChWAfJAtvEl7K1iAbd38V8IK/N2IoSR3mn0UG+xhKS+vyEtXiIQv7OtQuNztiFAtiata+tSFugA3/fMWRos5kNifgLz+z/OBmzoSvKQOIs/W72Hx4Jn3D458+5nrKCunowIqosjPU0KQYuU5PQp3TlB5d77xjQy3mg0knLvgU+C/9ScBBSj+i+veerAMn99COmhtBTaQf+gsXfUdDX6CRK55ZT3mUcMR7MNBjmuHX5KkjrWR9V+qLgK6PHWtNz2PQLObM8E8e28V1rUODGAxIZ4yOccA6cc6BHfBzwSaAAdBTzReqrjiYjTKzYGC1pGjtM0f0XFRKyQbwzDj2u+gW3uQ2Y/k21GVVrajShvMtzdSroI6kfOhq7XmNFJLhaqA66C3wc8k9zH3qbZRj3nYQtXMGzrNrEOntJ8xraqFZaXPWaDXgCLAPnUOTol6v7Eb7gEk4VUyAu/IuPR36h0lrMpSqx2mvVDaqiVfB9GEpLZN6Vea7n6M5D3MUAbTW2CjiuiazGBBz6oINdX6xrmX6vaglnQ/RCIBIvj9d7OCYGjr361ncAF+dJzr6nl2sdY4iGqIrZ6nzJx4SyozMeljAsP04hhl4BdHpq5z6TbB5yKWMv6XwGYY/UneNTIrGQTVUwB0wEuJG/uzh+JUdDnHRHeDzVlqBj4W1Qh6Ylc7mXAeQnddiQghNfDF/cOdcyneeV0wVnGOFdEkl0phXxkTNnnO3Wi X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 6X8AkIscGvk5tsJMYNQZ0pbaAGOuf8okbXtNpFRlQl49sH+jfJdOzVy4pJLJv/KOlHmsEqdDvdF+BCpAAz6n6lSYoi52D84U0aVFp+J7qOtKbFb7v4MHaPQ72R9gTtNtur0ykZPrVVvnpNAt+SifO4uMMQ3+2StpiRCC6lQ2vecgKCzaf/BFP5xpdO5QRVNZk5SAVxaNycx9diTv1yfzeJ6p1lOcuXc13+1tBsOz4gYtYbjdzwJD6T/fdYLB9BOOEfQ7KunqL4yJwsKiiWKyqJ28p9nTvDvYRDZeWPRnVVlYe9850l/HHzxzrDPQoWXhhkuhM2lVZ9KQtjQf9D820uG945NAU+CIo0JDd4Ev6pRZUrVABnoQUl/zvlD5uTL54rtThlj0M+smGRtV6g1OpH0rA0HCQg4FNsTqrblsIZvoPEqyJg3PvgGG47ALzkeQOSHP4+/JLZliRn2Wh73jmi/fsn4MuNc5NYLJ3VCWfOk/rbKwYEDvp59dB3HscuvHfV0VrQAR3bwro8kLO8LrBJvrVILQvwzT7C0+M36ClZG2AD6JzDiVrk8B24p7qZ/zJLaGPxotR9M0OhF6eYJwjbJeWR0RF0q3TIjfveA4buEYv75xVRlosxdr7ZCBVAkHSi+Yh4z6yOfGAySPrrguc/n6+W3w0xXD3ELw4fjTdcaOftppPur2kjveJxyE3pVzrNxCe5aQfeFZBTy0Bsg+1eDcEzBARIASLSENIyVEkRt7yHYjD2o3Ev62OmLAC/+h X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6ac82a9b-fc09-47a9-adc8-08db73a49c59 X-MS-Exchange-CrossTenant-AuthSource: MWHPR1001MB2158.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jun 2023 04:45:03.9327 (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: jYMbV47sBuebIOE67G5y6+RwVQ5J395y8APZNbyeLnjshu9ZN2et2i22PXwGwvposDY5nh18DRbIbUz39CuP5g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR10MB5966 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-06-23_02,2023-06-22_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 bulkscore=0 suspectscore=0 adultscore=0 mlxscore=0 mlxlogscore=999 malwarescore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2306230041 X-Proofpoint-ORIG-GUID: VuAjrPKtYSEWbZ1RgmAosgt9J0Aqw-4a X-Proofpoint-GUID: VuAjrPKtYSEWbZ1RgmAosgt9J0Aqw-4a X-Spam-Status: No, score=-13.1 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 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-Patchwork-Original-From: Indu Bhagat via Binutils From: Indu Bhagat Reply-To: Indu Bhagat Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1769467647533046058?= X-GMAIL-MSGID: =?utf-8?q?1769467647533046058?= Define an empty base version LIBSFRAME_0.0 and add all symbols to version LIBSFRAME_1.0. The previous release of libsframe (libsframe.so.0) did not have versioned symbols. Adding a libsframe.ver file so that future releases of the library (and its consumers) can manage the changes better. For Solaris ld, use -M mapfile command line option. libsframe does not restrict the set of exported symbols, so at this time there is no need to fall back on the libtool's -export-symbols option for platforms where some other linker (with a different command line option for symbol versioning) may be used. libsframe/ * Makefile.am: Use symbol versioning for libsframe. * Makefile.in: Regenerated. * configure: Check for Solaris ld. * configure.ac: Regenerated. * libsframe.ver: New file. --- libsframe/Makefile.am | 14 +++++++-- libsframe/Makefile.in | 9 ++++-- libsframe/configure | 63 +++++++++++++++++++++++++++++++++++++++-- libsframe/configure.ac | 28 ++++++++++++++++++ libsframe/libsframe.ver | 36 +++++++++++++++++++++++ 5 files changed, 144 insertions(+), 6 deletions(-) create mode 100644 libsframe/libsframe.ver diff --git a/libsframe/Makefile.am b/libsframe/Makefile.am index 2d1d8fff063..a660e85c2ce 100644 --- a/libsframe/Makefile.am +++ b/libsframe/Makefile.am @@ -30,6 +30,16 @@ INCDIR = $(srcdir)/../include AM_CPPFLAGS = -I$(srcdir) -I$(srcdir)/../include -I$(srcdir)/../libctf AM_CFLAGS = @ac_libsframe_warn_cflags@ libsframe_version_info = -version-info `grep -v '^\#' $(srcdir)/libtool-version` +# libsframe does not restrict the set of exported symbols. So, if linker does +# not support symbol versioning, there is no need to fall back on libtool's +# -export-symbols option. +if HAVE_LD_VERSION_SCRIPT +if HAVE_SOLARIS_LD + libsframe_version_script = -Wl,-M -Wl,$(srcdir)/libsframe.ver +else + libsframe_version_script = -Wl,--version-script=$(srcdir)/libsframe.ver +endif +endif if INSTALL_LIBBFD lib_LTLIBRARIES = libsframe.la @@ -41,9 +51,9 @@ endif libsframe_la_SOURCES = sframe.c sframe-dump.c sframe-error.c libsframe_la_CPPFLAGS = $(AM_CPPFLAGS) -libsframe_la_LDFLAGS = $(libsframe_version_info) +libsframe_la_LDFLAGS = $(libsframe_version_info) $(libsframe_version_script) -EXTRA_DIST = libtool-version +EXTRA_DIST = libtool-version libsframe.ver diststuff: $(EXTRA_DIST) info include doc/local.mk diff --git a/libsframe/Makefile.in b/libsframe/Makefile.in index 57f912caa13..08c780caa4a 100644 --- a/libsframe/Makefile.in +++ b/libsframe/Makefile.in @@ -523,14 +523,19 @@ INCDIR = $(srcdir)/../include AM_CPPFLAGS = -I$(srcdir) -I$(srcdir)/../include -I$(srcdir)/../libctf AM_CFLAGS = @ac_libsframe_warn_cflags@ libsframe_version_info = -version-info `grep -v '^\#' $(srcdir)/libtool-version` +@HAVE_LD_VERSION_SCRIPT_TRUE@@HAVE_SOLARIS_LD_FALSE@libsframe_version_script = -Wl,--version-script=$(srcdir)/libsframe.ver +# libsframe does not restrict the set of exported symbols. So, if linker does +# not support symbol versioning, there is no need to fall back on libtool's +# -export-symbols option. +@HAVE_LD_VERSION_SCRIPT_TRUE@@HAVE_SOLARIS_LD_TRUE@libsframe_version_script = -Wl,-M -Wl,$(srcdir)/libsframe.ver @INSTALL_LIBBFD_TRUE@lib_LTLIBRARIES = libsframe.la @INSTALL_LIBBFD_FALSE@include_HEADERS = @INSTALL_LIBBFD_TRUE@include_HEADERS = $(INCDIR)/sframe.h $(INCDIR)/sframe-api.h @INSTALL_LIBBFD_FALSE@noinst_LTLIBRARIES = libsframe.la libsframe_la_SOURCES = sframe.c sframe-dump.c sframe-error.c libsframe_la_CPPFLAGS = $(AM_CPPFLAGS) -libsframe_la_LDFLAGS = $(libsframe_version_info) -EXTRA_DIST = libtool-version +libsframe_la_LDFLAGS = $(libsframe_version_info) $(libsframe_version_script) +EXTRA_DIST = libtool-version libsframe.ver @BUILD_INFO_TRUE@AM_MAKEINFOFLAGS = --no-split # Setup the testing framework diff --git a/libsframe/configure b/libsframe/configure index bf4dc45b431..f7ad9c5e29a 100755 --- a/libsframe/configure +++ b/libsframe/configure @@ -643,6 +643,10 @@ INSTALL_LIBBFD_TRUE MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE +HAVE_LD_VERSION_SCRIPT_FALSE +HAVE_LD_VERSION_SCRIPT_TRUE +HAVE_SOLARIS_LD_FALSE +HAVE_SOLARIS_LD_TRUE BUILD_INFO_FALSE BUILD_INFO_TRUE COMPAT_DEJAGNU @@ -11482,7 +11486,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11485 "configure" +#line 11489 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11588,7 +11592,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11591 "configure" +#line 11595 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12335,6 +12339,53 @@ else fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if using Solaris linker" >&5 +$as_echo_n "checking if using Solaris linker... " >&6; } +SLD=`$LD --version 2>&1 | grep Solaris` +if test "$SLD"; then + have_solaris_ld=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + have_solaris_ld=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + if test "$have_solaris_ld" = "yes"; then + HAVE_SOLARIS_LD_TRUE= + HAVE_SOLARIS_LD_FALSE='#' +else + HAVE_SOLARIS_LD_TRUE='#' + HAVE_SOLARIS_LD_FALSE= +fi + + +if test "$have_solaris_ld" = "yes"; then + GLD=`$LD --help < /dev/null 2>&1 | grep 'M mapfile'` +else + GLD=`$LD --help < /dev/null 2>/dev/null | grep version-script` +fi + +if test "$GLD"; then + have_ld_version_script=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + have_ld_version_script=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** Versioned symbols not enabled." >&5 +$as_echo "$as_me: WARNING: *** Versioned symbols not enabled." >&2;} +fi + if test "$have_ld_version_script" = "yes"; then + HAVE_LD_VERSION_SCRIPT_TRUE= + HAVE_LD_VERSION_SCRIPT_FALSE='#' +else + HAVE_LD_VERSION_SCRIPT_TRUE='#' + HAVE_LD_VERSION_SCRIPT_FALSE= +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } @@ -12810,6 +12861,14 @@ if test -z "${BUILD_INFO_TRUE}" && test -z "${BUILD_INFO_FALSE}"; then as_fn_error $? "conditional \"BUILD_INFO\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${HAVE_SOLARIS_LD_TRUE}" && test -z "${HAVE_SOLARIS_LD_FALSE}"; then + as_fn_error $? "conditional \"HAVE_SOLARIS_LD\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_LD_VERSION_SCRIPT_TRUE}" && test -z "${HAVE_LD_VERSION_SCRIPT_FALSE}"; then + as_fn_error $? "conditional \"HAVE_LD_VERSION_SCRIPT\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 diff --git a/libsframe/configure.ac b/libsframe/configure.ac index b9ea363d00d..8189e966e1c 100644 --- a/libsframe/configure.ac +++ b/libsframe/configure.ac @@ -81,6 +81,34 @@ else fi AM_CONDITIONAL(BUILD_INFO, test "${build_info}" = yes) +dnl Determine if using Solaris linker +AC_MSG_CHECKING([if using Solaris linker]) +SLD=`$LD --version 2>&1 | grep Solaris` +if test "$SLD"; then + have_solaris_ld=yes + AC_MSG_RESULT(yes) +else + have_solaris_ld=no + AC_MSG_RESULT(no) +fi +AM_CONDITIONAL(HAVE_SOLARIS_LD, test "$have_solaris_ld" = "yes") + +if test "$have_solaris_ld" = "yes"; then + GLD=`$LD --help < /dev/null 2>&1 | grep 'M mapfile'` +else + GLD=`$LD --help < /dev/null 2>/dev/null | grep version-script` +fi + +if test "$GLD"; then + have_ld_version_script=yes + AC_MSG_RESULT(yes) +else + have_ld_version_script=no + AC_MSG_RESULT(no) + AC_MSG_WARN(*** Versioned symbols not enabled.) +fi +AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes") + AM_MAINTAINER_MODE AM_INSTALL_LIBBFD diff --git a/libsframe/libsframe.ver b/libsframe/libsframe.ver new file mode 100644 index 00000000000..2c2081f311a --- /dev/null +++ b/libsframe/libsframe.ver @@ -0,0 +1,36 @@ +LIBSFRAME_0.0 { }; + +LIBSFRAME_1.0 { + global: + sframe_decoder_free; + sframe_fde_create_func_info; + sframe_calc_fre_type; + sframe_fre_get_base_reg_id; + sframe_fre_get_cfa_offset; + sframe_fre_get_fp_offset; + sframe_fre_get_ra_offset; + sframe_fre_get_ra_mangled_p; + sframe_decode; + sframe_decoder_get_hdr_size; + sframe_decoder_get_abi_arch; + sframe_decoder_get_fixed_fp_offset; + sframe_decoder_get_fixed_ra_offset; + sframe_get_funcdesc_with_addr; + sframe_find_fre; + sframe_decoder_get_num_fidx; + sframe_decoder_get_funcdesc; + sframe_decoder_get_fre; + sframe_encode; + sframe_encoder_free; + sframe_encoder_get_hdr_size; + sframe_encoder_get_abi_arch; + sframe_encoder_get_num_fidx; + sframe_encoder_add_fre; + sframe_encoder_add_funcdesc; + sframe_encoder_write; + dump_sframe; + sframe_errmsg; + + local: + *; +} LIBSFRAME_0.0;