This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PATCH: Don't assume modern glibc for x86 Android targets
- From: "H.J. Lu" <hongjiu dot lu at intel dot com>
- To: gcc-patches at gcc dot gnu dot org, Uros Bizjak <ubizjak at gmail dot com>
- Date: Fri, 14 Nov 2014 06:38:02 -0800
- Subject: Re: PATCH: Don't assume modern glibc for x86 Android targets
- Authentication-results: sourceware.org; auth=none
- References: <20141114053207 dot GA13022 at intel dot com>
- Reply-to: "H.J. Lu" <hjl dot tools at gmail dot com>
On Thu, Nov 13, 2014 at 09:32:07PM -0800, H.J. Lu wrote:
> For i[34567]86-*-linux* and x86_64-*-linux* targets, config.gcc assumes
> modern glibc and set default_gnu_indirect_function to yes. That is wrong
> for i[34567]86-*-linux-android* and x86_64-*-linux-android* targets.
> This patch fixes it. Tested on Linux/x86-64, Linux/ia32 and cross-teste
> for i686-linux-android and x86_64-linux-android. OK for trunk?
>
> Thanks.
>
>
> H.J.
> ----
> 2014-11-13 H.J. Lu <hongjiu.lu@intel.com>
>
> * config.gcc (default_gnu_indirect_function): Don't assume
> modern glibc for i[34567]86-*-linux* and x86_64-*-linux* when
> targeting Android.
>
Here is the updated patch to cover uclibc. OK for trunk?
Thanks.
H.J.
---
2014-11-14 H.J. Lu <hongjiu.lu@intel.com>
* config.gcc (default_gnu_indirect_function): Set to yes
for i[34567]86-*-linux* and x86_64-*-linux* if not targeting
Android nor uclibc.
diff --git a/gcc/config.gcc b/gcc/config.gcc
index a6b37d8..a2c502e 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -1404,8 +1404,11 @@ i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i
i[34567]86-*-linux*)
tm_file="${tm_file} linux.h linux-android.h"
extra_options="${extra_options} linux-android.opt"
- # Assume modern glibc
- default_gnu_indirect_function=yes
+ # Assume modern glibc if not targeting Android nor uclibc.
+ case ${target} in
+ *-*-*android*|*-*-*uclibc*) ;;
+ *) default_gnu_indirect_function=yes ;;
+ esac
if test x$enable_targets = xall; then
tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
tm_defines="${tm_defines} TARGET_BI_ARCH=1"
@@ -1467,8 +1470,11 @@ x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu)
x86_64-*-linux*)
tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
extra_options="${extra_options} linux-android.opt"
- # Assume modern glibc
- default_gnu_indirect_function=yes
+ # Assume modern glibc if not targeting Android nor uclibc.
+ case ${target} in
+ *-*-*android*|*-*-*uclibc*) ;;
+ *) default_gnu_indirect_function=yes ;;
+ esac
;;
x86_64-*-kfreebsd*-gnu)
tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"