Ping.
On Apr 4, 2012 at 1:02, Ilya Enkovich <enkovich....@gmail.com> wrote: >> On Tue, Apr 3, 2012 at 3:49 AM, Ilya Enkovich <enkovich....@gmail.com> wrote: >>>> On 3/04/2012, at 2:16 AM, Ilya Enkovich wrote: >>>> >>>>>> >>>>>> 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? >>>> >>>> It's simpler that you think. The target headers ($tm_file in config.gcc >>>> -- gnu-user.h, linux*.h, etc. in this case) are all included into tm.h, >>>> which serves as proxy to all those headers. All definitions made in >>>> preceding headers are available in subsequent headers. So, given that >>>> i386/gnu-user*.h precedes i386/linux*.h in config.gcc's $tm_file, you only >>>> need to touch linux*.h. >>>> >>>> Thanks, >>>> >>>> -- >>>> Maxim Kuvyrkov >>>> CodeSourcery / Mentor Graphics >>>> >>> >>> >>> Hi, >>> >>> I prepared version with common linux.h and gnu-user.h. Does it look OK? >>> >>> Bootstrapped and checked on linux-x86_64. >>> >> >> There are so many duplicates in gnu-user64.h and gnu-user32.h. >> Please move all of them to gnu-user.h. >> >> Thanks. >> >> -- >> H.J. > > Hi, > > Here is a new version with all gnu-user32.h and gnu-user64.h common > definitions moved to gnu-user.h. > > Bootstrapped and checked on linux-x86_64. > > Thanks, > Ilya > --- > 2012-04-04 Enkovich Ilya <ilya.enkov...@intel.com> > > * config/i386/linux.h: Renamed to ... > * config/i386/linux32.h: ... this. > > * config/i386/gnu-user.h: Renamed to ... > * config/i386/gnu-user32.h: ... this. > (CPP_SPEC): Removed. > (CC1_SPEC): Removed. > (ENDFILE_SPEC): Removed. > (DEFAULT_PCC_STRUCT_RETURN): Removed. > (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Removed. > (TARGET_OS_CPP_BUILTINS): Removed. > (LIBGCC2_HAS_TF_MODE): Removed. > (LIBGCC2_TF_CEXT): Removed. > (TF_SIZE): Removed. > (TARGET_ASM_FILE_END): Removed. > (STACK_CHECK_MOVING_SP): Removed. > (STACK_CHECK_STATIC_BUILTIN): Removed. > (TARGET_THREAD_SSP_OFFSET): Removed. > (TARGET_CAN_SPLIT_STACK): Removed. > (TARGET_THREAD_SPLIT_STACK_OFFSET): Removed. > (GNU_USER_TARGET_LINK_SPEC): New. > (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC. > > * config.gcc: Rename i386/linux.h to i386/linux32.h and > i386/gnu-user.h to i386/gnu-user32.h. > > * config/i386/linux.h: New. > > * config/i386/gnu-user.h: New. > > * config/i386/linux64.h: Include i386/linux.h. > > * config/i386/gnu-user64.h: Include i386/gnu-user.h > (CPP_SPEC): Removed. > (CC1_SPEC): Removed. > (ENDFILE_SPEC): Removed. > (DEFAULT_PCC_STRUCT_RETURN): Removed. > (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Removed. > (TARGET_OS_CPP_BUILTINS): Removed. > (LIBGCC2_HAS_TF_MODE): Removed. > (LIBGCC2_TF_CEXT): Removed. > (TF_SIZE): Removed. > (TARGET_ASM_FILE_END): Removed. > (STACK_CHECK_MOVING_SP): Removed. > (STACK_CHECK_STATIC_BUILTIN): Removed. > (TARGET_THREAD_SSP_OFFSET): Removed. > (TARGET_CAN_SPLIT_STACK): Removed. > (TARGET_THREAD_SPLIT_STACK_OFFSET): Removed. > (GNU_USER_TARGET_LINK_SPEC): New. > (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.