Hi!!!
This patch add one stage(-s1, --stage1 Also build kernel and libc
headers) betwen 0 and 1 stage, for available this trick:

crossdev -S --ex-gdb --g 4.2.4 -v -t armv4tl-maverick-linux-gnueabi -s1
EXTRA_ECONF="--with-cpu=arm920t --with-tune=arm920t --with-fpu=maverick
--with-float-abi=softfp" crossdev -S --ex-gdb --g 4.2.4 -v -t
armv4tl-maverick-linux-gnueabi -s2
crossdev -S --ex-gdb --g 4.2.4 -v -t armv4tl-maverick-linux-gnueabi -s4
EXTRA_ECONF="--with-cpu=arm920t --with-tune=arm920t --with-fpu=maverick
--with-float-abi=softfp" crossdev -S --ex-gdb --g 4.2.4 -v -t
armv4tl-maverick-linux-gnueabi -s5

--- crossdev.orig       2008-06-23 06:09:49.000000000 +0400
+++ crossdev    2008-09-25 17:33:20.000000000 +0400
@@ -38,10 +38,11 @@
     ${GOOD}-P, --portage${NORMAL} opts    Options to pass to emerge (see 
emerge(1))
 Stage Options:
     ${GOOD}-s0, --stage0${NORMAL}         Build just binutils
-    ${GOOD}-s1, --stage1${NORMAL}         Also build a C compiler (no libc/C++)
-    ${GOOD}-s2, --stage2${NORMAL}         Also build kernel headers
-    ${GOOD}-s3, --stage3${NORMAL}         Also build the C library (no C++)
-    ${GOOD}-s4, --stage4${NORMAL}         Also build a C++ compiler [default]
+    ${GOOD}-s1, --stage1${NORMAL}         Also build kernel and libc headers 
(for next stage)
+    ${GOOD}-s2, --stage2${NORMAL}         Also build a C compiler (no libc/C++)
+    ${GOOD}-s3, --stage3${NORMAL}         Also build kernel headers
+    ${GOOD}-s4, --stage4${NORMAL}         Also build the C library (no C++)
+    ${GOOD}-s5, --stage5${NORMAL}         Also build a C++ compiler [default]
 Extra Fun (must be run after above stages):
     ${GOOD}--ex-only${NORMAL}             Skip the stage steps above
     ${GOOD}--ex-gcc${NORMAL}              Build extra gcc targets 
(gcj/ada/etc...)
@@ -54,10 +55,11 @@
        exit ${exit_status}
 }
 STAGE_BINUTILS=0
-STAGE_C_ONLY=1
-STAGE_C_KERNEL=2
-STAGE_LIBC=3
-STAGE_C_CPP=4
+STAGE_H_KERNEL_LIBC=1
+STAGE_C_ONLY=2
+STAGE_C_KERNEL=3
+STAGE_LIBC=4
+STAGE_C_CPP=5
 STAGE_DEFAULT=${STAGE_C_CPP}
 STAGE_DISP=( "binutils" "C compiler only" "kernel headers" "C compiler & libc" 
"C/C++ compiler" )
 
@@ -292,6 +294,7 @@
 is_s3()    { is_stage 3 ; }
 is_s4()    { is_stage 4 ; }
 is_s5()    { is_stage 5 ; }
+is_s6()    { is_stage 6 ; }
 
 with_headers()   { [[ ${WITH_HEADERS}   == "yes" ]] ; }
 
@@ -356,7 +359,7 @@
        --without-*)    eval $(set_withval $1);;
        -x)             SET_X="yes";;
        -P|--portage)   UOPTS="${UOPTS} $2"; shift;;
-       -b|-d|-p|-v|-q) UOPTS="${UOPTS} $1";;
+       -b|-d|-p|-v|-q|-a) UOPTS="${UOPTS} $1";;
        -pv|-vp)        UOPTS="${UOPTS} -p -v";;
        -h|--help)      usage;;
        -*)             eerror "UNKNOWN OPTION: '$1'" ; usage 1;;
@@ -432,14 +435,14 @@
 is_s0 && {
 einfo "binutils:              ${BPKG}-${BVER}"
 }
-is_s1 && {
+is_s2 && {
 einfo "gcc:                   ${GPKG}-${GVER}"
 }
-is_s2 && {
+is_s3 && {
 [[ ${KPKG} != "[none]" ]] && \
 einfo "headers:               ${KPKG}-${KVER}"
 }
-is_s3 && {
+is_s4 && {
 einfo "libc:                  ${LPKG}-${LVER}"
 }
 }
@@ -572,12 +575,16 @@
 
        set_use $1 ${USE}
 
-       if [[ ${UOPTS/-v} != ${UOPTS} || ${UOPTS/-p} != ${UOPTS} ]] ; then
-               emerge cross-${CTARGET}/$1 ${EOPTS} \
-                       2>&1 | tee ${logfile}
+       if [[ ${UOPTS/-a} != ${UOPTS} ]]; then
+               emerge cross-${CTARGET}/$1 ${EOPTS} -v
        else
-               emerge cross-${CTARGET}/$1 ${EOPTS} \
-                       >& ${logfile}
+               if [[ ${UOPTS/-v} != ${UOPTS} || ${UOPTS/-p} != ${UOPTS} ]] ; 
then
+                       emerge cross-${CTARGET}/$1 ${EOPTS} \
+                               2>&1 | tee ${logfile}
+               else
+                       emerge cross-${CTARGET}/$1 ${EOPTS} \
+                               >& ${logfile}
+               fi
        fi
        local _pipestatus=${PIPESTATUS[*]}
        [[ "${_pipestatus// /}" -eq 0 ]] || die "$1 failed :("
@@ -616,21 +623,23 @@
 USE="${LUSE} ${USE}" CROSSCOMPILE_OPTS="headers-only" \
        doemerge ${LPKG} ${LPKG}-headers
 fi
+
+is_s2 || exit 0
 USE="${GUSE} ${USE} ${GUSE_DISABLE} nocxx" CROSSCOMPILE_OPTS="bootstrap" \
        doemerge ${GPKG} ${GPKG}-stage1
 
-is_s2 || exit 0
+is_s3 || exit 0
 set_eopts_on_pkg_status ${KPKG} crosscompile_opts_headers-only
 USE="${KUSE} ${USE}" CROSSCOMPILE_OPTS="" \
        doemerge ${KPKG}
 
-is_s3 || exit 0
+is_s4 || exit 0
 [[ -z ${LPKG} ]] && die "Invalid target '${CTARGET}': unknown libc"
 set_eopts_on_pkg_status ${LPKG} crosscompile_opts_headers-only
 USE="${LUSE} ${USE}" CROSSCOMPILE_OPTS="" \
        doemerge ${LPKG}
 
-is_s4 || exit 0
+is_s5 || exit 0
 set_eopts_on_pkg_status ${GPKG} crosscompile_opts_bootstrap
 USE="${GUSE} ${USE} ${GUSE_DISABLE_STAGE_2}" \
        doemerge ${GPKG} ${GPKG}-stage2

Reply via email to