From mboxrd@z Thu Jan 1 00:00:00 1970 From: rearnsha@gcc.gnu.org To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org Subject: Re: target/2032 Date: Thu, 03 May 2001 03:16:00 -0000 Message-id: <20010503101601.9758.qmail@sourceware.cygnus.com> X-SW-Source: 2001-05/msg00091.html List-Id: The following reply was made to PR target/2032; it has been noted by GNATS. From: rearnsha@gcc.gnu.org To: ericy@iname.com, ericy@sakura.com.tw, gcc-gnats@gcc.gnu.org, nobody@gcc.gnu.org Cc: Subject: Re: target/2032 Date: 3 May 2001 10:12:08 -0000 Synopsis: The bugs in libgcc2.c when building x86 to ARM cross compiler State-Changed-From-To: feedback->closed State-Changed-By: rearnsha State-Changed-When: Thu May 3 03:12:08 2001 State-Changed-Why: No further feedback http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=2032&database=gcc From mboxrd@z Thu Jan 1 00:00:00 1970 From: rearnsha@gcc.gnu.org To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org Subject: Re: target/2032 Date: Sun, 01 Apr 2001 00:00:00 -0000 Message-id: <20010221164601.2076.qmail@sourceware.cygnus.com> X-SW-Source: 2001-q1/msg01567.html List-Id: The following reply was made to PR target/2032; it has been noted by GNATS. From: rearnsha@gcc.gnu.org To: ericy@iname.com, ericy@sakura.com.tw, gcc-gnats@gcc.gnu.org, nobody@gcc.gnu.org Cc: Subject: Re: target/2032 Date: 21 Feb 2001 16:42:27 -0000 Synopsis: The bugs in libgcc2.c when building x86 to ARM cross compiler State-Changed-From-To: open->feedback State-Changed-By: rearnsha State-Changed-When: Wed Feb 21 08:42:26 2001 State-Changed-Why: There is insufficient information here to reproduce the problem. How did you configure the compiler; precisely what command was being run when the compiler died. If the problem persists, please send pre-processed source code for us to analyse. http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=2032&database=gcc From mboxrd@z Thu Jan 1 00:00:00 1970 From: "=?big5?B?QnJhbmRvbiBZYW5nILeortG7yg==?=" To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org Subject: Re: target/2032 Date: Sun, 01 Apr 2001 00:00:00 -0000 Message-id: <20010222100601.10556.qmail@sourceware.cygnus.com> X-SW-Source: 2001-q1/msg01581.html List-Id: The following reply was made to PR target/2032; it has been noted by GNATS. From: "=?big5?B?QnJhbmRvbiBZYW5nILeortG7yg==?=" To: , Cc: Subject: Re: target/2032 Date: Thu, 22 Feb 2001 17:54:02 +0800 This is a multi-part message in MIME format. ------=_NextPart_000_0006_01C09CF8.70C735E0 Content-Type: multipart/alternative; boundary="----=_NextPart_001_0007_01C09CF8.70C735E0" ------=_NextPart_001_0007_01C09CF8.70C735E0 Content-Type: text/plain; charset="big5" Content-Transfer-Encoding: quoted-printable http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=3Dview%26pr=3D2032%26database=3D= gcc Thank you for your help. I use the script file "make-cross.sh" to build cross compiler. =20 Yours sincerely, Brandon Yang ------=_NextPart_001_0007_01C09CF8.70C735E0 Content-Type: text/html; charset="big5" Content-Transfer-Encoding: quoted-printable
 
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=3Dview%26pr=3D2= 032%26database=3Dgcc
 
Thank you for your = help.
I use the script file = "make-cross.sh" to build cross=20 compiler.
 
 
 

Yours sincerely,

Brandon Yang

------=_NextPart_001_0007_01C09CF8.70C735E0-- ------=_NextPart_000_0006_01C09CF8.70C735E0 Content-Type: application/octet-stream; name="make-cross.sh" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="make-cross.sh" #! /bin/bash=0A= =0A= # Build a cross-toolchain for target $TARGET. It expects $BASE_PATH/src = to=0A= # contain $BINUTILS-$BINUTILS_VERSION.EXTN, $GCC-$GCC_VERSION.EXTN,=0A= # and $LIBC-$LIBC_VERSION.EXTN. Any type of tar-based archive is fine.=0A= # If you are building libc you will also need $LINUX-$LINUX_VERSION.EXTN.=0A= # Optional patches may be compressed or not and are expected to apply to=0A= # the source tree from within $PACKAGE-$VERSION with -pX. Patch names=0A= # may not contain a % character (oh damn, I'll have to rename all my = patches!).=0A= =0A= # USAGE: make-cross.sh [[binutils] [gcc] [libc] [destroy]] [restart] = [kernel]=0A= # If no options are given, all parts of the toolchain are rebuilt and any=0A= # existing toolchain is replaced. Specifying one or more parts will build=0A= # only those parts (any previous must exist already). Specifying destroy=0A= # will blow away the existing toolchain before building - you probably = should=0A= # not use this if you are only building gcc or glibc for example.=0A= # The restart option does not destroy existing sources and object files, = but=0A= # relies on package makefiles to do the right things. This is useful if = you're=0A= # hacking the toolchain. Note that if a package was not properly = extracted=0A= # or patched you probably don't want this option.=0A= =0A= # What shall we build for?=0A= TARGET=3Darmv5-linux=0A= TGT_LINARCH=3Darmv5=0A= =0A= # Contains the src/ directory with sources and patches=0A= # $BASE_PATH/src/$PACKAGE-$VERSION/ will be created during the build = process.=0A= BASE_PATH=3D/scratch/crossdev-build=0A= =0A= # The directory to build in. $BUILD_PATH/$TARGET/$PACKAGE-$VERSION-obj = will=0A= # be created during the build process.=0A= BUILD_PATH=3D"$BASE_PATH"=0A= =0A= # Where to install. $INST_PREFIX/$TARGET will be created for you.=0A= INST_PREFIX=3D/scratch/crossdev=0A= =0A= # Environment variables to be passed to configure for all packages.=0A= GLOBAL_ENV=3D=0A= =0A= # Arguments to be passed to configure for all packages.=0A= GLOBAL_ARGS=3D=0A= =0A= # Empty unless building on sparc64-linux=0A= #SPARC32=3Dsparc32=0A= =0A= # Number of CPUs in this box. Set to 0, not 1, for UP=0A= CPUS=3D0=0A= =0A= # Package names and any patches you want applied.=0A= BINUTILS=3Dbinutils=0A= GCC=3Dgcc=0A= LIBC=3Dglibc=0A= LINUX=3Dlinux=0A= BINUTILS_VERSION=3D010118=0A= GCC_VERSION=3D20010122=0A= LIBC_VERSION=3D2.2.1=0A= LINUX_VERSION=3D2.2.12=0A= =0A= # Patches are in src/ and should be expressed as name%%X, where X is the = -pX=0A= # option to pass to patch. Patches are applied within the source tree; = that is,=0A= # in src/package-version/.=0A= #BINUTILS_PATCHES=3D=0A= #GCC_PATCHES=3D"gcse-regcopy.diff%%1 gcc-sizet.diff%%1"=0A= #LIBC_PATCHES=3D"glibc-fcr31.diff%%1"=0A= #LINUX_PATCHES=3D"compile-bits-000708.diff%%0 = kernel-newcpp-000707.diff%%0 timers-000707.diff%%0"=0A= =0A= # Build environment. Probably this is all fine.=0A= BINUTILS_ENV=3D"CC=3Dcc"=0A= BINUTILS_ARGS=3D=0A= GCC_ENV=3D"AR=3D$TARGET-ar RANLIB=3D$TARGET-ranlib"=0A= GCC_ARGS=3D"--enable-shared --with-newlib --enable-languages=3Dc"=0A= LIBC_ENV=3D"CC=3D$TARGET-gcc BUILD_CC=3Dcc AR=3D$TARGET-ar = RANLIB=3D$TARGET-ranlib"=0A= LIBC_ARGS=3D"--enable-kernel=3D2.2.12 --enable-add-ons --with-elf = --disable-profile"=0A= =0A= # --- END ---=0A= =0A= SRC_PATH=3D"$BASE_PATH/src"=0A= TAR=3Dtar=0A= TAR_FLAGS=3Dx=0A= EXTNS=3D".tar.bz2 .tar.gz .tar.z .tar.Z .tgz .tbz2 .tbz .taz .tar"=0A= =0A= #function extract () {=0A= # for extn in $(echo $EXTNS); do=0A= # if [ -f "$SRC_PATH/$1$extn" ]; then=0A= # case "$extn" in=0A= # .tar.bz2|.tbz2|.tbz)=0A= # TAR_FLAGS=3D"$TAR_FLAGS"I=0A= # ;;=0A= # .tar)=0A= # ;;=0A= # *)=0A= # TAR_FLAGS=3D"$TAR_FLAGS"z=0A= # ;;=0A= # esac=0A= # _extract_pkg_file=3D"$SRC_PATH/$1$extn"=0A= # echo "Extracting $_extract_pkg_file as a $extn package"=0A= # $TAR "${TAR_FLAGS}f" "$_extract_pkg_file"=0A= # return=0A= # fi=0A= # done=0A= # echo "Sorry no package $1 found"=0A= # exit 1=0A= #}=0A= =0A= #function apply_patch () {=0A= # # Extract the -pX option from the name=0A= # level=3D$(echo "$1" | sed -e s/.*%%//)=0A= # patch=3D$(echo "$1" | sed -e s/%%.*//)=0A= # if [ -f "$SRC_PATH/$patch" ]; then=0A= # echo -n "Applying patch $patch with -p$level "=0A= # case "$patch" in=0A= # *.*bz*)=0A= # echo "as a bzip2'd patch"=0A= # bzcat "$SRC_PATH/$patch" | patch -p$level=0A= # return=0A= # ;;=0A= # *Z|*z)=0A= # echo "as a gzip'd patch"=0A= # zcat "$SRC_PATH/$patch" | patch -p$level=0A= # return=0A= # ;;=0A= # *)=0A= # echo "as a plain patch"=0A= # patch -p$level < "$SRC_PATH/$patch"=0A= # return=0A= # ;;=0A= # esac=0A= # fi=0A= # echo "Sorry, no such patch $patch"=0A= # exit 1=0A= #}=0A= =0A= keep_old=3Dyes=0A= restart=3Dno=0A= =0A= arg_count=3D"$#"=0A= =0A= build_binutils=3Dno=0A= build_gcc=3Dno=0A= build_libc=3Dno=0A= build_kernel=3Dno=0A= =0A= while [ "$#" -gt 0 ]; do=0A= case "$1" in=0A= *libc)=0A= build_libc=3Dyes=0A= ;;=0A= *gcc)=0A= build_gcc=3Dyes=0A= ;;=0A= *binutils)=0A= build_binutils=3Dyes=0A= ;;=0A= *destroy)=0A= keep_old=3Dno=0A= ;;=0A= *restart)=0A= restart=3Dyes=0A= ;;=0A= *kernel)=0A= build_kernel=3Dyes=0A= ;;=0A= esac=0A= shift=0A= done=0A= =0A= if [ "$build_binutils$build_gcc$build_libc$build_kernel" =3D "nononono" = ]; then=0A= build_binutils=3Dyes=0A= build_gcc=3Dyes=0A= build_libc=3Dyes=0A= build_kernel=3Dyes=0A= fi=0A= =0A= if [ -d "${INST_PREFIX}/$TARGET" ] && [ "$keep_old" !=3D "yes" ]; then=0A= rm -rf "${BUILD_PATH}/${TARGET}"=0A= fi=0A= =0A= if [ "$build_binutils" !=3D "no" ] && [ "$restart" !=3D "yes" ]; then=0A= #rm -rf "${SRC_PATH}/${BINUTILS}-${BINUTILS_VERSION}"=0A= cd "${SRC_PATH}" || exit 1=0A= #for _patch in $(echo "$BINUTILS_PATCHES"); do=0A= # cd "${SRC_PATH}/${BINUTILS}-${BINUTILS_VERSION}" \=0A= # && apply_patch "$_patch" || exit 1=0A= #done=0A= fi=0A= =0A= if [ "$build_gcc" !=3D "no" ] && [ "$restart" !=3D "yes" ]; then=0A= #rm -rf "${SRC_PATH}/${GCC}-${GCC_VERSION}"=0A= cd "${SRC_PATH}" || exit 1=0A= #for _patch in $(echo "$GCC_PATCHES"); do=0A= # cd "${SRC_PATH}/${GCC}-${GCC_VERSION}" \=0A= # && apply_patch "$_patch" || exit 1=0A= #done=0A= fi=0A= =0A= if [ "$build_libc" !=3D "no" ] && [ "$restart" !=3D "yes" ]; then=0A= #rm -rf "${SRC_PATH}/${LIBC}-${LIBC_VERSION}"=0A= cd "${SRC_PATH}" || exit 1=0A= #for _patch in $(echo "$LIBC_PATCHES"); do=0A= # cd "${SRC_PATH}/${LIBC}-${LIBC_VERSION}" \=0A= # && apply_patch "$_patch" || exit 1=0A= #done=0A= fi=0A= =0A= if [ "$build_libc" !=3D "no" -o "$build_kernel" !=3D "no" ] \=0A= && [ "$restart" !=3D "yes" ]; then=0A= #rm -rf "${SRC_PATH}/${LINUX}-${LINUX_VERSION}"=0A= cd "${SRC_PATH}" || exit 1=0A= #for _patch in $(echo "$LINUX_PATCHES"); do=0A= # cd "${SRC_PATH}/${LINUX}-${LINUX_VERSION}" \=0A= # && apply_patch "$_patch" || exit 1=0A= #done=0A= fi=0A= =0A= export PATH=3D"$PATH:${INST_PREFIX}/${TARGET}/bin"=0A= if [ "$build_binutils" !=3D "no" ]; then=0A= _srcdir=3D"${SRC_PATH}/${BINUTILS}-${BINUTILS_VERSION}"=0A= = _builddir=3D"${BUILD_PATH}/${TARGET}/${BINUTILS}-${BINUTILS_VERSION}-obj"=0A= echo "Building $BINUTILS $BINUTILS_VERSION from $_srcdir in $_builddir"=0A= =0A= if [ "$restart" !=3D "yes" ]; then=0A= rm -rf "${_builddir}"=0A= fi=0A= =0A= mkdir -p "${_builddir}" || exit 1=0A= cd "${_builddir}" || exit 1=0A= =0A= env $(echo $GLOBAL_ENV $BINUTILS_ENV) $SPARC32 \=0A= "${_srcdir}/configure" "--prefix=3D$INST_PREFIX/${TARGET}" \=0A= "--target=3D$TARGET" $GLOBAL_ARGS $BINUTILS_ARGS || exit 1=0A= =0A= $SPARC32 make MAKE=3D"make -j$(($CPUS + 1))" || exit 1=0A= =0A= echo "Installing $BINUTILS $BINUTILS_VERSION in $INST_PREFIX/$TARGET"=0A= $SPARC32 make install || exit 1=0A= fi=0A= =0A= if [ "$build_gcc" !=3D "no" ]; then=0A= _srcdir=3D"${SRC_PATH}/${GCC}-${GCC_VERSION}"=0A= _builddir=3D"${BUILD_PATH}/${TARGET}/${GCC}-${GCC_VERSION}-obj"=0A= echo "Building $GCC $GCC_VERSION from $_srcdir in $_builddir"=0A= =0A= if [ "$restart" !=3D "yes" ]; then=0A= rm -rf "${_builddir}"=0A= fi=0A= =0A= mkdir -p "${_builddir}" || exit 1=0A= cd "${_builddir}" || exit 1=0A= =0A= env $(echo $GLOBAL_ENV $GCC_ENV) $SPARC32 \=0A= "${_srcdir}/configure" "--prefix=3D$INST_PREFIX/$TARGET" \=0A= "--target=3D$TARGET" $GLOBAL_ARGS $GCC_ARGS || exit 1=0A= =0A= $SPARC32 make LANGUAGES=3Dc ALL_TARGET_MODULES=3D \=0A= CONFIGURE_TARGET_MODULES=3D INSTALL_TARGET_MODULES=3D \=0A= SUBDIRS=3D"libiberty gcc" MAKE=3D"make -j$(($CPUS + 1))" || exit 1=0A= =0A= # I think this should just be $SPARC32 make ??? But it works. ???=0A= echo "Installing $GCC $GCC_VERSION in $INST_PREFIX/$TARGET"=0A= $SPARC32 make -C gcc \=0A= LANGUAGES=3Dc ALL_TARGET_MODULES=3D SUBDIRS=3D"libiberty gcc" \=0A= CONFIGURE_TARGET_MODULES=3D INSTALL_TARGET_MODULES=3D install || exit 1=0A= fi=0A= =0A= if [ "$build_libc" !=3D "no" ]; then=0A= _srcdir=3D"${SRC_PATH}/${LIBC}-${LIBC_VERSION}"=0A= _builddir=3D"${BUILD_PATH}/${TARGET}/${LIBC}-${LIBC_VERSION}-obj"=0A= _instdir=3D"${BUILD_PATH}/${TARGET}/${LIBC}-${LIBC_VERSION}-inst"=0A= _destdir=3D"${INST_PREFIX}/$TARGET"=0A= =0A= echo "Installing linux headers from = ${SRC_PATH}/${LINUX}-${LINUX_VERSION}/include to = ${INST_PREFIX}/${TARGET}/${TARGET}/include"=0A= # The only reason we even need linux here is for the asm headers and=0A= # the linux headers. So copy them out and go on.=0A= mkdir -p "${INST_PREFIX}/${TARGET}/${TARGET}/include" || exit 1=0A= rm -rf "${INST_PREFIX}/${TARGET}/${TARGET}/include/asm"=0A= rm -rf "${INST_PREFIX}/${TARGET}/${TARGET}/include/linux"=0A= cd ${SRC_PATH}/${LINUX}-${LINUX_VERSION} && make ARCH=3D"$TGT_LINARCH" \=0A= oldconfig include/linux/version.h || exit 1=0A= cp -rd \=0A= "${SRC_PATH}/${LINUX}-${LINUX_VERSION}/include/asm-${TGT_LINARCH}" \=0A= "${INST_PREFIX}/${TARGET}/${TARGET}/include/asm" || exit 1=0A= cp -rd \=0A= "${SRC_PATH}/${LINUX}-${LINUX_VERSION}/include/linux" \=0A= "${INST_PREFIX}/${TARGET}/${TARGET}/include/linux" || exit 1=0A= =0A= echo "Building $LIBC $LIBC_VERSION from $_srcdir in $_builddir"=0A= =0A= if [ "$restart" !=3D "yes" ]; then=0A= rm -rf "${_builddir}"=0A= fi=0A= =0A= mkdir -p "${_builddir}" && mkdir -p "${_instdir}" || exit 1=0A= cd "${_builddir}" || exit 1=0A= =0A= env $(echo $GLOBAL_ENV $LIBC_ENV) $SPARC32 \=0A= "${_srcdir}/configure" "--prefix=3D/usr" "--host=3D$TARGET" \=0A= "--with-headers=3D${INST_PREFIX}/$TARGET/$TARGET/include" \=0A= $GLOBAL_ARGS $LIBC_ARGS || exit 1=0A= =0A= $SPARC32 make PARALLELMFLAGS=3D-j$(($CPUS + 1)) || exit 1=0A= =0A= echo "Installing $LIBC $LIBC_VERSION in $instdir"=0A= $SPARC32 make install install_root=3D${_instdir} || exit 1=0A= =0A= echo "Installing $LIBC $LIBC_VERSION into $_destdir/$TARGET"=0A= cd "${_instdir}/usr/include" && \=0A= (find . -print | cpio -pumd "${_destdir}/$TARGET/include") \=0A= || exit 1=0A= cd "${_instdir}/usr/lib" && \=0A= (find . -print | cpio -pumd "${_destdir}/$TARGET/lib") || exit 1=0A= cd "${_instdir}/lib" && \=0A= (find . -print | cpio -pumd "${_destdir}/$TARGET/lib") || exit 1=0A= =0A= # *sigh* This is the fun part. We need to fix up libc.so so that=0A= # it points to files in our filesystem, not the mythical /usr dirs=0A= # we would have if this were native.=0A= echo "Fixing up libc.so locations"=0A= sed -e s%/lib/libc.so.6%"${_destdir}/$TARGET/lib/libc.so.6"%g \=0A= -e s%/usr/lib/%"${_destdir}/$TARGET/lib/"%g \=0A= < "${_destdir}/$TARGET/lib/libc.so" \=0A= > "${_destdir}/$TARGET/lib/.new.libc.so" || exit 1=0A= mv -f "${_destdir}/$TARGET/lib/.new.libc.so" \=0A= "${_destdir}/$TARGET/lib/libc.so" || exit 1=0A= =0A= echo "Creating install package = ${BUILD_PATH}/${TARGET}/${LIBC}-${LIBC_VERSION}-inst.tar.gz"=0A= cd "$_instdir" && tar czf "../${LIBC}-${LIBC_VERSION}-inst.tar.gz" . \=0A= || exit 1=0A= rm -rf "${_instdir}"=0A= fi=0A= =0A= echo "All done, successfully built a cross-environment for $TARGET"=0A= =0A= # The kernel has already been unpacked for us, just go.=0A= while [ "$build_kernel" !=3D "no" ]; do=0A= echo -n "Enter a tag to associate with the kernel (eg. IP22-4400): "=0A= read kernel_tag=0A= =0A= make_target=3Dboot=0A= out_elf=3D"vmlinux-${LINUX_VERSION}-${kernel_tag}"=0A= out_ecoff=3D"vmlinux.ecoff-${LINUX_VERSION}-${kernel_tag}"=0A= out_bzimage=3D"bzImage-${LINUX_VERSION}-${kernel_tag}"=0A= out_config=3D"linux.config-${LINUX_VERSION}-${kernel_tag}"=0A= out_map=3D"System.map-${LINUX_VERSION}-${kernel_tag}"=0A= = out_archive=3D"${BUILD_PATH}/${TARGET}/${LINUX}-${LINUX_VERSION}-${kernel= _tag}.tar.gz"=0A= echo "This will produce"=0A= echo "$out_archive"=0A= echo "containing"=0A= echo "$out_config"=0A= echo "$out_elf"=0A= if [ "$TGT_LINARCH" =3D "mips" ]; then=0A= echo "$out_ecoff"=0A= elif [ "$TGT_LINARCH" =3D "i686" ]; then=0A= echo "$out_bzimage"=0A= make_target=3DbzImage=0A= fi=0A= echo "$out_map"=0A= echo=0A= echo -n "Is this ok? "=0A= read confirm=0A= if [ "$confirm" !=3D "y" ]; then=0A= echo -n "Build another kernel? "=0A= read confirm=0A= if [ "$confirm" !=3D "y" ]; then=0A= exit 0=0A= else=0A= continue=0A= fi=0A= fi=0A= =0A= _srcdir=3D"${SRC_PATH}/${LINUX}-${LINUX_VERSION}"=0A= echo "Building $LINUX version $LINUX_VERSION in ${_srcdir}"=0A= =0A= cd "${_srcdir}" || exit 1=0A= if [ "$restart" !=3D "yes" ]; then=0A= make mrproper || exit 1=0A= fi=0A= make menuconfig || make config || exit 1=0A= make dep || exit 1=0A= if [ "$restart" !=3D "yes" ]; then=0A= make clean || exit 1=0A= fi=0A= make -j$(($CPUS + 1)) ${make_target} || exit 1=0A= mv -f .config "${out_config}"=0A= mv -f vmlinux "${out_elf}"=0A= if [ "$TGT_LINARCH" =3D "mips" ]; then=0A= mv -f arch/mips/boot/vmlinux.ecoff "${out_ecoff}"=0A= out_bzimage=3D=0A= elif [ "$TGT_LINARCH" =3D "i686" ]; then=0A= mv -f arch/i686/boot/bzImage "${out_bzimage}"=0A= out_ecoff=3D=0A= else=0A= out_ecoff=3D=0A= out_bzimage=3D=0A= fi=0A= mv -f System.map "${out_map}"=0A= $TAR czf ${out_archive} ${out_config} ${out_elf} ${out_ecoff} \=0A= ${out_bzimage} ${out_map} || exit 1=0A= echo "${out_archive} successfully built"=0A= echo -n "Build another kernel? "=0A= read confirm=0A= if [ "$confirm" !=3D "y" ]; then=0A= exit 0=0A= else=0A= continue=0A= fi=0A= done=0A= ------=_NextPart_000_0006_01C09CF8.70C735E0--