From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pg1-x52f.google.com (mail-pg1-x52f.google.com [IPv6:2607:f8b0:4864:20::52f]) by sourceware.org (Postfix) with ESMTPS id E9FCC385B510 for ; Tue, 11 Jun 2024 16:54:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E9FCC385B510 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org E9FCC385B510 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::52f ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1718124855; cv=none; b=aQFVltaJfRYb/0Ou9zw46RlPrpcSkQiRVkdYD/Z3rZe2eOqxbl7oqao6SAzzTQnqxZ33rFaZBlFH9CzmeoPTMPJBClDntJbztWtr5bPcDRAGYxzIhcTZJLeXFwAYxZdOOFlhUm0pfY3nFongS3Pmo26W8ZerSBz8wMQBiaNIsDU= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1718124855; c=relaxed/simple; bh=9PpG+fSMwvQai8reKXzkjjQXMm+XKwquotgDvbIEvY8=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=L7XaF3aE9M3JqdvbRzBvSPlln6ttvU3CLMci4ZVLacJZeh1g1abOMHyfiiF3MewCQ5yVOSyRkKDTSgLK6Am6DNt1n5zPFzJ1AlXuWBlvEgxNrdyKBLZ5jmjsoUrqkKBRBeeOpAYVvscWObZjQ8icCaO65lw2KNiPedPqHMae6is= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-pg1-x52f.google.com with SMTP id 41be03b00d2f7-60585faa69fso16350a12.1 for ; Tue, 11 Jun 2024 09:54:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718124852; x=1718729652; darn=gcc.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=rgXi5d/ARr0PGeXIJEBVYS7d3qqeIVRwE9llxqeeEOg=; b=hMWmSPeOIt2gktXZdX8oCQE3mKcp1mY69dHWjFiS7No3ScVKqTGXzBKmOkKPyWvzUT 2ZXrTdwGGbeqg5UdSywL4aqIMJSy+Mtkr/4U99vyF0RuczmM1LUuTsC7G347LWIk2eb8 AiiLKHBvStp821k516YC7O5aw2RkfyLOuQAWR2TCLHV9M+5oFlTPUfEpaHICKXa72uZF b6wZZhTglfCs9QVh0pl+Ajc3rVQ6EqE5iVxRVOtiFLeCCakqcT06uuIFTeGJBJTgbROV cuBvVn3o53NXA25RrkyG0NYECudDan4Mewflq2o00WMY/3K7HQRqw+7v1XgxV6icUWoK S6mA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718124852; x=1718729652; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rgXi5d/ARr0PGeXIJEBVYS7d3qqeIVRwE9llxqeeEOg=; b=foUz5RiArHClYMvgrnXpPNlNSdv2mQlzZ6YVBaLc/YI1hzbPRRxBuGusAe3Znqpxzk e9Nmz2XPPm0zyz2NY0O7IdWGZ610MOq4ql06r9AjLfEAOepZz409QIga3mgK+MfsD3Md 2fZ9oZ36dyjLUSZgAEys8alrUOImCQadSc460IBfSd5MTJDNzUKHdi/JNXfkusn3nJ1p 1FfP84zVnX1rrd+nFG3BbX0jcwHm4TfXHYmfXyDNV/fC2nQ/CLr7W6q6V4U4o70mX6Zc qNNUihT5fryQp0kubENerun2+UIqwfhgc07OnZBiOlw/3rCapwGvG723I/Nj4G3rEkH0 XsUQ== X-Gm-Message-State: AOJu0YzZPlDq4HWGyl3xfHAakLmNWh4Cq7KedW/2576xpho8HoIxBt/d 8EVM7NAAFFmt9fPOTPeIV06f2qAB7Lwc0CcAsFSqI0cYq1/AXWM+f+1ap1GqA+6wyhbih+FrgWu 59+dvtom21lE9NYWXxsAxWdeEQAUOiQ== X-Google-Smtp-Source: AGHT+IH9NkDWK/e4+s57xA3RO3OhHG3389uqZHcTDAc/NJMVRnKr0v9rN3rqsMmrd6UI+30TkHgJ8Un55T5g6QJP+YY= X-Received: by 2002:a17:90a:d4f:b0:2c2:c979:4c06 with SMTP id 98e67ed59e1d1-2c32b4a0f15mr4373277a91.14.1718124852009; Tue, 11 Jun 2024 09:54:12 -0700 (PDT) MIME-Version: 1.0 References: <20240527065026.855607-1-jcmvbkbc@gmail.com> <20240527065026.855607-2-jcmvbkbc@gmail.com> In-Reply-To: <20240527065026.855607-2-jcmvbkbc@gmail.com> From: Max Filippov Date: Tue, 11 Jun 2024 09:54:00 -0700 Message-ID: Subject: Re: [RFC 1/2] libbacktrace: add FDPIC support To: gcc-patches@gcc.gnu.org Cc: Ian Lance Taylor Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-0.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,FROM_LOCAL_NOVOWEL,HK_RANDOM_ENVFROM,HK_RANDOM_FROM,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,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 List-Id: On Sun, May 26, 2024 at 11:50=E2=80=AFPM Max Filippov = wrote: > > Instead of a single base address FDPIC ELF files use load map: a > structure with an array of mappings for individual segments. Change > libbacktrace functions and structures to support that. Ping? > libbacktrace/ > > PR libbacktrace/114941 > * dwarf.c: Include or if available. > (struct dwarf_data): Change base_address type to base_address_typ= e. > (add_low_high_range): Change base_address argument type to > base_address_type. Use __RELOC_UINTPTR for lowpc and highpc > calculation. > (add_ranges_from_ranges): Change base_address argument type to > base_address_type. Use __RELOC_UINTPTR to calculate arguments > for add_range(). > (add_ranges_from_rnglists): Change base_address argument type to > base_address_type. Use __RELOC_UINTPTR to calculate arguments > for add_range(). Use __RELOC_UINTPTR for low calculation. > (add_ranges, find_address_ranges, build_address_map): Change > base_address argument type to base_address_type. > (add_line): Use __RELOC_UINTPTR for ln->pc calculation. > (build_dwarf_data, backtrace_dwarf_add): Change base_address > argument type to base_address_type. > * elf.c (elf_initialize_syminfo): Change base_address argument > type to base_address_type. Use __RELOC_UINTPTR for > elf_symbols[j].address calculation. > (elf_add): Change base_address argument type to > base_address_type. Do early return -1 in case of FDPIC > executable, update corresponding comment. > (backtrace_initialize): Change NULL base address parameter in > the add_elf() call to no_base_address. > * internal.h (base_address_type, __RELOC_POINTER) > (__RELOC_UINTPTR, no_base_address): New definitions. > (backtrace_dwarf_add): Change base_address argument type to > base_address_type. > --- > libbacktrace/dwarf.c | 60 ++++++++++++++++++++++++----------------- > libbacktrace/elf.c | 20 +++++++++----- > libbacktrace/internal.h | 14 +++++++++- > 3 files changed, 62 insertions(+), 32 deletions(-) --=20 Thanks. -- Max