-bool -linux_has_ifunc_p (void) -{ - return OPTION_BIONIC ? false : HAVE_GNU_INDIRECT_FUNCTION; -}
That is what prevent us from doing so. We need to remove OPTION_BIONIC from that hook and that is what the patch does. 2014-11-14 8:32 GMT+04:00 H.J. Lu <hjl.to...@gmail.com>: > On Thu, Nov 13, 2014 at 8:27 PM, Andrew Hsieh <andrewhs...@google.com> wrote: >> What about overloading the existing option -mbionic ? -mbionic=21 and >> above enable ifunc (so NDK can help enforce it) >> >> On Fri, Nov 14, 2014 at 11:51 AM, enh <e...@google.com> wrote: >>> On Thu, Nov 13, 2014 at 5:12 PM, Jeff Law <l...@redhat.com> wrote: >>>> On 11/13/14 10:46, enh wrote: >>>>> >>>>> This feels like a bad idea to me simply because a new compiler with an >>>>> old runtime will generate code that fails, right? >>>>> >>>>> >>>>> yes, but that's already true of PIE or gnu-style hash or... >>>> >>>> That doesn't make it the right thing to do. I would argue that's a bug >>>> that >>>> really needs to be fixed. >>> >>> it's not a bug. no one wants 22 different compilers or configuration >>> options, with a new one every six months or so. >>> >>>>> If you can't do a configure-time test, then the way to go is either a >>>>> compile-time option, or to use a different target. If there's some >>>>> minimum version of android that has this capability, then this isn't >>>>> terribly hard. You may not even need a config file for this since >>>>> you >>>>> could define LIBC_BIONIC_USE_IFUNCS or something like that when >>>>> configured for a suitably new android version. >>>>> >>>>> >>>>> this won't make any difference to the developers, though. they get their >>>>> prebuilt compilers from us, and we'll just turn all the latest options >>>>> on. we don't ship a compilers for each Android version. we already have >>>>> 6 architectures * {clang,gcc} * {current,previous}version to ship. >>>> >>>> But that's no reason to have a compiler which produces bogus binaries. >>>> >>>> I really think this patch is a bad idea. >>> >>> so we should just change linux_has_ifunc_p to return >>> HAVE_GNU_INDIRECT_FUNCTION; instead? >> > > I don't know exactly what kind problem you are trying to solve. Why don't > you configure GCC with --enable-gnu-indirect-function? If it doesn't work > for your purpose, please tell me exactly what you want to to do and I will > find a solution for you. > > -- > H.J.