Merge the /deve/uclinux branch back to /trunk:
author"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Wed May 13 20:55:15 2009 +0000 (2009-05-13)
changeset 13377f742f73c2d1
parent 1336 bc8b9381f637
child 1338 a3f2c235962c
Merge the /deve/uclinux branch back to /trunk:
- add support for uClinux, the MMU-less ports of Linux.

-------- diffstat follows --------
/trunk/scripts/build/kernel/linux.sh | 100 1 99 0 ---------------
/trunk/steps.mk | 1 1 0 0 +
/trunk/config/kernel/linux.in | 247 0 247 0 -------------------------------------
/trunk/config/kernel.in | 2 1 1 0
/trunk/config/libc/glibc.in | 2 1 1 0
/trunk/config/libc/eglibc.in | 2 1 1 0
/trunk/config/libc/glibc-eglibc.in-common | 5 5 0 0 +
/trunk/config/config.in | 1 1 0 0 +
8 files changed, 11 insertions(+), 349 deletions(-)
config/config.in
config/elf2flt.in
config/kernel.in
config/kernel/linux.in
config/kernel/linux.in-common
config/kernel/uclinux.in
config/libc/eglibc.in
config/libc/glibc-eglibc.in-common
config/libc/glibc.in
scripts/build/elf2flt.sh
scripts/build/kernel/linux-common.sh
scripts/build/kernel/linux.sh
scripts/build/kernel/uclinux.sh
steps.mk
     1.1 --- a/config/config.in	Wed May 13 18:10:47 2009 +0000
     1.2 +++ b/config/config.in	Wed May 13 20:55:15 2009 +0000
     1.3 @@ -4,6 +4,7 @@
     1.4  source config/kernel.in
     1.5  source config/companion_libs.in
     1.6  source config/binutils.in
     1.7 +source config/elf2flt.in
     1.8  source config/cc.in
     1.9  source config/libc.in
    1.10  source config/tools.in
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/config/elf2flt.in	Wed May 13 20:55:15 2009 +0000
     2.3 @@ -0,0 +1,49 @@
     2.4 +# elf2flt options
     2.5 +
     2.6 +menu "elf2flt"
     2.7 +    depends on KERNEL_UCLINUX_BINFMT_FLAT
     2.8 +
     2.9 +config ELF2FLT_VERSION
    2.10 +    string
    2.11 +
    2.12 +choice
    2.13 +    bool
    2.14 +    prompt "elf2flt version"
    2.15 +
    2.16 +config ELF2FLT_CVSHEAD
    2.17 +    bool
    2.18 +    prompt "CVS Head"
    2.19 +    help
    2.20 +      Grab the latest version of elf2flt from the CVS repository
    2.21 +
    2.22 +config ELF2FLT_CVS_SNAPSHOT
    2.23 +    bool
    2.24 +    prompt "CVS Snapshot"
    2.25 +
    2.26 +# CT_INSERT_VERSION_ABOVE
    2.27 +# Don't remove above line!
    2.28 +endchoice
    2.29 +
    2.30 +config ELF2FLT_CVS_SNAPSHOT_SPEC
    2.31 +    string
    2.32 +    depends on ELF2FLT_CVS_SNAPSHOT
    2.33 +    default ""
    2.34 +    prompt "CVS refspec for elf2flt"
    2.35 +    help
    2.36 +       What you enter here will be passed verbatim to the cvs checkout command
    2.37 +       so be careful!
    2.38 +
    2.39 +config ELF2FLT_VERSION
    2.40 +    string
    2.41 +    default "head" if ELF2FLT_CVSHEAD
    2.42 +# CT_INSERT_VERSION_STRING_ABOVE
    2.43 +# Don't remove above line!
    2.44 +
    2.45 +config ELF2FLT_EXTRA_CONFIG
    2.46 +    string
    2.47 +    prompt "elf2flt extra config"
    2.48 +    default ""
    2.49 +    help
    2.50 +      Extra flags passed onto ./configure when configuring
    2.51 +
    2.52 +endmenu
     3.1 --- a/config/kernel.in	Wed May 13 18:10:47 2009 +0000
     3.2 +++ b/config/kernel.in	Wed May 13 20:55:15 2009 +0000
     3.3 @@ -3,7 +3,7 @@
     3.4  menu "Operating System"
     3.5  
     3.6  # Config option used throughout the config and code to determine wether
     3.7 -# we have a kernel or not (there might be different bare metal stuff...
     3.8 +# we have a kernel or not (there might be different bare metal stuff)...
     3.9  config BARE_METAL
    3.10      bool
    3.11      default n
     4.1 --- a/config/kernel/linux.in	Wed May 13 18:10:47 2009 +0000
     4.2 +++ b/config/kernel/linux.in	Wed May 13 20:55:15 2009 +0000
     4.3 @@ -4,250 +4,3 @@
     4.4      help
     4.5        Build a toolchain targeting systems running Linux as a kernel.
     4.6  
     4.7 -choice
     4.8 -    bool
     4.9 -    prompt "Get kernel headers from:"
    4.10 -
    4.11 -config KERNEL_LINUX_INSTALL
    4.12 -    bool
    4.13 -    prompt "kernel's 'headers_install'"
    4.14 -    help
    4.15 -      This will make use of the new headers_install rule in recent kernels.
    4.16 -      This is most probably what you want to use.
    4.17 -
    4.18 -if KERNEL_LINUX_INSTALL
    4.19 -
    4.20 -config KERNEL_LINUX_INSTALL_CHECK
    4.21 -    bool
    4.22 -    prompt "Check installed headers"
    4.23 -    default y
    4.24 -    help
    4.25 -      If you are in doubt that installed headers are buggy, say 'Y'
    4.26 -      here to have an extra check passed onto the headers.
    4.27 -
    4.28 -choice
    4.29 -    bool
    4.30 -    prompt "Linux kernel version"
    4.31 -
    4.32 -config KERNEL_V_2_6_18_8
    4.33 -    bool
    4.34 -    prompt "2.6.18.8 (OBSOLETE)"
    4.35 -    depends on OBSOLETE
    4.36 -
    4.37 -config KERNEL_V_2_6_19_7
    4.38 -    bool
    4.39 -    prompt "2.6.19.7 (OBSOLETE)"
    4.40 -    depends on OBSOLETE
    4.41 -
    4.42 -config KERNEL_V_2_6_20_21
    4.43 -    bool
    4.44 -    prompt "2.6.20.21 (OBSOLETE)"
    4.45 -    depends on OBSOLETE
    4.46 -
    4.47 -config KERNEL_V_2_6_21_7
    4.48 -    bool
    4.49 -    prompt "2.6.21.7 (OBSOLETE)"
    4.50 -    depends on OBSOLETE
    4.51 -
    4.52 -config KERNEL_V_2_6_22_19
    4.53 -    bool
    4.54 -    prompt "2.6.22.19 (OBSOLETE)"
    4.55 -    depends on OBSOLETE
    4.56 -
    4.57 -config KERNEL_V_2_6_23_17
    4.58 -    bool
    4.59 -    prompt "2.6.23.17 (OBSOLETE)"
    4.60 -    depends on OBSOLETE
    4.61 -
    4.62 -config KERNEL_V_2_6_24_7
    4.63 -    bool
    4.64 -    prompt "2.6.24.7 (OBSOLETE)"
    4.65 -    depends on OBSOLETE
    4.66 -
    4.67 -config KERNEL_V_2_6_25_20
    4.68 -    bool
    4.69 -    prompt "2.6.25.20 (OBSOLETE)"
    4.70 -    depends on OBSOLETE
    4.71 -
    4.72 -config KERNEL_V_2_6_26_8
    4.73 -    bool
    4.74 -    prompt "2.6.26.8 (OBSOLETE)"
    4.75 -    depends on OBSOLETE
    4.76 -
    4.77 -config KERNEL_V_2_6_27_22
    4.78 -    bool
    4.79 -    prompt "2.6.27.22 (OBSOLETE)"
    4.80 -    depends on OBSOLETE
    4.81 -
    4.82 -config KERNEL_V_2_6_28
    4.83 -    bool
    4.84 -    prompt "2.6.28"
    4.85 -
    4.86 -config KERNEL_V_2_6_28_1
    4.87 -    bool
    4.88 -    prompt "2.6.28.1"
    4.89 -
    4.90 -config KERNEL_V_2_6_28_2
    4.91 -    bool
    4.92 -    prompt "2.6.28.2"
    4.93 -
    4.94 -config KERNEL_V_2_6_28_3
    4.95 -    bool
    4.96 -    prompt "2.6.28.3"
    4.97 -
    4.98 -config KERNEL_V_2_6_28_4
    4.99 -    bool
   4.100 -    prompt "2.6.28.4"
   4.101 -
   4.102 -config KERNEL_V_2_6_28_5
   4.103 -    bool
   4.104 -    prompt "2.6.28.5"
   4.105 -
   4.106 -config KERNEL_V_2_6_28_6
   4.107 -    bool
   4.108 -    prompt "2.6.28.6"
   4.109 -
   4.110 -config KERNEL_V_2_6_28_7
   4.111 -    bool
   4.112 -    prompt "2.6.28.7"
   4.113 -
   4.114 -config KERNEL_V_2_6_28_8
   4.115 -    bool
   4.116 -    prompt "2.6.28.8"
   4.117 -
   4.118 -config KERNEL_V_2_6_28_9
   4.119 -    bool
   4.120 -    prompt "2.6.28.9"
   4.121 -
   4.122 -config KERNEL_V_2_6_28_10
   4.123 -    bool
   4.124 -    prompt "2.6.28.10"
   4.125 -
   4.126 -config KERNEL_V_2_6_29
   4.127 -    bool
   4.128 -    prompt "2.6.29"
   4.129 -
   4.130 -config KERNEL_V_2_6_29_1
   4.131 -    bool
   4.132 -    prompt "2.6.29.1"
   4.133 -
   4.134 -config KERNEL_V_2_6_29_2
   4.135 -    bool
   4.136 -    prompt "2.6.29.2"
   4.137 -
   4.138 -# CT_INSERT_VERSION_ABOVE
   4.139 -# Don't remove above line!
   4.140 -
   4.141 -config KERNEL_V_select
   4.142 -    bool
   4.143 -    prompt "Other version (EXPERIMENTAL)"
   4.144 -    depends on EXPERIMENTAL
   4.145 -
   4.146 -endchoice
   4.147 -
   4.148 -config KERNEL_VERSION
   4.149 -    string
   4.150 -    prompt "Kernel version" if KERNEL_V_select
   4.151 -    default "2.6.18.8" if KERNEL_V_2_6_18_8
   4.152 -    default "2.6.19.7" if KERNEL_V_2_6_19_7
   4.153 -    default "2.6.20.21" if KERNEL_V_2_6_20_21
   4.154 -    default "2.6.21.7" if KERNEL_V_2_6_21_7
   4.155 -    default "2.6.22.19" if KERNEL_V_2_6_22_19
   4.156 -    default "2.6.23.17" if KERNEL_V_2_6_23_17
   4.157 -    default "2.6.24.7" if KERNEL_V_2_6_24_7
   4.158 -    default "2.6.25.20" if KERNEL_V_2_6_25_20
   4.159 -    default "2.6.26.8" if KERNEL_V_2_6_26_8
   4.160 -    default "2.6.27.22" if KERNEL_V_2_6_27_22
   4.161 -    default "2.6.28" if KERNEL_V_2_6_28
   4.162 -    default "2.6.28.1" if KERNEL_V_2_6_28_1
   4.163 -    default "2.6.28.2" if KERNEL_V_2_6_28_2
   4.164 -    default "2.6.28.3" if KERNEL_V_2_6_28_3
   4.165 -    default "2.6.28.4" if KERNEL_V_2_6_28_4
   4.166 -    default "2.6.28.5" if KERNEL_V_2_6_28_5
   4.167 -    default "2.6.28.6" if KERNEL_V_2_6_28_6
   4.168 -    default "2.6.28.7" if KERNEL_V_2_6_28_7
   4.169 -    default "2.6.28.8" if KERNEL_V_2_6_28_8
   4.170 -    default "2.6.28.9" if KERNEL_V_2_6_28_9
   4.171 -    default "2.6.28.10" if KERNEL_V_2_6_28_10
   4.172 -    default "2.6.29" if KERNEL_V_2_6_29
   4.173 -    default "2.6.29.1" if KERNEL_V_2_6_29_1
   4.174 -    default "2.6.29.2" if KERNEL_V_2_6_29_2
   4.175 -# CT_INSERT_VERSION_STRING_ABOVE
   4.176 -# Don't remove above line!
   4.177 -    help
   4.178 -      Enter here the kernel version you want to use, if it is
   4.179 -      not listed above. Something like V.P.S or V.P.S.E, where:
   4.180 -        V: VERSION
   4.181 -        P: PATCHLEVEL
   4.182 -        S: SUBLEVEL
   4.183 -        E: EXTRAVERSION
   4.184 -
   4.185 -choice
   4.186 -    bool
   4.187 -    prompt "Kernel verbosity:"
   4.188 -    default KERNEL_LINUX_VERBOSITY_0
   4.189 -
   4.190 -config KERNEL_LINUX_VERBOSITY_0
   4.191 -    bool
   4.192 -    prompt "Simplified"
   4.193 -    help
   4.194 -      Print simplified command lines.
   4.195 -
   4.196 -config KERNEL_LINUX_VERBOSITY_1
   4.197 -    bool
   4.198 -    prompt "Full commands"
   4.199 -    help
   4.200 -      Print full command lines.
   4.201 -
   4.202 -config KERNEL_LINUX_VERBOSITY_2
   4.203 -    bool
   4.204 -    prompt "Exec reasons"
   4.205 -    help
   4.206 -      Print the reasons why a make target is rebuild.
   4.207 -
   4.208 -endchoice
   4.209 -
   4.210 -config KERNEL_LINUX_VERBOSE_LEVEL
   4.211 -    int
   4.212 -    default 0 if KERNEL_LINUX_VERBOSITY_0
   4.213 -    default 1 if KERNEL_LINUX_VERBOSITY_1
   4.214 -    default 2 if KERNEL_LINUX_VERBOSITY_2
   4.215 -
   4.216 -endif
   4.217 -
   4.218 -config KERNEL_LINUX_USE_CUSTOM_HEADERS
   4.219 -    bool
   4.220 -    prompt "Use custom headers"
   4.221 -    help
   4.222 -      If you have some kernel headers lying around, you can enter the path
   4.223 -      below.
   4.224 -
   4.225 -if KERNEL_LINUX_USE_CUSTOM_HEADERS
   4.226 -
   4.227 -config KERNEL_LINUX_CUSTOM_IS_TARBALL
   4.228 -    bool
   4.229 -    prompt "This is a tarball"
   4.230 -    default n
   4.231 -    help
   4.232 -      If you say 'n' here, the path below is expected to point to a directory
   4.233 -      containing readily prepared headers
   4.234 -      
   4.235 -      If you say 'y' here, then the path below is expected to point to a
   4.236 -      tarball of such a directory.
   4.237 -      
   4.238 -      Eg., if your headers are available in: /foo/bar/buz/my_hdrs/include,
   4.239 -      say 'n' here, and enter: /foo/bar/buz/my_hdrs below.
   4.240 -      
   4.241 -      Now, passing a tarball around is easier than passing a directory, so
   4.242 -      if you want to, you can make a tarball of /foo/bar/buz/my_hdrs/include,
   4.243 -      say 'y' here, and enter the path to this tarball below.
   4.244 -
   4.245 -config KERNEL_LINUX_CUSTOM_PATH
   4.246 -    string
   4.247 -    prompt "Path to custom headers directory/tarball"
   4.248 -    help
   4.249 -      See KERNEL_LINUX_CUSTOM_IS_TARBALL, above.
   4.250 -
   4.251 -endif # KERNEL_LINUX_USE_CUSTOM_DIR
   4.252 -
   4.253 -endchoice
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/config/kernel/linux.in-common	Wed May 13 20:55:15 2009 +0000
     5.3 @@ -0,0 +1,252 @@
     5.4 +# Linux kernel options
     5.5 +
     5.6 +if KERNEL_linux || KERNEL_uclinux
     5.7 +
     5.8 +choice
     5.9 +    bool
    5.10 +    prompt "Get kernel headers from:"
    5.11 +
    5.12 +config KERNEL_LINUX_INSTALL
    5.13 +    bool
    5.14 +    prompt "kernel's 'headers_install'"
    5.15 +    help
    5.16 +      This will make use of the new headers_install rule in recent kernels.
    5.17 +      This is most probably what you want to use.
    5.18 +
    5.19 +if KERNEL_LINUX_INSTALL
    5.20 +
    5.21 +config KERNEL_LINUX_INSTALL_CHECK
    5.22 +    bool
    5.23 +    prompt "Check installed headers"
    5.24 +    default y
    5.25 +    help
    5.26 +      If you are in doubt that installed headers are buggy, say 'Y'
    5.27 +      here to have an extra check passed onto the headers.
    5.28 +
    5.29 +choice
    5.30 +    bool
    5.31 +    prompt "Linux kernel version"
    5.32 +
    5.33 +config KERNEL_V_2_6_18_8
    5.34 +    bool
    5.35 +    prompt "2.6.18.8 (OBSOLETE)"
    5.36 +    depends on OBSOLETE
    5.37 +
    5.38 +config KERNEL_V_2_6_19_7
    5.39 +    bool
    5.40 +    prompt "2.6.19.7 (OBSOLETE)"
    5.41 +    depends on OBSOLETE
    5.42 +
    5.43 +config KERNEL_V_2_6_20_21
    5.44 +    bool
    5.45 +    prompt "2.6.20.21 (OBSOLETE)"
    5.46 +    depends on OBSOLETE
    5.47 +
    5.48 +config KERNEL_V_2_6_21_7
    5.49 +    bool
    5.50 +    prompt "2.6.21.7 (OBSOLETE)"
    5.51 +    depends on OBSOLETE
    5.52 +
    5.53 +config KERNEL_V_2_6_22_19
    5.54 +    bool
    5.55 +    prompt "2.6.22.19 (OBSOLETE)"
    5.56 +    depends on OBSOLETE
    5.57 +
    5.58 +config KERNEL_V_2_6_23_17
    5.59 +    bool
    5.60 +    prompt "2.6.23.17 (OBSOLETE)"
    5.61 +    depends on OBSOLETE
    5.62 +
    5.63 +config KERNEL_V_2_6_24_7
    5.64 +    bool
    5.65 +    prompt "2.6.24.7 (OBSOLETE)"
    5.66 +    depends on OBSOLETE
    5.67 +
    5.68 +config KERNEL_V_2_6_25_20
    5.69 +    bool
    5.70 +    prompt "2.6.25.20 (OBSOLETE)"
    5.71 +    depends on OBSOLETE
    5.72 +
    5.73 +config KERNEL_V_2_6_26_8
    5.74 +    bool
    5.75 +    prompt "2.6.26.8 (OBSOLETE)"
    5.76 +    depends on OBSOLETE
    5.77 +
    5.78 +config KERNEL_V_2_6_27_22
    5.79 +    bool
    5.80 +    prompt "2.6.27.22 (OBSOLETE)"
    5.81 +    depends on OBSOLETE
    5.82 +
    5.83 +config KERNEL_V_2_6_28
    5.84 +    bool
    5.85 +    prompt "2.6.28"
    5.86 +
    5.87 +config KERNEL_V_2_6_28_1
    5.88 +    bool
    5.89 +    prompt "2.6.28.1"
    5.90 +
    5.91 +config KERNEL_V_2_6_28_2
    5.92 +    bool
    5.93 +    prompt "2.6.28.2"
    5.94 +
    5.95 +config KERNEL_V_2_6_28_3
    5.96 +    bool
    5.97 +    prompt "2.6.28.3"
    5.98 +
    5.99 +config KERNEL_V_2_6_28_4
   5.100 +    bool
   5.101 +    prompt "2.6.28.4"
   5.102 +
   5.103 +config KERNEL_V_2_6_28_5
   5.104 +    bool
   5.105 +    prompt "2.6.28.5"
   5.106 +
   5.107 +config KERNEL_V_2_6_28_6
   5.108 +    bool
   5.109 +    prompt "2.6.28.6"
   5.110 +
   5.111 +config KERNEL_V_2_6_28_7
   5.112 +    bool
   5.113 +    prompt "2.6.28.7"
   5.114 +
   5.115 +config KERNEL_V_2_6_28_8
   5.116 +    bool
   5.117 +    prompt "2.6.28.8"
   5.118 +
   5.119 +config KERNEL_V_2_6_28_9
   5.120 +    bool
   5.121 +    prompt "2.6.28.9"
   5.122 +
   5.123 +config KERNEL_V_2_6_28_10
   5.124 +    bool
   5.125 +    prompt "2.6.28.10"
   5.126 +
   5.127 +config KERNEL_V_2_6_29
   5.128 +    bool
   5.129 +    prompt "2.6.29"
   5.130 +
   5.131 +config KERNEL_V_2_6_29_1
   5.132 +    bool
   5.133 +    prompt "2.6.29.1"
   5.134 +
   5.135 +config KERNEL_V_2_6_29_2
   5.136 +    bool
   5.137 +    prompt "2.6.29.2"
   5.138 +
   5.139 +# CT_INSERT_VERSION_ABOVE
   5.140 +# Don't remove above line!
   5.141 +
   5.142 +config KERNEL_V_select
   5.143 +    bool
   5.144 +    prompt "Other version (EXPERIMENTAL)"
   5.145 +    depends on EXPERIMENTAL
   5.146 +
   5.147 +endchoice
   5.148 +
   5.149 +config KERNEL_VERSION
   5.150 +    string
   5.151 +    prompt "Kernel version" if KERNEL_V_select
   5.152 +    default "2.6.18.8" if KERNEL_V_2_6_18_8
   5.153 +    default "2.6.19.7" if KERNEL_V_2_6_19_7
   5.154 +    default "2.6.20.21" if KERNEL_V_2_6_20_21
   5.155 +    default "2.6.21.7" if KERNEL_V_2_6_21_7
   5.156 +    default "2.6.22.19" if KERNEL_V_2_6_22_19
   5.157 +    default "2.6.23.17" if KERNEL_V_2_6_23_17
   5.158 +    default "2.6.24.7" if KERNEL_V_2_6_24_7
   5.159 +    default "2.6.25.20" if KERNEL_V_2_6_25_20
   5.160 +    default "2.6.26.8" if KERNEL_V_2_6_26_8
   5.161 +    default "2.6.27.22" if KERNEL_V_2_6_27_22
   5.162 +    default "2.6.28" if KERNEL_V_2_6_28
   5.163 +    default "2.6.28.1" if KERNEL_V_2_6_28_1
   5.164 +    default "2.6.28.2" if KERNEL_V_2_6_28_2
   5.165 +    default "2.6.28.3" if KERNEL_V_2_6_28_3
   5.166 +    default "2.6.28.4" if KERNEL_V_2_6_28_4
   5.167 +    default "2.6.28.5" if KERNEL_V_2_6_28_5
   5.168 +    default "2.6.28.6" if KERNEL_V_2_6_28_6
   5.169 +    default "2.6.28.7" if KERNEL_V_2_6_28_7
   5.170 +    default "2.6.28.8" if KERNEL_V_2_6_28_8
   5.171 +    default "2.6.28.9" if KERNEL_V_2_6_28_9
   5.172 +    default "2.6.28.10" if KERNEL_V_2_6_28_10
   5.173 +    default "2.6.29" if KERNEL_V_2_6_29
   5.174 +    default "2.6.29.1" if KERNEL_V_2_6_29_1
   5.175 +    default "2.6.29.2" if KERNEL_V_2_6_29_2
   5.176 +# CT_INSERT_VERSION_STRING_ABOVE
   5.177 +# Don't remove above line!
   5.178 +    help
   5.179 +      Enter here the kernel version you want to use, if it is
   5.180 +      not listed above. Something like V.P.S or V.P.S.E, where:
   5.181 +        V: VERSION
   5.182 +        P: PATCHLEVEL
   5.183 +        S: SUBLEVEL
   5.184 +        E: EXTRAVERSION
   5.185 +
   5.186 +choice
   5.187 +    bool
   5.188 +    prompt "Kernel verbosity:"
   5.189 +    default KERNEL_LINUX_VERBOSITY_0
   5.190 +
   5.191 +config KERNEL_LINUX_VERBOSITY_0
   5.192 +    bool
   5.193 +    prompt "Simplified"
   5.194 +    help
   5.195 +      Print simplified command lines.
   5.196 +
   5.197 +config KERNEL_LINUX_VERBOSITY_1
   5.198 +    bool
   5.199 +    prompt "Full commands"
   5.200 +    help
   5.201 +      Print full command lines.
   5.202 +
   5.203 +config KERNEL_LINUX_VERBOSITY_2
   5.204 +    bool
   5.205 +    prompt "Exec reasons"
   5.206 +    help
   5.207 +      Print the reasons why a make target is rebuild.
   5.208 +
   5.209 +endchoice
   5.210 +
   5.211 +config KERNEL_LINUX_VERBOSE_LEVEL
   5.212 +    int
   5.213 +    default 0 if KERNEL_LINUX_VERBOSITY_0
   5.214 +    default 1 if KERNEL_LINUX_VERBOSITY_1
   5.215 +    default 2 if KERNEL_LINUX_VERBOSITY_2
   5.216 +
   5.217 +endif
   5.218 +
   5.219 +config KERNEL_LINUX_USE_CUSTOM_HEADERS
   5.220 +    bool
   5.221 +    prompt "Use custom headers"
   5.222 +    help
   5.223 +      If you have some kernel headers lying around, you can enter the path
   5.224 +      below.
   5.225 +
   5.226 +if KERNEL_LINUX_USE_CUSTOM_HEADERS
   5.227 +
   5.228 +config KERNEL_LINUX_CUSTOM_IS_TARBALL
   5.229 +    bool
   5.230 +    prompt "This is a tarball"
   5.231 +    default n
   5.232 +    help
   5.233 +      If you say 'n' here, the path below is expected to point to a directory
   5.234 +      containing readily prepared headers
   5.235 +      
   5.236 +      If you say 'y' here, then the path below is expected to point to a
   5.237 +      tarball of such a directory.
   5.238 +      
   5.239 +      Eg., if your headers are available in: /foo/bar/buz/my_hdrs/include,
   5.240 +      say 'n' here, and enter: /foo/bar/buz/my_hdrs below.
   5.241 +      
   5.242 +      Now, passing a tarball around is easier than passing a directory, so
   5.243 +      if you want to, you can make a tarball of /foo/bar/buz/my_hdrs/include,
   5.244 +      say 'y' here, and enter the path to this tarball below.
   5.245 +
   5.246 +config KERNEL_LINUX_CUSTOM_PATH
   5.247 +    string
   5.248 +    prompt "Path to custom headers directory/tarball"
   5.249 +    help
   5.250 +      See KERNEL_LINUX_CUSTOM_IS_TARBALL, above.
   5.251 +
   5.252 +endif # KERNEL_LINUX_USE_CUSTOM_DIR
   5.253 +
   5.254 +endchoice
   5.255 +endif
     6.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2 +++ b/config/kernel/uclinux.in	Wed May 13 20:55:15 2009 +0000
     6.3 @@ -0,0 +1,21 @@
     6.4 +# uClinux kernel options
     6.5 +# depends on EXPERIMENTAL
     6.6 +
     6.7 +config KERNEL_uclinux
     6.8 +    help
     6.9 +      Build a toolchain targeting systems running uClinux as a kernel.
    6.10 +
    6.11 +choice
    6.12 +    bool
    6.13 +    depends on KERNEL_uclinux
    6.14 +    prompt "noMMU binary format"
    6.15 +
    6.16 +config KERNEL_UCLINUX_BINFMT_FLAT
    6.17 +    bool
    6.18 +    prompt "binfmt_flat"
    6.19 +    help
    6.20 +      This will build the elf2flt and flthdr utilities for your architecture
    6.21 +      into the toolchain
    6.22 +
    6.23 +endchoice
    6.24 +
     7.1 --- a/config/libc/eglibc.in	Wed May 13 18:10:47 2009 +0000
     7.2 +++ b/config/libc/eglibc.in	Wed May 13 20:55:15 2009 +0000
     7.3 @@ -1,5 +1,5 @@
     7.4  # eglibc options
     7.5 -# depends on ! BARE_METAL
     7.6 +# depends on ! BARE_METAL && ! KERNEL_uclinux
     7.7  
     7.8  config LIBC_eglibc
     7.9      select LIBC_SUPPORT_NPTL
     8.1 --- a/config/libc/glibc-eglibc.in-common	Wed May 13 18:10:47 2009 +0000
     8.2 +++ b/config/libc/glibc-eglibc.in-common	Wed May 13 20:55:15 2009 +0000
     8.3 @@ -4,12 +4,17 @@
     8.4  if LIBC_glibc || LIBC_eglibc
     8.5  
     8.6  # Some architectures require the ports addon. List them one by one here:
     8.7 +# This list must be carefully in sync with the architectures names
     8.8 +# we can find in config/arch/*
     8.9 +
    8.10  config ARCH_arm
    8.11      select LIBC_GLIBC_USE_PORTS
    8.12  
    8.13  config ARCH_mips
    8.14      select LIBC_GLIBC_USE_PORTS
    8.15  
    8.16 +# End of arch-specific ports auto-select
    8.17 +
    8.18  comment "glibc/eglibc common options"
    8.19  
    8.20  config LIBC_GLIBC_EXTRA_CONFIG
     9.1 --- a/config/libc/glibc.in	Wed May 13 18:10:47 2009 +0000
     9.2 +++ b/config/libc/glibc.in	Wed May 13 20:55:15 2009 +0000
     9.3 @@ -1,5 +1,5 @@
     9.4  # glibc options
     9.5 -# depends on ! BARE_METAL
     9.6 +# depends on ! BARE_METAL && ! KERNEL_uclinux
     9.7  
     9.8  config LIBC_glibc
     9.9      select LIBC_SUPPORT_NPTL
    10.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.2 +++ b/scripts/build/elf2flt.sh	Wed May 13 20:55:15 2009 +0000
    10.3 @@ -0,0 +1,75 @@
    10.4 +# This file adds functions to build elf2flt
    10.5 +# Copyright 2009 John Williams
    10.6 +# Copyright 2007 Yann E. MORIN
    10.7 +# Licensed under the GPL v2. See COPYING in the root of this package
    10.8 +
    10.9 +# Download elf2flt
   10.10 +do_elf2flt_get() {
   10.11 +    CT_GetCVS "elf2flt-cvs-${CT_ELF2FLT_VERSION}"                    \
   10.12 +              ":pserver:anonymous@cvs.uclinux.org:/var/cvs"  \
   10.13 +              "elf2flt"                                            \
   10.14 +              "" \
   10.15 +              "elf2flt-cvs-${CT_ELF2FLT_VERSION}"
   10.16 +}
   10.17 +
   10.18 +# Extract elf2flt
   10.19 +do_elf2flt_extract() {
   10.20 +    CT_Extract "elf2flt-cvs-${CT_ELF2FLT_VERSION}"
   10.21 +    CT_Patch "elf2flt-cvs-${CT_ELF2FLT_VERSION}"
   10.22 +}
   10.23 +
   10.24 +# Build elf2flt
   10.25 +do_elf2flt() {
   10.26 +    [ -z ${CT_KERNEL_UCLINUX_BINFMT_FLAT} ] && return 0
   10.27 +    mkdir -p "${CT_BUILD_DIR}/build-elf2flt"
   10.28 +    cd "${CT_BUILD_DIR}/build-elf2flt"
   10.29 +
   10.30 +    CT_DoStep INFO "Installing elf2flt"
   10.31 +
   10.32 +    elf2flt_opts=
   10.33 +    binutils_bld=${CT_BUILD_DIR}/build-binutils
   10.34 +    binutils_src=${CT_SRC_DIR}/binutils-${CT_BINUTILS_VERSION}
   10.35 +
   10.36 +    CT_DoLog EXTRA "Configuring elf2flt"
   10.37 +    CFLAGS="${CT_CFLAGS_FOR_HOST}"                              \
   10.38 +    CT_DoExecLog ALL                                            \
   10.39 +    "${CT_SRC_DIR}/elf2flt-cvs-${CT_ELF2FLT_VERSION}/configure" \
   10.40 +        --build=${CT_BUILD}                                     \
   10.41 +        --host=${CT_HOST}                                       \
   10.42 +        --target=${CT_TARGET}                                   \
   10.43 +        --prefix=${CT_PREFIX_DIR}                               \
   10.44 +        --with-bfd-include-dir=${binutils_bld}/bfd              \
   10.45 +        --with-binutils-include-dir=${binutils_src}/include     \
   10.46 +        --with-libbfd=${binutils_bld}/bfd/libbfd.a              \
   10.47 +        --with-libiberty=${binutils_bld}/libiberty/libiberty.a  \
   10.48 +        ${elf2flt_opts}                                         \
   10.49 +        ${CT_ELF2FLT_EXTRA_CONFIG}			
   10.50 +
   10.51 +    CT_DoLog EXTRA "Building elf2flt"
   10.52 +    CT_DoExecLog ALL make ${PARALLELMFLAGS}
   10.53 +
   10.54 +    CT_DoLog EXTRA "Installing elf2flt"
   10.55 +    CT_DoExecLog ALL make install
   10.56 +
   10.57 +    # Make those new tools available to the core C compilers to come.
   10.58 +    # Note: some components want the ${TARGET}-{ar,as,ld,strip} commands as
   10.59 +    # well. Create that.
   10.60 +    mkdir -p "${CT_CC_CORE_STATIC_PREFIX_DIR}/${CT_TARGET}/bin"
   10.61 +    mkdir -p "${CT_CC_CORE_STATIC_PREFIX_DIR}/bin"
   10.62 +    mkdir -p "${CT_CC_CORE_SHARED_PREFIX_DIR}/${CT_TARGET}/bin"
   10.63 +    mkdir -p "${CT_CC_CORE_SHARED_PREFIX_DIR}/bin"
   10.64 +    for t in elf2flt flthdr; do
   10.65 +        ln -sv "${CT_PREFIX_DIR}/bin/${CT_TARGET}-${t}" "${CT_CC_CORE_STATIC_PREFIX_DIR}/${CT_TARGET}/bin/${t}"
   10.66 +        ln -sv "${CT_PREFIX_DIR}/bin/${CT_TARGET}-${t}" "${CT_CC_CORE_STATIC_PREFIX_DIR}/bin/${CT_TARGET}-${t}"
   10.67 +        ln -sv "${CT_PREFIX_DIR}/bin/${CT_TARGET}-${t}" "${CT_CC_CORE_SHARED_PREFIX_DIR}/${CT_TARGET}/bin/${t}"
   10.68 +        ln -sv "${CT_PREFIX_DIR}/bin/${CT_TARGET}-${t}" "${CT_CC_CORE_SHARED_PREFIX_DIR}/bin/${CT_TARGET}-${t}"
   10.69 +    done 2>&1 |CT_DoLog ALL
   10.70 +
   10.71 +    CT_EndStep
   10.72 +}
   10.73 +
   10.74 +# Now on for the target libraries
   10.75 +do_elf2flt_target() {
   10.76 +    exit -1
   10.77 +}
   10.78 +
    11.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.2 +++ b/scripts/build/kernel/linux-common.sh	Wed May 13 20:55:15 2009 +0000
    11.3 @@ -0,0 +1,99 @@
    11.4 +# This file declares functions to install the kernel headers for linux
    11.5 +# Copyright 2007 Yann E. MORIN
    11.6 +# Licensed under the GPL v2. See COPYING in the root of this package
    11.7 +
    11.8 +CT_DoKernelTupleValues() {
    11.9 +    # Nothing to do, keep the default value
   11.10 +    :
   11.11 +}
   11.12 +
   11.13 +# Download the kernel
   11.14 +do_kernel_get() {
   11.15 +    if [ "${CT_KERNEL_LINUX_USE_CUSTOM_HEADERS}" != "y" ]; then
   11.16 +        CT_GetFile "linux-${CT_KERNEL_VERSION}" \
   11.17 +                   {ftp,http}://ftp.{de.,eu.,}kernel.org/pub/linux/kernel/v2.{6{,/testing},4,2}
   11.18 +    fi
   11.19 +    return 0
   11.20 +}
   11.21 +
   11.22 +# Extract kernel
   11.23 +do_kernel_extract() {
   11.24 +    if [ "${CT_KERNEL_LINUX_USE_CUSTOM_HEADERS}" != "y" ]; then
   11.25 +        CT_Extract "linux-${CT_KERNEL_VERSION}"
   11.26 +        CT_Patch "linux-${CT_KERNEL_VERSION}"
   11.27 +    fi
   11.28 +    return 0
   11.29 +}
   11.30 +
   11.31 +# Wrapper to the actual headers install method
   11.32 +do_kernel_headers() {
   11.33 +    CT_DoStep INFO "Installing kernel headers"
   11.34 +
   11.35 +    if [ "${CT_KERNEL_LINUX_USE_CUSTOM_HEADERS}" = "y" ]; then
   11.36 +        do_kernel_custom
   11.37 +    else
   11.38 +        do_kernel_install
   11.39 +    fi
   11.40 +
   11.41 +    CT_EndStep
   11.42 +}
   11.43 +
   11.44 +# Install kernel headers using headers_install from kernel sources.
   11.45 +do_kernel_install() {
   11.46 +    CT_DoLog DEBUG "Using kernel's headers_install"
   11.47 +
   11.48 +    mkdir -p "${CT_BUILD_DIR}/build-kernel-headers"
   11.49 +    cd "${CT_BUILD_DIR}/build-kernel-headers"
   11.50 +
   11.51 +    # Only starting with 2.6.18 does headers_install is usable. We only
   11.52 +    # have 2.6 version available, so only test for sublevel.
   11.53 +    k_sublevel=$(awk '/^SUBLEVEL =/ { print $3 }' "${CT_SRC_DIR}/linux-${CT_KERNEL_VERSION}/Makefile")
   11.54 +    [ ${k_sublevel} -ge 18 ] || CT_Abort "Kernel version >= 2.6.18 is needed to install kernel headers."
   11.55 +
   11.56 +    V_OPT="V=${CT_KERNEL_LINUX_VERBOSE_LEVEL}"
   11.57 +
   11.58 +    CT_DoLog EXTRA "Installing kernel headers"
   11.59 +    CT_DoExecLog ALL                                    \
   11.60 +    make -C "${CT_SRC_DIR}/linux-${CT_KERNEL_VERSION}"  \
   11.61 +         O=$(pwd)                                       \
   11.62 +         ARCH=${CT_KERNEL_ARCH}                         \
   11.63 +         INSTALL_HDR_PATH="${CT_SYSROOT_DIR}/usr"       \
   11.64 +         ${V_OPT}                                       \
   11.65 +         headers_install
   11.66 +
   11.67 +    if [ "${CT_KERNEL_LINUX_INSTALL_CHECK}" = "y" ]; then
   11.68 +        CT_DoLog EXTRA "Checking installed headers"
   11.69 +        CT_DoExecLog ALL                                    \
   11.70 +        make -C "${CT_SRC_DIR}/linux-${CT_KERNEL_VERSION}"  \
   11.71 +             O=$(pwd)                                       \
   11.72 +             ARCH=${CT_KERNEL_ARCH}                         \
   11.73 +             INSTALL_HDR_PATH="${CT_SYSROOT_DIR}/usr"       \
   11.74 +             ${V_OPT}                                       \
   11.75 +             headers_check
   11.76 +        find "${CT_SYSROOT_DIR}" -type f -name '.check*' -exec rm {} \;
   11.77 +    fi
   11.78 +}
   11.79 +
   11.80 +# Use custom headers (most probably by using make headers_install in a
   11.81 +# modified (read: customised) kernel tree, or using pre-2.6.18 headers, such
   11.82 +# as 2.4). In this case, simply copy the headers in place
   11.83 +do_kernel_custom() {
   11.84 +    local tar_opt
   11.85 +
   11.86 +    CT_DoLog EXTRA "Installing custom kernel headers"
   11.87 +
   11.88 +    mkdir -p "${CT_SYSROOT_DIR}/usr"
   11.89 +    cd "${CT_SYSROOT_DIR}/usr"
   11.90 +    if [ "${CT_KERNEL_LINUX_CUSTOM_IS_TARBALL}" = "y" ]; then
   11.91 +        case "${CT_KERNEL_LINUX_CUSTOM_PATH}" in
   11.92 +            *.tar)      ;;
   11.93 +            *.tgz)      tar_opt=--gzip;;
   11.94 +            *.tar.gz)   tar_opt=--gzip;;
   11.95 +            *.tar.bz2)  tar_opt=--bzip2;;
   11.96 +            *.tar.lzma) tar_opt=--lzma;;
   11.97 +        esac
   11.98 +        CT_DoExecLog ALL tar x ${tar_opt} -vf ${CT_KERNEL_LINUX_CUSTOM_PATH}
   11.99 +    else
  11.100 +        CT_DoExecLog ALL cp -rv "${CT_KERNEL_LINUX_CUSTOM_PATH}/include" .
  11.101 +    fi
  11.102 +}
    12.1 --- a/scripts/build/kernel/linux.sh	Wed May 13 18:10:47 2009 +0000
    12.2 +++ b/scripts/build/kernel/linux.sh	Wed May 13 20:55:15 2009 +0000
    12.3 @@ -1,99 +1,1 @@
    12.4 -# This file declares functions to install the kernel headers for linux
    12.5 -# Copyright 2007 Yann E. MORIN
    12.6 -# Licensed under the GPL v2. See COPYING in the root of this package
    12.7 -
    12.8 -CT_DoKernelTupleValues() {
    12.9 -    # Nothing to do, keep the default value
   12.10 -    :
   12.11 -}
   12.12 -
   12.13 -# Download the kernel
   12.14 -do_kernel_get() {
   12.15 -    if [ "${CT_KERNEL_LINUX_USE_CUSTOM_HEADERS}" != "y" ]; then
   12.16 -        CT_GetFile "linux-${CT_KERNEL_VERSION}" \
   12.17 -                   {ftp,http}://ftp.{de.,eu.,}kernel.org/pub/linux/kernel/v2.{6{,/testing},4,2}
   12.18 -    fi
   12.19 -    return 0
   12.20 -}
   12.21 -
   12.22 -# Extract kernel
   12.23 -do_kernel_extract() {
   12.24 -    if [ "${CT_KERNEL_LINUX_USE_CUSTOM_HEADERS}" != "y" ]; then
   12.25 -        CT_Extract "linux-${CT_KERNEL_VERSION}"
   12.26 -        CT_Patch "linux-${CT_KERNEL_VERSION}"
   12.27 -    fi
   12.28 -    return 0
   12.29 -}
   12.30 -
   12.31 -# Wrapper to the actual headers install method
   12.32 -do_kernel_headers() {
   12.33 -    CT_DoStep INFO "Installing kernel headers"
   12.34 -
   12.35 -    if [ "${CT_KERNEL_LINUX_USE_CUSTOM_HEADERS}" = "y" ]; then
   12.36 -        do_kernel_custom
   12.37 -    else
   12.38 -        do_kernel_install
   12.39 -    fi
   12.40 -
   12.41 -    CT_EndStep
   12.42 -}
   12.43 -
   12.44 -# Install kernel headers using headers_install from kernel sources.
   12.45 -do_kernel_install() {
   12.46 -    CT_DoLog DEBUG "Using kernel's headers_install"
   12.47 -
   12.48 -    mkdir -p "${CT_BUILD_DIR}/build-kernel-headers"
   12.49 -    cd "${CT_BUILD_DIR}/build-kernel-headers"
   12.50 -
   12.51 -    # Only starting with 2.6.18 does headers_install is usable. We only
   12.52 -    # have 2.6 version available, so only test for sublevel.
   12.53 -    k_sublevel=$(awk '/^SUBLEVEL =/ { print $3 }' "${CT_SRC_DIR}/linux-${CT_KERNEL_VERSION}/Makefile")
   12.54 -    [ ${k_sublevel} -ge 18 ] || CT_Abort "Kernel version >= 2.6.18 is needed to install kernel headers."
   12.55 -
   12.56 -    V_OPT="V=${CT_KERNEL_LINUX_VERBOSE_LEVEL}"
   12.57 -
   12.58 -    CT_DoLog EXTRA "Installing kernel headers"
   12.59 -    CT_DoExecLog ALL                                    \
   12.60 -    make -C "${CT_SRC_DIR}/linux-${CT_KERNEL_VERSION}"  \
   12.61 -         O=$(pwd)                                       \
   12.62 -         ARCH=${CT_KERNEL_ARCH}                         \
   12.63 -         INSTALL_HDR_PATH="${CT_SYSROOT_DIR}/usr"       \
   12.64 -         ${V_OPT}                                       \
   12.65 -         headers_install
   12.66 -
   12.67 -    if [ "${CT_KERNEL_LINUX_INSTALL_CHECK}" = "y" ]; then
   12.68 -        CT_DoLog EXTRA "Checking installed headers"
   12.69 -        CT_DoExecLog ALL                                    \
   12.70 -        make -C "${CT_SRC_DIR}/linux-${CT_KERNEL_VERSION}"  \
   12.71 -             O=$(pwd)                                       \
   12.72 -             ARCH=${CT_KERNEL_ARCH}                         \
   12.73 -             INSTALL_HDR_PATH="${CT_SYSROOT_DIR}/usr"       \
   12.74 -             ${V_OPT}                                       \
   12.75 -             headers_check
   12.76 -        find "${CT_SYSROOT_DIR}" -type f -name '.check*' -exec rm {} \;
   12.77 -    fi
   12.78 -}
   12.79 -
   12.80 -# Use custom headers (most probably by using make headers_install in a
   12.81 -# modified (read: customised) kernel tree, or using pre-2.6.18 headers, such
   12.82 -# as 2.4). In this case, simply copy the headers in place
   12.83 -do_kernel_custom() {
   12.84 -    local tar_opt
   12.85 -
   12.86 -    CT_DoLog EXTRA "Installing custom kernel headers"
   12.87 -
   12.88 -    mkdir -p "${CT_SYSROOT_DIR}/usr"
   12.89 -    cd "${CT_SYSROOT_DIR}/usr"
   12.90 -    if [ "${CT_KERNEL_LINUX_CUSTOM_IS_TARBALL}" = "y" ]; then
   12.91 -        case "${CT_KERNEL_LINUX_CUSTOM_PATH}" in
   12.92 -            *.tar)      ;;
   12.93 -            *.tgz)      tar_opt=--gzip;;
   12.94 -            *.tar.gz)   tar_opt=--gzip;;
   12.95 -            *.tar.bz2)  tar_opt=--bzip2;;
   12.96 -            *.tar.lzma) tar_opt=--lzma;;
   12.97 -        esac
   12.98 -        CT_DoExecLog ALL tar x ${tar_opt} -vf ${CT_KERNEL_LINUX_CUSTOM_PATH}
   12.99 -    else
  12.100 -        CT_DoExecLog ALL cp -rv "${CT_KERNEL_LINUX_CUSTOM_PATH}/include" .
  12.101 -    fi
  12.102 -}
  12.103 +. ${CT_LIB_DIR}/scripts/build/kernel/linux-common.sh
    13.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.2 +++ b/scripts/build/kernel/uclinux.sh	Wed May 13 20:55:15 2009 +0000
    13.3 @@ -0,0 +1,1 @@
    13.4 +. ${CT_LIB_DIR}/scripts/build/kernel/linux-common.sh
    14.1 --- a/steps.mk	Wed May 13 18:10:47 2009 +0000
    14.2 +++ b/steps.mk	Wed May 13 20:55:15 2009 +0000
    14.3 @@ -22,6 +22,7 @@
    14.4              mpfr                \
    14.5              ppl                 \
    14.6              binutils            \
    14.7 +            elf2flt             \
    14.8              cc_core_pass_1      \
    14.9              libc_headers        \
   14.10              libc_start_files    \