From owner-svn-src-user@FreeBSD.ORG Mon Mar 8 21:22:34 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A5FCD106566C; Mon, 8 Mar 2010 21:22:34 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 934388FC13; Mon, 8 Mar 2010 21:22:34 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o28LMY2r011480; Mon, 8 Mar 2010 21:22:34 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o28LMYEi011472; Mon, 8 Mar 2010 21:22:34 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201003082122.o28LMYEi011472@svn.freebsd.org> From: Juli Mallett Date: Mon, 8 Mar 2010 21:22:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r204888 - in user/jmallett/octeon: gnu/usr.bin/binutils/ld gnu/usr.bin/cc lib/libc sys/conf sys/mips/cavium sys/mips/conf X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Mar 2010 21:22:34 -0000 Author: jmallett Date: Mon Mar 8 21:22:34 2010 New Revision: 204888 URL: http://svn.freebsd.org/changeset/base/204888 Log: o) Add a TARGET_ABI flag which can be set to o32, n32 or n64. o) Select default ABI for GCC and emulation for binutils based on the value of TARGET_ABI at build time. o) Don't build quad support in libc for MIPS unless TARGET_ABI is o32. o) Don't specify emulation options gratuitously when building the kernel. o) Don't specify an ABI when building the kernel, though we are still stuck with ABI-specific loader scripts. o) Don't make any Octeon systems default to single user. Sponsored by: Packet Forensics Modified: user/jmallett/octeon/gnu/usr.bin/binutils/ld/Makefile.mips user/jmallett/octeon/gnu/usr.bin/cc/Makefile.inc user/jmallett/octeon/lib/libc/Makefile user/jmallett/octeon/sys/conf/Makefile.mips user/jmallett/octeon/sys/mips/cavium/octeon_machdep.c user/jmallett/octeon/sys/mips/conf/OCTEON1-32 user/jmallett/octeon/sys/mips/conf/OCTEON1-o32 Modified: user/jmallett/octeon/gnu/usr.bin/binutils/ld/Makefile.mips ============================================================================== --- user/jmallett/octeon/gnu/usr.bin/binutils/ld/Makefile.mips Mon Mar 8 21:17:10 2010 (r204887) +++ user/jmallett/octeon/gnu/usr.bin/binutils/ld/Makefile.mips Mon Mar 8 21:22:34 2010 (r204888) @@ -1,15 +1,22 @@ # $FreeBSD$ -#xxxIMPxxx: size? #xxxIMPxxx: TARGET_BIG_ENDIAN is lame. We should use the netbsd convention # of mipsel and mips. -_sz?=32 -.if defined(TARGET_BIG_ENDIAN) -NATIVE_EMULATION=elf${_sz}btsmip_fbsd +.if !defined(TARGET_BIG_ENDIAN) +_EMULATION_ENDIAN=l .else -NATIVE_EMULATION=elf${_sz}ltsmip_fbsd +_EMULATION_ENDIAN=b .endif +.if defined(TARGET_ABI) && ${TARGET_ABI} != "o32" +.if ${TARGET_ABI} == "n32" +NATIVE_EMULATION=elf32${_EMULATION_ENDIAN}tsmipn32_fbsd +.elif ${TARGET_ABI} == "n64" +NATIVE_EMULATION=elf64${_EMULATION_ENDIAN}tsmip_fbsd +.endif +.endif +NATIVE_EMULATION?=elf32${_EMULATION_ENDIAN}tsmip_fbsd + MIPS_ABIS=elf32btsmip_fbsd elf32ltsmip_fbsd elf64btsmip_fbsd elf64ltsmip_fbsd \ elf32btsmipn32_fbsd elf32ltsmipn32_fbsd .for abi in ${MIPS_ABIS} Modified: user/jmallett/octeon/gnu/usr.bin/cc/Makefile.inc ============================================================================== --- user/jmallett/octeon/gnu/usr.bin/cc/Makefile.inc Mon Mar 8 21:17:10 2010 (r204887) +++ user/jmallett/octeon/gnu/usr.bin/cc/Makefile.inc Mon Mar 8 21:22:34 2010 (r204888) @@ -30,10 +30,24 @@ CFLAGS+= -DLONG_TYPE_SIZE=${LONG_TYPE_SI CFLAGS+= -DCROSS_COMPILE .endif -.if ${TARGET_ARCH} == "mips" && !defined(TARGET_BIG_ENDIAN) +.if ${TARGET_ARCH} == "mips" +# XXX This is backwards, MIPS should default to BE. +.if !defined(TARGET_BIG_ENDIAN) CFLAGS += -DTARGET_ENDIAN_DEFAULT=0 .endif +.if defined(TARGET_ABI) && ${TARGET_ABI} != "o32" +.if ${TARGET_ABI} == "n32" +MIPS_ABI_DEFAULT=ABI_N32 +.elif ${TARGET_ABI} == "n64" +MIPS_ABI_DEFAULT=ABI_64 +.endif +.endif + +MIPS_ABI_DEFAULT?=ABI_32 +CFLAGS += -DMIPS_ABI_DEFAULT=${MIPS_ABI_DEFAULT} +.endif + .if defined(WANT_FORCE_OPTIMIZATION_DOWNGRADE) CFLAGS+= -DFORCE_OPTIMIZATION_DOWNGRADE=${WANT_FORCE_OPTIMIZATION_DOWNGRADE} .endif Modified: user/jmallett/octeon/lib/libc/Makefile ============================================================================== --- user/jmallett/octeon/lib/libc/Makefile Mon Mar 8 21:17:10 2010 (r204887) +++ user/jmallett/octeon/lib/libc/Makefile Mon Mar 8 21:22:34 2010 (r204888) @@ -55,6 +55,10 @@ NOASM= ${MACHINE_ARCH} != "mips" .include "${.CURDIR}/quad/Makefile.inc" .endif +.if ${MACHINE_ARCH} == "mips" && \ + (!defined(TARGET_ABI) || ${TARGET_ABI} == "o32") +.include "${.CURDIR}/quad/Makefile.inc" +.endif .include "${.CURDIR}/regex/Makefile.inc" .include "${.CURDIR}/resolv/Makefile.inc" .include "${.CURDIR}/stdio/Makefile.inc" @@ -65,8 +69,7 @@ NOASM= .include "${.CURDIR}/rpc/Makefile.inc" .include "${.CURDIR}/uuid/Makefile.inc" .include "${.CURDIR}/xdr/Makefile.inc" -.if ${MACHINE_ARCH} == "arm" || \ - ${MACHINE_ARCH} == "mips" +.if ${MACHINE_ARCH} == "arm" || ${MACHINE_ARCH} == "mips" .include "${.CURDIR}/softfloat/Makefile.inc" .endif .if ${MK_NIS} != "no" Modified: user/jmallett/octeon/sys/conf/Makefile.mips ============================================================================== --- user/jmallett/octeon/sys/conf/Makefile.mips Mon Mar 8 21:17:10 2010 (r204887) +++ user/jmallett/octeon/sys/conf/Makefile.mips Mon Mar 8 21:22:34 2010 (r204888) @@ -48,42 +48,6 @@ ARCH_FLAGS?=-march=mips32 EXTRA_FLAGS=-fno-pic -mno-abicalls -G0 HACK_EXTRA_FLAGS=-shared -.if defined(TARGET_BIG_ENDIAN) -CFLAGS+=-EB -SYSTEM_LD+=-EB -EXTRA_FLAGS+=-EB -TRAMP_LDFLAGS+=-Wl,-EB -HACK_EXTRA_FLAGS+=-EB -Wl,-EB -.if defined(TARGET_64BIT) -SYSTEM_LD+=-m elf64btsmip_fbsd -HACK_EXTRA_FLAGS+=-Wl,-m,elf64btsmip_fbsd -.endif -.if defined(TARGET_N32) -SYSTEM_LD+=-m elf32btsmipn32_fbsd -HACK_EXTRA_FLAGS+=-Wl,-m,elf32btsmipn32_fbsd -.else -SYSTEM_LD+=-m elf32btsmip_fbsd -HACK_EXTRA_FLAGS+=-Wl,-m,elf32btsmip_fbsd -.endif -.else -CFLAGS+=-EL -SYSTEM_LD+=-EL -EXTRA_FLAGS+=-EL -TRAMP_LDFLAGS+=-Wl,-EL -HACK_EXTRA_FLAGS+=-EL -Wl,-EL -.if defined(TARGET_64BIT) -SYSTEM_LD+=-m elf64ltsmip_fbsd -HACK_EXTRA_FLAGS+=-Wl,-m,elf64ltsmip_fbsd -.endif -.if defined(TARGET_N32) -SYSTEM_LD+=-m elf32ltsmipn32_fbsd -HACK_EXTRA_FLAGS+=-Wl,-m,elf32ltsmipn32_fbsd -.else -SYSTEM_LD+=-m elf32ltsmip_fbsd -HACK_EXTRA_FLAGS+=-Wl,-m,elf32ltsmip_fbsd -.endif -.endif - # We add the -fno-pic flag to kernels because otherwise performance # is extremely poor, as well as -mno-abicalls to force no ABI usage. Modified: user/jmallett/octeon/sys/mips/cavium/octeon_machdep.c ============================================================================== --- user/jmallett/octeon/sys/mips/cavium/octeon_machdep.c Mon Mar 8 21:17:10 2010 (r204887) +++ user/jmallett/octeon/sys/mips/cavium/octeon_machdep.c Mon Mar 8 21:22:34 2010 (r204888) @@ -730,10 +730,6 @@ platform_start(__register_t a0, __regist { uint64_t platform_counter_freq; -#if defined(__mips_o32) - boothowto |= RB_SINGLE; -#endif - /* Initialize pcpu stuff */ mips_pcpu0_init(); mips_timer_early_init(OCTEON_CLOCK_DEFAULT); Modified: user/jmallett/octeon/sys/mips/conf/OCTEON1-32 ============================================================================== --- user/jmallett/octeon/sys/mips/conf/OCTEON1-32 Mon Mar 8 21:17:10 2010 (r204887) +++ user/jmallett/octeon/sys/mips/conf/OCTEON1-32 Mon Mar 8 21:22:34 2010 (r204888) @@ -24,8 +24,7 @@ ident OCTEON1 # Don't build any modules yet. makeoptions MODULES_OVERRIDE="" makeoptions TARGET_BIG_ENDIAN=defined -makeoptions TARGET_N32=defined -makeoptions ARCH_FLAGS="-march=mips64 -mabi=n32" +makeoptions ARCH_FLAGS="-march=mips64" makeoptions LDSCRIPT_NAME=ldscript.mips.octeon1.n32 makeoptions KERNLOADADDR=0xffffffff81000000 Modified: user/jmallett/octeon/sys/mips/conf/OCTEON1-o32 ============================================================================== --- user/jmallett/octeon/sys/mips/conf/OCTEON1-o32 Mon Mar 8 21:17:10 2010 (r204887) +++ user/jmallett/octeon/sys/mips/conf/OCTEON1-o32 Mon Mar 8 21:22:34 2010 (r204888) @@ -24,7 +24,7 @@ ident OCTEON1 # Don't build any modules yet. makeoptions MODULES_OVERRIDE="" makeoptions TARGET_BIG_ENDIAN=defined -makeoptions ARCH_FLAGS="-march=mips64 -mabi=32" +makeoptions ARCH_FLAGS="-march=mips64" makeoptions LDSCRIPT_NAME=ldscript.mips.octeon1.32 makeoptions KERNLOADADDR=0xffffffff81000000