public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: "H.J. Lu" <hjl.tools@gmail.com>
To: Ilya Enkovich <enkovich.gnu@gmail.com>
Cc: Maxim Kuvyrkov <maxim@codesourcery.com>,
	gcc-patches <gcc-patches@gcc.gnu.org>,
		pavel.v.chupin@gmail.com, Jing Yu <jingyu@google.com>
Subject: Re: [PATCH, i386, Android] -mandroid support for i386 target
Date: Mon, 02 Apr 2012 14:27:00 -0000	[thread overview]
Message-ID: <CAMe9rOpCvuWmBKGUBERS4O_W2k5a_1Wc5fHZScFR6-AUvukrbw@mail.gmail.com> (raw)
In-Reply-To: <CAMbmDYZMVhB92ZnK4t+NGzS3DYCeo+3DE3o3XRSJXrZ5DNtapA@mail.gmail.com>

On Mon, Apr 2, 2012 at 7:16 AM, Ilya Enkovich <enkovich.gnu@gmail.com> wrote:
>> On 2/04/2012, at 3:23 AM, Ilya Enkovich wrote:
>>
>>>> As is, it appears this patch did not see much testing, I'm pretty sure it breaks building shared libraries and PIE executable for Linux.
>>>
>>> I do not expect any changes in compiler behavior for non Android
>>> targets. I bootstrapped and checked patched compiler on linux-x86_64.
>>> I also built ptched compiler for Android target using NDK scripts.
>>
>> OK.
>>
>>>>
>>>> Here and in other instances below you use "GNU_USER_TARGET_" prefix.  I would prefer using a shorter "GNU_USER_" instead unless there is a good reason to add "TARGET" too.
>>>
>>> The reason is that some macroses are defined in other files and I just
>>> redefine them (i.e. GNU_USER_TARGET_CC1_SPEC). This prefix is also
>>> used for other targets (i.e. in linux-eabi.h). So I do not see a good
>>> reason to change it everywhere or mix it with other prefix
>>> "GNU_USER_".
>>
>> OK.
>>
>>>> Here you remove "%{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s".  Presumably, you are moving that to GNU_USER[_TARGET]_ENDFILE_SPEC, but you never define it.
>>>
>>> You are right. It is in GNU_USER_TARGET_ENDFILE_SPEC which is defined
>>> in gcc/config/gnu-user.h.
>>
>> OK.  I missed that GNU_USER_TARGET_ENDFILE_SPEC was already defined.
>>
>>>
>>>>
>>>>>
>>>>> /* A C statement (sans semicolon) to output to the stdio stream
>>>>>    FILE the assembler definition of uninitialized global DECL named
>>>>> diff --git a/gcc/config/i386/linux.h b/gcc/config/i386/linux.h
>>>>> index 73681fe..a832ddc 100644
>>>>> --- a/gcc/config/i386/linux.h
>>>>> +++ b/gcc/config/i386/linux.h
>>>>
>>>> i386/linux.h is used only for simple x86 32-bit builds; i386/linux64.h is used for multilib-enabled x86 toolchains.  Placing below definitions in i386/linux.h will not allow adding an Android as an additional multilib to -m32/-m64 x86 builds.  I improve on this situation I suggest:
>>>> - rename i386/linux.h to i386/linux32.h (with corresponding change to config.gcc),
>>>> - put below definitions to new i386/linux.h (remember to add license notice header to the new file),
>>>> - include i386/linux.h from both i386/linux32.h and i386/linux64.h.
>>>
>>> Android does not support x86_64 target and therefore I do not want
>>> -mandroid support for this target. When Android supports x86_64 target
>>> this change would be appropriate.
>>
>> The point is that one can build a toolchain for i686-linux-gnu that will support both 32-bit and 64-bit multilibs.  The 32-bit multilib will be used by default, and compilation for 64-bit user-space can be requested with -m64 option.  Even though Android is not supported for -m64, such a toolchain can support Android as a additional "-m32 -mandroid" multilib.  I.e., the toolchain will have three multilibs in total: "-m32" (default), "-m64" and "-m32 -mandroid".  I386/linux64.h will be picked up for such a toolchain, even though by default it would compile for 32-bit target.  Does this clear up things?
>>
>
> I think I see your point. And it seems to make all this work I'll also
> have to rename i386/gnu-user.h into i386/gnu-user32.h and create
> i386/gnu-user.h with common definitions to be included by
> gnu-user[32|64].h. Otherwise I wont be able to use some definitions
> (i.e. GNU_USER_TARGET_LINK_SPEC and GNU_USER_TARGET_MATHFILE_SPEC) in
> linux64.h. Right?
>

I think it is a good idea.

Thanks.

-- 
H.J.

  reply	other threads:[~2012-04-02 14:27 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-22 14:58 Ilya Enkovich
2012-02-22 17:50 ` H.J. Lu
2012-02-24 15:57   ` Ilya Enkovich
2012-02-24 16:17     ` H.J. Lu
2012-02-27 15:19       ` Ilya Enkovich
2012-03-13 11:13         ` Ilya Enkovich
2012-03-27 13:56           ` Ilya Enkovich
2012-03-28 22:58             ` Jing Yu
2012-03-29  4:21         ` Maxim Kuvyrkov
2012-04-01 15:23           ` Ilya Enkovich
2012-04-01 16:13             ` H.J. Lu
2012-04-01 19:33             ` Maxim Kuvyrkov
2012-04-02 14:16               ` Ilya Enkovich
2012-04-02 14:27                 ` H.J. Lu [this message]
2012-04-02 17:06                 ` Maxim Kuvyrkov
2012-04-03 10:50                   ` Ilya Enkovich
2012-04-03 14:56                     ` H.J. Lu
2012-04-03 19:42                       ` Maxim Kuvyrkov
2012-04-03 21:13                         ` Ilya Enkovich
2012-04-03 21:02                       ` Ilya Enkovich
2012-04-10 12:42                         ` Ilya Enkovich
2012-04-11 16:24                         ` H.J. Lu
2012-04-12 11:19                           ` Ilya Enkovich
2012-03-29 17:49         ` Jan Hubicka
2012-04-01 15:39           ` Ilya Enkovich
2012-04-01 19:40           ` 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=CAMe9rOpCvuWmBKGUBERS4O_W2k5a_1Wc5fHZScFR6-AUvukrbw@mail.gmail.com \
    --to=hjl.tools@gmail.com \
    --cc=enkovich.gnu@gmail.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=jingyu@google.com \
    --cc=maxim@codesourcery.com \
    --cc=pavel.v.chupin@gmail.com \
    /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).