From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qt1-x82f.google.com (mail-qt1-x82f.google.com [IPv6:2607:f8b0:4864:20::82f]) by sourceware.org (Postfix) with ESMTPS id 99BD53858D39 for ; Wed, 8 Feb 2023 09:44:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 99BD53858D39 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-qt1-x82f.google.com with SMTP id f10so20065008qtv.1 for ; Wed, 08 Feb 2023 01:44:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-disposition:mime-version:message-id:subject:to:from:date :from:to:cc:subject:date:message-id:reply-to; bh=Gd+fyEoDswZ9x7j+Z23AcCnpLgL5djIc5xRmTVvdylY=; b=dSqxihRexnLQZ8/c7INzKDHY9GT2V+WNulnNgPRvMYA++wRjALwCFKtvSl4z2/NE0L 4wfvwr3qyF2tYoq4RQxk2TpJlpXecpTi1CptPWMRHHiVrL5bpDrnQNHZkqoDiTuNcIBl qckDg2uRnja+O12Er13x3yi12nWXTwYXDxOhmZE45nYanXXqF7Mis25yvLAkx+Lk2WZs Exw704TDKLUEAgRF4TOy9ZIZeHSVKAhkN5MTKItX/c4z3xiHwIy+j2XzH+32jcw9C1bU L6X4e2O7mXaWFeMsUvGmuq8VidPqDbBLq2n440253L+kKBP7pwoCANxgVSOiUG7KoG2M pdBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-disposition:mime-version:message-id:subject:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Gd+fyEoDswZ9x7j+Z23AcCnpLgL5djIc5xRmTVvdylY=; b=PrUsPW1nuApdtgl/BdG/WH+w+oekQ40+mz2ff0/ZjWl1yfmpsmyTghM4lN2ayHXIpy CSkLWqfedQ4Arxem0FD0OLLcTbfVYmjU4s2XLbAY1R4XswXQ530Tfvox9tRvOZMGWhHW UjEITgX8NbvAdT5zW0qUmTZQuAZDtY8ToHCR2pAtntyxrLF5Ngy32l/F/VIEmotkNH9U a/h2qbykzmaEwfwKBN2/spax7SdIHY8Cpi/pZM6ixlYvXpJyVj8BK9z4Ugwwu8SpCJaF akpW5YTABf0aKcXCkMAzBKXV9CxPRSx+cB1UqXavGZ7yweAPe4H/WlxHE5HVirFoiVsx 3AVw== X-Gm-Message-State: AO0yUKWROFbOdW88+lf1/1CTb1iWUth2FnxY8BYKVAh/s1G+zgxld0Ei Lh4r8f8jHY2YwxQCcxSOKnCyoj7VyHk= X-Google-Smtp-Source: AK7set+MCh1RLqqw34+OLZVgwu/u2H2sPGYrakPymaObc9pvd0t2ToPd/Tz1DmuC9YoTQDHLR80GyQ== X-Received: by 2002:a05:622a:1394:b0:3ba:1d8d:f6eb with SMTP id o20-20020a05622a139400b003ba1d8df6ebmr10181650qtk.58.1675849451881; Wed, 08 Feb 2023 01:44:11 -0800 (PST) Received: from localhost ([2001:19f0:5:4a87:5400:3ff:feba:e632]) by smtp.gmail.com with ESMTPSA id g7-20020ac87d07000000b003b9a50c8fa1sm11373974qtb.87.2023.02.08.01.44.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Feb 2023 01:44:10 -0800 (PST) Date: Wed, 8 Feb 2023 17:44:10 +0800 From: =?utf-8?B?5a6L5Yas55Sf?= To: Eric Botcazou , Marc =?utf-8?B?UG91bGhpw6hz?= , gcc-patches@gcc.gnu.org Subject: [PATCH] ada: Fix musl build on Linux Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline X-Spam-Status: No, score=-10.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP 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: The commit "ada: Add PIE support to backtraces on Linux" [1] use _r_debug under Linux unconditionally. It is incorrect since musl[2] libc not defined _r_debug like glibc [3]: extern struct r_debug _r_debug; As far as I know, only glibc and uClibc [4] define the global variable _r_debug. [1] https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=f2b30a724e6bf7ff8e591b176967d596cee7648e;hp=83e8d37fe39d7c1afce19b61bbc2dd828fa37c6f [2] https://git.musl-libc.org/cgit/musl/tree/include/link.h#n39 [3] https://sourceware.org/git/?p=glibc.git;a=blob;f=elf/link.h;h=3b5954d9818e8ea9f35638c55961f861f6ae6057;hb=HEAD#l66 [4] https://git.uclibc.org/uClibc/tree/include/link.h#n71 OK? Bootstrapped and tested on aarch64-linux-(gnu|musl), riscv64-linux-(gnu|musl) and x86_64-linux-(gnu|musl) with no regressions. gcc/ada/ * adaint.c [Linux]: Include . (__gnat_get_executable_load_address) [Linux]: Enable only for glibc & uClibc on Linux. gcc/ada/adaint.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gcc/ada/adaint.c b/gcc/ada/adaint.c index 1c23d1584..852209416 100644 --- a/gcc/ada/adaint.c +++ b/gcc/ada/adaint.c @@ -3526,6 +3526,7 @@ __gnat_cpu_set (int cpu, size_t count ATTRIBUTE_UNUSED, cpu_set_t *set) #if defined (__APPLE__) #include #elif defined (__linux__) +#include #include #endif @@ -3535,7 +3536,7 @@ __gnat_get_executable_load_address (void) #if defined (__APPLE__) return _dyld_get_image_header (0); -#elif defined (__linux__) +#elif defined (__linux__) && (defined (__GLIBC__) || defined (__UCLIBC__)) struct link_map *map = _r_debug.r_map; return (const void *)map->l_addr;