Message ID | CACysShi0Xm_HKFJXp8dTR5Twok=twE9JY7eh2jxe+ri0GAEGSw@mail.gmail.com |
---|---|
State | New |
Headers | show |
On 12/09/14 05:39, Alexander Ivchenko wrote: > Hi, > > Whether the *linux* target supports ifuncs or not is defined here: > > linux_has_ifunc_p (void) > { > return OPTION_BIONIC ? false : HAVE_GNU_INDIRECT_FUNCTION; > } > > Bionic right now supports indirect functions, but there is no way to > notify the compiler about that (For Android OPTION_BIONIC is always on > and so configure time check with --enable-gnu-indirect-function does > not work) > > The following patch makes the use of the default version of > TARGET_HAS_IFUNC_P for *linux*, so we can decide whether the Android > target supports indirect functions or not on configure time. > > diff --git a/gcc/ChangeLog b/gcc/ChangeLog > index f22bba8..d4d09d0 100644 > --- a/gcc/ChangeLog > +++ b/gcc/ChangeLog > @@ -1,3 +1,8 @@ > +2014-12-08 Alexander Ivchenko <alexander.ivchenko@intel.com> > + > + * config/linux.c (linux_has_ifunc_p): Remove. > + * config/linux.h (TARGET_HAS_IFUNC_P): Use default version. OK. jeff
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f22bba8..d4d09d0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2014-12-08 Alexander Ivchenko <alexander.ivchenko@intel.com> + + * config/linux.c (linux_has_ifunc_p): Remove. + * config/linux.h (TARGET_HAS_IFUNC_P): Use default version. + 2014-12-08 Ilya Tocar <ilya.tocar@intel.com> * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Handle v64qi. diff --git a/gcc/config/linux.c b/gcc/config/linux.c index 6242e11..15df213 100644 --- a/gcc/config/linux.c +++ b/gcc/config/linux.c @@ -23,14 +23,6 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "linux-protos.h" -/* Android does not support GNU indirect functions. */ - -bool -linux_has_ifunc_p (void) -{ - return OPTION_BIONIC ? false : HAVE_GNU_INDIRECT_FUNCTION; -} - bool linux_libc_has_function (enum function_class fn_class) { diff --git a/gcc/config/linux.h b/gcc/config/linux.h index d38ef81..6ccacff 100644 --- a/gcc/config/linux.h +++ b/gcc/config/linux.h @@ -117,10 +117,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #else /* !uClinux, i.e., normal Linux */ -/* IFUNCs are supported by glibc, but not by uClibc or Bionic. */ -# undef TARGET_HAS_IFUNC_P -# define TARGET_HAS_IFUNC_P linux_has_ifunc_p - /* Determine what functions are present at the runtime; this includes full c99 runtime and sincos. */