Date: Fri, 5 Mar 2010 21:53:13 +0530 From: "C. Jayachandran" <c.jayachandran@gmail.com> To: "M. Warner Losh" <imp@bsdimp.com> Cc: freebsd-mips@freebsd.org Subject: Re: n64/n32 - build support patches Message-ID: <98a59be81003050823r57b5dc4alfc58018ffbb74731@mail.gmail.com> In-Reply-To: <20100305.081948.255476964173693445.imp@bsdimp.com> References: <98a59be81003050215m753799dbu35d2b2eab65e75db@mail.gmail.com> <20100305.081948.255476964173693445.imp@bsdimp.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Mar 5, 2010 at 8:49 PM, M. Warner Losh <imp@bsdimp.com> wrote: > CJ, > > Thanks for all the work in this area. =A0I know that Julie Mallett is > also working in this area, and I've done some work to clean up the > build system. =A0I'm afraid that we now have some conflicts between the > different efforts, and that it may take a little to resolve the > conflicts. This is okay, I can rebase the patch when the other efforts are in, (or can merge other efforts after this goes in). I need a base on which to start work on n64/n32 and I'm making my changes available as it may be useful for others working in the same area. Regards, JC. > In message: <98a59be81003050215m753799dbu35d2b2eab65e75db@mail.gmail.com> > =A0 =A0 =A0 =A0 =A0 =A0"C. Jayachandran" <c.jayachandran@gmail.com> write= s: > : I've updated the patches for building n64 and n32 kernel and > : userspace, =A0please review. The patches are: > : > : Tool chain support for n64 and n32:: > : http://sites.google.com/site/cjayachandran/files/n64-n32-toolchain.patc= h > > : This updates the gcc configuration =A0to provide the default ABI, linke= r > : scripts and endianness flags during n64/n32 and o32 builds. With this > : change, we don't need the -Wl, flags for linker emulation, the mabi > : flags or the -EB/-EL for compiler. > > This part of the patch looks good. > > : I had to add a make variable in TARGET_DEFINES in > : gnu/usr.bin/cc/Makefile.tgt and use that to pass the defaults while > : creating 'tm.h' - this change is not MIPS-specific. > > TARGET_DEFINES is OK. =A0I'm not sure about the other Makefile variables > and would like to find some way to not need them. > > : User/kernel build with n64 and n32: > : http://sites.google.com/site/cjayachandran/files/n64-n32-build.patch > : > : updated bsd.cpu.mk which does not set LDFLAGS, adds ldscript.mips.n32 > : and removes unnecessary flags from Makefile.mips. > > +.if ${MACHINE_ARCH} =3D=3D "mips" > +. if defined(TARGET_64BIT) > +. =A0if defined(TARGET_BIG_ENDIAN) > +LD +=3D -melf64btsmip_fbsd > +. =A0else > +LD +=3D =A0-melf64ltsmip_fbsd > +. =A0endif > +. elif defined(TARGET_N32) > +. =A0if defined(TARGET_BIG_ENDIAN) > +LD +=3D -melf32btsmipn32_fbsd > +. =A0else > +LD +=3D =A0-melf32ltsmipn32_fbsd > +. =A0endif > > I'd rather find some way to avoid adding TARGET_64BIT, TARGET_N32. > I've been working to eliminate TARGET_BIG_ENDIAN because it is proving > to be unworkable in practice, especially as these machines become more > self-hosting. > > If you don't mind, I'll pull in the parts that don't conflict with the > other work in this area, and we can then look at the harder problem of > which pieces of that goes in. > > Warner > --=20 C. Jayachandran c.jayachandran@gmail.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?98a59be81003050823r57b5dc4alfc58018ffbb74731>