public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Maxim Kuvyrkov <maxim@codesourcery.com>
To: Chao-Ying Fu <fu@mips.com>
Cc: gcc-patches Patches <gcc-patches@gcc.gnu.org>
Subject: Re: [PATCH, Android] MIPS support
Date: Wed, 18 Apr 2012 00:59:00 -0000	[thread overview]
Message-ID: <DC934C10-B958-40D3-8782-5DDAD8B7F668@codesourcery.com> (raw)
In-Reply-To: <DF146E78-EBAA-4A69-9430-DEF78480C5FB@codesourcery.com>

On 5/04/2012, at 10:16 AM, Maxim Kuvyrkov wrote:

> Chao,
> 
> Let's take discussion of MIPS changes to gcc-patches@.  Please follow up here.
> 
> --
> Maxim Kuvyrkov
> CodeSourcery / Mentor Graphics
> 
> On 5/04/2012, at 10:10 AM, Fu, Chao-Ying wrote:
> 
>> For now, two MIPS changes in gnu-user.h and unwind-dw2-fde-dip.c can be posted for comment.
>> (I didn't tested this patch, though.)

You need to test your patches before posting them for review.  Below are a couple of comments on your current version.

>> After starting to build toolchains for Android with Bionic, we may find new files to
>> patch.  Ex: Comment out getpagesize() for bionic.
>> 
>> Any comment?  Thanks a lot!
>> 
>> Regards,
>> Chao-ying
>> 
>> Index: gcc/gcc/config/mips/gnu-user.h
>> ===================================================================
>> --- gcc.orig/gcc/config/mips/gnu-user.h	2012-04-03 17:39:50.000000000 -0700
>> +++ gcc/gcc/config/mips/gnu-user.h	2012-04-04 14:31:50.804236000 -0700
>> @@ -45,8 +45,8 @@ along with GCC; see the file COPYING3.  
>> /* A standard GNU/Linux mapping.  On most targets, it is included in
>>   CC1_SPEC itself by config/linux.h, but mips.h overrides CC1_SPEC
>>   and provides this hook instead.  */
>> -#undef SUBTARGET_CC1_SPEC
>> -#define SUBTARGET_CC1_SPEC "%{profile:-p}"
>> +#undef GNU_USER_SUBTARGET_CC1_SPEC
>> +#define GNU_USER_SUBTARGET_CC1_SPEC "%{profile:-p}"
>> 
>> /* -G is incompatible with -KPIC which is the default, so only allow objects
>>   in the small data section if the user explicitly asks for it.  */
>> @@ -54,8 +54,8 @@ along with GCC; see the file COPYING3.  
>> #define MIPS_DEFAULT_GVALUE 0
>> 
>> /* Borrowed from sparc/linux.h */
>> -#undef LINK_SPEC
>> -#define LINK_SPEC \
>> +#undef GNU_USER_TARGET_LINK_SPEC
>> +#define GNU_USER_TARGET_LINK_SPEC \
>> "%(endian_spec) \
>>  %{shared:-shared} \
>>  %{!shared: \
>> @@ -89,8 +89,8 @@ along with GCC; see the file COPYING3.  
>> #undef ASM_OUTPUT_REG_PUSH
>> #undef ASM_OUTPUT_REG_POP
>> 
>> -#undef LIB_SPEC
>> -#define LIB_SPEC "\
>> +#undef GNU_USER_TARGET_LIB_SPEC
>> +#define GNU_USER_TARGET_LIB_SPEC "\
>> %{pthread:-lpthread} \
>> %{shared:-lc} \
>> %{!shared: \
>> @@ -133,7 +133,34 @@ extern const char *host_detect_local_cpu
>>  LINUX_DRIVER_SELF_SPECS
>> 
>> /* Similar to standard Linux, but adding -ffast-math support.  */
>> -#undef  ENDFILE_SPEC
>> -#define ENDFILE_SPEC \
>> +#undef  GNU_USER_TARGET_ENDFILE_SPEC
>> +#define GNN_USER_TARGET_ENDFILE_SPEC \
>>  "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \
>>   %{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"

Above definitions are OK.

>> +
>> +#undef  LINK_SPEC
>> +#define LINK_SPEC							\
>> +  LINUX_OR_ANDROID_LD (GNU_USER_TARGET_LINK_SPEC,			\
>> +		       GNU_USER_TARGET_LINK_SPEC " " ANDROID_LINK_SPEC)
>> +
>> +#undef  SUBTARGET_CC1_SPEC
>> +#define SUBTARGET_CC1_SPEC						\
>> +  LINUX_OR_ANDROID_CC (GNU_USER_SUBTARGET_CC1_SPEC,			\
>> +		       GNU_USER_SUBTARGET_CC1_SPEC " " ANDROID_CC1_SPEC)
>> +
>> +#undef  CC1PLUS_SPEC
>> +#define CC1PLUS_SPEC							\
>> +  LINUX_OR_ANDROID_CC ("", ANDROID_CC1PLUS_SPEC)
>> +
>> +#undef  LIB_SPEC
>> +#define LIB_SPEC							\
>> +  LINUX_OR_ANDROID_LD (GNU_USER_TARGET_LIB_SPEC,			\
>> +		       GNU_USER_TARGET_LIB_SPEC " " ANDROID_LIB_SPEC)
>> +
>> +#undef  STARTFILE_SPEC
>> +#define STARTFILE_SPEC							\
>> +  LINUX_OR_ANDROID_LD (GNU_USER_TARGET_STARTFILE_SPEC, ANDROID_STARTFILE_SPEC)
>> +
>> +#undef  ENDFILE_SPEC
>> +#define ENDFILE_SPEC							\
>> +  LINUX_OR_ANDROID_LD (GNU_USER_TARGET_ENDFILE_SPEC, ANDROID_ENDFILE_SPEC)

The LINUX_OR_ANDROID_* definitions should be moved out of gnu-user.h, as this header is used for systems besides Linux, e.g., kFreeBSD and Hurd.  Please move these definitions to mips/linux-common.h, which will be a new file, similarly as i386 did in http://gcc.gnu.org/ml/gcc-patches/2012-04/msg00944.html .

>> Index: gcc/libgcc/unwind-dw2-fde-dip.c
>> ===================================================================
>> --- gcc.orig/libgcc/unwind-dw2-fde-dip.c	2012-04-03 17:07:28.000000000 -0700
>> +++ gcc/libgcc/unwind-dw2-fde-dip.c	2012-04-04 14:51:01.338074000 -0700
>> @@ -48,8 +48,9 @@
>> #include "gthr.h"
>> 
>> #if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \
>> -    && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \
>> -	|| (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG)))
>> +    && ((defined(__BIONIC__) && (defined(mips) || defined(__mips__))) \
>> +        || (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \
>> +	|| (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG))))
>> # define USE_PT_GNU_EH_FRAME
>> #endif

What is this change for?

Thank you,

--
Maxim Kuvyrkov
CodeSourcery / Mentor Graphics

  reply	other threads:[~2012-04-18  0:59 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <BCDE03C0-61B1-4C07-9E09-35A3E5C4BA38@codesourcery.com>
     [not found] ` <16285357-1E07-4D60-BD8D-2B2FE796609B@codesourcery.com>
     [not found]   ` <87sjgmm0rt.fsf@talisman.home>
     [not found]     ` <7C6479EB2BF52547AC332FD6034646DA01448C282D@exchdb03.mips.com>
     [not found]       ` <CA+=Sn1mYyCOusJWY9vswVA9k6Rm-goXPDxBvQYpXsh8zgJ30ng@mail.gmail.com>
     [not found]         ` <7C6479EB2BF52547AC332FD6034646DA01448C3ABE@exchdb03.mips.com>
     [not found]           ` <CA+=Sn1nDX8Yf+QE5VO+bQTiRpG25ZO-3PFp4QhkFN=8GEjMaJg@mail.gmail.com>
     [not found]             ` <7C6479EB2BF52547AC332FD6034646DA01448C3AEF@exchdb03.mips.com>
     [not found]               ` <B5CB78C8-D6D9-4E58-8A58-D95DE94A0AA7@codesourcery.com>
     [not found]                 ` <7C6479EB2BF52547AC332FD6034646DA01448C524E@exchdb03.mips.com>
2012-04-04 22:16                   ` Maxim Kuvyrkov
2012-04-18  0:59                     ` Maxim Kuvyrkov [this message]
2012-04-18  1:10                       ` Fu, Chao-Ying
2012-04-18  1:36                         ` Maxim Kuvyrkov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=DC934C10-B958-40D3-8782-5DDAD8B7F668@codesourcery.com \
    --to=maxim@codesourcery.com \
    --cc=fu@mips.com \
    --cc=gcc-patches@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).