This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH v2] Don't mark IFUNC resolver as only called directly
- From: Rainer Orth <ro at CeBiTec dot Uni-Bielefeld dot DE>
- To: "H.J. Lu" <hjl dot tools at gmail dot com>
- Cc: Jan Hubicka <hubicka at ucw dot cz>, Richard Biener <richard dot guenther at gmail dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Thu, 24 May 2018 14:53:29 +0200
- Subject: Re: [PATCH v2] Don't mark IFUNC resolver as only called directly
- References: <CAMe9rOqRH7u61PbTMB5gVqN0k41OhDfdfrv7GQP1kpKs8TVJkg@mail.gmail.com>
Hi H.J.,
> This is the patch I am checking in. Tested on x86-64.
>
> Thanks.
>
> --
> H.J.
>
> From 91d0b4bc0222ce85bd529a7b3ae9e11904802c26 Mon Sep 17 00:00:00 2001
> From: "H.J. Lu" <hjl.tools@gmail.com>
> Date: Wed, 11 Apr 2018 12:31:21 -0700
> Subject: [PATCH] Don't mark IFUNC resolver as only called directly
>
> Since IFUNC resolver is called indirectly, don't mark IFUNC resolver as
> only called directly. This patch adds ifunc_resolver to cgraph_node,
> sets ifunc_resolver for ifunc attribute and checks ifunc_resolver
> instead of looking up ifunc attribute.
[...]
> gcc/testsuite/
>
> PR target/85345
> * gcc.target/i386/pr85345.c: New test.
the new testcase FAILs on Solaris/x86:
+FAIL: gcc.target/i386/pr85345.c (test for excess errors)
+UNRESOLVED: gcc.target/i386/pr85345.c scan-assembler-times \\\\mendbr 4
Excess errors:
/vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/i386/pr85345.c:22:6: error: ifunc is not supported on this target
Fixed as follows after i386-pc-solaris2.11 testing, installed on mainline.
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University
2018-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* gcc.target/i386/pr85345.c: Require ifunc support.
# HG changeset patch
# Parent ea73d713036e6dea58ea15adc3a38e73a0ecf660
Require ifunc support in gcc.target/i386/pr85345.c
gcc/testsuite:
* gcc.target/i386/pr85345.c: Require ifunc support.
diff --git a/gcc/testsuite/gcc.target/i386/pr85345.c b/gcc/testsuite/gcc.target/i386/pr85345.c
--- a/gcc/testsuite/gcc.target/i386/pr85345.c
+++ b/gcc/testsuite/gcc.target/i386/pr85345.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2 -fcf-protection" } */
+/* { dg-require-ifunc "" } */
/* { dg-final { scan-assembler-times {\mendbr} 4 } } */
int resolver_fn = 0;