From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-eopbgr130100.outbound.protection.outlook.com [40.107.13.100]) by sourceware.org (Postfix) with ESMTPS id 32073385801D for ; Fri, 1 Jul 2022 08:18:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 32073385801D Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=Syrmia.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=Syrmia.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lZLTDf8M1MPVvOQqFGkImfOVjtM1hRfjn7kXj0ZCdiv0AvcmGJ+6vZtxlYc+fYRWgDyjvyY/4+0ziifqQcWYwXg9RL/Ctb1EdNr00+9p3opV/2vpXrsugWusL89xY55i+sCwiXjbLk+9zo95cIjyrDLSJKrV13bvwnyja4RRGWlswpL2m75XjFPUIKbuE8PwjyZrRq46wTCHwPBGbNpSp53yrVJFXZmFI1p/GxBNEXpR2y9TGZblWQ+4bh63fGdIz9/fsV1KysnNFlSmMMfdWHqKO9gvq/5VcfpWZ/XT2fRygY+RadJuIR5S/asCZdn4rDCsoPdz9rCO123MYfGikg== 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=ridYmSZxs1+ovondj4DfNJlugosA6uW+usgJ7KGUc4w=; b=Eo36JAMbggXQU8INTub/C2BVdS1s9R9U8XSZLTldpwvUn2i65GegxhUkFEnISpd4vnBCeBpjF3DX9jAzuRPkou6i1ZATd9xdjtebRmpDklL7oghEYH/k49hszbMI/Y3B9ZSU2TT3MmB74j7va2rHQ5BeJ8RoofrerWyFqSBrQox5x+GFXl+jYdRB2HIs77NgkDXGyXQD10+/6A68PtC60ElABVXfxqbUKBi5qo16yT3p82wFuTO9OgPkJw9kfb5RkbcSoOheJfT8C2R/TutANv/A5JDIDLrfHpS9W/lmv9uHGCWWOJ8+BCbMdKdMHOAVzzf5i1d1Rfm6Gc8O9csalw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=syrmia.com; dmarc=pass action=none header.from=syrmia.com; dkim=pass header.d=syrmia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=syrmia.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ridYmSZxs1+ovondj4DfNJlugosA6uW+usgJ7KGUc4w=; b=mw9niSd/x2xzNzkA5Z2/4n9qdps/CBY6ckSEXgHh/fc8YQiWmjStFR0sMhHqIo0iHcXk+I9e1GbtgtGpOhOpVnWu7kZc0gI5EgwYBW989gwRMswSOfjQe9Um/sc24k7y4AdACfp7fC6iCQCrlwinB9mdLzAD+Uww+uXTHcuN7wA= Received: from AM0PR03MB4882.eurprd03.prod.outlook.com (2603:10a6:208:fb::17) by VE1PR03MB6111.eurprd03.prod.outlook.com (2603:10a6:803:10b::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Fri, 1 Jul 2022 08:18:52 +0000 Received: from AM0PR03MB4882.eurprd03.prod.outlook.com ([fe80::3926:6805:c765:27ec]) by AM0PR03MB4882.eurprd03.prod.outlook.com ([fe80::3926:6805:c765:27ec%7]) with mapi id 15.20.5395.015; Fri, 1 Jul 2022 08:18:52 +0000 From: Dimitrije Milosevic To: "gcc-patches@gcc.gnu.org" CC: Djordje Todorovic , "xry111@xry111.site" Subject: [PATCH] libsanitizer: Fix linkage errors for cross toolchains Thread-Topic: [PATCH] libsanitizer: Fix linkage errors for cross toolchains Thread-Index: AQHYh79Dn2gUU+4fu0GIGPVPq2iFBw== Date: Fri, 1 Jul 2022 08:18:52 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: suggested_attachment_session_id: 73d1a8dc-23be-d4c9-32b7-f381541da709 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=Syrmia.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: bbb563e2-4619-414c-34ad-08da5b3a554b x-ms-traffictypediagnostic: VE1PR03MB6111:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 4ojFXWEgvPP6Z9VSMn1BYMYiaI1gBk7iu0x7wGmfiZo1rv4ILV846JvHertEHzUc6Vk9cgIW3p2IQazdqLaPHRGR5ooT0EexhJ+98/iUJZ943PxYo3vPD5BGNyRFQpcz3lbJ6uTU6RTrWDRsDtp7e5Rv68ymjYByUUd47zxGBE1g2Jl6Kf6Ycttuv58wAW5nn/EaIzNjIothy2XJ2RtXugj+Gqs1NNkRcCbYwvhksgsLTOKEncpnttyCalyPaoAT3+gLt8RpeKvvjEX10dnv0RfkiEyd6VYvTCLTvJrwxzSQN55Zj10SC6QWuyywC42zeKln+rVJDLpUS3h8EsN8k1G8HeFRegkBpHwsgfCSIylvF9Hb4SVzd9vLqLnMJHweAZ9ExC3WPKKZ1SsSGfHrFXNrJ2OU34GMYcHsUXwI4TO5B2OCSy5M2/qNSDQbl5EatQmHHS/OzzBIaXp1x01CqGfDjm4gMXBCY1Dggr30IcPq6rVGlW2zmLbZvT1l2H5FCs2FSfOHxrjZlAKpE5pym733l6uPb6NqOQoMUqPYfbnOQM0HgdR1LSXmPE7V3kO0jlUeR/mpWUpdHBI9sPj7wI1bU07FmqwKzf8qdIjz/nnsISIKFXLs8JPGx2fTUq8kBJVGhIOT0g/oQMwkR5W32QGUJ/P3OvCjJ018UAV3YzGQq6Nep4PPo6S/midUNpDJJW6o2qwMESGq2unId4KDYQzlqyHX6bj/QjSc/9DtSIC/Mam8MEp554RnJN+FkDrM9ohrC4E0PjyrBmRqbIr/kDqhnZKyqfExX4vN4QlMwrO6bAwgQtFw5UoEjFeixGfr5kSWSSNRoRVi6jELb8dOwg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR03MB4882.eurprd03.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(396003)(366004)(136003)(376002)(346002)(39830400003)(38070700005)(52536014)(64756008)(478600001)(33656002)(66446008)(4326008)(66556008)(316002)(30864003)(19627405001)(71200400001)(76116006)(66946007)(91956017)(8676002)(66476007)(38100700002)(26005)(966005)(166002)(9686003)(41300700001)(55016003)(5660300002)(8936002)(2906002)(86362001)(7696005)(6506007)(83380400001)(122000001)(6916009)(54906003)(186003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?IrYUDBtyQ9+OOlGiCnWehQzNy4rD/mYcZXGvySd1lR+QDTJMdIvr4a7bW0?= =?iso-8859-1?Q?eLELy9u7yBCz+5SsHCTlgZiSp7sZ4T3jd0LgDRmtASx5XKSrczJY0kFCbe?= =?iso-8859-1?Q?xfKy6ZE6nbN8fSJFwYaLJJecl2Pj3d6qQOvGDCAnMwHFhNm4Yxu/EHSdd6?= =?iso-8859-1?Q?P+vogz4kVy+2afRkqwFy+gvgSCW0Crknf+M7gsDiGThtvATMx6zU9QTWkN?= =?iso-8859-1?Q?JCYFkBSsmAKXW9y6SKkmwI6I9WBnI3fVUQ8iGGSSy0aixTb7mFooxbshH9?= =?iso-8859-1?Q?6oToKxmv71h63yqdrYVYZYvOjJgENni2HGOWytWrgqmODl3305qTBkoptO?= =?iso-8859-1?Q?RzJ5Pc8fXosDzP91dEKvWSr5uyfb+UMzf5Gdgu22E8XlJFWlSf3tquXl92?= =?iso-8859-1?Q?Dll43goYDS/uSUfVNaNM9iLea30P7Ln6N8LBLUFxX7NjRwr4AVwuoIZuyl?= =?iso-8859-1?Q?D3+ZLqNjimX7iC/MpugNazqxFTePTIwuwgNQHB7Sh6tggs6btLcfgZzXVn?= =?iso-8859-1?Q?ZDtC2Vv5QH2ONR8k2iE8quvdvlklQUBfD6EezbooXBBLektnLVxF2aXKzK?= =?iso-8859-1?Q?Ipj3RezgdZyZDQ4jP1jJEb0IMZssGwCWjGuHq4YnxgV3fo2FnX0bEDV9Vf?= =?iso-8859-1?Q?dIP0mdaclyyosZ8oavlzwc8Wd6Wt9TL8RhB0+lfAf9iFbXM/I5A4/zPpk6?= =?iso-8859-1?Q?av7BSIwwg9PL0W5bWDfwFKiCrUrtoB/dVPFKrZhlqnboryK9opARjiPRTz?= =?iso-8859-1?Q?5DWENKZLxA0OesfzvP90qHWlnL7E4867j8ReZpccg1g4APl+orBYVziTRj?= =?iso-8859-1?Q?JvgY7zYIGolxWs/0+0tj65EQPzI6Lnn78fGXGdeSi4DAjfmIFrAQOC/sEr?= =?iso-8859-1?Q?5U1waOj1O0wTTJSgXpXs/0dQsUUS8LfUyK8vtsAP8TCjoJc8tqS9K6NNBX?= =?iso-8859-1?Q?+WX+UIjUrXxPF/g0nPX1qCSfdQHTNBOh104eBy5iWlA2paNKIlM5Y3qXLJ?= =?iso-8859-1?Q?S7bYk+tBw/5FHLj/Q/TNTuG6yVHJD8UaiSGfFUAAO1CMNT0M9bTWowEWX2?= =?iso-8859-1?Q?ch6GepVKvoaAB5w7kSZx/1G+P7z8jV7D47PbpqWbVOjVDTvDc1agpa8YY4?= =?iso-8859-1?Q?Zpqkd8JYLa0/uVBXcQxqrbbzltjigeb8j9+qAcXSP6PJ3FGOstqLfNqFSh?= =?iso-8859-1?Q?iaHcfVsFMsU3ZMjYFtweDzVBi7B1SqBD6K0Pke00sTgo7dMlYSfh2DeEpg?= =?iso-8859-1?Q?MGNGRRP7feyW/kP+06wLyrDYbhHHz8pINPH8MNlx3n1yPVZcNsPeOi+1dH?= =?iso-8859-1?Q?8m7faE1W5oKQr//lH918PiZuKEwrxLyvOQUtk8i0eSXOnVH0YWjywCpPi3?= =?iso-8859-1?Q?O+L+dqDsLOluphOcXCOHv8EZKEJuJtpDuHRRbt9XSVkGmDFqXqChJ/IaS7?= =?iso-8859-1?Q?ekbumkVwKueKJBGZuW1YBWcfyHOsnoHOqypQU4PiamfScYBI810OISbQ20?= =?iso-8859-1?Q?5AIyOxca6dY8Lvlsd3dMpmWocawaWKcqMCZaXJN/Z/7fydlHan7SZXsFNs?= =?iso-8859-1?Q?l6TvY2pCQwj7LY7VNgrNWiVA0esxL0LEqdMjyFs8XklprSDEpUAzFQMauc?= =?iso-8859-1?Q?O2CMP/BK2oMqhx3bmHrkbkwMtmXDKSLaOG1qz5ItUz6FZk6GvPqXK6eg?= =?iso-8859-1?Q?=3D=3D?= MIME-Version: 1.0 X-OriginatorOrg: syrmia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4882.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: bbb563e2-4619-414c-34ad-08da5b3a554b X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Jul 2022 08:18:52.3256 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 19214a73-c1ab-4e19-8f59-14bdcb09a66e X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: /w6AGdIZk4VH09XnV9J4zPt4OZClffiF1cI1cEpATvPDsRF9tX7UTgZIM1atkmI3Yw1hoTvp/Agnz+WIj3B+/e6fKdCxIXE/B8GLTT6FwRY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR03MB6111 X-Spam-Status: No, score=-13.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, HTML_MESSAGE, KAM_SHORT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, 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 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Jul 2022 08:19:01 -0000 When we use cross toolchains, in which the GCC libraries are not installed = within a designated system root, the shared sanitizer libraries link agains= t libstdc++.so* within the same libraries. This directory, however, is not = in RPATH, so attempting to build a dynamically linked application with -fsa= nitize=3D... gives a linkage error. More information can be found here: https://gcc.gnu.org/bugzilla/show_bug.c= gi?id=3D69839. gcc/ChangeLog: * gcc.c (LIBSAN_RPATH): New macro. (LIBASAN_SPEC): Add LIBSAN_RPATH. (LIBUBSAN_SPEC): Likewise. (LIBTSAN_SPEC): Likewise. (LIBLSAN_SPEC): Likewise. libsanitizer/ChangeLog: * configure.ac (link_libsan_rpath): New config variable. * libsanitizer.spec.in (link_libsan_rpath): New spec. * configure (link_libsan_rpath): New config variable. * Makefile.in (link_libsan_rpath): Define new Makefile variable. * asan/Makefile.in: Likewise. * interception/Makefile.in: Likewise. * libbacktrace/Makefile.in: Likewise. * lsan/Makefile.in: Likewise. * sanitizer_common/Makefile.in: Likewise. * tsan/Makefile.in: Likewise. * ubsan/Makefile.in: Likewise. * hwasan/Makefile.in: Likewise. --- gcc/gcc.cc | 20 ++++++++++++-------- libsanitizer/Makefile.in | 1 + libsanitizer/asan/Makefile.in | 1 + libsanitizer/configure | 10 ++++++++-- libsanitizer/configure.ac | 7 +++++++ libsanitizer/hwasan/Makefile.in | 1 + libsanitizer/interception/Makefile.in | 1 + libsanitizer/libbacktrace/Makefile.in | 1 + libsanitizer/libsanitizer.spec.in | 2 ++ libsanitizer/lsan/Makefile.in | 1 + libsanitizer/sanitizer_common/Makefile.in | 1 + libsanitizer/tsan/Makefile.in | 1 + libsanitizer/ubsan/Makefile.in | 1 + 13 files changed, 38 insertions(+), 10 deletions(-) diff --git a/gcc/gcc.cc b/gcc/gcc.cc index 299e09c4f54..37ff75f1ad5 100644 --- a/gcc/gcc.cc +++ b/gcc/gcc.cc @@ -738,17 +738,21 @@ proper position among the other output files. */ #define STACK_SPLIT_SPEC " %{fsplit-stack: --wrap=3Dpthread_create}" #endif +#ifndef LIBSAN_RPATH +#define LIBSAN_RPATH " %:include(libsanitizer.spec)%(link_libsan_rpath)" +#endif + #ifndef LIBASAN_SPEC #define STATIC_LIBASAN_LIBS \ " %{static-libasan|static:%:include(libsanitizer.spec)%(link_libasan)}" #ifdef LIBASAN_EARLY_SPEC -#define LIBASAN_SPEC STATIC_LIBASAN_LIBS +#define LIBASAN_SPEC STATIC_LIBASAN_LIBS LIBSAN_RPATH #elif defined(HAVE_LD_STATIC_DYNAMIC) #define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION \ "} -lasan %{static-libasan:" LD_DYNAMIC_OPTION "}" \ STATIC_LIBASAN_LIBS #else -#define LIBASAN_SPEC "-lasan" STATIC_LIBASAN_LIBS +#define LIBASAN_SPEC "-lasan" STATIC_LIBASAN_LIBS LIBSAN_RPATH #endif #endif @@ -778,13 +782,13 @@ proper position among the other output files. */ #define STATIC_LIBTSAN_LIBS \ " %{static-libtsan|static:%:include(libsanitizer.spec)%(link_libtsan)}" #ifdef LIBTSAN_EARLY_SPEC -#define LIBTSAN_SPEC STATIC_LIBTSAN_LIBS +#define LIBTSAN_SPEC STATIC_LIBTSAN_LIBS LIBSAN_RPATH #elif defined(HAVE_LD_STATIC_DYNAMIC) #define LIBTSAN_SPEC "%{static-libtsan:" LD_STATIC_OPTION \ "} -ltsan %{static-libtsan:" LD_DYNAMIC_OPTION "}" \ STATIC_LIBTSAN_LIBS #else -#define LIBTSAN_SPEC "-ltsan" STATIC_LIBTSAN_LIBS +#define LIBTSAN_SPEC "-ltsan" STATIC_LIBTSAN_LIBS LIBSAN_RPATH #endif #endif @@ -793,7 +797,7 @@ proper position among the other output files. */ #endif #ifndef LIBLSAN_SPEC -#define STATIC_LIBLSAN_LIBS \ +#define STATIC_LIBLSAN_LIBS LIBSAN_RPATH \ " %{static-liblsan|static:%:include(libsanitizer.spec)%(link_liblsan)}" #ifdef LIBLSAN_EARLY_SPEC #define LIBLSAN_SPEC STATIC_LIBLSAN_LIBS @@ -802,7 +806,7 @@ proper position among the other output files. */ "} -llsan %{static-liblsan:" LD_DYNAMIC_OPTION "}" \ STATIC_LIBLSAN_LIBS #else -#define LIBLSAN_SPEC "-llsan" STATIC_LIBLSAN_LIBS +#define LIBLSAN_SPEC "-llsan" STATIC_LIBLSAN_LIBS LIBSAN_RPATH #endif #endif @@ -816,9 +820,9 @@ proper position among the other output files. */ #ifdef HAVE_LD_STATIC_DYNAMIC #define LIBUBSAN_SPEC "%{static-libubsan:" LD_STATIC_OPTION \ "} -lubsan %{static-libubsan:" LD_DYNAMIC_OPTION "}" \ - STATIC_LIBUBSAN_LIBS + STATIC_LIBUBSAN_LIBS LIBSAN_RPATH #else -#define LIBUBSAN_SPEC "-lubsan" STATIC_LIBUBSAN_LIBS +#define LIBUBSAN_SPEC "-lubsan" STATIC_LIBUBSAN_LIBS LIBSAN_RPATH #endif #endif diff --git a/libsanitizer/Makefile.in b/libsanitizer/Makefile.in index 65e7f2e9553..ef71407a512 100644 --- a/libsanitizer/Makefile.in +++ b/libsanitizer/Makefile.in @@ -333,6 +333,7 @@ libexecdir =3D @libexecdir@ link_libasan =3D @link_libasan@ link_libhwasan =3D @link_libhwasan@ link_liblsan =3D @link_liblsan@ +link_libsan_rpath =3D @link_libsan_rpath@ link_libtsan =3D @link_libtsan@ link_libubsan =3D @link_libubsan@ localedir =3D @localedir@ diff --git a/libsanitizer/asan/Makefile.in b/libsanitizer/asan/Makefile.in index 7833a9a4c3f..143dafa450d 100644 --- a/libsanitizer/asan/Makefile.in +++ b/libsanitizer/asan/Makefile.in @@ -387,6 +387,7 @@ libexecdir =3D @libexecdir@ link_libasan =3D @link_libasan@ link_libhwasan =3D @link_libhwasan@ link_liblsan =3D @link_liblsan@ +link_libsan_rpath =3D @link_libsan_rpath@ link_libtsan =3D @link_libtsan@ link_libubsan =3D @link_libubsan@ localedir =3D @localedir@ diff --git a/libsanitizer/configure b/libsanitizer/configure index 771b135573a..4408167929f 100755 --- a/libsanitizer/configure +++ b/libsanitizer/configure @@ -660,6 +660,7 @@ link_libubsan link_libtsan link_libhwasan link_libasan +link_libsan_rpath HWASAN_SUPPORTED_FALSE HWASAN_SUPPORTED_TRUE LSAN_SUPPORTED_FALSE @@ -12359,7 +12360,7 @@ else lt_dlunknown=3D0; lt_dlno_uscore=3D1; lt_dlneed_uscore=3D2 lt_status=3D$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12362 "configure" +#line 12363 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12465,7 +12466,7 @@ else lt_dlunknown=3D0; lt_dlno_uscore=3D1; lt_dlneed_uscore=3D2 lt_status=3D$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12468 "configure" +#line 12469 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -15935,6 +15936,11 @@ if test "x$ac_cv_lib_dl_dlsym" =3D xyes; then : link_sanitizer_common=3D"-ldl $link_sanitizer_common" fi +lt_multi_os_dir=3D`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-director= y 2>/dev/null` +if test -n "$with_cross_host" && + test x"$with_cross_host" !=3D x"no"; then + link_libsan_rpath=3D"-rpath-link=3D%R/../${target_alias}/lib/$lt_multi= _os_dir" +fi # Set up the set of additional libraries that we need to link against for = libasan. link_libasan=3D$link_sanitizer_common diff --git a/libsanitizer/configure.ac b/libsanitizer/configure.ac index 7f1ef3979c4..4c7c3814cf1 100644 --- a/libsanitizer/configure.ac +++ b/libsanitizer/configure.ac @@ -118,6 +118,13 @@ AC_CHECK_LIB(rt, shm_open, AC_CHECK_LIB(dl, dlsym, [link_sanitizer_common=3D"-ldl $link_sanitizer_common"]) +lt_multi_os_dir=3D`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-director= y 2>/dev/null` +if test -n "$with_cross_host" && + test x"$with_cross_host" !=3D x"no"; then + link_libsan_rpath=3D"-rpath-link=3D%R/../../${target_alias}/lib/$lt_mu= lti_os_dir" +fi +AC_SUBST(link_libsan_rpath) + # Set up the set of additional libraries that we need to link against for = libasan. link_libasan=3D$link_sanitizer_common AC_SUBST(link_libasan) diff --git a/libsanitizer/hwasan/Makefile.in b/libsanitizer/hwasan/Makefile= .in index b9b942003a3..cda1c944542 100644 --- a/libsanitizer/hwasan/Makefile.in +++ b/libsanitizer/hwasan/Makefile.in @@ -376,6 +376,7 @@ libexecdir =3D @libexecdir@ link_libasan =3D @link_libasan@ link_libhwasan =3D @link_libhwasan@ link_liblsan =3D @link_liblsan@ +link_libsan_rpath =3D @link_libsan_rpath@ link_libtsan =3D @link_libtsan@ link_libubsan =3D @link_libubsan@ localedir =3D @localedir@ diff --git a/libsanitizer/interception/Makefile.in b/libsanitizer/intercept= ion/Makefile.in index 85dd386de47..a10851cd157 100644 --- a/libsanitizer/interception/Makefile.in +++ b/libsanitizer/interception/Makefile.in @@ -305,6 +305,7 @@ libexecdir =3D @libexecdir@ link_libasan =3D @link_libasan@ link_libhwasan =3D @link_libhwasan@ link_liblsan =3D @link_liblsan@ +link_libsan_rpath =3D @link_libsan_rpath@ link_libtsan =3D @link_libtsan@ link_libubsan =3D @link_libubsan@ localedir =3D @localedir@ diff --git a/libsanitizer/libbacktrace/Makefile.in b/libsanitizer/libbacktr= ace/Makefile.in index c0243fa4aab..4c75070a6e3 100644 --- a/libsanitizer/libbacktrace/Makefile.in +++ b/libsanitizer/libbacktrace/Makefile.in @@ -355,6 +355,7 @@ libexecdir =3D @libexecdir@ link_libasan =3D @link_libasan@ link_libhwasan =3D @link_libhwasan@ link_liblsan =3D @link_liblsan@ +link_libsan_rpath =3D @link_libsan_rpath@ link_libtsan =3D @link_libtsan@ link_libubsan =3D @link_libubsan@ localedir =3D @localedir@ diff --git a/libsanitizer/libsanitizer.spec.in b/libsanitizer/libsanitizer.= spec.in index 70a33574d7b..1df604335d5 100644 --- a/libsanitizer/libsanitizer.spec.in +++ b/libsanitizer/libsanitizer.spec.in @@ -11,3 +11,5 @@ *link_liblsan: @link_liblsan@ +*link_libsan_rpath: @link_libsan_rpath@ + diff --git a/libsanitizer/lsan/Makefile.in b/libsanitizer/lsan/Makefile.in index d8fd4ee9557..8f459b255d7 100644 --- a/libsanitizer/lsan/Makefile.in +++ b/libsanitizer/lsan/Makefile.in @@ -350,6 +350,7 @@ libexecdir =3D @libexecdir@ link_libasan =3D @link_libasan@ link_libhwasan =3D @link_libhwasan@ link_liblsan =3D @link_liblsan@ +link_libsan_rpath =3D @link_libsan_rpath@ link_libtsan =3D @link_libtsan@ link_libubsan =3D @link_libubsan@ localedir =3D @localedir@ diff --git a/libsanitizer/sanitizer_common/Makefile.in b/libsanitizer/sanit= izer_common/Makefile.in index 07047bd4b17..e916a803786 100644 --- a/libsanitizer/sanitizer_common/Makefile.in +++ b/libsanitizer/sanitizer_common/Makefile.in @@ -342,6 +342,7 @@ libexecdir =3D @libexecdir@ link_libasan =3D @link_libasan@ link_libhwasan =3D @link_libhwasan@ link_liblsan =3D @link_liblsan@ +link_libsan_rpath =3D @link_libsan_rpath@ link_libtsan =3D @link_libtsan@ link_libubsan =3D @link_libubsan@ localedir =3D @localedir@ diff --git a/libsanitizer/tsan/Makefile.in b/libsanitizer/tsan/Makefile.in index 36498832bb8..ab8db13a268 100644 --- a/libsanitizer/tsan/Makefile.in +++ b/libsanitizer/tsan/Makefile.in @@ -379,6 +379,7 @@ libexecdir =3D @libexecdir@ link_libasan =3D @link_libasan@ link_libhwasan =3D @link_libhwasan@ link_liblsan =3D @link_liblsan@ +link_libsan_rpath =3D @link_libsan_rpath@ link_libtsan =3D @link_libtsan@ link_libubsan =3D @link_libubsan@ localedir =3D @localedir@ diff --git a/libsanitizer/ubsan/Makefile.in b/libsanitizer/ubsan/Makefile.i= n index 92a8e387fd7..5fc063fe9ee 100644 --- a/libsanitizer/ubsan/Makefile.in +++ b/libsanitizer/ubsan/Makefile.in @@ -344,6 +344,7 @@ libexecdir =3D @libexecdir@ link_libasan =3D @link_libasan@ link_libhwasan =3D @link_libhwasan@ link_liblsan =3D @link_liblsan@ +link_libsan_rpath =3D @link_libsan_rpath@ link_libtsan =3D @link_libtsan@ link_libubsan =3D @link_libubsan@ localedir =3D @localedir@ ---