public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: Wilco Dijkstra <Wilco.Dijkstra@arm.com>
To: Fangrui Song <maskray@google.com>, "H.J. Lu" <hjl.tools@gmail.com>
Cc: Florian Weimer <fweimer@redhat.com>,
	Szabolcs Nagy <Szabolcs.Nagy@arm.com>,
	"libc-alpha@sourceware.org" <libc-alpha@sourceware.org>
Subject: Re: [PATCH 2/3] Revert "[AArch64][BZ #17711] Fix extern protected data handling"
Date: Tue, 31 May 2022 09:42:13 +0000	[thread overview]
Message-ID: <DB6PR0801MB1879EB9034E267768B030E6A83DC9@DB6PR0801MB1879.eurprd08.prod.outlook.com> (raw)
In-Reply-To: <20220531074930.sjzjdnkayy2ln2wa@google.com>

Hi Fangrui,

>>Should -fno-semantic-interposition imply -fvisibility=protected
>>-mno-direct-extern-access?
>
> Unfortunately, no.  -fvisibility=protected imposes stricter requirement
> than -fno-semantic-interposition.  See
> https://maskray.me/blog/2021-01-09-copy-relocations-canonical-plt-entries-and-protected#protected-function-symbols-and-canonical-plt-entries
>
>   __attribute__((visibility("protected"))) void *foo() {
>     return (void *)foo;
>  }
>
> GNU ld does not support this on several architectures, including the common x86-32/x86-64/aarch64.

So you're saying this should only give an error if the executable takes the address of foo
without a GOT indirection? In principle compilers could use a GOT indirection when taking
the address of function symbols to make this work (either in the executable or for protected
function symbols in shared objects).

Note in the executable case, the linker can relax the GOT relocations so it would have almost
zero overhead.

Wilco

  reply	other threads:[~2022-05-31  9:42 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 [this message]
2022-05-31 13:47                     ` H.J. Lu
2022-05-31  7:42               ` Fangrui Song
2022-05-25 20:10     ` maskray
  -- 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=DB6PR0801MB1879EB9034E267768B030E6A83DC9@DB6PR0801MB1879.eurprd08.prod.outlook.com \
    --to=wilco.dijkstra@arm.com \
    --cc=Szabolcs.Nagy@arm.com \
    --cc=fweimer@redhat.com \
    --cc=hjl.tools@gmail.com \
    --cc=libc-alpha@sourceware.org \
    --cc=maskray@google.com \
    /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).