public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "segher at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug target/98112] Add -fdirect-access-external-data & drop HAVE_LD_PIE_COPYRELOC Date: Mon, 28 Dec 2020 09:54:53 +0000 [thread overview] Message-ID: <bug-98112-4-hD3PqkYntr@http.gcc.gnu.org/bugzilla/> (raw) In-Reply-To: <bug-98112-4@http.gcc.gnu.org/bugzilla/> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98112 --- Comment #6 from Segher Boessenkool <segher at gcc dot gnu.org> --- (In reply to Fangrui Song from comment #5) > Please read my first comment why copy relocs is a bad name. Since I reply to some of that (namely, your argument 1)), you could assume I have read your comment already ;-) > The compiler > behavior is whether the external data symbol is accessed > directly/indirectly. Not really, no. It isn't clear at all what "directly" even means! > Copy relocs is just the inferred ELF linker behavior > (in -no-pie/-pie link mode) when the symbol is external. The option name > should mention the direct behavior, instead of the inferred behavior at the > linking stage. Yes. But your proposed solution just makes this worse :-( > -fdirect-access-external-data makes sense on other binary formats, though I > won't ask GCC to > implement relevant behaviors for other binary formats. But what does that *mean*? "direct access"? (And, "external data", for that matter! This isn't as obvious as it was thirty years ago.) > * For example, on COFF, the behavior is like always > -fdirect-access-external-data. __declspec(dllimport) is needed to use > indirect access. I don't know what "declspec" is. Something something mswindows? > * On Mach-O, the behavior is like -fdirect-access-external-data for -fno-pic > (only available on arm) and the opposite for -fpic. So what you want is that object that are globally visible will be implemented as-is? For if you do not do whole-program optimisation, for example? So that a) those objects will actually *exist*, and b) they will be laid out in the way the program expects? > If you don't want to think of non-ELF, feel free to make the option specific > to ELF. The problem is not that I don't want to think about it, but that the way it seems to be defined only applies to ELF (and to some specific (sub-)targets using ELF, even). > > You want to have this a generic option, while it is > > not clear at all what it would mean, what it would *do*, which is especially > > important if you want this to be an option used by multiple compilers: if it > > is not clear to every user what simple, sensible thing a flag is the knob > > for, that flag simply cannot be used at all -- or worse, some users *will* > > use it, but then their intentions are not clear to humans, and different > > compilers can (and will!) think the user wanted something else! > > To be clear, GCC botched things with the inappropriate HAVE_LD_PIE_COPYRELOC Huh? That isn't a user-visible thing at all, it's an implementation detail. It is a quite straight-forward autoxxxx thing, defined to true if the loader passes some specific test. - o - o - So, what you want is to attach the attribute ((used)) variable attribute to all data (or at least the data not explicitly made static) automatically?
next prev parent reply other threads:[~2020-12-28 9:54 UTC|newest] Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-12-03 1:26 [Bug c/98112] New: " i at maskray dot me 2020-12-03 12:16 ` [Bug target/98112] " hjl.tools at gmail dot com 2020-12-03 17:51 ` i at maskray dot me 2020-12-15 0:25 ` i at maskray dot me 2020-12-28 7:34 ` segher at gcc dot gnu.org 2020-12-28 8:36 ` i at maskray dot me 2020-12-28 9:54 ` segher at gcc dot gnu.org [this message] 2020-12-28 17:43 ` i at maskray dot me 2023-01-02 19:54 ` [Bug target/98112] Add -f[no-]direct-access-external-data " foom at fuhm dot net 2023-01-04 18:50 ` thiago at kde dot org 2023-01-04 18:54 ` pinskia at gcc dot gnu.org
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=bug-98112-4-hD3PqkYntr@http.gcc.gnu.org/bugzilla/ \ --to=gcc-bugzilla@gcc.gnu.org \ --cc=gcc-bugs@gcc.gnu.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: linkBe 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).