public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/113694] New: Allow renaming stack smashing protector symbols
@ 2024-01-31 22:58 matheus.a.m.moreira at gmail dot com
  2024-01-31 23:05 ` [Bug middle-end/113694] " pinskia at gcc dot gnu.org
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: matheus.a.m.moreira at gmail dot com @ 2024-01-31 22:58 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113694

            Bug ID: 113694
           Summary: Allow renaming stack smashing protector symbols
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: matheus.a.m.moreira at gmail dot com
  Target Milestone: ---

I'm writing freestanding Linux applications which are compiled with
-ffreestanding -nostdlib. In order to integrate with the stack smashing
protector, I need to provide the following symbols:

    __stack_chk_guard
    __stack_chk_fail

It would be nice if there was a compiler option to rename these symbols to
something else. I want to make them consistent with the rest of my code,
thereby improving its quality.

A couple of options would be enough:

    -fstack-protector-canary=my_variable
    -fstack-protector-handler=my_function

Attributes could work too:

    uintptr_t my_canary __attribute__((stack_protector_canary));

    __attribute__((noreturn, stack_protector_handler))
    void __stack_chk_fail(void);

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug middle-end/113694] Allow renaming stack smashing protector symbols
  2024-01-31 22:58 [Bug middle-end/113694] New: Allow renaming stack smashing protector symbols matheus.a.m.moreira at gmail dot com
@ 2024-01-31 23:05 ` pinskia at gcc dot gnu.org
  2024-02-01  8:22 ` rguenth at gcc dot gnu.org
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: pinskia at gcc dot gnu.org @ 2024-01-31 23:05 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113694

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|normal                      |enhancement

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug middle-end/113694] Allow renaming stack smashing protector symbols
  2024-01-31 22:58 [Bug middle-end/113694] New: Allow renaming stack smashing protector symbols matheus.a.m.moreira at gmail dot com
  2024-01-31 23:05 ` [Bug middle-end/113694] " pinskia at gcc dot gnu.org
@ 2024-02-01  8:22 ` rguenth at gcc dot gnu.org
  2024-02-02  0:31 ` matheus.a.m.moreira at gmail dot com
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: rguenth at gcc dot gnu.org @ 2024-02-01  8:22 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113694

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
You could provide an alias to __stack_chk_guard/__stack_chk_fail in your code
though.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug middle-end/113694] Allow renaming stack smashing protector symbols
  2024-01-31 22:58 [Bug middle-end/113694] New: Allow renaming stack smashing protector symbols matheus.a.m.moreira at gmail dot com
  2024-01-31 23:05 ` [Bug middle-end/113694] " pinskia at gcc dot gnu.org
  2024-02-01  8:22 ` rguenth at gcc dot gnu.org
@ 2024-02-02  0:31 ` matheus.a.m.moreira at gmail dot com
  2024-02-02  0:35 ` sjames at gcc dot gnu.org
  2024-02-14  9:00 ` matheus.a.m.moreira at gmail dot com
  4 siblings, 0 replies; 6+ messages in thread
From: matheus.a.m.moreira at gmail dot com @ 2024-02-02  0:31 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113694

--- Comment #2 from Matheus Afonso Martins Moreira <matheus.a.m.moreira at gmail dot com> ---
That's true but in that case the __stack_chk_* symbols will remain in the
compiler output and in the final binary. They will show up in readelf output,
GDB function disassemblies.

I think the ability to rename the symbols would be a cleaner solution.
Programmers should have full control over the symbols emitted by the compiler.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug middle-end/113694] Allow renaming stack smashing protector symbols
  2024-01-31 22:58 [Bug middle-end/113694] New: Allow renaming stack smashing protector symbols matheus.a.m.moreira at gmail dot com
                   ` (2 preceding siblings ...)
  2024-02-02  0:31 ` matheus.a.m.moreira at gmail dot com
@ 2024-02-02  0:35 ` sjames at gcc dot gnu.org
  2024-02-14  9:00 ` matheus.a.m.moreira at gmail dot com
  4 siblings, 0 replies; 6+ messages in thread
From: sjames at gcc dot gnu.org @ 2024-02-02  0:35 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113694

Sam James <sjames at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |sjames at gcc dot gnu.org
           See Also|                            |https://gcc.gnu.org/bugzill
                   |                            |a/show_bug.cgi?id=97119

--- Comment #3 from Sam James <sjames at gcc dot gnu.org> ---
(In reply to Matheus Afonso Martins Moreira from comment #2)
> Programmers should have full control over the symbols emitted by the
> compiler.

Note that this isn't something GCC offers for other things, e.g. PR97119.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug middle-end/113694] Allow renaming stack smashing protector symbols
  2024-01-31 22:58 [Bug middle-end/113694] New: Allow renaming stack smashing protector symbols matheus.a.m.moreira at gmail dot com
                   ` (3 preceding siblings ...)
  2024-02-02  0:35 ` sjames at gcc dot gnu.org
@ 2024-02-14  9:00 ` matheus.a.m.moreira at gmail dot com
  4 siblings, 0 replies; 6+ messages in thread
From: matheus.a.m.moreira at gmail dot com @ 2024-02-14  9:00 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113694

--- Comment #4 from Matheus Afonso Martins Moreira <matheus.a.m.moreira at gmail dot com> ---
(In reply to Sam James from comment #3)
> Note that this isn't something GCC offers for other things, e.g. PR97119.

GCC does offer it for at least one thing that I'm aware of:

    -e entry
    --entry=entry

    Specify that the program entry point is entry.
    The argument is interpreted by the linker;
    the GNU linker accepts either a symbol name or an address.

With this useful option, I was able to change the somewhat ugly "_start" symbol
to a name of my choosing.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-02-14  9:00 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-01-31 22:58 [Bug middle-end/113694] New: Allow renaming stack smashing protector symbols matheus.a.m.moreira at gmail dot com
2024-01-31 23:05 ` [Bug middle-end/113694] " pinskia at gcc dot gnu.org
2024-02-01  8:22 ` rguenth at gcc dot gnu.org
2024-02-02  0:31 ` matheus.a.m.moreira at gmail dot com
2024-02-02  0:35 ` sjames at gcc dot gnu.org
2024-02-14  9:00 ` matheus.a.m.moreira at gmail dot com

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).