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