From patchwork Thu Aug 22 13:04:21 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Ivchenko X-Patchwork-Id: 269065 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "localhost", Issuer "www.qmailtoaster.com" (not verified)) by ozlabs.org (Postfix) with ESMTPS id 7AC372C00A6 for ; Thu, 22 Aug 2013 23:04:32 +1000 (EST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :mime-version:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; q=dns; s=default; b=aVUx48QsmCwspAEqir Kk0HYPNtF/LOhr7Tv7we9UCBwss2mrPtcd3FdWQVrkR3X93lRU0SODW/ZNyPouZd CVvA4lreBf0Ff7egVMuM0hgANCFuPa8DEgyYyza+A+9txjiDSMgIO0rC3Cu0axjr ALI3pEshf61lPdYBrafBqqyhw= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :mime-version:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; s=default; bh=A2oc08GS8LxXS15zUHCD1aTr 0oU=; b=XstZUhxkoIy0A2iwad+hWx0fDH4vZSCgB31Y80kD2QJVunl47pKBJKcp 1C6KB7UFiNn3yuqpas/7tQeziwzooPpMFHrxbmvK/VxFXeN856YwA0aBBvkSquwW LylgNjjjII0RDdKmfynoipVaqAQmOrLwhE5Al2SUWN/Edhs5Sxs= Received: (qmail 22712 invoked by alias); 22 Aug 2013 13:04:24 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 22698 invoked by uid 89); 22 Aug 2013 13:04:24 -0000 X-Spam-SWARE-Status: No, score=-3.4 required=5.0 tests=AWL, BAYES_00, FREEMAIL_FROM, KHOP_THREADED, RCVD_IN_DNSWL_LOW, RCVD_IN_HOSTKARMA_YE, SPF_PASS autolearn=ham version=3.3.2 Received: from mail-pa0-f45.google.com (HELO mail-pa0-f45.google.com) (209.85.220.45) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Thu, 22 Aug 2013 13:04:23 +0000 Received: by mail-pa0-f45.google.com with SMTP id bg4so781323pad.32 for ; Thu, 22 Aug 2013 06:04:21 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.66.254.136 with SMTP id ai8mr5426944pad.86.1377176661780; Thu, 22 Aug 2013 06:04:21 -0700 (PDT) Received: by 10.68.26.130 with HTTP; Thu, 22 Aug 2013 06:04:21 -0700 (PDT) In-Reply-To: <20130822082500.GA19152@bart> References: <20130822082500.GA19152@bart> Date: Thu, 22 Aug 2013 17:04:21 +0400 Message-ID: Subject: Re: [PATCH] Enable non-complex math builtins from C99 for Bionic From: Alexander Ivchenko To: Andreas Krebbel Cc: GCC Patches Ugh.. thanks, you are right. That points to another problem that I didn't see before: 3) *linux* targets that do not append to tm_p_file (s390x-*-linux* and s390x-ibm-tpf* - your patch addresses that problem correctly) OR tmake_file (bfin*-linux-uclibc* or crisv32-*-linux* | cris-*-linux*) (btw bfin*-linux-uclibc* or crisv32-*-linux* | cris-*-linux* are broken now anyways: opening glibc-c.o: No such file or directory make[1]: *** [cc1-checksum.c] Error 1 make[1]: *** Waiting for unfinished jobs...) Sorry again for the inconvenience, here is the updated patch that now, hopefully, fixes the issues with my initial patch. (Andreas patch still needs to be applied) Is it OK? +#define TARGET_LIBC_HAS_FUNCTION no_c99_libc_has_function thanks, Alexander 2013/8/22 Andreas Krebbel : > On Wed, Aug 21, 2013 at 11:21:32PM +0400, Alexander Ivchenko wrote: >> I'm sorry for that. The following patch cured my build of those >> targets; it is also preserving the initial presence of c99. There were >> plenty of targets that were changed by my patch, I hope this time I >> didn't miss anything. > > S/390 bootstrap still fails. The reason is that when we set > tm_file/tm_p_file in config.gcc we do not append to the existing > content so your adjustments done before are ignored and gcc complains > about unknown linux_android_libc_has_function. > > However, since with s390 Linux and TPF we only target GNU Linux > systems with Glibc we can default to gnu_libc_has_functions anyway: > > Index: gcc/config/s390/linux.h > =================================================================== > *** gcc/config/s390/linux.h.orig 2013-01-14 07:48:06.000000000 +0000 > --- gcc/config/s390/linux.h 2013-08-22 07:57:46.006014197 +0000 > *************** along with GCC; see the file COPYING3. > *** 87,90 **** > --- 87,93 ---- > /* Define if long doubles should be mangled as 'g'. */ > #define TARGET_ALTERNATE_LONG_DOUBLE_MANGLING > > + #undef TARGET_LIBC_HAS_FUNCTION > + #define TARGET_LIBC_HAS_FUNCTION gnu_libc_has_function > + > #endif > Index: gcc/config/s390/tpf.h > =================================================================== > *** gcc/config/s390/tpf.h.orig 2013-08-22 07:01:48.000000000 +0000 > --- gcc/config/s390/tpf.h 2013-08-22 07:57:27.706013534 +0000 > *************** along with GCC; see the file COPYING3. > *** 111,118 **** > /* IBM copies these libraries over with these names. */ > #define MATH_LIBRARY "CLBM" > #define LIBSTDCXX "CPP2" > - #endif /* ! _TPF_H */ > > - /* We redefine this hook so the version from elfos.h header won't be used. */ > #undef TARGET_LIBC_HAS_FUNCTION > ! #define TARGET_LIBC_HAS_FUNCTION default_libc_has_function > --- 111,118 ---- > /* IBM copies these libraries over with these names. */ > #define MATH_LIBRARY "CLBM" > #define LIBSTDCXX "CPP2" > > #undef TARGET_LIBC_HAS_FUNCTION > ! #define TARGET_LIBC_HAS_FUNCTION gnu_libc_has_function > ! > ! #endif /* ! _TPF_H */ > diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6e27be2..2d15fb1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,17 @@ +2013-08-21 Alexander Ivchenko + + * config/linux-android.c (linux_android_libc_has_function): Fix + checks for libc. + * config/bfin/uclinux.h: Define TARGET_LIBC_HAS_FUNCTION as + no_c99_libc_has_function. + * config/c6x/uclinux-elf.h: Ditto. + * config/lm32/uclinux-elf.h: Ditto. + * config/m68k/uclinux.h: Ditto. + * config/moxie/uclinux.h: Ditto. + * config.gcc (bfin*-linux-uclibc*): Add t-linux-android to tmake_file. + (crisv32-*-linux*, cris-*-linux*): Ditto. + * config/bfin/bfin.c: Include "tm_p.h". + 2013-08-21 Joern Rennecke * reload.h (struct reg_equivs): Rename to .. diff --git a/gcc/config.gcc b/gcc/config.gcc index 7e1d529..89cf30a 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -1018,7 +1018,7 @@ bfin*-uclinux*) ;; bfin*-linux-uclibc*) tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/linux.h ./linux-sysroot-suffix.h" - tmake_file="bfin/t-bfin-linux t-slibgcc" + tmake_file="bfin/t-bfin-linux t-slibgcc t-linux-android" use_collect2=no ;; bfin*-rtems*) @@ -1053,7 +1053,7 @@ cris-*-elf | cris-*-none) crisv32-*-linux* | cris-*-linux*) tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h cris/linux.h" # We need to avoid using t-linux, so override default tmake_file - tmake_file="cris/t-cris cris/t-linux t-slibgcc" + tmake_file="cris/t-cris cris/t-linux t-slibgcc t-linux-android" extra_options="${extra_options} cris/linux.opt" case $target in cris-*-*) diff --git a/gcc/config/bfin/bfin.c b/gcc/config/bfin/bfin.c index 7fab975..18457f8 100644 --- a/gcc/config/bfin/bfin.c +++ b/gcc/config/bfin/bfin.c @@ -46,6 +46,7 @@ #include "cgraph.h" #include "langhooks.h" #include "bfin-protos.h" +#include "tm_p.h" #include "tm-preds.h" #include "tm-constrs.h" #include "gt-bfin.h" diff --git a/gcc/config/bfin/uclinux.h b/gcc/config/bfin/uclinux.h index ca0f4ee..63cba99 100644 --- a/gcc/config/bfin/uclinux.h +++ b/gcc/config/bfin/uclinux.h @@ -44,3 +44,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #define TARGET_SUPPORTS_SYNC_CALLS 1 #define SUBTARGET_FDPIC_NOT_SUPPORTED + +#undef TARGET_LIBC_HAS_FUNCTION +#define TARGET_LIBC_HAS_FUNCTION no_c99_libc_has_function diff --git a/gcc/config/c6x/uclinux-elf.h b/gcc/config/c6x/uclinux-elf.h index 5d61f4d..fa0937e 100644 --- a/gcc/config/c6x/uclinux-elf.h +++ b/gcc/config/c6x/uclinux-elf.h @@ -62,3 +62,5 @@ : "0" (_beg), "b" (_end), "b" (_scno)); \ } +#undef TARGET_LIBC_HAS_FUNCTION +#define TARGET_LIBC_HAS_FUNCTION no_c99_libc_has_function diff --git a/gcc/config/linux-android.c b/gcc/config/linux-android.c index 4a4b48d..e9d9e9a 100644 --- a/gcc/config/linux-android.c +++ b/gcc/config/linux-android.c @@ -35,9 +35,9 @@ linux_android_has_ifunc_p (void) bool linux_android_libc_has_function (enum function_class fn_class) { - if (OPTION_GLIBC) + if (linux_libc == LIBC_GLIBC) return true; - if (OPTION_BIONIC) + if (linux_libc == LIBC_BIONIC) if (fn_class == function_c94 || fn_class == function_c99_misc || fn_class == function_sincos) diff --git a/gcc/config/lm32/uclinux-elf.h b/gcc/config/lm32/uclinux-elf.h index 3a556d7..a5e8163 100644 --- a/gcc/config/lm32/uclinux-elf.h +++ b/gcc/config/lm32/uclinux-elf.h @@ -77,3 +77,5 @@ #undef CC1_SPEC #define CC1_SPEC "%{G*} %{!fno-PIC:-fPIC}" +#undef TARGET_LIBC_HAS_FUNCTION +#define TARGET_LIBC_HAS_FUNCTION no_c99_libc_has_function diff --git a/gcc/config/m68k/uclinux.h b/gcc/config/m68k/uclinux.h index 8d74312..b1af7d2 100644 --- a/gcc/config/m68k/uclinux.h +++ b/gcc/config/m68k/uclinux.h @@ -67,3 +67,6 @@ along with GCC; see the file COPYING3. If not see sections. */ #undef M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P #define M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P 1 + +#undef TARGET_LIBC_HAS_FUNCTION +#define TARGET_LIBC_HAS_FUNCTION no_c99_libc_has_function diff --git a/gcc/config/moxie/uclinux.h b/gcc/config/moxie/uclinux.h index 498037e..85c65f2 100644 --- a/gcc/config/moxie/uclinux.h +++ b/gcc/config/moxie/uclinux.h @@ -37,3 +37,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --wrap=mmap --wrap=munmap --wrap=alloca\ %{fmudflapth: --wrap=pthread_create\ }} %{fmudflap|fmudflapth: --wrap=main}" + +#undef TARGET_LIBC_HAS_FUNCTION