On Wed, Feb 14, 2024 at 11:59 AM Iain Sandoe <i...@sandoe.co.uk> wrote: > > > > > On 14 Feb 2024, at 18:12, H.J. Lu <hjl.to...@gmail.com> wrote: > > > > On Tue, Feb 13, 2024 at 8:46 AM Jakub Jelinek <ja...@redhat.com> wrote: > >> > >> On Tue, Feb 13, 2024 at 08:40:52AM -0800, H.J. Lu wrote: > >>> Add x32 and IBT support to x86 heap trampoline implementation with a > >>> testcase. > >>> > >>> 2024-02-13 Jakub Jelinek <ja...@redhat.com> > >>> H.J. Lu <hjl.to...@gmail.com> > >>> > >>> libgcc/ > >>> > >>> PR target/113855 > >>> * config/i386/heap-trampoline.c (trampoline_insns): Add IBT > >>> support and pad to the multiple of 4 bytes. Use movabsq > >>> instead of movabs in comments. Add -mx32 variant. > >>> > >>> gcc/testsuite/ > >>> > >>> PR target/113855 > >>> * gcc.dg/heap-trampoline-1.c: New test. > >>> * lib/target-supports.exp (check_effective_target_heap_trampoline): > >>> New. > >> > >> LGTM, but please give Iain a day or two to chime in. > >> > >> Jakub > >> > > > > I am checking it in today. > > I have just one question; > > from your patch the use of endbr* seems to be unconditionally based on the > flags used to build libgcc. > > However, I was expecting that the use of extended trampolines like this would > depend on command line flags used to compile the end-user’s code.
We only ship ONE libgcc binary. You get the same libgcc binary regardless what options one uses to compile an application. Since ENBD64 is a NOP if IBT isn't enabled, so it isn't an issue. > As per the discussion in > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113855#c4 > I was expecting that we would need to extend this implementation to cover > more > cases (i.e. the GCC-14 implementation is “base”). > > any comments? > Iain > > > > > > -- > > H.J. > -- H.J.