public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: "maskray@google.com" <maskray@google.com>
To: Wilco Dijkstra <Wilco.Dijkstra@arm.com>
Cc: "H.J. Lu" <hjl.tools@gmail.com>,
	Szabolcs Nagy <Szabolcs.Nagy@arm.com>,
	GNU C Library <libc-alpha@sourceware.org>
Subject: Re: [PATCH 2/3] Revert "[AArch64][BZ #17711] Fix extern protected data handling"
Date: Wed, 25 May 2022 13:10:27 -0700	[thread overview]
Message-ID: <20220525201027.wp2hzm4babdzqj6u@google.com> (raw)
In-Reply-To: <DB6PR0801MB187979E5FBF9AE5AE3CF516B83D69@DB6PR0801MB1879.eurprd08.prod.outlook.com>

On 2022-05-25, Wilco Dijkstra wrote:
>Hi H.J.,
>
>> All imported symbols can be marked with the default visibility and all
>> exported symbols, in both executables and shared libraries, can be
>> marked with the protected visibility.   These require code changes.
>
>I meant doing this automatically using an option so most code requires no
>source changes. If commonly used libraries mark their exported symbols,
>most code (PIC, PIE and non-PIE) could be compiled using this option and
>produce efficient code without copy relocations and only using GOT
>indirections when needed (ie. accessing an exported symbol in another .so).
>It would also imply -fno-semantic-interposition for non-exported symbols.
>Currently there is no way to achieve this using options (eg. -fvisibility only
>affects definitions), and LLVM and GCC disagree on many details.
>
>Cheers,
>Wilco

Working out-of-the-box with -fpic and -fpie is trivial.
Working out-of-the-box with -fno-pic is not, as some code may rely on
the traditional codegen behavior that absolute resolutions are used.
I think the situation is worse on x86-32.

For protected data symbols, it's not a problem:

(a) Exported data symbols from shared object are rare. This is discouraged
as exported data symbols is part of ABI and makes DSO upgrading
difficult.

(b) Making exported data symbols exported is even rarer.

(c) In addition, many aarch64 OSes (Android, Chrome OS, FreeBSD, some
musl+llvm based Linux distributions, etc) use lld which does not allow
copy relocation on protected data symbols.
I haven't heard they have found any breakage due to the lld linker error.

(d) -fno-pic is out of favor now with the adoption of default -fpie.

  parent reply	other threads:[~2022-05-25 20:10 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-24 13:46 Wilco Dijkstra
2022-05-24 17:28 ` maskray
2022-05-24 21:58 ` H.J. Lu
2022-05-25 17:13   ` Wilco Dijkstra
2022-05-25 18:21     ` Florian Weimer
2022-05-25 20:44       ` H.J. Lu
2022-05-26 19:17         ` Wilco Dijkstra
2022-05-26 19:25           ` Florian Weimer
2022-05-26 20:03             ` Wilco Dijkstra
2022-05-26 21:27               ` H.J. Lu
2022-05-27 12:43               ` Florian Weimer
2022-05-31  2:03                 ` H.J. Lu
2022-05-31  7:49                   ` Fangrui Song
2022-05-31  9:42                     ` Wilco Dijkstra
2022-05-31 13:47                     ` H.J. Lu
2022-05-31  7:42               ` Fangrui Song
2022-05-25 20:10     ` maskray [this message]
  -- strict thread matches above, loose matches on Subject: below --
2022-05-01  6:06 [PATCH 0/3] Simplify ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA and revert aarch64/arm's extern protected data handling Fangrui Song
2022-05-01  6:06 ` [PATCH 2/3] Revert "[AArch64][BZ #17711] Fix extern protected data handling" Fangrui Song
2022-05-23 20:10   ` Szabolcs Nagy
2022-05-23 20:17     ` Fangrui Song
2022-05-24  5:13       ` Fangrui Song

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220525201027.wp2hzm4babdzqj6u@google.com \
    --to=maskray@google.com \
    --cc=Szabolcs.Nagy@arm.com \
    --cc=Wilco.Dijkstra@arm.com \
    --cc=hjl.tools@gmail.com \
    --cc=libc-alpha@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).