This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH [1/n] X32: Add initial -x32 support


On Thu, Jul 7, 2011 at 6:21 AM, Paolo Bonzini <bonzini@gnu.org> wrote:
> Did you even _think_ of looking at the sh configury, and do something
> vaguely similar for x86?
>
> You should not duplicate t-linux64 at all. ?Instead, in config.gcc set
> m64/m32 as the default value for with_multilib_list on i386 biarch and
> x86_64. ?Pass $with_multilib_list to t-linux64 using
> TM_MULTILIB_CONFIG. ?Then, do something like
>
> comma=,
> MULTILIB_OPTIONS ? ?= $(subst $(comma),/,@TM_MULTILIB_CONFIG@)
> MULTILIB_DIRNAMES ? = $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTIONS)))
> MULTILIB_OSDIRNAMES ?= 64=../lib64
> MULTILIB_OSDIRNAMES += 32=$(if $(wildcard $(shell echo
> $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)
> MULTILIB_OSDIRNAMES += x32=../libx32
>
> in config/t-linux64. ?(Each on one line, apologies for any wrapping)
>
> The option will be used as --with-multilib-list=m64,m32,mx32 (allowing
> the user to omit some of the variants, too).
>

This is an excellent suggestion.  Here is the updated patch. It
uses TM_MULTILIB_CONFIG and removes config/i386/t-linux-x32.

Uros, is this OK for trunk to replace the patch you approved earlier?

Thanks.

-- 
H.J.
---
2011-07-07  H.J. Lu  <hongjiu.lu@intel.com>

	* config.gcc: Support --with-multilib-list for x86 Linux
	targets.

	* configure.ac: Mention x86-64 for --with-multilib-list.
	* configure: Regenerated.

	* config/i386/gnu-user64.h (SPEC_64): Support x32.
	(SPEC_32): Likewise.
	(ASM_SPEC): Likewise.
	(LINK_SPEC): Likewise.
	(TARGET_THREAD_SSP_OFFSET): Likewise.
	(TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
	(SPEC_X32): New.

	* config/i386/i386.h (TARGET_X32): New.
	(TARGET_LP64): New.
	(LONG_TYPE_SIZE): Likewise.
	(POINTER_SIZE): Likewise.
	(POINTERS_EXTEND_UNSIGNED): Likewise.
	(OPT_ARCH64): Support x32.
	(OPT_ARCH32): Likewise.

	* config/i386/i386.opt (mx32): New.

	* config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
	(GLIBC_DYNAMIC_LINKERX32): Likewise.
	* config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
	(GLIBC_DYNAMIC_LINKERX32): Likewise.

	* config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
	(BIONIC_DYNAMIC_LINKERX32): Likewise.
	(GNU_USER_DYNAMIC_LINKERX32): Likewise.

	* config/i386/t-linux64: Support TM_MULTILIB_CONFIG.

	* doc/install.texi: Document --with-multilib-list for
	Linux/x86-64.

	* doc/invoke.texi: Document -mx32.

Attachment: gcc-x32-5.patch
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]