Subject: New crosscompile kit
To: None <port-sh3@netbsd.org>
From: SAITOH Masanobu <masanobu@iij.ad.jp>
List: port-sh3
Date: 02/26/2001 19:07:50
 I made new patches for binutils-2.9.1.0.25 and egcs-1.1.2:

	ftp://ftp.netbsd.org/pub/NetBSD/arch/sh3/crosskit/20010226/shcrosskit20010226-1.tgz


 XXX THIS PATCH WAS MADE FROM MY WORKING DIRECTORY. THERE ARE SOME PROBLEMS:

		1) ELF is fixed not to leading underscore
			(cvs tree's version is automatically selected
			 by __LEADING_UNDERSCORE which defined in
			 both sh3/include/cdefs.h and sh3/include/asm.h.
			 So if you make ELF version, eliminate
			 __LEADING_UNDERSCORE from sh3/include/cdefs.h and
			 sh3/include/asm.h)

		2) It may fail on compiling c++ sources.

So I recommend to make compiler to built COFF.

----------------------------------------------------------------

HOW TO MAKE THE CROSS COMPILE ENVIRONMENT

	1) get patches from

                ftp://ftp.netbsd.org/pub/NetBSD/arch/sh3/crosskit/20010226/

	   this archive contains following diffs:

		binutils-2.9.1.0.25-netbsdsh-20010226-0.dif

			patch for binutils-2.9.1.0.25


		egcs-1.1.2-netbsdsh-20010226-0.dif

			patch for egcs-1.1.2

		egcs-1.1.2-netbsdsh-20010226-1.dif

			patch for egcs-1.1.2 to build libgcc.a
			This patch is optional because libgcc.a will be
			built from NetBSD's source tree.

			If you apply this patch,
				1) read this diff and apply it by
				   hand appropriately

				or

				2) edit this diff directly and
				   apply it

			If you don't apply this diff, you will fail
			on compiling egcs, but it's no problem. After
			error occured, simply type "make install"

        2) make binutils

                Extract binutils and patch.

                Apply diff:
			cd binutils-2.9.1.0.25
			patch -p0 < binutils-2.9.1.0.25-netbsdsh-20010226-0.dif

		Configure:
	                ./configure --target=sh-xxx-netbsdcoff
	                        or
	                ./configure --target=shel-xxx-netbsdcoff
	                        or
	                ./configure --target=sh-xxx-netbsdelf
	                        or
	                ./configure --target=shel-xxx-netbsdelf

                make
                make install

        3) preliminary arrange your environment

		3-1) build script

		copy sh3/conf/build-sh3.eb or build-sh3.el into your path.

		modify build-sh3:

			MACHINE		(evbsh3, dreamcast or hpcsh)
			MACHINE_ARCH	(sh3eb or sh3el)
			TARGET		(target name
					  (e.g shel-dreamcast-netbsdcoff))
			CPP		(SEE COMMENTS)

		3-2) include files

		setenv DESTDIR /cross/compile/destination/directory
		mtree -def /etc/mtree/NetBSD.dist -p $DESTDIR -u
		cd $DESTDIR/usr
		rm -rf lib include
		ln -s /usr/local/TARGET_NAME/include .
		ln -s /usr/local/TARGET_NAME/lib .
		cd /usr/src
		build-sh3 includes

        4) make egcs

                Do:

			cd /usr/local/TARGET_NAME
			ln -s include sys-include

	                (for limits.h)

                Extract egcs and patch

		cd egcs-1.1.2
		patch -p0 < egcs-1.1.2-netbsdsh-20010226-0.dif

                Patch egcs-1.1.2-netbsdsh-20010226-1.dif appropriately

                ./configure --target=sh-xxx-netbsdcoff
                        or
                ./configure --target=shel-xxx-netbsdcoff
                        or
                ./configure --target=sh-xxx-netbsdelf
                        or
                ./configure --target=shel-xxx-netbsdelf

                make	(if you encounterd compile error, ignore it)[*1]
                make install

                cd /usr/local/lib/gcc-lib/TARGET_NAME/EGCS_VERSION/
                rm *.a */*.a */*/*.a	(Don't forget) [*2]
		rm -rf include		(Don't forget) [*2]

	5) [OPTIONAL] compile crt*

		cd /usr/src/lib/csu
		make dependall
		make install

		After you compiled and installed crt0, you will be
		able to compile egcs without errors.

	[*1]	You will see some compiler errors if:

			1) you have no crt0.o yet
			2) egcs-1.1.2-netbsdsh-20010226-1.dif isn't applied

	[*2]	The reason why we have to delete there files,
		we use /usr/local/TARGET_NAME/{include,lib}.

----------------------------------------------------------
		SAITOH Masanobu (masanobu@iij.ad.jp
				  msaitoh@netbsd.org)