Merge pull request #767 from stilor/packages

Packages
This commit is contained in:
Alexey Neyman 2017-07-13 00:38:03 -07:00 committed by GitHub
commit 45c5bb0f48
1551 changed files with 4140 additions and 6454 deletions

1
.gitignore vendored
View File

@ -11,6 +11,7 @@ paths.*
!paths.in !paths.in
config/configure.in config/configure.in
config/gen/ config/gen/
config/versions/
.config .config
# Temporaries # Temporaries

View File

@ -148,7 +148,7 @@ distclean: clean
$(call __silent_rm,Makefile kconfig/Makefile config/configure.in) $(call __silent_rm,Makefile kconfig/Makefile config/configure.in)
mrproper: distclean mrproper: distclean
$(call __silent_rmdir,autom4te.cache config/gen) $(call __silent_rmdir,autom4te.cache config/gen config/versions)
$(call __silent_rm,config.log config.status configure) $(call __silent_rm,config.log config.status configure)
uninstall: real-uninstall uninstall: real-uninstall

11
TODO
View File

@ -2,7 +2,18 @@ A (slightly) ordered set of tasks for crosstool-NG. Written in a cryptic languag
-- Alexey Neyman (@stilor) -- Alexey Neyman (@stilor)
[ ] new packages
[ ] config.guess
[ ] gnulib
[ ] use gnulib in m4, gettext, libiconv, libtool
[ ] autoconf-archive
[ ] use to retrieve ax_pthread.m4 (gettext?)
[ ] retire wiki-samples
[ ] Fix displaying the versions in case devel is used (custom location/repo) - display "devel" or "custom" in those cases
[ ] clean up GDB versions - no X.Y if X.Y.1 is present
[ ] Check other packages, leave only the most recent on each branch
[ ] arm_neon.h - offer as a companion "library" for the target [ ] arm_neon.h - offer as a companion "library" for the target
[ ] gdbinit (installed if CT_GDB_INSTALL_GDBINIT is set) is not relocatable, contains absolute paths
[ ] FreeBSD [ ] FreeBSD
[ ] Use 'cc' rather than 'gcc' on the host [ ] Use 'cc' rather than 'gcc' on the host
[ ] Detect in configure what the default value is [ ] Detect in configure what the default value is

675
bootstrap
View File

@ -1,10 +1,671 @@
#!/bin/sh #!/bin/bash
set -e
printf "Running autoconf...\n" ########################################
# Common meta-language implementation. Syntax:
#
# The template file is processed line by line, with @@VAR@@ placeholders
# being replaced with a value of the VAR variable.
# Special lines start with '#!' and a keyword:
#
# #!//
# Comment, the rest of the line is ignored
# #!if COND
# Conditional: the lines until the matching #!end-if are processed
# only if the conditional COND evaluates to true.
# #!foreach NAME
# Iterate over NAME entities (the iterator must be set up first
# using the set_iter function), processing the lines until the matching
# #!end-foreach line.
declare -A info
debug()
{
if [ -n "${DEBUG}" ]; then
echo "DEBUG :: $@" >&2
fi
}
msg()
{
if [ -z "${QUIET}" ]; then
echo "INFO :: $@" >&2
fi
}
warn()
{
echo "WARN :: $@" >&2
}
error()
{
echo "ERROR :: $@" >&2
exit 1
}
find_end()
{
local token="${1}"
local count=1
# Skip first line, we know it has the proper '#!' command on it
endline=$[l + 1]
while [ "${endline}" -le "${end}" ]; do
case "${tlines[${endline}]}" in
"#!${token} "*)
count=$[count + 1]
;;
"#!end-${token}")
count=$[count - 1]
;;
esac
if [ "${count}" = 0 ]; then
return
fi
endline=$[endline + 1]
done
error "line ${l}: '${token}' token is unpaired"
}
set_iter()
{
local name="${1}"
if [ "${info[iter_${name}]+set}" = "set" ]; then
error "Iterator over '${name}' is already set up"
fi
shift
debug "Setting iterator over '${name}' to '$*'"
info[iter_${name}]="$*"
}
run_if()
{
local cond="${1}"
local endline
find_end "if"
if eval "${cond}"; then
debug "True conditional '${cond}' at lines ${l}..${endline}"
run_lines $[l + 1] $[endline - 1]
else
debug "False conditional '${cond}' at lines ${l}..${endline}"
fi
lnext=$[endline + 1]
debug "Continue at line ${lnext}"
}
do_foreach()
{
local var="${1}"
local -A saveinfo
local v k
shift
if [ "`type -t enter_${var}`" != "function" ]; then
error "No parameter setup routine for iterator over '${var}'"
fi
for v in ${info[iter_${var}]}; do
# This works in bash 4.4, but not in bash 4.3:
# local saveinfo=`declare -p info`
# ...
# eval "${saveinfo}"
# Therefore, need to save key-by-key
saveinfo=()
for k in "${!info[@]}"; do
saveinfo["${k}"]=${info["${k}"]}
done
eval "enter_${var} ${v}"
eval "$@"
info=()
for k in "${!saveinfo[@]}"; do
info["${k}"]=${saveinfo["${k}"]}
done
done
}
run_foreach()
{
local var="${1}"
local endline
if [ "${info[iter_${var}]+set}" != "set" ]; then
error "line ${l}: iterator over '${var}' is not defined"
fi
find_end "foreach"
debug "Loop over '${var}', lines ${l}..${endline}"
do_foreach ${var} run_lines $[l + 1] $[endline - 1]
lnext=$[endline + 1]
debug "Continue at line ${lnext}"
}
run_lines()
{
local start="${1}"
local end="${2}"
local l lnext s s1 v
debug "Running lines ${start}..${end}"
l=${start}
while [ "${l}" -le "${end}" ]; do
lnext=$[l+1]
s="${tlines[${l}]}"
# Expand @@foo@@ to ${info[foo]}. First escape variables/backslashes for evals below.
s="${s//\\/\\\\}"
s="${s//\$/\\\$}"
s1=
while [ -n "${s}" ]; do
case "${s}" in
*@@*@@*)
v="${s#*@@}"
v="${v%%@@*}"
if [ "${info[${v}]+set}" != "set" ]; then
error "line ${l}: reference to undefined variable '${v}'"
fi
s1="${s1}${s%%@@*}\${info[${v}]}"
s="${s#*@@*@@}"
;;
*@@*)
error "line ${l}: non-paired @@ markers"
;;
*)
s1="${s1}${s}"
break
;;
esac
done
s=${s1}
debug "Evaluate: ${s}"
case "${s}" in
"#!if "*)
run_if "${s#* }"
;;
"#!foreach "*)
run_foreach "${s#* }"
;;
"#!//"*)
# Comment, do nothing
;;
"#!"*)
error "line ${l}: unrecognized command"
;;
*)
# Not a special command
eval "echo \"${s//\"/\\\"}\""
;;
esac
l=${lnext}
done
}
run_template()
{
local -a tlines
local src="${1}"
if [ ! -r "${src}" ]; then
error "Template '${src}' not found"
fi
debug "Running template ${src}"
mapfile -O 1 -t tlines < "${src}"
run_lines 1 ${#tlines[@]}
}
########################################
# Convert the argument to a Kconfig-style macro
kconfigize()
{
local v="${1}"
local p pb pa vx
shift
# If optional patterns are provided, find the first match
# and contract to the matching portion.
for p in "$@"; do
pb=${p%|*}
pa=${p#*|}
eval "vx=\${v#${pb}${pa}}"
if [ "${v%${pa}${vx}}" != "${v}" ]; then
v=${v%${pa}${vx}}
break
fi
done
v=${v//[^0-9A-Za-z_]/_}
echo "${v^^}"
}
# Helper for cmp_versions: compare an upstream/debian portion of
# a version. Returns 0 if equal, otherwise echoes "-1" or "1" and
# returns 1.
equal_versions()
{
local v1="${1}"
local v2="${2}"
local p1 p2
# Compare alternating non-numerical/numerical portions, until
# non-equal portion is found or either string is exhausted.
while [ -n "${v1}" -a -n "${v2}" ]; do
# Find non-numerical portions and compare lexicographically
p1="${v1%%[0-9]*}"
p2="${v2%%[0-9]*}"
v1="${v1#${p1}}"
v2="${v2#${p2}}"
#debug "lex [${p1}] v [${p2}]"
if [ "${p1}" \< "${p2}" ]; then
echo "-1"
return 1
elif [ "${p1}" \> "${p2}" ]; then
echo "1"
return 1
fi
#debug "rem [${v1}] v [${v2}]"
# Find numerical portions and compare numerically
p1="${v1%%[^0-9]*}"
p2="${v2%%[^0-9]*}"
v1="${v1#${p1}}"
v2="${v2#${p2}}"
#debug "num [${p1}] v [${p2}]"
if [ "${p1:-0}" -lt "${p2:-0}" ]; then
echo "-1"
return 1
elif [ "${p1:-0}" -gt "${p2:-0}" ]; then
echo "1"
return 1
fi
#debug "rem [${v1}] v [${v2}]"
done
if [ -n "${v1}" ]; then
echo "1"
return 1
elif [ -n "${v2}" ]; then
echo "-1"
return 1
fi
return 0
}
# Compare two version strings, similar to sort -V. But we don't
# want to depend on GNU sort availability on the host.
# See http://www.debian.org/doc/debian-policy/ch-controlfields.html
# for description of what the version is expected to be.
# Returns "-1", "0" or "1" if first version is earlier, same or
# later than the second.
cmp_versions()
{
local v1="${1}"
local v2="${2}"
local e1=0 e2=0 u1 u2 d1=0 d2=0
# Case-insensitive comparison
v1="${v1^^}"
v2="${v2^^}"
# Find if the versions contain epoch part
case "${v1}" in
*:*)
e1="${v1%%:*}"
v1="${v1#*:}"
;;
esac
case "${v2}" in
*:*)
e2="${v2%%:*}"
v2="${v2#*:}"
;;
esac
# Compare epochs numerically
if [ "${e1}" -lt "${e2}" ]; then
echo "-1"
return
elif [ "${e1}" -gt "${e2}" ]; then
echo "1"
return
fi
# Find if the version contains a "debian" part.
# v1/v2 will now contain "upstream" part.
case "${v1}" in
*-*)
d1=${v1##*-}
v1=${v1%-*}
;;
esac
case "${v2}" in
*-*)
d2=${v2##*-}
v2=${v2%-*}
;;
esac
# Compare upstream
if equal_versions "${v1}" "${v2}" && equal_versions "${d1}" "${d2}"; then
echo "0"
fi
}
# Sort versions, descending
sort_versions()
{
local sorted
local remains="$*"
local next_remains
local v vx found
while [ -n "${remains}" ]; do
#debug "Sorting [${remains}]"
for v in ${remains}; do
found=yes
next_remains=
#debug "Candidate ${v}"
for vx in ${remains}; do
#debug "${v} vs ${vx} :: `cmp_versions ${v} ${vx}`"
case `cmp_versions ${v} ${vx}` in
1)
next_remains+=" ${vx}"
;;
0)
;;
-1)
found=no
#debug "Bad: earlier than ${vx}"
break
;;
esac
done
if [ "${found}" = "yes" ]; then
# $v is less than all other members in next_remains
sorted+=" ${v}"
remains="${next_remains}"
#debug "Good candidate ${v} sorted [${sorted}] remains [${remains}]"
break
fi
done
done
echo "${sorted}"
}
read_file()
{
local l p
while read l; do
l="${p}${l}"
p=
case "${l}" in
"")
continue
;;
*\\)
p="${l%\\}"
continue
;;
"#"*)
continue
;;
*=*)
echo "info[${l%%=*}]=${l#*=}"
;;
*)
error "syntax error in '${1}': '${l}'"
;;
esac
done < "${1}"
}
read_package_desc()
{
read_file "packages/${1}/package.desc"
}
read_version_desc()
{
read_file "packages/${1}/${2}/version.desc"
}
find_forks()
{
local -A info
info[preferred]=${1}
eval `read_package_desc ${1}`
if [ -n "${info[master]}" ]; then
pkg_nforks[${info[master]}]=$[pkg_nforks[${info[master]}]+1]
pkg_forks[${info[master]}]+=" ${1} "
else
pkg_preferred[${1}]=${info[preferred]}
pkg_nforks[${1}]=$[pkg_nforks[${1}]+1]
pkg_forks[${1}]+=" ${1} "
pkg_milestones[${1}]=`sort_versions ${info[milestones]}`
pkg_relevantpattern[${1}]=${info[relevantpattern]}
pkg_masters+=( "${1}" )
fi
# Keep sorting so that preferred fork is first
if [ -n "${pkg_preferred[${1}]}" ]; then
pkg_forks[${1}]="${pkg_preferred[${1}]} ${pkg_forks[${1}]##* ${pkg_preferred[${1}]} } ${pkg_forks[${1}]%% ${pkg_preferred[${1}]} *}"
fi
}
check_obsolete_experimental()
{
[ -z "${info[obsolete]}" ] && only_obsolete=
[ -z "${info[experimental]}" ] && only_experimental=
}
enter_fork()
{
local fork="${1}"
local versions
local only_obsolete only_experimental
# Set defaults
info[obsolete]=
info[experimental]=
info[repository]=
info[repository_branch]=
info[repository_cset]=
info[repository_subdir]=
info[bootstrap]=
info[fork]=${fork}
info[pkg_name]=${fork}
info[pkg_label]=${fork}
info[mirrors]=
info[archive_filename]='@{pkg_name}-@{version}'
info[archive_dirname]='@{pkg_name}-@{version}'
eval `read_package_desc ${fork}`
info[pfx]=`kconfigize ${fork}`
info[originpfx]=`kconfigize ${info[origin]}`
if [ -r "packages/${info[origin]}.help" ]; then
info[originhelp]=`sed 's/^/ /' "packages/${info[origin]}.help"`
else
info[originhelp]=" ${info[master]} from ${info[origin]}."
fi
if [ -n "${info[repository]}" ]; then
info[vcs]=${info[repository]%% *}
info[repository_url]=${info[repository]#* }
fi
info[versionlocked]=`kconfigize "${info[versionlocked]}"`
versions=`cd packages/${fork} && \
for f in */version.desc; do [ -r "${f}" ] && echo "${f%/version.desc}"; done`
versions=`sort_versions ${versions}`
set_iter version ${versions}
info[all_versions]=${versions}
# If a fork does not define any versions at all ("rolling release"), do not
# consider it obsolete/experimental unless it is so marked in the fork's
# description.
if [ -n "${versions}" ]; then
only_obsolete=yes
only_experimental=yes
do_foreach version check_obsolete_experimental
info[only_obsolete]=${only_obsolete}
info[only_experimental]=${only_experimental}
else
info[only_obsolete]=${info[obsolete]}
info[only_experimental]=${info[experimental]}
fi
}
enter_version()
{
local -A ver_postfix=( \
[,yes,,]=" (OBSOLETE)" \
[,,yes,]=" (EXPERIMENTAL)" \
[,yes,yes,]=" (OBSOLETE,EXPERIMENTAL)" )
local version="${1}"
eval `read_version_desc ${info[fork]} ${version}`
info[ver]=${version}
info[kcfg]=`kconfigize ${version} ${info[relevantpattern]}`
info[ver_postfix]=${ver_postfix[,${info[obsolete]},${info[experimental]},]}
}
enter_milestone()
{
local ms="${1}"
local cmp
info[ms]=${ms}
info[ms_kcfg]=`kconfigize ${ms}`
if [ -n "${info[ver]}" ]; then
info[version_cmp_milestone]=`cmp_versions ${info[ver]} ${info[ms]}`
fi
}
gen_packages()
{
local -A pkg_forks pkg_milestones pkg_nforks pkg_relevantpattern
local -a pkg_masters pkg_all pkg_preferred
pkg_all=( `cd packages && \
ls */package.desc 2>/dev/null | \
while read f; do [ -r "${f}" ] && echo "${f%/package.desc}"; done | \
xargs echo` )
debug "Packages: ${pkg_all[@]}"
# We need to group forks of the same package into the same
# config file. Discover such relationships and only iterate
# over "master" packages at the top.
for p in "${pkg_all[@]}"; do
find_forks "${p}"
done
msg "Master packages: ${pkg_masters[@]}"
# Now for each master, create its kconfig file with version
# definitions.
for p in "${pkg_masters[@]}"; do
msg "Generating '${config_versions_dir}/${p}.in'"
exec >"${config_versions_dir}/${p}.in"
# Base definitions for the whole config file
info=( \
[master]=${p} \
[masterpfx]=`kconfigize ${p}` \
[nforks]=${pkg_nforks[${p}]} \
[all_milestones]=${pkg_milestones[${p}]} \
[relevantpattern]=${pkg_relevantpattern[${p}]} \
)
set_iter fork ${pkg_forks[${p}]}
set_iter milestone ${pkg_milestones[${p}]}
run_template "maintainer/kconfig-versions.template"
done
}
msg "*** Generating package version descriptions"
config_versions_dir=config/versions
rm -rf "${config_versions_dir}"
mkdir -p "${config_versions_dir}"
gen_packages
get_components()
{
local dir="${1}"
local f b
for f in ${dir}/*.in; do
b=${f#${dir}/}
echo ${b%.in}
done
}
enter_choice()
{
local choice="${1}"
local l
info[choice]="${choice}"
info[kcfg_choice]=`kconfigize "${choice}"`
# Not local, we need these arrays be set in enter_dependency/enter_help
deplines=( )
helplines=( )
while read l; do
case "${l}" in
"## help "*)
helplines+=( "${l#* help }" )
;;
"## depends "*|"## select "*)
deplines+=( "${l#* }" )
;;
esac
done < "config/${info[dir]}/${choice}.in"
set_iter dependency "${!deplines[@]}"
set_iter help "${!helplines[@]}"
}
enter_dependency()
{
info[depline]="${deplines[${1}]}"
}
enter_help()
{
info[helpline]="${helplines[${1}]}"
}
gen_selection()
{
local type="${1}"
local dir="${2}"
local label="${3}"
msg "Generating ${dir}.in"
exec >"${config_gen_dir}/${dir}.in"
info=( \
[prefix]=`kconfigize ${dir}` \
[dir]=${dir} \
[label]="${label}" \
)
set_iter choice `get_components config/${dir}`
run_template "maintainer/kconfig-${type}.template"
}
msg "*** Generating menu/choice selections"
config_gen_dir=config/gen
rm -rf "${config_gen_dir}"
mkdir -p "${config_gen_dir}"
gen_selection choice arch "Target Architecture"
gen_selection choice kernel "Target OS"
gen_selection choice cc "Compiler"
gen_selection choice binutils "Binutils"
gen_selection choice libc "C library"
gen_selection menu debug "Debug facilities"
gen_selection menu comp_tools "Companion tools"
msg "*** Running autoconf"
autoconf -Wall --force autoconf -Wall --force
printf "Generating kconfig files...\n" msg "*** Done!"
./maintainer/gen-kconfig.sh
printf "Done. You may now run:\n ./configure\n"

View File

@ -5,5 +5,60 @@
## select ARCH_USE_MMU ## select ARCH_USE_MMU
## select ARCH_SUPPORTS_WITH_CPU ## select ARCH_SUPPORTS_WITH_CPU
## select ARCH_SUPPORTS_WITH_TUNE ## select ARCH_SUPPORTS_WITH_TUNE
##
## help The Alpha architecture. ## help The Alpha architecture.
choice
bool
prompt "Variant"
config ARCH_ALPHA_EV4
bool
prompt "EV4"
config ARCH_ALPHA_EV45
bool
prompt "EV45"
config ARCH_ALPHA_EV5
bool
prompt "EV5"
config ARCH_ALPHA_EV56
bool
prompt "EV56"
config ARCH_ALPHA_EV6
bool
prompt "EV6"
config ARCH_ALPHA_EV67
bool
prompt "EV67"
endchoice
config ARCH_ALPHA_VARIANT
string
default "ev4" if ARCH_ALPHA_EV4
default "ev45" if ARCH_ALPHA_EV45
default "ev5" if ARCH_ALPHA_EV5
default "ev56" if ARCH_ALPHA_EV56
default "ev6" if ARCH_ALPHA_EV6
default "ev67" if ARCH_ALPHA_EV67
config ARCH_CPU
default "ev4" if ARCH_ALPHA_EV4
default "ev45" if ARCH_ALPHA_EV45
default "ev5" if ARCH_ALPHA_EV5
default "ev56" if ARCH_ALPHA_EV56
default "ev6" if ARCH_ALPHA_EV6
default "ev67" if ARCH_ALPHA_EV67
config ARCH_TUNE
default "ev4" if ARCH_ALPHA_EV4
default "ev45" if ARCH_ALPHA_EV45
default "ev5" if ARCH_ALPHA_EV5
default "ev56" if ARCH_ALPHA_EV56
default "ev6" if ARCH_ALPHA_EV6
default "ev67" if ARCH_ALPHA_EV67

View File

@ -1,56 +0,0 @@
# Alpha specific configuration file
choice
bool
prompt "Variant"
config ARCH_ALPHA_EV4
bool
prompt "EV4"
config ARCH_ALPHA_EV45
bool
prompt "EV45"
config ARCH_ALPHA_EV5
bool
prompt "EV5"
config ARCH_ALPHA_EV56
bool
prompt "EV56"
config ARCH_ALPHA_EV6
bool
prompt "EV6"
config ARCH_ALPHA_EV67
bool
prompt "EV67"
endchoice
config ARCH_ALPHA_VARIANT
string
default "ev4" if ARCH_ALPHA_EV4
default "ev45" if ARCH_ALPHA_EV45
default "ev5" if ARCH_ALPHA_EV5
default "ev56" if ARCH_ALPHA_EV56
default "ev6" if ARCH_ALPHA_EV6
default "ev67" if ARCH_ALPHA_EV67
config ARCH_CPU
default "ev4" if ARCH_ALPHA_EV4
default "ev45" if ARCH_ALPHA_EV45
default "ev5" if ARCH_ALPHA_EV5
default "ev56" if ARCH_ALPHA_EV56
default "ev6" if ARCH_ALPHA_EV6
default "ev67" if ARCH_ALPHA_EV67
config ARCH_TUNE
default "ev4" if ARCH_ALPHA_EV4
default "ev45" if ARCH_ALPHA_EV45
default "ev5" if ARCH_ALPHA_EV5
default "ev56" if ARCH_ALPHA_EV56
default "ev6" if ARCH_ALPHA_EV6
default "ev67" if ARCH_ALPHA_EV67

View File

@ -14,6 +14,101 @@
## select ARCH_SUPPORTS_WITH_FLOAT if ARCH_32 ## select ARCH_SUPPORTS_WITH_FLOAT if ARCH_32
## select ARCH_SUPPORTS_WITH_FPU if ARCH_32 ## select ARCH_SUPPORTS_WITH_FPU if ARCH_32
## select ARCH_SUPPORTS_SOFTFP if ARCH_32 ## select ARCH_SUPPORTS_SOFTFP if ARCH_32
##
## help The ARM architecture, as defined by: ## help The ARM architecture, as defined by:
## help http://www.arm.com/ ## help http://www.arm.com/
if ARCH_32
config ARCH_ARM_MODE
string
default "arm" if ARCH_ARM_MODE_ARM
default "thumb" if ARCH_ARM_MODE_THUMB
choice
bool
prompt "Default instruction set mode"
default ARCH_ARM_MODE_ARM
config ARCH_ARM_MODE_ARM
bool
prompt "arm"
help
Defaults to emitting instructions in the ARM mode.
config ARCH_ARM_MODE_THUMB
bool
prompt "thumb"
help
Defaults to emitting instructions in the THUMB mode.
endchoice
config ARCH_ARM_INTERWORKING
bool
prompt "Use Thumb-interworking (READ HELP)"
help
Excerpt from the gcc manual:
> Generate code which supports calling between the ARM and Thumb
> instruction sets. Without this option the two instruction sets
> cannot be reliably used inside one program. The default is
> [not to use interwork], since slightly larger code is generated
> when [interwork] is specified.
NOTE: Interworking in crosstool-NG is not sell-tested. Use at your
own risks, and report success and/or failure.
# Until we only support EABI:
config ARCH_ARM_ABI_OK
def_bool y
depends on ! ARCH_ARM_EABI
select ARCH_SUPPORTS_WITH_ABI
# Little trick to force EABI *and* always show the prompt
config ARCH_ARM_EABI_FORCE
bool
default y if ! OBSOLETE
select ARCH_ARM_EABI
config ARCH_ARM_EABI
bool
prompt "Use EABI"
default y
help
Set up the toolchain so that it generates EABI-compliant binaries.
If you say 'n' here, then the toolchain will generate OABI binaries.
OABI has long been deprecated, and is now considered legacy.
config ARCH_ARM_TUPLE_USE_EABIHF
bool
prompt "append 'hf' to the tuple (EXPERIMENTAL)"
depends on ARCH_FLOAT_HW
depends on ARCH_ARM_EABI # Until we only support that...
default y
help
Is you say 'y' here, then the tuple for the toolchain will end
up with *eabihf, instead of the usual *eabi.
*eabihf is used to denote that the toolchain *is* using the
hard-float ABI, while *eabi is just an indication of using the
soft-float ABI.
Ie. all one can say is: *eabihf ⊢ hard-float ABI
Saying 'n' here does *not* impact the ability of the toolchain to
generate hard-float instructions with the hard-float ABI. It is a
purely cosmetic thing, used by distros to differentiate their
hard-float-ABI-using ports from their soft-float-ABI-using ports.
(eg. Debian Wheezy and above).
This is an option, as not all versions of gcc/binutils do support
such tuple, and fail to build with *eabihf. Stock gcc version up
to, and including 4.7.2 have an issue or another with *eabihf.
This option is here for the future.
Say 'n', unless you are trying to fix gcc to properly recognise
the *eabihf tuples.
endif

View File

@ -1,96 +0,0 @@
# ARM specific configuration file
if ARCH_32
config ARCH_ARM_MODE
string
default "arm" if ARCH_ARM_MODE_ARM
default "thumb" if ARCH_ARM_MODE_THUMB
choice
bool
prompt "Default instruction set mode"
default ARCH_ARM_MODE_ARM
config ARCH_ARM_MODE_ARM
bool
prompt "arm"
help
Defaults to emitting instructions in the ARM mode.
config ARCH_ARM_MODE_THUMB
bool
prompt "thumb"
help
Defaults to emitting instructions in the THUMB mode.
endchoice
config ARCH_ARM_INTERWORKING
bool
prompt "Use Thumb-interworking (READ HELP)"
help
Excerpt from the gcc manual:
> Generate code which supports calling between the ARM and Thumb
> instruction sets. Without this option the two instruction sets
> cannot be reliably used inside one program. The default is
> [not to use interwork], since slightly larger code is generated
> when [interwork] is specified.
NOTE: Interworking in crosstool-NG is not sell-tested. Use at your
own risks, and report success and/or failure.
# Until we only support EABI:
config ARCH_ARM_ABI_OK
def_bool y
depends on ! ARCH_ARM_EABI
select ARCH_SUPPORTS_WITH_ABI
# Little trick to force EABI *and* always show the prompt
config ARCH_ARM_EABI_FORCE
bool
default y if ! OBSOLETE
select ARCH_ARM_EABI
config ARCH_ARM_EABI
bool
prompt "Use EABI"
default y
help
Set up the toolchain so that it generates EABI-compliant binaries.
If you say 'n' here, then the toolchain will generate OABI binaries.
OABI has long been deprecated, and is now considered legacy.
config ARCH_ARM_TUPLE_USE_EABIHF
bool
prompt "append 'hf' to the tuple (EXPERIMENTAL)"
depends on ARCH_FLOAT_HW
depends on ARCH_ARM_EABI # Until we only support that...
default y
help
Is you say 'y' here, then the tuple for the toolchain will end
up with *eabihf, instead of the usual *eabi.
*eabihf is used to denote that the toolchain *is* using the
hard-float ABI, while *eabi is just an indication of using the
soft-float ABI.
Ie. all one can say is: *eabihf ⊢ hard-float ABI
Saying 'n' here does *not* impact the ability of the toolchain to
generate hard-float instructions with the hard-float ABI. It is a
purely cosmetic thing, used by distros to differentiate their
hard-float-ABI-using ports from their soft-float-ABI-using ports.
(eg. Debian Wheezy and above).
This is an option, as not all versions of gcc/binutils do support
such tuple, and fail to build with *eabihf. Stock gcc version up
to, and including 4.7.2 have an issue or another with *eabihf.
This option is here for the future.
Say 'n', unless you are trying to fix gcc to properly recognise
the *eabihf tuples.
endif

View File

@ -9,6 +9,43 @@
## select ARCH_SUPPORTS_WITH_ARCH ## select ARCH_SUPPORTS_WITH_ARCH
## select ARCH_SUPPORTS_WITH_TUNE ## select ARCH_SUPPORTS_WITH_TUNE
## select ARCH_SUPPORTS_WITH_FLOAT ## select ARCH_SUPPORTS_WITH_FLOAT
##
## help The MIPS architecture, as defined by: ## help The MIPS architecture, as defined by:
## help http://www.mips.com/ ## help http://www.mips.com/
choice
bool
prompt "ABI"
config ARCH_mips_o32
bool
prompt "o32"
depends on (ARCH_32 || MULTILIB)
help
This is the -mabi=32 gcc option.
config ARCH_mips_n32
bool
prompt "n32"
depends on ARCH_64
help
This is the -mabi=n32 gcc option.
config ARCH_mips_n64
bool
prompt "n64"
depends on ARCH_64
help
This is the -mabi=64 gcc option.
# Not supported on Linux:
# o64 : seems related to *BSD
# eabi : seems related to bare-metal
endchoice
config ARCH_mips_ABI
string
default "32" if ARCH_mips_o32
default "n32" if ARCH_mips_n32
default "64" if ARCH_mips_n64

View File

@ -1,38 +0,0 @@
# MIPS specific config options
choice
bool
prompt "ABI"
config ARCH_mips_o32
bool
prompt "o32"
depends on (ARCH_32 || MULTILIB)
help
This is the -mabi=32 gcc option.
config ARCH_mips_n32
bool
prompt "n32"
depends on ARCH_64
help
This is the -mabi=n32 gcc option.
config ARCH_mips_n64
bool
prompt "n64"
depends on ARCH_64
help
This is the -mabi=64 gcc option.
# Not supported on Linux:
# o64 : seems related to *BSD
# eabi : seems related to bare-metal
endchoice
config ARCH_mips_ABI
string
default "32" if ARCH_mips_o32
default "n32" if ARCH_mips_n32
default "64" if ARCH_mips_n64

View File

@ -1,4 +1,4 @@
# powerpc specific configuration file # Powerpc specific configuration file
## select ARCH_SUPPORTS_32 ## select ARCH_SUPPORTS_32
## select ARCH_SUPPORTS_64 ## select ARCH_SUPPORTS_64
@ -13,3 +13,44 @@
## ##
## help The PowerPC architecture, as defined by: ## help The PowerPC architecture, as defined by:
## help http://www.ibm.com/developerworks/eserver/articles/archguide.html ## help http://www.ibm.com/developerworks/eserver/articles/archguide.html
config ARCH_powerpc_ABI
string
default "" if ARCH_powerpc_ABI_DEFAULT
default "eabi" if ARCH_powerpc_ABI_EABI
default "spe" if ARCH_powerpc_ABI_SPE
choice
bool
prompt "ABI"
default ARCH_powerpc_ABI_DEFAULT
config ARCH_powerpc_ABI_DEFAULT
bool
prompt "default"
help
The default ABI (System V.4).
config ARCH_powerpc_ABI_EABI
bool
prompt "EABI"
depends on BARE_METAL
help
The Embedded ABI (stack alignment of 8 bytes, etc).
config ARCH_powerpc_ABI_SPE
bool
prompt "SPE"
help
Add support for the Signal Processing Engine. This will set up
the toolchain so that it supports the SPE ABI extensions. This
mainly targets Freescale e500 processors.
Setting this option will append "spe" to the end of your target
tuple name (e.g., powerpc-e500v2-linux-gnuspe) so that the gcc
configure/build system will know to include SPE ABI support. It
will also automatically add "-mabi=spe -mspe" to your TARGET_CFLAGS,
and "--enable-e500_double" to your CC_EXTRA_CONFIG_ARRAY, so you
do not need to explicitly add them.
endchoice

View File

@ -1,42 +0,0 @@
# powerpc specific configuration file
config ARCH_powerpc_ABI
string
default "" if ARCH_powerpc_ABI_DEFAULT
default "eabi" if ARCH_powerpc_ABI_EABI
default "spe" if ARCH_powerpc_ABI_SPE
choice
bool
prompt "ABI"
default ARCH_powerpc_ABI_DEFAULT
config ARCH_powerpc_ABI_DEFAULT
bool
prompt "default"
help
The default ABI (System V.4).
config ARCH_powerpc_ABI_EABI
bool
prompt "EABI"
depends on BARE_METAL
help
The Embedded ABI (stack alignment of 8 bytes, etc).
config ARCH_powerpc_ABI_SPE
bool
prompt "SPE"
help
Add support for the Signal Processing Engine. This will set up
the toolchain so that it supports the SPE ABI extensions. This
mainly targets Freescale e500 processors.
Setting this option will append "spe" to the end of your target
tuple name (e.g., powerpc-e500v2-linux-gnuspe) so that the gcc
configure/build system will know to include SPE ABI support. It
will also automatically add "-mabi=spe -mspe" to your TARGET_CFLAGS,
and "--enable-e500_double" to your CC_EXTRA_CONFIG_ARRAY, so you
do not need to explicitly add them.
endchoice

View File

@ -9,3 +9,27 @@
## ##
## help The Super-H architecture, as defined by: ## help The Super-H architecture, as defined by:
## help http://www.renesas.com/fmwk.jsp?cnt=superh_family_landing.jsp&fp=/products/mpumcu/superh_family/ ## help http://www.renesas.com/fmwk.jsp?cnt=superh_family_landing.jsp&fp=/products/mpumcu/superh_family/
choice
bool
prompt "Variant"
config ARCH_SH_SH3
bool
prompt "sh3"
config ARCH_SH_SH4
bool
prompt "sh4"
config ARCH_SH_SH4A
bool
prompt "sh4a"
endchoice
config ARCH_SH_VARIANT
string
default "sh3" if ARCH_SH_SH3
default "sh4" if ARCH_SH_SH4
default "sh4a" if ARCH_SH_SH4A

View File

@ -1,25 +0,0 @@
# Super-H specific configuration file
choice
bool
prompt "Variant"
config ARCH_SH_SH3
bool
prompt "sh3"
config ARCH_SH_SH4
bool
prompt "sh4"
config ARCH_SH_SH4A
bool
prompt "sh4a"
endchoice
config ARCH_SH_VARIANT
string
default "sh3" if ARCH_SH_SH3
default "sh4" if ARCH_SH_SH4
default "sh4a" if ARCH_SH_SH4A

View File

@ -5,7 +5,7 @@
## select ARCH_DEFAULT_LE ## select ARCH_DEFAULT_LE
## select ARCH_SUPPORTS_BOTH_MMU ## select ARCH_SUPPORTS_BOTH_MMU
## select ARCH_DEFAULT_HAS_MMU ## select ARCH_DEFAULT_HAS_MMU
##
## help The xtensa architecture ## help The xtensa architecture
## help ## help
## help Xtensa is a configurable and extensible processor architecture. ## help Xtensa is a configurable and extensible processor architecture.
@ -20,3 +20,16 @@
## help ## help
## help The default option (ARCH_xtensa_fsf) uses a built-in configuration, ## help The default option (ARCH_xtensa_fsf) uses a built-in configuration,
## help which may or may not work for a particular Xtensa processor. ## help which may or may not work for a particular Xtensa processor.
choice
prompt "Target Architecture Variant"
default ARCH_xtensa_fsf
config XTENSA_CUSTOM
bool "Custom Xtensa processor configuration"
select TARGET_USE_OVERLAY
config ARCH_xtensa_fsf
bool "fsf - Default configuration"
endchoice

View File

@ -1,33 +0,0 @@
choice
prompt "Target Architecture Variant"
default ARCH_xtensa_fsf
config XTENSA_CUSTOM
bool "Custom Xtensa processor configuration"
config ARCH_xtensa_fsf
bool "fsf - Default configuration"
endchoice
config ARCH_XTENSA_CUSTOM_NAME
string "Custom Xtensa processor configuration name"
depends on XTENSA_CUSTOM
default ""
help
Enter the name of the custom processor configuration.
Overlay file for that configuration must be called
'xtensa_<CUSTOM_NAME>.tar'.
Leave blank to use the default 'xtensa-overlay.tar'.
For more information about this option, please also consult
section 'Using crosstool-NG to build Xtensa toolchains' in the
docs/C - Misc. tutorials.txt
config ARCH_XTENSA_CUSTOM_OVERLAY_LOCATION
string "Full path to custom Xtensa processor configurations"
depends on XTENSA_CUSTOM
default ""
help
Enter the path to the directory for the custom processor
configuration file.

View File

@ -33,10 +33,6 @@ config ARCH_BINFMT_FDPIC
endchoice endchoice
config BINUTILS
string
source "config/gen/binutils.in" source "config/gen/binutils.in"
source "config/gen/binutils.in.2"
endmenu endmenu

View File

@ -2,174 +2,29 @@
comment "GNU binutils" comment "GNU binutils"
config BINUTILS_CUSTOM source "config/versions/binutils.in"
bool
prompt "Custom binutils"
depends on EXPERIMENTAL
select BINUTILS_2_26_or_later
help
The choosen binutils version shall be not downloaded. Instead use
a custom location to get the source.
if BINUTILS_CUSTOM
config BINUTILS_CUSTOM_LOCATION
string
prompt "Full path to custom binutils source"
help
Enter the path to the directory or tarball of your source for binutils.
If the path is a tarball, it should extract to: <name>-<version>/
where the name is this component, binutils, and the version is set
below in the custom version string.
config BINUTILS_CUSTOM_VERSION
string
prompt "Binutils Custom Version number"
help
Enter the version number for your custom binutils.
config BINUTILS_VERSION
string
default BINUTILS_CUSTOM_VERSION
endif # BINUTILS_CUSTOM
if ! BINUTILS_CUSTOM
config BINUTILS_SHOW_LINARO
bool
prompt "Show Linaro versions"
help
Linaro is maintaining some advanced/more stable/experimental versions
of binutils, especially for the ARM architecture.
Those versions have not been blessed by the binutils comunity (nor have they
been cursed either!), but they look to be pretty much stable, and even
more stable than the upstream versions. YMMV...
If you do not know what this Linaro stuff is, then simply say 'n' here,
and rest in peace. OTOH, if you know what you are doing, you will be
able to use and enjoy :-) the Linaro versions by saying 'y' here.
Linaro: http://www.linaro.org/
choice
bool
prompt "binutils version"
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config BINUTILS_V_2_28
bool
prompt "2.28"
select BINUTILS_2_27_or_later
config BINUTILS_V_2_27
bool
prompt "2.27"
select BINUTILS_2_27_or_later
config BINUTILS_V_2_26
bool
prompt "2.26"
select BINUTILS_2_26_or_later
config BINUTILS_V_2_25_1
bool
prompt "2.25.1 (OBSOLETE)"
select BINUTILS_2_25_1_or_later
depends on OBSOLETE
config BINUTILS_LINARO_V_2_25
bool
prompt "linaro-2.25.0-2015.01-2 (OBSOLETE)"
select BINUTILS_2_25_or_later
depends on BINUTILS_SHOW_LINARO
depends on OBSOLETE
config BINUTILS_LINARO_V_2_24
bool
prompt "linaro-2.24.0-2014.11-2 (OBSOLETE)"
select BINUTILS_2_24_or_later
depends on BINUTILS_SHOW_LINARO
depends on OBSOLETE
config BINUTILS_V_2_24
bool
prompt "2.24 (OBSOLETE)"
select BINUTILS_2_24_or_later
depends on OBSOLETE
config BINUTILS_LINARO_V_2_23_2
bool
prompt "linaro-2.23.2-2013.10-4 (OBSOLETE)"
select BINUTILS_2_23_2_or_later
depends on BINUTILS_SHOW_LINARO
depends on OBSOLETE
config BINUTILS_V_2_23_2
bool
prompt "2.23.2 (OBSOLETE)"
select BINUTILS_2_23_2_or_later
depends on OBSOLETE
endchoice
config BINUTILS_VERSION
string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
default "2.28" if BINUTILS_V_2_28
default "2.27" if BINUTILS_V_2_27
default "2.26" if BINUTILS_V_2_26
default "2.25.1" if BINUTILS_V_2_25_1
default "linaro-2.25.0-2015.01-2" if BINUTILS_LINARO_V_2_25
default "linaro-2.24.0-2014.11-2" if BINUTILS_LINARO_V_2_24
default "2.24" if BINUTILS_V_2_24
default "linaro-2.23.2-2013.10-4" if BINUTILS_LINARO_V_2_23_2
default "2.23.2" if BINUTILS_V_2_23_2
endif # ! BINUTILS_CUSTOM
config BINUTILS_2_27_or_later
bool
select BINUTILS_2_26_or_later
config BINUTILS_2_26_or_later
bool
select BINUTILS_2_25_1_or_later
config BINUTILS_2_25_1_or_later
bool
select BINUTILS_2_25_or_later
config BINUTILS_2_25_or_later
bool
select BINUTILS_2_24_or_later
config BINUTILS_2_24_or_later
bool
select BINUTILS_2_23_2_or_later
config BINUTILS_2_23_2_or_later
bool
select BINUTILS_HAS_GOLD
select BINUTILS_HAS_HASH_STYLE
select BINUTILS_HAS_PKGVERSION_BUGURL
select BINUTILS_HAS_PLUGINS
config BINUTILS_HAS_HASH_STYLE config BINUTILS_HAS_HASH_STYLE
default y if BINUTILS_2_23_or_later
bool bool
config BINUTILS_HAS_GOLD config BINUTILS_HAS_GOLD
default y if BINUTILS_2_23_or_later
bool
config BINUTILS_HAS_PLUGINS
default y if BINUTILS_2_23_or_later
bool
config BINUTILS_HAS_PKGVERSION_BUGURL
default y if BINUTILS_2_23_or_later
bool bool
# gold only suports the listed architectures # gold only suports the listed architectures
config BINUTILS_GOLD_SUPPORTS_ARCH config BINUTILS_GOLD_SUPPORTS_ARCH
bool bool
default y if ARCH_arm default y if ARCH_ARM
default y if ARCH_x86 default y if ARCH_X86
config BINUTILS_GOLD_SUPPORT config BINUTILS_GOLD_SUPPORT
bool bool
@ -178,12 +33,6 @@ config BINUTILS_GOLD_SUPPORT
depends on BINUTILS_GOLD_SUPPORTS_ARCH depends on BINUTILS_GOLD_SUPPORTS_ARCH
depends on ! STATIC_TOOLCHAIN depends on ! STATIC_TOOLCHAIN
config BINUTILS_HAS_PLUGINS
bool
config BINUTILS_HAS_PKGVERSION_BUGURL
bool
# Force using the BFD linker if needed. There are two options: # Force using the BFD linker if needed. There are two options:
# - For some C libraries (eg. glibc at least), BFD ld must be # - For some C libraries (eg. glibc at least), BFD ld must be
# built and be selected by default. # built and be selected by default.
@ -331,3 +180,27 @@ config BINUTILS_FOR_TARGET_BFD
default y default y
endif # BINUTILS_FOR_TARGET endif # BINUTILS_FOR_TARGET
if ARCH_BINFMT_FLAT
comment "elf2flt"
config ELF2FLT_REQUIRES
def_bool y
select ZLIB
select BINUTILS_FORCE_LD_BFD_ONLY
source "config/versions/elf2flt.in"
config ELF2FLT_EXTRA_CONFIG_ARRAY
string
prompt "elf2flt extra config"
default ""
help
Extra flags passed onto ./configure when configuring
You can enter multiple arguments here, and arguments can contain spaces
if they are properly quoted (or escaped, but prefer quotes). Eg.:
--with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
endif # ARCH_BINFMT_FLAT

View File

@ -1,82 +0,0 @@
# elf2flt options
if ARCH_BINFMT_FLAT
config ELF2FLT_REQUIRES
def_bool y
select ZLIB
select BINUTILS_FORCE_LD_BFD_ONLY
comment "elf2flt"
choice
bool
prompt "elf2flt version"
config ELF2FLT_GIT
bool
prompt "git"
depends on CONFIGURE_has_git
help
Grab the latest version of elf2flt from the CVS repository
config ELF2FLT_CUSTOM
bool
prompt "Custom elf2flt"
depends on EXPERIMENTAL || !CONFIGURE_has_git
help
The choosen elf2flt version shall be not downloaded. Instead use
a custom location to get the source.
endchoice
if ELF2FLT_GIT
config ELF2FLT_GIT_CSET
string
prompt "git cset"
default "6d80ab6c93409e796f85da404bde84b841231531"
help
Enter the git changeset to use.
The default currently points to the HEAD of the git tree.
endif # ELF2FLT_GIT
config ELF2FLT_VERSION
string
default ELF2FLT_GIT_CSET if ELF2FLT_GIT
default ELF2FLT_CUSTOM_VERSION if ELF2FLT_CUSTOM
if ELF2FLT_CUSTOM
config ELF2FLT_CUSTOM_LOCATION
string
prompt "Full path to custom elf2flt source"
help
Enter the path to the directory or tarball of your source for elf2flt.
If the path is a tarball, it should extract to: <name>-<version>/
where the name is this component, elf2flt, and the version is set
below in the custom version string.
config ELF2FLT_CUSTOM_VERSION
string
prompt "elf2flt custom version number"
help
Enter the version number for your custom elf2flt.
endif # ELF2FLT_CUSTOM
config ELF2FLT_EXTRA_CONFIG_ARRAY
string
prompt "elf2flt extra config"
default ""
help
Extra flags passed onto ./configure when configuring
You can enter multiple arguments here, and arguments can contain spaces
if they are properly quoted (or escaped, but prefer quotes). Eg.:
--with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
endif # ARCH_BINFMT_FLAT

View File

@ -2,13 +2,6 @@
menu "C compiler" menu "C compiler"
config CC
string
default "gcc"
config CC_VERSION
string
config CC_CORE_PASSES_NEEDED config CC_CORE_PASSES_NEEDED
bool bool
select CC_CORE_PASS_1_NEEDED select CC_CORE_PASS_1_NEEDED
@ -20,8 +13,6 @@ config CC_CORE_PASS_1_NEEDED
config CC_CORE_PASS_2_NEEDED config CC_CORE_PASS_2_NEEDED
bool bool
source "config/gen/cc.in"
config CC_SUPPORT_CXX config CC_SUPPORT_CXX
bool bool
@ -43,6 +34,8 @@ config CC_SUPPORT_OBJCXX
config CC_SUPPORT_GOLANG config CC_SUPPORT_GOLANG
bool bool
source "config/gen/cc.in"
comment "Additional supported languages:" comment "Additional supported languages:"
config CC_LANG_CXX config CC_LANG_CXX

View File

@ -1,216 +1,432 @@
# Compiler options # GCC options
#
## default y ## default y
## select CC_SUPPORT_CXX if !LIBC_none ## select CC_SUPPORT_CXX if !LIBC_NONE
## select CC_SUPPORT_FORTRAN ## select CC_SUPPORT_FORTRAN
## select CC_SUPPORT_JAVA if !CC_GCC_6_or_later ## select CC_SUPPORT_JAVA if !GCC_7_or_later
## select CC_SUPPORT_ADA ## select CC_SUPPORT_ADA
## select CC_SUPPORT_OBJC ## select CC_SUPPORT_OBJC
## select CC_SUPPORT_OBJCXX ## select CC_SUPPORT_OBJCXX
## select CC_SUPPORT_GOLANG ## select CC_SUPPORT_GOLANG
## # GCC7 requires ISL 0.15+
## select ISL_REQUIRE_0_15_or_later if ISL_NEEDED && GCC_7_or_later
# GCC6 requires ISL 0.14+ (it says 0.14-0.16, but accepts newer ISL as well)
## select ISL_REQUIRE_0_14_or_later if ISL_NEEDED && GCC_6_or_later
# GCC5 requires ISL 0.12+ (again, it says 0.12-0.16, but also accepts newer ISL)
## select ISL_REQUIRE_0_12_or_later if ISL_NEEDED && GCC_5_or_later
# GCC4.9 requires ISL 0.10..0.15
# GCC4.8 requires ISL 0.10..0.14
## select ISL_REQUIRE_0_10_or_later if ISL_NEEDED && GCC_4_8_or_later
## select ISL_REQUIRE_0_15_or_older if ISL_NEEDED && GCC_4_9_or_later && !GCC_5_or_later
## select ISL_REQUIRE_0_14_or_older if ISL_NEEDED && GCC_4_8_or_later && !GCC_4_9_or_later
## help gcc is the full-blown GNU compiler. This is what most people will choose. ## help gcc is the full-blown GNU compiler. This is what most people will choose.
## help ## help
## help gcc supports many languages, a powerful code parser, optimised binary ## help gcc supports many languages, a powerful code parser, optimised binary
## help output, and lots of other features. ## help output, and lots of other features.
config CC_GCC_CUSTOM source "config/versions/gcc.in"
bool
prompt "Custom gcc"
depends on EXPERIMENTAL
select CC_GCC_latest
help
The choosen gcc version shall be not downloaded. Instead use
a custom location to get the source.
if CC_GCC_CUSTOM
config CC_GCC_CUSTOM_LOCATION
string
prompt "Full path to custom gcc source"
help
Enter the path to the directory or tarball of your source for gcc.
If the path is a tarball, it should extract to: <name>-<version>/
where the name is this component, gcc, and the version is set
below in the custom version string.
config CC_GCC_CUSTOM_VERSION
string
prompt "Custom GCC Version"
help
Enter the version number for your custom gcc.
config CC_GCC_VERSION
string
default CC_GCC_CUSTOM_VERSION
endif #CC_GCC_CUSTOM
if ! CC_GCC_CUSTOM
config CC_GCC_SHOW_LINARO
bool
prompt "Show Linaro versions"
help
Linaro is maintaining some advanced/more stable/experimental versions
of gcc, especially for the ARM architecture.
Those versions have not been blessed by the gcc comunity (nor have they
been cursed either!), but they look to be pretty much stable, and even
more stable than the upstream versions. YMMV...
If you do not know what this Linaro stuff is, then simply say 'n' here,
and rest in peace. OTOH, if you know what you are doing, you will be
able to use and enjoy :-) the Linaro versions by saying 'y' here.
Linaro: http://www.linaro.org/
choice
bool
prompt "gcc version"
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config CC_GCC_V_7_1_0
bool
prompt "7.1.0"
select CC_GCC_7
config CC_GCC_V_linaro_6_3
bool
prompt "linaro-6.3-2017.05"
depends on CC_GCC_SHOW_LINARO
select CC_GCC_6
config CC_GCC_V_6_3_0
bool
prompt "6.3.0"
select CC_GCC_6
config CC_GCC_V_linaro_5_4
bool
prompt "linaro-5.4-2017.05"
depends on CC_GCC_SHOW_LINARO
select CC_GCC_5
config CC_GCC_V_5_4_0
bool
prompt "5.4.0"
select CC_GCC_5
config CC_GCC_V_linaro_4_9
bool
prompt "linaro-4.9-2017.01"
depends on CC_GCC_SHOW_LINARO
select CC_GCC_4_9
config CC_GCC_V_4_9_4
bool
prompt "4.9.4"
select CC_GCC_4_9
config CC_GCC_V_linaro_4_8
bool
prompt "linaro-4.8-2015.06 (OBSOLETE)"
depends on CC_GCC_SHOW_LINARO
depends on OBSOLETE
select CC_GCC_4_8
config CC_GCC_V_4_8_5
bool
prompt "4.8.5 (OBSOLETE)"
select CC_GCC_4_8
depends on OBSOLETE
endchoice
endif # ! CC_GCC_CUSTOM
config CC_GCC_4_8
bool
select CC_GCC_4_8_or_later
config CC_GCC_4_8_or_later
bool
config CC_GCC_4_9
bool
select CC_GCC_4_9_or_later
config CC_GCC_4_9_or_later
bool
select CC_GCC_4_8_or_later
config CC_GCC_5
bool
select CC_GCC_5_or_later
config CC_GCC_5_or_later
bool
select CC_GCC_4_9_or_later
select CC_GCC_HAS_LIBMPX
config CC_GCC_6
bool
select CC_GCC_6_or_later
config CC_GCC_6_or_later
bool
select CC_GCC_5_or_later
config CC_GCC_7
bool
select CC_GCC_7_or_later
config CC_GCC_7_or_later
bool
select CC_GCC_6_or_later
config CC_GCC_latest
bool
select CC_GCC_7_or_later
# Only enable gcc's support for plugins if binutils has it as well # Only enable gcc's support for plugins if binutils has it as well
# They are useful only when doing LTO, but it does no harm enabling # They are useful only when doing LTO, but it does no harm enabling
# them even without LTO. # them even without LTO.
config CC_GCC_ENABLE_PLUGINS config CC_GCC_ENABLE_PLUGINS
bool def_bool y
depends on BINUTILS_PLUGINS depends on BINUTILS_PLUGINS
depends on ! STATIC_TOOLCHAIN depends on ! STATIC_TOOLCHAIN
default y
# Affects the build of musl
config GCC_BUG_61144
bool
default y if GCC_4_9_or_later && !GCC_4_9_2_or_later
# If binutils installs gold, enable support for gold in gcc # If binutils installs gold, enable support for gold in gcc
config CC_GCC_GOLD config CC_GCC_GOLD
bool def_bool y
depends on BINUTILS_GOLD_INSTALLED depends on BINUTILS_GOLD_INSTALLED
default y
config CC_GCC_HAS_LIBMPX config CC_GCC_HAS_LIBMPX
bool def_bool y
depends on GCC_5_or_later
if ! CC_GCC_CUSTOM
config CC_GCC_VERSION
string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
default "7.1.0" if CC_GCC_V_7_1_0
default "linaro-6.3-2017.05" if CC_GCC_V_linaro_6_3
default "6.3.0" if CC_GCC_V_6_3_0
default "linaro-5.4-2017.05" if CC_GCC_V_linaro_5_4
default "5.4.0" if CC_GCC_V_5_4_0
default "linaro-4.9-2017.01" if CC_GCC_V_linaro_4_9
default "4.9.4" if CC_GCC_V_4_9_4
default "linaro-4.8-2015.06" if CC_GCC_V_linaro_4_8
default "4.8.5" if CC_GCC_V_4_8_5
endif # ! CC_GCC_CUSTOM
config CC_LANG_JAVA_USE_ECJ config CC_LANG_JAVA_USE_ECJ
bool def_bool y
default y
depends on CC_LANG_JAVA depends on CC_LANG_JAVA
source "config/cc/gcc.in.2" config CC_GCC_ENABLE_CXX_FLAGS
string "Flags to pass to --enable-cxx-flags"
default ""
help
Enter here the value of the gcc's ./configure option --enable-cxx-flags.
Leave empty if you don't know better.
Note: just pass in the option _value_, that is only the part that goes
after the '=' sign.
config CC_GCC_CORE_EXTRA_CONFIG_ARRAY
string "Core gcc extra config"
default ""
depends on CC_CORE_PASS_1_NEEDED || CC_CORE_PASS_2_NEEDED
help
Extra flags to pass onto ./configure when configuring the core gcc.
The core gcc is a stripped down, C-only compiler needed to build
the C library. Kinda bootstrap gcc, if you wish.
You can enter multiple arguments here, and arguments can contain spaces
if they are properly quoted (or escaped, but prefer quotes). Eg.:
--with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
config CC_GCC_EXTRA_CONFIG_ARRAY
string "gcc extra config"
default ""
help
Extra flags to pass onto ./configure when configuring gcc.
You can enter multiple arguments here, and arguments can contain spaces
if they are properly quoted (or escaped, but prefer quotes). Eg.:
--with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
config CC_GCC_MULTILIB_LIST
string "List of multilib variants"
depends on MULTILIB
help
Architecture-specific option of expanding or restricting the list of
the multilib variants to be built. Refer to GCC installation manual
for the format of this option for a particular architecture.
Leave empty to use the default list for this architecture.
config STATIC_TOOLCHAIN
bool
select CC_GCC_STATIC_LIBSTDCXX
config CC_GCC_STATIC_LIBSTDCXX
bool "Link libstdc++ statically into the gcc binary"
default y
depends on CONFIGURE_has_static_link || CANADIAN || CROSS_NATIVE
select WANTS_STATIC_LINK if CROSS || NATIVE
select WANTS_STATIC_LINK_CXX if CROSS || NATIVE
help
Newer gcc versions require some c++ libraries. So statically
linking libstdc++ increases the likeliness that the gcc binary will
run on machines other than the one which it was built on, without
having to worry about distributing the matching version of libstdc++
along with it.
config CC_GCC_SYSTEM_ZLIB
bool "Use system zlib"
help
Do not use bundled zlib, and use the zlib already available for
the host (eg. the system library).
If zlib is built as a companion library, selecting this option
will use it.
If you want to build a static toolchain, you will need to also
install the static version of zlib for your host.
If unsure, say 'n'.
config CC_GCC_CONFIG_TLS
tristate
prompt "Configure TLS (Thread Local Storage)"
default m
help
Specify that the target supports TLS (Thread Local Storage). Usually
configure can correctly determine if TLS is supported. In cases where
it guesses incorrectly, TLS can be explicitly enabled or disabled.
This can happen if the assembler supports TLS but the C library does
not, or if the assumptions made by the configure test are incorrect.
Option | TLS use | Associated ./configure switch
---------+--------------------+--------------------------------
Y | forcibly used | --enable-tls
M | auto | (none, ./configure decides)
N | forcibly not used | --disable-tls
If unsure, say 'M'.
#-----------------------------------------------------------------------------
# Optimisation features
comment "Optimisation features"
# Defined in config/cc/gcc.in
# For graphite: gcc needs cloog and isl
# In >= gcc-5.x, cloog is no longer needed, but isl is.
config CC_GCC_USE_GRAPHITE
bool "Enable GRAPHITE loop optimisations"
default y
select CLOOG_NEEDED if !GCC_5_or_later
select ISL_NEEDED
help
Enable the GRAPHITE loop optimsations.
On some systems (eg. Cygwin), CLooG and ISL (required to enable
GRAPHITE) may not build properly (yet), so you'll have to say 'N'
here (or help debug the issues)
TODO: Is this still true on Cygwin?
# The way LTO works is a bit twisted.
# See: http://gcc.gnu.org/wiki/LinkTimeOptimization#Requirements
# Basically:
# - if binutils has plugins: LTO is handled by ld/gold by loading
# the plugin when linking
# - if binutils does not have plugins: LTO is handled by collect2
# In any case, LTO support does not depend on plugins, but takes
# advantage of it
config CC_GCC_USE_LTO
bool "Enable LTO"
default y
depends on ! STATIC_TOOLCHAIN
help
Enable the Link Time Optimisations.
#-----------------------------------------------------------------------------
comment "Settings for libraries running on target"
config CC_GCC_ENABLE_TARGET_OPTSPACE
bool
prompt "Optimize gcc libs for size"
default y
help
Pass --enable-target-optspace to crossgcc's configure.
This will compile crossgcc's libs with -Os.
config CC_GCC_LIBMUDFLAP
bool
prompt "Compile libmudflap"
help
libmudflap is a pointer-use checking tool, which can detect
various mis-usages of pointers in C and (to some extents) C++.
You should say 'N' here, as libmduflap generates instrumented
code (thus it is a bit bigger and a bit slower) and requires
re-compilation and re-link, while it exists better run-time
alternatives (eg. DUMA, dmalloc...) that need neither re-
compilation nor re-link.
config CC_GCC_LIBGOMP
bool
prompt "Compile libgomp"
depends on !THREADS_NONE
help
libgomp is "the GNU implementation of the OpenMP Application Programming
Interface (API) for multi-platform shared-memory parallel programming in
C/C++ and Fortran". See:
http://gcc.gnu.org/onlinedocs/libgomp/
GNU OpenMP support requires threading.
The default is 'N'. Say 'Y' if you need it, and report success/failure.
config CC_GCC_LIBSSP
bool
prompt "Compile libssp"
help
libssp is the run-time Stack-Smashing Protection library.
The default is 'N'. Say 'Y' if you need it, and report success/failure.
config CC_GCC_LIBQUADMATH
bool
prompt "Compile libquadmath"
help
libquadmath is a library which provides quad-precision mathematical
functions on targets supporting the __float128 datatype. See:
http://gcc.gnu.org/onlinedocs/libquadmath/
The default is 'N'. Say 'Y' if you need it, and report success/failure.
config CC_GCC_LIBSANITIZER
bool
prompt "Compile libsanitizer"
depends on THREADS_NATIVE
depends on !LIBC_UCLIBC && !LIBC_MUSL # Currently lacks required headers (like netrom.h)
help
libsanitizer is a library which provides run-time sanitising of either
or both of:
- memory access patterns (out-of-bonds, use-after-free)
- racy data accesses (in multi-threaded programs)
The default is 'N'. Say 'Y' if you need it, and report success/failure.
config CC_GCC_LIBMPX
bool
default y
prompt "Compile libmpx"
depends on CC_GCC_HAS_LIBMPX
depends on ARCH_X86
# MUSL does not define libc types that GCC requires. Mingw lacks certain headers.
depends on !LIBC_MUSL && !LIBC_MINGW_W64
help
Enable GCC support for Intel Memory Protection Extensions (MPX).
#-----------------------------------------------------------------------------
comment "Misc. obscure options."
config CC_CXA_ATEXIT
bool
prompt "Use __cxa_atexit"
default y
depends on ! BARE_METAL || LIBC_PROVIDES_CXA_ATEXIT
help
If you get the missing symbol "__cxa_atexit" when building C++ programs,
you might want to try disabling this option.
config CC_GCC_DISABLE_PCH
bool
prompt "Do not build PCH"
help
Say 'y' here to not use Pre-Compiled Headers in the resulting toolchain.
at the expense of speed when compiling C++ code.
For some configurations (most notably canadian?), PCH are broken, and
need to be disabled. Please see:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40974
config CC_GCC_SJLJ_EXCEPTIONS
tristate
prompt "Use sjlj for exceptions"
depends on ! BARE_METAL
default m
help
'sjlj' is short for setjmp/longjmp.
On some architectures, stack unwinding during exception handling
works perfectly well without using sjlj, while on some others,
use of sjlj is required for proper stack unwinding.
Option | sjlj use | Associated ./configure switch
---------+--------------------+--------------------------------
Y | forcibly used | --enable-sjlj-exceptions
M | auto | (none, ./configure decides)
N | forcibly not used | --disable-sjlj-exceptions
It should be safe to say 'M' or 'N'.
It can happen that ./configure is wrong in some cases. Known
case is for ARM big endian, where you should say 'N'.
config CC_GCC_LDBL_128
tristate
prompt "Enable 128-bit long doubles"
default m
help
Saying 'Y' will force gcc to use 128-bit wide long doubles
Saying 'N' will force gcc to use 64-bit wide long doubles
Saying 'M' will let gcc choose (default is 128-bit for
glibc >= 2.4, 64-bit otherwise)
If in doubt, keep the default, ie. 'M'.
config CC_GCC_BUILD_ID
bool
prompt "Enable build-id"
help
Tells GCC to pass --build-id option to the linker for all final
links (links performed without the -r or --relocatable option),
if the linker supports it. If you say 'y' here, but your linker
does not support --build-id option, a warning is issued and this
option is ignored.
The default is off.
choice CC_GCC_LNK_HASH_STYLE_CHOICE
bool
prompt "linker hash style"
depends on BINUTILS_HAS_HASH_STYLE
config CC_GCC_LNK_HASH_STYLE_DEFAULT
bool
prompt "Default"
help
Do not specify any value, and use the default value (sysv).
config CC_GCC_LNK_HASH_STYLE_SYSV
bool
prompt "sysv"
help
Force use of the SYSV hash style.
config CC_GCC_LNK_HASH_STYLE_GNU
bool
prompt "gnu"
help
Force use of the GNU hash style.
config CC_GCC_LNK_HASH_STYLE_BOTH
bool
prompt "both"
help
Force use of both hash styles.
endchoice # CC_GCC_LNK_HASH_STYLE_CHOICE
config CC_GCC_LNK_HASH_STYLE
string
default "" if CC_GCC_LNK_HASH_STYLE_DEFAULT
default "sysv" if CC_GCC_LNK_HASH_STYLE_SYSV
default "gnu" if CC_GCC_LNK_HASH_STYLE_GNU
default "both" if CC_GCC_LNK_HASH_STYLE_BOTH
choice CC_GCC_DEC_FLOATS_CHOICE
bool "Decimal floats"
default CC_GCC_DEC_FLOATS_AUTO
help
Choose what type of decimal floats to support.
Note that using decimal floats requires a C library that provides
support for fenv (namely, the fenv.h header). This is the case
for (e)glibc, and uClibc on x86/32. For other C libraries, or
uClibc on other archs, this might not be the case, so you should
disable support for decimal floats.
The default is to let ./configure decide.
config CC_GCC_DEC_FLOAT_AUTO
bool "auto"
help
Let ./configure decide. If you say 'y' here, gcc will default to:
- 'bid' for x86 (32- and 64-bit)
- 'dpd' for powerpc
- 'no' for the other architectures
config CC_GCC_DEC_FLOAT_BID
bool "bid"
help
Use the 'binary integer decimal' format for decimal floats.
config CC_GCC_DEC_FLOAT_DPD
bool "dpd"
help
Use the 'densely packed decimal' for decimal floats.
config CC_GCC_DEC_FLOATS_NO
bool "no"
help
Do not support decimal floats. The default.
endchoice # CC_GCC_DEC_FLOATS_CHOICE
config CC_GCC_DEC_FLOATS
string
default "" if CC_GCC_DEC_FLOATS_AUTO
default "bid" if CC_GCC_DEC_FLOATS_BID
default "dpd" if CC_GCC_DEC_FLOATS_DPD
default "no" if CC_GCC_DEC_FLOATS_NO
#-----------------------------------------------------------------------------
config CC_GCC_HAS_ARCH_OPTIONS
bool
comment "archictecture-specific options"
depends on CC_GCC_HAS_ARCH_OPTIONS
if ARCH_MIPS
source "config/cc/gcc.in.mips"
endif # ARCH_MIPS

View File

@ -1,387 +0,0 @@
# gcc configuration options
config CC_GCC_ENABLE_CXX_FLAGS
string
prompt "Flags to pass to --enable-cxx-flags"
default ""
help
Enter here the value of the gcc's ./configure option --enable-cxx-flags.
Leave empty if you don't know better.
Note: just pass in the option _value_, that is only the part that goes
after the '=' sign.
config CC_GCC_CORE_EXTRA_CONFIG_ARRAY
string
prompt "Core gcc extra config"
default ""
depends on CC_CORE_PASS_1_NEEDED || CC_CORE_PASS_2_NEEDED
help
Extra flags to pass onto ./configure when configuring the core gcc.
The core gcc is a stripped down, C-only compiler needed to build
the C library. Kinda bootstrap gcc, if you wish.
You can enter multiple arguments here, and arguments can contain spaces
if they are properly quoted (or escaped, but prefer quotes). Eg.:
--with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
config CC_GCC_EXTRA_CONFIG_ARRAY
string
prompt "gcc extra config"
default ""
help
Extra flags to pass onto ./configure when configuring gcc.
You can enter multiple arguments here, and arguments can contain spaces
if they are properly quoted (or escaped, but prefer quotes). Eg.:
--with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
config CC_GCC_MULTILIB_LIST
string
prompt "List of multilib variants"
depends on MULTILIB
help
Architecture-specific option of expanding or restricting the list of
the multilib variants to be built. Refer to GCC installation manual
for the format of this option for a particular architecture.
Leave empty to use the default list for this architecture.
config STATIC_TOOLCHAIN
bool
select CC_GCC_STATIC_LIBSTDCXX
config CC_GCC_STATIC_LIBSTDCXX
bool
prompt "Link libstdc++ statically into the gcc binary"
default y
depends on CONFIGURE_has_static_link || CANADIAN || CROSS_NATIVE
select WANTS_STATIC_LINK if CROSS || NATIVE
select WANTS_STATIC_LINK_CXX if CROSS || NATIVE
help
Newer gcc versions require some c++ libraries. So statically
linking libstdc++ increases the likeliness that the gcc binary will
run on machines other than the one which it was built on, without
having to worry about distributing the matching version of libstdc++
along with it.
config CC_GCC_SYSTEM_ZLIB
bool
prompt "Use system zlib"
help
Do not use bundled zlib, and use the zlib already available for
the host (eg. the system library).
If zlib is built as a companion library, selecting this option
will use it.
If you want to build a static toolchain, you will need to also
install the static version of zlib for your host.
If unsure, say 'n'.
config CC_GCC_CONFIG_TLS
tristate
prompt "Configure TLS (Thread Local Storage)"
depends on !LIBC_bionic
default m
help
Specify that the target supports TLS (Thread Local Storage). Usually
configure can correctly determine if TLS is supported. In cases where
it guesses incorrectly, TLS can be explicitly enabled or disabled.
This can happen if the assembler supports TLS but the C library does
not, or if the assumptions made by the configure test are incorrect.
Option | TLS use | Associated ./configure switch
---------+--------------------+--------------------------------
Y | forcibly used | --enable-tls
M | auto | (none, ./configure decides)
N | forcibly not used | --disable-tls
If unsure, say 'M'.
#-----------------------------------------------------------------------------
# Optimisation features
comment "Optimisation features"
# Defined in config/cc/gcc.in
# For graphite: gcc needs cloog and isl
# In >= gcc-5.x, cloog is no longer needed, but isl is.
# Prompt in config/cc/gcc.in.2
config CC_GCC_USE_GRAPHITE
bool "Enable GRAPHITE loop optimisations"
default y
select CLOOG_NEEDED if !CC_GCC_5_or_later
select ISL_NEEDED
help
Enable the GRAPHITE loop optimsations.
On some systems (eg. Cygwin), CLooG and ISL (required to enable
GRAPHITE) may not build properly (yet), so you'll have to say 'N'
here (or help debug the issues)
TODO: Is this still true on Cygwin?
# The way LTO works is a bit twisted.
# See: http://gcc.gnu.org/wiki/LinkTimeOptimization#Requirements
# Basically:
# - if binutils has plugins: LTO is handled by ld/gold by loading
# the plugin when linking
# - if binutils does not have plugins: LTO is handled by collect2
# In any case, LTO support does not depend on plugins, but takes
# advantage of it
config CC_GCC_USE_LTO
bool "Enable LTO"
default y
depends on ! STATIC_TOOLCHAIN
help
Enable the Link Time Optimisations.
#-----------------------------------------------------------------------------
comment "Settings for libraries running on target"
config CC_GCC_ENABLE_TARGET_OPTSPACE
bool
prompt "Optimize gcc libs for size"
default y
help
Pass --enable-target-optspace to crossgcc's configure.
This will compile crossgcc's libs with -Os.
config CC_GCC_LIBMUDFLAP
bool
prompt "Compile libmudflap"
help
libmudflap is a pointer-use checking tool, which can detect
various mis-usages of pointers in C and (to some extents) C++.
You should say 'N' here, as libmduflap generates instrumented
code (thus it is a bit bigger and a bit slower) and requires
re-compilation and re-link, while it exists better run-time
alternatives (eg. DUMA, dmalloc...) that need neither re-
compilation nor re-link.
config CC_GCC_LIBGOMP
bool
prompt "Compile libgomp"
depends on !THREADS_NONE
help
libgomp is "the GNU implementation of the OpenMP Application Programming
Interface (API) for multi-platform shared-memory parallel programming in
C/C++ and Fortran". See:
http://gcc.gnu.org/onlinedocs/libgomp/
GNU OpenMP support requires threading.
The default is 'N'. Say 'Y' if you need it, and report success/failure.
config CC_GCC_LIBSSP
bool
prompt "Compile libssp"
help
libssp is the run-time Stack-Smashing Protection library.
The default is 'N'. Say 'Y' if you need it, and report success/failure.
config CC_GCC_LIBQUADMATH
bool
prompt "Compile libquadmath"
help
libquadmath is a library which provides quad-precision mathematical
functions on targets supporting the __float128 datatype. See:
http://gcc.gnu.org/onlinedocs/libquadmath/
The default is 'N'. Say 'Y' if you need it, and report success/failure.
config CC_GCC_LIBSANITIZER
bool
prompt "Compile libsanitizer"
depends on THREADS_NATIVE
depends on ! LIBC_uClibc && ! LIBC_musl # Currently lacks required headers (like netrom.h)
help
libsanitizer is a library which provides run-time sanitising of either
or both of:
- memory access patterns (out-of-bonds, use-after-free)
- racy data accesses (in multi-threaded programs)
The default is 'N'. Say 'Y' if you need it, and report success/failure.
config CC_GCC_LIBMPX
bool
default y
prompt "Compile libmpx"
depends on CC_GCC_HAS_LIBMPX
depends on ARCH_x86
# MUSL does not define libc types that GCC requires. Mingw lacks certain headers.
depends on !LIBC_musl && ! LIBC_mingw
help
Enable GCC support for Intel Memory Protection Extensions (MPX).
#-----------------------------------------------------------------------------
comment "Misc. obscure options."
config CC_CXA_ATEXIT
bool
prompt "Use __cxa_atexit"
default y
depends on ! BARE_METAL || LIBC_PROVIDES_CXA_ATEXIT
help
If you get the missing symbol "__cxa_atexit" when building C++ programs,
you might want to try disabling this option.
config CC_GCC_DISABLE_PCH
bool
prompt "Do not build PCH"
help
Say 'y' here to not use Pre-Compiled Headers in the resulting toolchain.
at the expense of speed when compiling C++ code.
For some configurations (most notably canadian?), PCH are broken, and
need to be disabled. Please see:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40974
config CC_GCC_SJLJ_EXCEPTIONS
tristate
prompt "Use sjlj for exceptions"
depends on ! BARE_METAL
default m
help
'sjlj' is short for setjmp/longjmp.
On some architectures, stack unwinding during exception handling
works perfectly well without using sjlj, while on some others,
use of sjlj is required for proper stack unwinding.
Option | sjlj use | Associated ./configure switch
---------+--------------------+--------------------------------
Y | forcibly used | --enable-sjlj-exceptions
M | auto | (none, ./configure decides)
N | forcibly not used | --disable-sjlj-exceptions
It should be safe to say 'M' or 'N'.
It can happen that ./configure is wrong in some cases. Known
case is for ARM big endian, where you should say 'N'.
config CC_GCC_LDBL_128
tristate
prompt "Enable 128-bit long doubles"
default m
help
Saying 'Y' will force gcc to use 128-bit wide long doubles
Saying 'N' will force gcc to use 64-bit wide long doubles
Saying 'M' will let gcc choose (default is 128-bit for
glibc >= 2.4, 64-bit otherwise)
If in doubt, keep the default, ie. 'M'.
config CC_GCC_BUILD_ID
bool
prompt "Enable build-id"
help
Tells GCC to pass --build-id option to the linker for all final
links (links performed without the -r or --relocatable option),
if the linker supports it. If you say 'y' here, but your linker
does not support --build-id option, a warning is issued and this
option is ignored.
The default is off.
choice CC_GCC_LNK_HASH_STYLE_CHOICE
bool
prompt "linker hash style"
depends on BINUTILS_HAS_HASH_STYLE
config CC_GCC_LNK_HASH_STYLE_DEFAULT
bool
prompt "Default"
help
Do not specify any value, and use the default value (sysv).
config CC_GCC_LNK_HASH_STYLE_SYSV
bool
prompt "sysv"
help
Force use of the SYSV hash style.
config CC_GCC_LNK_HASH_STYLE_GNU
bool
prompt "gnu"
help
Force use of the GNU hash style.
config CC_GCC_LNK_HASH_STYLE_BOTH
bool
prompt "both"
help
Force use of both hash styles.
endchoice # CC_GCC_LNK_HASH_STYLE_CHOICE
config CC_GCC_LNK_HASH_STYLE
string
default "" if CC_GCC_LNK_HASH_STYLE_DEFAULT
default "sysv" if CC_GCC_LNK_HASH_STYLE_SYSV
default "gnu" if CC_GCC_LNK_HASH_STYLE_GNU
default "both" if CC_GCC_LNK_HASH_STYLE_BOTH
choice CC_GCC_DEC_FLOATS_CHOICE
bool "Decimal floats"
default CC_GCC_DEC_FLOATS_AUTO
help
Choose what type of decimal floats to support.
Note that using decimal floats requires a C library that provides
support for fenv (namely, the fenv.h header). This is the case
for (e)glibc, and uClibc on x86/32. For other C libraries, or
uClibc on other archs, this might not be the case, so you should
disable support for decimal floats.
The default is to let ./configure decide.
config CC_GCC_DEC_FLOAT_AUTO
bool "auto"
help
Let ./configure decide. If you say 'y' here, gcc will default to:
- 'bid' for x86 (32- and 64-bit)
- 'dpd' for powerpc
- 'no' for the other architectures
config CC_GCC_DEC_FLOAT_BID
bool "bid"
help
Use the 'binary integer decimal' format for decimal floats.
config CC_GCC_DEC_FLOAT_DPD
bool "dpd"
help
Use the 'densely packed decimal' for decimal floats.
config CC_GCC_DEC_FLOATS_NO
bool "no"
help
Do not support decimal floats. The default.
endchoice # CC_GCC_DEC_FLOATS_CHOICE
config CC_GCC_DEC_FLOATS
string
default "" if CC_GCC_DEC_FLOATS_AUTO
default "bid" if CC_GCC_DEC_FLOATS_BID
default "dpd" if CC_GCC_DEC_FLOATS_DPD
default "no" if CC_GCC_DEC_FLOATS_NO
#-----------------------------------------------------------------------------
config CC_GCC_HAS_ARCH_OPTIONS
bool
comment "archictecture-specific options"
depends on CC_GCC_HAS_ARCH_OPTIONS
if ARCH_mips
source "config/cc/gcc.in.mips"
endif # ARCH_mips

View File

@ -122,44 +122,61 @@ config NCURSES_TARGET
config ZLIB config ZLIB
bool "Build local zlib" bool "Build local zlib"
# FIXME this needs to have a list of options
# [ ] libfoo for build
# [ ] libfoo for host (if canadian)
# [ ] libfoo for target
# libfoo options -->
#
# Then have other packages *set default* for build/host
# (but not select, so that user can utilize build's or host's system library)
# and *select* the target (so that we build it if we must, and let user optionally
# build it if he wants). Upon any of these options LIBFOO_{BUILD,HOST,TARGET}
# being set, set LIBFOO_ENABLED and use that as a qualifier for submenu.
# For now, just have comments delineating the libs.
if ZLIB if ZLIB
source "config/companion_libs/zlib.in" comment "zlib options"
source "config/comp_libs/zlib.in"
endif endif
if LIBICONV if LIBICONV
source "config/companion_libs/libiconv.in" comment "libiconv options"
source "config/comp_libs/libiconv.in"
endif endif
if GETTEXT if GETTEXT
source "config/companion_libs/gettext.in" comment "gettext options"
source "config/comp_libs/gettext.in"
endif endif
if GMP if GMP
source "config/companion_libs/gmp.in" comment "GMP options"
source "config/comp_libs/gmp.in"
endif endif
if MPFR if MPFR
source "config/companion_libs/mpfr.in" comment "MPFR options"
source "config/comp_libs/mpfr.in"
endif endif
if ISL if ISL
source "config/companion_libs/isl.in" comment "ISL options"
source "config/comp_libs/isl.in"
endif endif
if CLOOG if CLOOG
source "config/companion_libs/cloog.in" comment "CLooG options"
source "config/comp_libs/cloog.in"
endif endif
if MPC if MPC
source "config/companion_libs/mpc.in" comment "MPC options"
source "config/comp_libs/mpc.in"
endif endif
if LIBELF || LIBELF_TARGET if LIBELF || LIBELF_TARGET
comment "libelf version needed to build for target" comment "libelf options"
depends on !LIBELF source "config/comp_libs/libelf.in"
source "config/companion_libs/libelf.in"
endif endif
if EXPAT || EXPAT_TARGET if EXPAT || EXPAT_TARGET
comment "expat version needed to build for target" comment "expat options"
depends on !EXPAT source "config/comp_libs/expat.in"
source "config/companion_libs/expat.in"
endif endif
if NCURSES || NCURSES_TARGET if NCURSES || NCURSES_TARGET
comment "ncurses version needed to build for target" comment "ncurses options"
depends on !NCURSES source "config/comp_libs/ncurses.in"
source "config/companion_libs/ncurses.in"
endif endif
if COMPLIBS if COMPLIBS

11
config/comp_libs/cloog.in Normal file
View File

@ -0,0 +1,11 @@
# CLooG options
## depends on OBSOLETE
# CLooG 0.18.4 requires ISL 0.12 or newer
# CLooG 0.18.1/0.18.0 requires ISL 0.12 or older
source "config/versions/cloog.in"
config CLOOG_HAS_WITH_GMP_ISL_OSL
bool
default y if CLOOG_0_18_or_later

View File

@ -0,0 +1,3 @@
# expat config file
source "config/versions/expat.in"

View File

@ -0,0 +1,3 @@
# gettext options
source "config/versions/gettext.in"

7
config/comp_libs/gmp.in Normal file
View File

@ -0,0 +1,7 @@
# GMP options
source "config/versions/gmp.in"
config GMP_HAS_MPBSD
bool
default y if !GMP_5_1_or_later

26
config/comp_libs/isl.in Normal file
View File

@ -0,0 +1,26 @@
# ISL options
# FIXME these currently have no effect
## select CLOOG_REQUIRE_0_18_1_or_older if !ISL_0_12_or_later
## select CLOOG_REQUIRE_0_18_4_or_later if !ISL_0_14_or_older
source "config/versions/isl.in"
# FIXME should be auto-generated once companion libs are using gen-kconfig (and hence, ## syntax)
config ISL_CLOOG_auto_select_1
def_bool y
depends on CLOOG_NEEDED && !ISL_0_12_or_later
select CLOOG_REQUIRE_0_18_1_or_older
# FIXME should be auto-generated once companion libs are using gen-kconfig (and hence, ## syntax)
config ISL_CLOOG_auto_select_2
def_bool y
depends on CLOOG_NEEDED && !ISL_0_13_or_older
select CLOOG_REQUIRE_0_18_4_or_later
config ISL_NEEDS_WITH_GMP
bool
default y if !ISL_0_12_or_later
config ISL_HAS_WITH_PIPLIB
bool
default y if !ISL_0_14_or_later

View File

@ -0,0 +1,3 @@
# libelf config file
source "config/versions/libelf.in"

View File

@ -0,0 +1,3 @@
# libiconv options
source "config/versions/libiconv.in"

3
config/comp_libs/mpc.in Normal file
View File

@ -0,0 +1,3 @@
# MPC options
source "config/versions/mpc.in"

3
config/comp_libs/mpfr.in Normal file
View File

@ -0,0 +1,3 @@
# GMP options
source "config/versions/mpfr.in"

View File

@ -1,22 +1,6 @@
# expat config file # expat config file
choice source "config/versions/ncurses.in"
bool
prompt "ncurses version"
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config NCURSES_V_6_0
bool
prompt "6.0"
endchoice
config NCURSES_VERSION
string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
default "6.0" if NCURSES_V_6_0
config NCURSES_NEW_ABI config NCURSES_NEW_ABI
bool "ncurses 6.0 ABI support" bool "ncurses 6.0 ABI support"

3
config/comp_libs/zlib.in Normal file
View File

@ -0,0 +1,3 @@
# Zlib options
source "config/versions/zlib.in"

View File

@ -10,6 +10,6 @@ config COMP_TOOLS_FOR_HOST
tools into the final toolchain (rather than just using them tools into the final toolchain (rather than just using them
to build it). to build it).
source "config/gen/companion_tools.in" source "config/gen/comp_tools.in"
endmenu endmenu

View File

@ -0,0 +1,7 @@
# Autoconf
## default y if !CONFIGURE_has_autoconf_2_63_or_newer
## default y if !CONFIGURE_has_autoreconf_2_63_or_newer
## help Autoconf
source "config/versions/autoconf.in"

View File

@ -0,0 +1,6 @@
# Automake
## default y if !CONFIGURE_has_automake_1_15_or_newer
## help Automake
source "config/versions/automake.in"

View File

@ -0,0 +1,6 @@
# Libtool
## default y if !CONFIGURE_has_libtool_2_4_or_newer
## default y if !CONFIGURE_has_libtoolize_2_4_or_newer
source "config/versions/libtool.in"

5
config/comp_tools/m4.in Normal file
View File

@ -0,0 +1,5 @@
# GNU m4
## default y if !CONFIGURE_has_gnu_m4_1_4_12_or_newer
source "config/versions/m4.in"

10
config/comp_tools/make.in Normal file
View File

@ -0,0 +1,10 @@
# GNU make
## default y if !CONFIGURE_has_make_3_81_or_newer
source "config/versions/make.in"
config MAKE_GMAKE_SYMLINK
bool
prompt "Add gmake symlink to companion gnu/make"
depends on COMP_TOOLS_MAKE

View File

@ -1,51 +0,0 @@
# CLooG options
## depends on OBSOLETE
# CLooG 0.18.4 requires ISL 0.12 or newer
# CLooG 0.18.1/0.18.0 frequires ISL 0.12 or older
choice
bool
prompt "CLooG version"
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config CLOOG_V_0_18_4
bool
prompt "0.18.4"
depends on ISL_V_0_12_or_later
select CLOOG_0_18_4_or_later
config CLOOG_V_0_18_1
bool
prompt "0.18.1 (OBSOLETE)"
depends on !ISL_V_0_14_or_later
depends on OBSOLETE
select CLOOG_0_18_or_later
config CLOOG_V_0_18_0
bool
prompt "0.18.0 (OBSOLETE)"
depends on !ISL_V_0_14_or_later
depends on OBSOLETE
select CLOOG_0_18_or_later
endchoice
config CLOOG_VERSION
string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
default "0.18.4" if CLOOG_V_0_18_4
default "0.18.1" if CLOOG_V_0_18_1
default "0.18.0" if CLOOG_V_0_18_0
config CLOOG_0_18_4_or_later
bool
select CLOOG_0_18_or_later
config CLOOG_0_18_or_later
bool
config CLOOG_NEEDS_AUTORECONF
bool

View File

@ -1,25 +0,0 @@
# expat config file
choice
bool
prompt "expat version"
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config EXPAT_V_2_2_1
bool
prompt "2.2.1"
config EXPAT_V_2_1_1
bool
prompt "2.1.1 (OBSOLETE)"
depends on OBSOLETE
endchoice
config EXPAT_VERSION
string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
default "2.2.1" if EXPAT_V_2_2_1
default "2.1.1" if EXPAT_V_2_1_1

View File

@ -1,25 +0,0 @@
# gettext options
choice
bool
prompt "gettext version"
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config GETTEXT_V_0_19_8_1
bool
prompt "0.19.8.1"
config GETTEXT_V_0_19_7
bool
prompt "0.19.7 (OBSOLETE)"
depends on OBSOLETE
endchoice
config GETTEXT_VERSION
string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
default "0.19.8.1" if GETTEXT_V_0_19_8_1
default "0.19.7" if GETTEXT_V_0_19_7

View File

@ -1,83 +0,0 @@
# GMP options
choice
bool
prompt "GMP version"
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config GMP_V_6_1_2
bool
prompt "6.1.2"
select GMP_5_0_2_or_later
config GMP_V_6_1_0
bool
prompt "6.1.0 (OBSOLETE)"
select GMP_5_0_2_or_later
depends on OBSOLETE
config GMP_V_6_0_0
bool
prompt "6.0.0a (OBSOLETE)"
select GMP_5_0_2_or_later
depends on OBSOLETE
config GMP_V_5_1_3
bool
prompt "5.1.3 (OBSOLETE)"
select GMP_5_0_2_or_later
depends on OBSOLETE
config GMP_V_5_1_1
bool
prompt "5.1.1 (OBSOLETE)"
select GMP_5_0_2_or_later
depends on OBSOLETE
config GMP_V_5_0_2
bool
prompt "5.0.2 (OBSOLETE)"
select GMP_5_0_2_or_later
depends on OBSOLETE
config GMP_V_5_0_1
bool
prompt "5.0.1 (OBSOLETE)"
depends on OBSOLETE
config GMP_V_4_3_2
bool
prompt "4.3.2 (OBSOLETE)"
depends on OBSOLETE
config GMP_V_4_3_1
bool
prompt "4.3.1 (OBSOLETE)"
depends on OBSOLETE
config GMP_V_4_3_0
bool
prompt "4.3.0 (OBSOLETE)"
depends on OBSOLETE
endchoice
# To disable --enable-mpbsd
config GMP_5_0_2_or_later
bool
config GMP_VERSION
string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
default "6.1.2" if GMP_V_6_1_2
default "6.1.0" if GMP_V_6_1_0
default "6.0.0a" if GMP_V_6_0_0
default "5.1.3" if GMP_V_5_1_3
default "5.1.1" if GMP_V_5_1_1
default "5.0.2" if GMP_V_5_0_2
default "5.0.1" if GMP_V_5_0_1
default "4.3.2" if GMP_V_4_3_2
default "4.3.1" if GMP_V_4_3_1
default "4.3.0" if GMP_V_4_3_0

View File

@ -1,92 +0,0 @@
# ISL options
# GCC 4.8 supports ISL 0.10 to 0.14
# GCC 4.9 supports ISL 0.10 to 0.15
# GCC 5 supports ISL 0.12 to 0.16
# GCC 6 supports ISL 0.14 to 0.16
# Starting with GCC 5, GCC's configure no longer checks the ISL version explicitly,
# despite what the configure's message says ("checking for isl 0.15 or 0.16").
# Instead, it verifies that certain interfaces are available, so it accepts 0.17.1
# or 0.18 under that check. Include them as experimental just in case anyone needs
# the bugfixes in these releases.
choice
bool
prompt "ISL version"
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config ISL_V_0_18
bool
prompt "0.18"
depends on EXPERIMENTAL # Not officially recommended by GCC
depends on CC_GCC_5_or_later
select ISL_V_0_16_or_later
config ISL_V_0_17_1
bool
prompt "0.17.1"
depends on EXPERIMENTAL # Not officially recommended by GCC
depends on CC_GCC_5_or_later
select ISL_V_0_16_or_later
config ISL_V_0_16_1
bool
prompt "0.16.1"
depends on CC_GCC_5_or_later
select ISL_V_0_16_or_later
# Linaro version of 4.9 does not support ISL 0.15, but most recent
# mainline 4.9 release (4.9.4) does.
config ISL_V_0_15
bool
prompt "0.15"
depends on CC_GCC_4_9_or_later
select ISL_V_0_15_or_later
config ISL_V_0_14
bool
prompt "0.14 (OBSOLETE)"
select ISL_V_0_14_or_later
depends on OBSOLETE
config ISL_V_0_12_2
bool
prompt "0.12.2 (OBSOLETE)"
depends on !CC_GCC_6_or_later
select ISL_V_0_12_or_later
depends on OBSOLETE
config ISL_V_0_11_1
bool
prompt "0.11.1 (OBSOLETE)"
depends on !CC_GCC_4_9_or_later
depends on OBSOLETE
endchoice
config ISL_V_0_16_or_later
bool
select ISL_V_0_15_or_later
config ISL_V_0_15_or_later
bool
select ISL_V_0_14_or_later
config ISL_V_0_14_or_later
bool
select ISL_V_0_12_or_later
config ISL_V_0_12_or_later
bool
config ISL_VERSION
string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
default "0.18" if ISL_V_0_18
default "0.17.1" if ISL_V_0_17_1
default "0.16.1" if ISL_V_0_16_1
default "0.15" if ISL_V_0_15
default "0.14" if ISL_V_0_14
default "0.12.2" if ISL_V_0_12_2
default "0.11.1" if ISL_V_0_11_1

View File

@ -1,25 +0,0 @@
# libelf config file
choice
bool
prompt "libelf version"
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config LIBELF_V_0_8_13
bool
prompt "0.8.13"
config LIBELF_V_0_8_12
bool
prompt "0.8.12 (OBSOLETE)"
depends on OBSOLETE
endchoice
config LIBELF_VERSION
string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
default "0.8.13" if LIBELF_V_0_8_13
default "0.8.12" if LIBELF_V_0_8_12

View File

@ -1,24 +0,0 @@
# libiconv options
choice
bool
prompt "libiconv version"
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config LIBICONV_V_1_15
bool
prompt "1.15"
config LIBICONV_V_1_14
bool
prompt "1.14"
endchoice
config LIBICONV_VERSION
string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
default "1.15" if LIBICONV_V_1_15
default "1.14" if LIBICONV_V_1_14

View File

@ -1,61 +0,0 @@
# MPC options
choice
bool
prompt "MPC version"
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config MPC_V_1_0_3
bool
prompt "1.0.3"
config MPC_V_1_0_2
bool
prompt "1.0.2 (OBSOLETE)"
depends on OBSOLETE
config MPC_V_1_0_1
bool
prompt "1.0.1 (OBSOLETE)"
depends on OBSOLETE
config MPC_V_1_0
bool
prompt "1.0 (OBSOLETE)"
depends on OBSOLETE
config MPC_V_0_9
bool
prompt "0.9 (OBSOLETE)"
depends on OBSOLETE
config MPC_V_0_8_2
bool
prompt "0.8.2 (OBSOLETE)"
depends on OBSOLETE
config MPC_V_0_8_1
bool
prompt "0.8.1 (OBSOLETE)"
depends on OBSOLETE
config MPC_V_0_7
bool
prompt "0.7 (OBSOLETE)"
depends on OBSOLETE
endchoice
config MPC_VERSION
string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
default "1.0.3" if MPC_V_1_0_3
default "1.0.2" if MPC_V_1_0_2
default "1.0.1" if MPC_V_1_0_1
default "1.0" if MPC_V_1_0
default "0.9" if MPC_V_0_9
default "0.8.2" if MPC_V_0_8_2
default "0.8.1" if MPC_V_0_8_1
default "0.7" if MPC_V_0_7

View File

@ -1,67 +0,0 @@
# GMP options
choice
bool
prompt "MPFR version"
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config MPFR_V_3_1_5
bool
prompt "3.1.5"
config MPFR_V_3_1_3
bool
prompt "3.1.3 (OBSOLETE)"
depends on OBSOLETE
config MPFR_V_3_1_2
bool
prompt "3.1.2 (OBSOLETE)"
depends on OBSOLETE
config MPFR_V_3_1_0
bool
prompt "3.1.0 (OBSOLETE)"
depends on OBSOLETE
config MPFR_V_3_0_1
bool
prompt "3.0.1 (OBSOLETE)"
depends on OBSOLETE
config MPFR_V_3_0_0
bool
prompt "3.0.0 (OBSOLETE)"
depends on OBSOLETE
config MPFR_V_2_4_2
bool
prompt "2.4.2 (OBSOLETE)"
depends on OBSOLETE
config MPFR_V_2_4_1
bool
prompt "2.4.1 (OBSOLETE)"
depends on OBSOLETE
config MPFR_V_2_4_0
bool
prompt "2.4.0 (OBSOLETE)"
depends on OBSOLETE
endchoice
config MPFR_VERSION
string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
default "3.1.5" if MPFR_V_3_1_5
default "3.1.3" if MPFR_V_3_1_3
default "3.1.2" if MPFR_V_3_1_2
default "3.1.0" if MPFR_V_3_1_0
default "3.0.1" if MPFR_V_3_0_1
default "3.0.0" if MPFR_V_3_0_0
default "2.4.2" if MPFR_V_2_4_2
default "2.4.1" if MPFR_V_2_4_1
default "2.4.0" if MPFR_V_2_4_0

View File

@ -1,19 +0,0 @@
# Zlib options
choice
bool
prompt "zlib version"
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config ZLIB_V_1_2_11
bool
prompt "1.2.11"
endchoice
config ZLIB_VERSION
string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
default "1.2.11" if ZLIB_V_1_2_11

View File

@ -1,29 +0,0 @@
# Autoconf
## default y if !CONFIGURE_has_autoconf_2_63_or_newer
## default y if !CONFIGURE_has_autoreconf_2_63_or_newer
## help Autoconf
choice
bool
prompt "Autoconf version"
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config AUTOCONF_V_2_69
bool
prompt "2.69"
config AUTOCONF_V_2_65
bool
prompt "2.65 (OBSOLETE)"
depends on OBSOLETE
endchoice
config AUTOCONF_VERSION
string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
default "2.69" if AUTOCONF_V_2_69
default "2.65" if AUTOCONF_V_2_65

View File

@ -1,40 +0,0 @@
# Automake
## default y if !CONFIGURE_has_automake_1_15_or_newer
## help Automake
choice
bool
prompt "Automake version"
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config AUTOMAKE_V_1_15
bool
prompt "1.15"
config AUTOMAKE_V_1_14
bool
prompt "1.14 (OBSOLETE)"
depends on OBSOLETE
config AUTOMAKE_V_1_11_6
bool
prompt "1.11.6 (OBSOLETE)"
depends on OBSOLETE
config AUTOMAKE_V_1_11_1
bool
prompt "1.11.1 (OBSOLETE)"
depends on OBSOLETE
endchoice
config AUTOMAKE_VERSION
string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
default "1.15" if AUTOMAKE_V_1_15
default "1.14" if AUTOMAKE_V_1_14
default "1.11.6" if AUTOMAKE_V_1_11_6
default "1.11.1" if AUTOMAKE_V_1_11_1

View File

@ -1,23 +0,0 @@
# Libtool
## default y if !CONFIGURE_has_libtool_2_4_or_newer
## default y if !CONFIGURE_has_libtoolize_2_4_or_newer
## help Libtool
choice
bool
prompt "Libtool version"
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config LIBTOOL_V_2_4_6
bool
prompt "2.4.6"
endchoice
config LIBTOOL_VERSION
string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
default "2.4.6" if LIBTOOL_V_2_4_6

View File

@ -1,34 +0,0 @@
# GNU m4
## default y if !CONFIGURE_has_gnu_m4_1_4_12_or_newer
## help GNU m4
choice
bool
prompt "m4 version"
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config M4_V_1_4_18
bool
prompt "1.4.18"
config M4_V_1_4_17
bool
prompt "1.4.17 (OBSOLETE)"
depends on OBSOLETE
config M4_V_1_4_13
bool
prompt "1.4.13 (OBSOLETE)"
depends on OBSOLETE
endchoice
config M4_VERSION
string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
default "1.4.18" if M4_V_1_4_18
default "1.4.17" if M4_V_1_4_17
default "1.4.13" if M4_V_1_4_13

View File

@ -1,45 +0,0 @@
# GNU make
## default y if !CONFIGURE_has_make_3_81_or_newer
## help GNU make
choice
bool
prompt "make version"
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config MAKE_V_4_2_1
bool
prompt "4.2.1"
config MAKE_V_4_1
bool
prompt "4.1 (OBSOLETE)"
depends on OBSOLETE
config MAKE_V_4_0
bool
prompt "4.0 (OBSOLETE)"
depends on OBSOLETE
config MAKE_V_3_81
bool
prompt "3.81 (OBSOLETE)"
depends on OBSOLETE
endchoice
config MAKE_GMAKE_SYMLINK
bool
prompt "Add gmake symlink to companion gnu/make"
depends on COMP_TOOLS_make
config MAKE_VERSION
string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
default "4.2.1" if MAKE_V_4_2_1
default "4.1" if MAKE_V_4_1
default "4.0" if MAKE_V_4_0
default "3.81" if MAKE_V_3_81

View File

@ -7,6 +7,6 @@ source "config/binutils.in"
source "config/libc.in" source "config/libc.in"
source "config/cc.in" source "config/cc.in"
source "config/debug.in" source "config/debug.in"
source "config/companion_libs.in" source "config/comp_libs.in"
source "config/companion_tools.in" source "config/comp_tools.in"
source "config/test_suite.in" source "config/test_suite.in"

View File

@ -1,12 +1,14 @@
# D.U.M.A. - Detect Unintended Memory Access - Memory checker # D.U.M.A. - Detect Unintended Memory Access - Memory checker
## depends on ! BARE_METAL ## depends on ! BARE_METAL
## depends on ! LIBC_bionic ## depends on ! LIBC_BIONIC
## help D.U.M.A. - Detect Unintended Memory Access ## help D.U.M.A. - Detect Unintended Memory Access
## help A memory bound checker, with additional features. ## help A memory bound checker, with additional features.
## help Formerly known as Electric Fence. ## help Formerly known as Electric Fence.
source "config/versions/duma.in"
config DUMA_SO config DUMA_SO
bool bool
prompt "Build a shared library" prompt "Build a shared library"
@ -18,21 +20,3 @@ config DUMA_CUSTOM_WRAPPER
prompt "Install custom D.U.M.A wrapper" prompt "Install custom D.U.M.A wrapper"
default y default y
depends on DUMA_SO depends on DUMA_SO
choice
bool
prompt "D.U.M.A. version"
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config DUMA_V_2_5_15
bool
prompt "2_5_15"
endchoice
config DUMA_VERSION
string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
default "2_5_15" if DUMA_V_2_5_15

View File

@ -2,326 +2,20 @@
## help gdb is the GNU debugger ## help gdb is the GNU debugger
source "config/versions/gdb.in"
source "config/debug/gdb.in.cross" source "config/debug/gdb.in.cross"
source "config/debug/gdb.in.native" source "config/debug/gdb.in.native"
source "config/debug/gdb.in.gdbserver" source "config/debug/gdb.in.gdbserver"
comment "gdb version"
config GDB_CUSTOM
bool
prompt "Custom gdb"
depends on EXPERIMENTAL
select GDB_8_0_or_later
help
The choosen gdb version shall be not downloaded. Instead use
a custom location to get the source.
if GDB_CUSTOM
config GDB_CUSTOM_LOCATION
string
prompt "Full path to custom gdb source"
help
Enter the path to the directory or tarball of your source for gcc.
If the path is a tarball, it should extract to: <name>-<version>/
where the name is this component, gcc, and the version is set
below in the custom version string.
config GDB_CUSTOM_VERSION
string
prompt "Custom GDB version"
help
Enter the version number for your custom gdb.
config GDB_VERSION
string
default GDB_CUSTOM_VERSION
endif # GDB_CUSTOM
if ! GDB_CUSTOM
config DEBUG_GDB_SHOW_LINARO
bool
prompt "Show Linaro versions"
depends on OBSOLETE
help
Linaro is maintaining some advanced/more stable/experimental versions
of gdb, especially for the ARM architecture.
Those versions have not been blessed by the gdb community (nor have they
been cursed either!), but they look to be pretty much stable, and even
more stable than the upstream versions. YMMV...
If you do not know what this Linaro stuff is, then simply say 'n' here,
and rest in peace. OTOH, if you know what you are doing, you will be
able to use and enjoy :-) the Linaro versions by saying 'y' here.
Linaro: http://www.linaro.org/
choice
bool
prompt "gdb version"
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config GDB_V_8_0
bool
prompt "8.0"
select GDB_8_0_or_later
config GDB_V_7_12_1
bool
prompt "7.12.1"
select GDB_7_12_or_later
config GDB_V_7_11_1
bool
prompt "7.11.1"
select GDB_7_2_or_later
config GDB_V_7_10_1
bool
prompt "7.10.1 (OBSOLETE)"
select GDB_7_2_or_later
depends on OBSOLETE
config GDB_V_7_10
bool
prompt "7.10 (OBSOLETE)"
depends on OBSOLETE
select GDB_7_2_or_later
config GDB_V_7_9_1
bool
prompt "7.9.1 (OBSOLETE)"
depends on OBSOLETE
select GDB_7_2_or_later
config GDB_V_7_9
bool
prompt "7.9 (OBSOLETE)"
depends on OBSOLETE
select GDB_7_2_or_later
config GDB_V_linaro_7_8
bool
prompt "linaro-7.8-2014.09 (OBSOLETE)"
depends on DEBUG_GDB_SHOW_LINARO
depends on OBSOLETE
select GDB_7_2_or_later
config GDB_V_7_8_2
bool
prompt "7.8.2 (OBSOLETE)"
depends on OBSOLETE
select GDB_7_2_or_later
config GDB_V_7_8_1
bool
prompt "7.8.1 (OBSOLETE)"
depends on OBSOLETE
select GDB_7_2_or_later
config GDB_V_7_8
bool
prompt "7.8 (OBSOLETE)"
depends on OBSOLETE
select GDB_7_2_or_later
config GDB_V_linaro_7_7_1
bool
prompt "linaro-7.7.1-2014.06 (OBSOLETE)"
depends on DEBUG_GDB_SHOW_LINARO
depends on OBSOLETE
select GDB_7_2_or_later
config GDB_V_7_7_1
bool
prompt "7.7.1 (OBSOLETE)"
depends on OBSOLETE
select GDB_7_2_or_later
config GDB_V_linaro_7_7
bool
prompt "linaro-7.7-2014.05 (OBSOLETE)"
depends on DEBUG_GDB_SHOW_LINARO
depends on OBSOLETE
select GDB_7_2_or_later
config GDB_V_7_7
bool
prompt "7.7 (OBSOLETE)"
depends on OBSOLETE
select GDB_7_2_or_later
config GDB_V_linaro_7_6
bool
prompt "linaro-7.6.1-2013.10 (OBSOLETE)"
depends on DEBUG_GDB_SHOW_LINARO
select GDB_7_2_or_later
config GDB_V_7_6_1
bool
prompt "7.6.1 (OBSOLETE)"
depends on OBSOLETE
select GDB_7_2_or_later
config GDB_V_linaro_7_5
bool
prompt "linaro-7.5-2012.12 (OBSOLETE)"
depends on DEBUG_GDB_SHOW_LINARO
depends on OBSOLETE
select GDB_7_2_or_later
config GDB_V_7_5_1
bool
prompt "7.5.1 (OBSOLETE)"
depends on OBSOLETE
select GDB_7_2_or_later
config GDB_V_linaro_7_4
bool
prompt "linaro-7.4-2012.06 (OBSOLETE)"
depends on DEBUG_GDB_SHOW_LINARO
depends on OBSOLETE
select GDB_7_2_or_later
config GDB_V_7_4_1
bool
prompt "7.4.1 (OBSOLETE)"
depends on OBSOLETE
select GDB_7_2_or_later
config GDB_V_7_4
bool
prompt "7.4 (OBSOLETE)"
depends on OBSOLETE
select GDB_7_2_or_later
config GDB_V_linaro_7_3
bool
prompt "linaro-7.3-2011.12 (OBSOLETE)"
depends on DEBUG_GDB_SHOW_LINARO
depends on OBSOLETE
select GDB_7_2_or_later
config GDB_V_7_3_1
bool
prompt "7.3.1 (OBSOLETE)"
depends on OBSOLETE
select GDB_7_2_or_later
config GDB_V_7_3a
bool
prompt "7.3a (OBSOLETE)"
depends on OBSOLETE
select GDB_7_2_or_later
config GDB_V_7_2a
bool
prompt "7.2a (OBSOLETE)"
depends on OBSOLETE
select GDB_7_2_or_later
config GDB_V_7_1a
bool
prompt "7.1a (OBSOLETE)"
depends on OBSOLETE
select GDB_7_0_or_later
config GDB_V_7_0_1a
bool
prompt "7.0.1a (OBSOLETE)"
depends on OBSOLETE
select GDB_7_0_or_later
config GDB_V_7_0a
bool
prompt "7.0a (OBSOLETE)"
depends on OBSOLETE
select GDB_7_0_or_later
config GDB_V_6_8a
bool
prompt "6.8a (OBSOLETE)"
depends on OBSOLETE
endchoice
endif # ! GDB_CUSTOM
config GDB_8_0_or_later
bool
select GDB_7_12_or_later
config GDB_7_12_or_later
bool
select GDB_7_2_or_later
config GDB_7_2_or_later
bool
select GDB_7_0_or_later
config GDB_7_0_or_later
bool
select GDB_HAS_PKGVERSION_BUGURL
select GDB_HAS_PYTHON
select GDB_INSTALL_GDBINIT
config GDB_HAS_PKGVERSION_BUGURL config GDB_HAS_PKGVERSION_BUGURL
bool bool
default y if GDB_7_0_or_later
config GDB_HAS_PYTHON config GDB_HAS_PYTHON
bool bool
default y if GDB_7_0_or_later
config GDB_INSTALL_GDBINIT config GDB_INSTALL_GDBINIT
bool bool
default y if GDB_7_0_or_later
# GDB 8.0 now requires C++ for build. GDB 7.12 offered a configure
# switch to fall back to C.
config GDB_TARGET_DISABLE_CXX_BUILD
def_bool y
depends on GDB_7_12_or_later && !GDB_8_0_or_later
if ! GDB_CUSTOM
config GDB_VERSION
string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
default "8.0" if GDB_V_8_0
default "7.12.1" if GDB_V_7_12_1
default "7.11.1" if GDB_V_7_11_1
default "7.10.1" if GDB_V_7_10_1
default "7.10" if GDB_V_7_10
default "7.9.1" if GDB_V_7_9_1
default "7.9" if GDB_V_7_9
default "7.8.2" if GDB_V_7_8_2
default "linaro-7.8-2014.09" if GDB_V_linaro_7_8
default "7.8.1" if GDB_V_7_8_1
default "7.8" if GDB_V_7_8
default "linaro-7.7.1-2014.06-1" if GDB_V_linaro_7_7_1
default "7.7.1" if GDB_V_7_7_1
default "linaro-7.7-2014.05" if GDB_V_linaro_7_7
default "7.7" if GDB_V_7_7
default "linaro-7.6.1-2013.10" if GDB_V_linaro_7_6
default "7.6.1" if GDB_V_7_6_1
default "linaro-7.5-2012.12" if GDB_V_linaro_7_5
default "7.5.1" if GDB_V_7_5_1
default "linaro-7.4-2012.06" if GDB_V_linaro_7_4
default "7.4.1" if GDB_V_7_4_1
default "7.4" if GDB_V_7_4
default "linaro-7.3-2011.12" if GDB_V_linaro_7_3
default "7.3.1" if GDB_V_7_3_1
default "7.3a" if GDB_V_7_3a
default "7.2a" if GDB_V_7_2a
default "7.1a" if GDB_V_7_1a
default "7.0.1a" if GDB_V_7_0_1a
default "7.0a" if GDB_V_7_0a
default "6.8a" if GDB_V_6_8a
endif # ! GDB_CUSTOM

View File

@ -5,7 +5,7 @@ config GDB_GDBSERVER
prompt "gdbserver" prompt "gdbserver"
default y default y
depends on ! BARE_METAL depends on ! BARE_METAL
select LIBC_UCLIBC_WCHAR if LIBC_uClibc && GDB_8_0_or_later select LIBC_UCLIBC_WCHAR if LIBC_UCLIBC && GDB_8_0_or_later
help help
Build and install a gdbserver for the target, to run on the target. Build and install a gdbserver for the target, to run on the target.

View File

@ -4,9 +4,9 @@ config GDB_NATIVE
bool bool
prompt "Native gdb" prompt "Native gdb"
depends on ! BARE_METAL depends on ! BARE_METAL
depends on ! LIBC_bionic depends on ! LIBC_BIONIC
depends on CC_LANG_CXX || !GDB_8_0_or_later depends on CC_LANG_CXX || !GDB_8_0_or_later
select LIBC_UCLIBC_WCHAR if LIBC_uClibc && GDB_8_0_or_later select LIBC_UCLIBC_WCHAR if LIBC_UCLIBC && GDB_8_0_or_later
select EXPAT_TARGET select EXPAT_TARGET
select NCURSES_TARGET select NCURSES_TARGET
help help

View File

@ -1,40 +1,18 @@
# ltrace # ltrace
## select LIBELF_TARGET ## select LIBELF_TARGET
## depends on ! LIBC_bionic ## depends on ! LIBC_BIONIC
## ##
## help ltrace is a program that simply runs the specified command until it exits. ## help ltrace is a program that simply runs the specified command until it exits.
## help It intercepts and records the dynamic library calls which are called by ## help It intercepts and records the dynamic library calls which are called by
## help the executed process and the signals which are received by that process. ## help the executed process and the signals which are received by that process.
## help It can also intercept and print the system calls executed by the program. ## help It can also intercept and print the system calls executed by the program.
choice source "config/versions/ltrace.in"
bool
prompt "ltrace version"
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config LTRACE_V_0_7_3
bool
prompt "0.7.3"
config LTRACE_V_0_5_3
bool
prompt "0.5.3 (OBSOLETE)"
depends on OBSOLETE
select LTRACE_0_5_3_CONFIGURE
endchoice
config LTRACE_VERSION
string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
default "0.7.3" if LTRACE_V_0_7_3
default "0.5.3" if LTRACE_V_0_5_3
# Ltrace 0.5.3 had a unique hand-crafted configure script that has to be # Ltrace 0.5.3 had a unique hand-crafted configure script that has to be
# run differently from any preceding or following releases. This serves # run differently from any preceding or following releases. This serves
# as a reminder to remove that code once 0.5.3 support is dropped. # as a reminder to remove that code once 0.5.3 support is dropped.
config LTRACE_0_5_3_CONFIGURE config LTRACE_0_5_3_CONFIGURE
bool bool
default y if LTRACE_V_0_5_3

View File

@ -1,98 +1,5 @@
# strace # strace
## depends on ! LIBC_bionic ## depends on ! LIBC_BIONIC
choice source "config/versions/strace.in"
bool
prompt "strace version"
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config STRACE_V_4_16
bool
prompt "4.16"
config STRACE_V_4_15
bool
prompt "4.15"
config STRACE_V_4_14
bool
prompt "4.14 (OBSOLETE)"
depends on OBSOLETE
config STRACE_V_4_13
bool
prompt "4.13 (OBSOLETE)"
depends on OBSOLETE
config STRACE_V_4_12
bool
prompt "4.12 (OBSOLETE)"
depends on OBSOLETE
config STRACE_V_4_11
bool
prompt "4.11 (OBSOLETE)"
depends on OBSOLETE
config STRACE_V_4_10
bool
prompt "4.10 (OBSOLETE)"
depends on OBSOLETE
config STRACE_V_4_9
bool
prompt "4.9 (OBSOLETE)"
depends on OBSOLETE
config STRACE_V_4_8
bool
prompt "4.8 (OBSOLETE)"
depends on OBSOLETE
config STRACE_V_4_7
bool
prompt "4.7 (OBSOLETE)"
depends on OBSOLETE
config STRACE_V_4_6
bool
prompt "4.6 (OBSOLETE)"
depends on OBSOLETE
config STRACE_V_4_5_20
bool
prompt "4.5.20 (OBSOLETE)"
depends on OBSOLETE
config STRACE_V_4_5_19
bool
prompt "4.5.19 (OBSOLETE)"
depends on OBSOLETE
config STRACE_V_4_5_18
bool
prompt "4.5.18 (OBSOLETE)"
depends on OBSOLETE
endchoice
config STRACE_VERSION
string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
default "4.16" if STRACE_V_4_16
default "4.15" if STRACE_V_4_15
default "4.14" if STRACE_V_4_14
default "4.13" if STRACE_V_4_13
default "4.12" if STRACE_V_4_12
default "4.11" if STRACE_V_4_11
default "4.10" if STRACE_V_4_10
default "4.9" if STRACE_V_4_9
default "4.8" if STRACE_V_4_8
default "4.7" if STRACE_V_4_7
default "4.6" if STRACE_V_4_6
default "4.5.20" if STRACE_V_4_5_20
default "4.5.19" if STRACE_V_4_5_19
default "4.5.18" if STRACE_V_4_5_18

View File

@ -73,24 +73,6 @@ config PATCH_LOCAL_BUNDLED
Apply your local patches, then apply the patches Apply your local patches, then apply the patches
bundled with crosstool-NG. bundled with crosstool-NG.
config PATCH_BUNDLED_FALLBACK_LOCAL
bool
prompt "Bundled only, local if no bundled"
select PATCH_USE_LOCAL
select PATCH_SINGLE
help
Apply the patches bundled with crosstool-NG;
if there's no bundled patches, apply your local patches.
config PATCH_LOCAL_FALLBACK_BUNDLED
bool
prompt "Local only, bundled if no local"
select PATCH_USE_LOCAL
select PATCH_SINGLE
help
Only apply your local patches;
if there's no local patches, apply patches bundled with crosstool-NG.
config PATCH_NONE config PATCH_NONE
bool bool
prompt "None" prompt "None"
@ -110,19 +92,16 @@ config PATCH_ORDER
string string
default "bundled" if PATCH_BUNDLED default "bundled" if PATCH_BUNDLED
default "local" if PATCH_LOCAL default "local" if PATCH_LOCAL
default "bundled,local" if PATCH_BUNDLED_LOCAL || PATCH_BUNDLED_FALLBACK_LOCAL default "bundled,local" if PATCH_BUNDLED_LOCAL
default "local,bundled" if PATCH_LOCAL_BUNDLED || PATCH_LOCAL_FALLBACK_BUNDLED default "local,bundled" if PATCH_LOCAL_BUNDLED
default "none" if PATCH_NONE default "none" if PATCH_NONE
config PATCH_SINGLE
bool
config PATCH_USE_LOCAL config PATCH_USE_LOCAL
bool bool
config LOCAL_PATCH_DIR config LOCAL_PATCH_DIR
string string
prompt "| Local patch directory" prompt "Local patch directory"
default "" default ""
depends on PATCH_USE_LOCAL depends on PATCH_USE_LOCAL
help help

View File

@ -4,9 +4,11 @@ menu "Operating System"
# Config option used throughout the config and code to determine wether # Config option used throughout the config and code to determine wether
# we have a kernel or not (there might be different bare metal stuff)... # we have a kernel or not (there might be different bare metal stuff)...
# FIXME use CT_KERNEL_bare_metal instead
config BARE_METAL config BARE_METAL
bool bool
# FIXME use CT_KERNEL_windows instead
config WINDOWS config WINDOWS
bool bool
@ -16,12 +18,6 @@ config WINDOWS
config KERNEL_SUPPORTS_SHARED_LIBS config KERNEL_SUPPORTS_SHARED_LIBS
bool bool
config KERNEL
string
config KERNEL_VERSION
string
source "config/gen/kernel.in" source "config/gen/kernel.in"
comment "Common kernel options" comment "Common kernel options"
@ -37,6 +33,4 @@ config SHARED_LIBS
You might not want shared libraries if you're building for a target that You might not want shared libraries if you're building for a target that
don't support it (maybe some nommu targets, for example, or bare metal). don't support it (maybe some nommu targets, for example, or bare metal).
source "config/gen/kernel.in.2"
endmenu endmenu

View File

@ -1,294 +1,54 @@
# Linux kernel options # Linux kernel options
## depends on ! ARCH_avr ## depends on ! ARCH_AVR
## select KERNEL_SUPPORTS_SHARED_LIBS ## select KERNEL_SUPPORTS_SHARED_LIBS
##
## help Build a toolchain targeting systems running Linux as a kernel. ## help Build a toolchain targeting systems running Linux as a kernel.
config KERNEL_LINUX_CUSTOM
bool
prompt "custom tarball or directory"
help
The choosen linux version shall be not downloaded. Instead use
a custom location to get the source.
if KERNEL_LINUX_CUSTOM
config KERNEL_LINUX_CUSTOM_LOCATION
string
prompt "Path to custom source, tarball or directory"
help
Enter the path to the directory or tarball of your source for linux.
If the path is a tarball, it should extract to: <name>-<version>/
where the name is this component, linux, and the version is set
below in the custom version string.
config KERNEL_LINUX_CUSTOM_VERSION
string
prompt "Custom Linux version"
help
Enter the version number for your custom linux.
config KERNEL_VERSION
string
default KERNEL_LINUX_CUSTOM_VERSION
endif # KERNEL_LINUX_CUSTOM
if ! KERNEL_LINUX_CUSTOM
# GLIBC and kernel are special when it comes to obsoletion. Users # GLIBC and kernel are special when it comes to obsoletion. Users
# of crosstool-ng depend on the ability to build new toolchains matching # of crosstool-ng depend on the ability to build new toolchains matching
# the kernel/libc versions of a particular target system, and LTS releases # the kernel/libc versions of a particular target system, and LTS releases
# are still using quite ancient versions. Please do not retire versions # are still using quite ancient versions. Please do not retire versions
# (including versions in between) until the EOL dates indicated below. # (including versions in between) until the EOL dates indicated below.
# Such pinned versions are indicated in version.desc files with a comment.
source "config/versions/linux.in"
choice choice
bool bool
prompt "Linux kernel version" prompt "Kernel verbosity:"
# Don't remove next line default KERNEL_LINUX_VERBOSITY_0
# CT_INSERT_VERSION_BELOW
config KERNEL_V_4_11 config KERNEL_LINUX_VERBOSITY_0
bool bool
prompt "4.11.3" prompt "Simplified"
help
Print simplified command lines.
config KERNEL_V_4_10 config KERNEL_LINUX_VERBOSITY_1
bool bool
prompt "4.10.17 (EOL)" prompt "Full commands"
help
Print full command lines.
config KERNEL_V_4_9 config KERNEL_LINUX_VERBOSITY_2
bool bool
prompt "4.9.30" prompt "Exec reasons"
help
config KERNEL_V_4_8 Print the reasons why a make target is rebuild.
bool
prompt "4.8.17 (EOL)"
depends on OBSOLETE
config KERNEL_V_4_7
bool
prompt "4.7.10 (EOL)"
depends on OBSOLETE
config KERNEL_V_4_6
bool
prompt "4.6.7 (EOL)"
depends on OBSOLETE
config KERNEL_V_4_5
bool
prompt "4.5.7 (EOL)"
depends on OBSOLETE
# EOL 04/2021 [Ubuntu16.04]
config KERNEL_V_4_4
bool
prompt "4.4.70"
config KERNEL_V_4_3
bool
prompt "4.3.6 (EOL)"
depends on OBSOLETE
config KERNEL_V_4_2
bool
prompt "4.2.8 (EOL)"
depends on OBSOLETE
config KERNEL_V_4_1
bool
prompt "4.1.40"
config KERNEL_V_4_0
bool
prompt "4.0.9 (EOL)"
depends on OBSOLETE
config KERNEL_V_3_19
bool
prompt "3.19.8 (EOL)"
depends on OBSOLETE
config KERNEL_V_3_18
bool
prompt "3.18.55 (EOL)"
depends on OBSOLETE
config KERNEL_V_3_17
bool
prompt "3.17.8 (EOL)"
depends on OBSOLETE
config KERNEL_V_3_16
bool
prompt "3.16.43"
config KERNEL_V_3_15
bool
prompt "3.15.10 (EOL)"
depends on OBSOLETE
config KERNEL_V_3_14
bool
prompt "3.14.79 (EOL)"
depends on OBSOLETE
# EOL 04/2019 [Ubuntu14.04]
config KERNEL_V_3_13
bool
prompt "3.13.11 (EOL)"
depends on OBSOLETE
config KERNEL_V_3_12
bool
prompt "3.12.74"
config KERNEL_V_3_11
bool
prompt "3.11.10 (EOL)"
depends on OBSOLETE
# EOL 06/2024 [CentOS7.x]
config KERNEL_V_3_10
bool
prompt "3.10.105"
config KERNEL_V_3_9
bool
prompt "3.9.11 (EOL)"
depends on OBSOLETE
config KERNEL_V_3_8
bool
prompt "3.8.13 (EOL)"
depends on OBSOLETE
config KERNEL_V_3_7
bool
prompt "3.7.10 (EOL)"
depends on OBSOLETE
config KERNEL_V_3_6
bool
prompt "3.6.11 (EOL)"
depends on OBSOLETE
config KERNEL_V_3_5
bool
prompt "3.5.7 (EOL)"
depends on OBSOLETE
config KERNEL_V_3_4
bool
prompt "3.4.113"
config KERNEL_V_3_3
bool
prompt "3.3.8 (EOL)"
depends on OBSOLETE
# EOL 04/2017 [Ubuntu12.04]
config KERNEL_V_3_2
bool
prompt "3.2.88"
config KERNEL_V_3_1
bool
prompt "3.1.10 (EOL)"
depends on OBSOLETE
config KERNEL_V_3_0
bool
prompt "3.0.101 (EOL)"
depends on OBSOLETE
config KERNEL_V_2_6_39
bool
prompt "2.6.39.4 (EOL)"
depends on OBSOLETE
config KERNEL_V_2_6_38
bool
prompt "2.6.38.8 (EOL)"
depends on OBSOLETE
config KERNEL_V_2_6_37
bool
prompt "2.6.37.6 (EOL)"
depends on OBSOLETE
config KERNEL_V_2_6_36
bool
prompt "2.6.36.4 (EOL)"
depends on OBSOLETE
config KERNEL_V_2_6_35
bool
prompt "2.6.35.9 (EOL)"
depends on OBSOLETE
config KERNEL_V_2_6_34
bool
prompt "2.6.34.7 (EOL)"
depends on OBSOLETE
config KERNEL_V_2_6_33
bool
prompt "2.6.33.7 (EOL)"
depends on OBSOLETE
# EOL 11/2020 [CentOS6.x]
config KERNEL_V_2_6_32
bool
prompt "2.6.32.27 (EOL)"
depends on OBSOLETE
endchoice endchoice
config KERNEL_VERSION config KERNEL_LINUX_VERBOSE_LEVEL
string int
# Don't remove next line default 0 if KERNEL_LINUX_VERBOSITY_0
# CT_INSERT_VERSION_STRING_BELOW default 1 if KERNEL_LINUX_VERBOSITY_1
default "4.11.3" if KERNEL_V_4_11 default 2 if KERNEL_LINUX_VERBOSITY_2
default "4.10.17" if KERNEL_V_4_10
default "4.9.30" if KERNEL_V_4_9
default "4.8.17" if KERNEL_V_4_8
default "4.7.10" if KERNEL_V_4_7
default "4.6.7" if KERNEL_V_4_6
default "4.5.7" if KERNEL_V_4_5
default "4.4.70" if KERNEL_V_4_4
default "4.3.6" if KERNEL_V_4_3
default "4.2.8" if KERNEL_V_4_2
default "4.1.40" if KERNEL_V_4_1
default "4.0.9" if KERNEL_V_4_0
default "3.19.8" if KERNEL_V_3_19
default "3.18.55" if KERNEL_V_3_18
default "3.17.8" if KERNEL_V_3_17
default "3.16.43" if KERNEL_V_3_16
default "3.15.10" if KERNEL_V_3_15
default "3.14.79" if KERNEL_V_3_14
default "3.13.11" if KERNEL_V_3_13
default "3.12.74" if KERNEL_V_3_12
default "3.11.10" if KERNEL_V_3_11
default "3.10.105" if KERNEL_V_3_10
default "3.9.11" if KERNEL_V_3_9
default "3.8.13" if KERNEL_V_3_8
default "3.7.10" if KERNEL_V_3_7
default "3.6.11" if KERNEL_V_3_6
default "3.5.7" if KERNEL_V_3_5
default "3.4.113" if KERNEL_V_3_4
default "3.3.8" if KERNEL_V_3_3
default "3.2.88" if KERNEL_V_3_2
default "3.1.10" if KERNEL_V_3_1
default "3.0.101" if KERNEL_V_3_0
default "2.6.39.4" if KERNEL_V_2_6_39
default "2.6.38.8" if KERNEL_V_2_6_38
default "2.6.37.6" if KERNEL_V_2_6_37
default "2.6.36.4" if KERNEL_V_2_6_36
default "2.6.35.9" if KERNEL_V_2_6_35
default "2.6.34.7" if KERNEL_V_2_6_34
default "2.6.33.7" if KERNEL_V_2_6_33
default "2.6.32.27" if KERNEL_V_2_6_32
endif # ! KERNEL_LINUX_CUSTOM config KERNEL_LINUX_INSTALL_CHECK
bool
prompt "Check installed headers"
default y
help
If you are in doubt that installed headers are buggy, say 'Y'
here to have an extra check passed onto the headers.

View File

@ -1,40 +0,0 @@
# Linux kernel options
choice
bool
prompt "Kernel verbosity:"
default KERNEL_LINUX_VERBOSITY_0
config KERNEL_LINUX_VERBOSITY_0
bool
prompt "Simplified"
help
Print simplified command lines.
config KERNEL_LINUX_VERBOSITY_1
bool
prompt "Full commands"
help
Print full command lines.
config KERNEL_LINUX_VERBOSITY_2
bool
prompt "Exec reasons"
help
Print the reasons why a make target is rebuild.
endchoice
config KERNEL_LINUX_VERBOSE_LEVEL
int
default 0 if KERNEL_LINUX_VERBOSITY_0
default 1 if KERNEL_LINUX_VERBOSITY_1
default 2 if KERNEL_LINUX_VERBOSITY_2
config KERNEL_LINUX_INSTALL_CHECK
bool
prompt "Check installed headers"
default y
help
If you are in doubt that installed headers are buggy, say 'Y'
here to have an extra check passed onto the headers.

View File

@ -1,6 +1,6 @@
# windows config options # windows config options
## depends on ARCH_x86 ## depends on ARCH_X86
## depends on EXPERIMENTAL ## depends on EXPERIMENTAL
## ##
## select WINDOWS ## select WINDOWS

View File

@ -2,23 +2,6 @@
menu "C-library" menu "C-library"
config LIBC
string
config LIBC_VERSION
string
help
Enter the date of the snapshot you want to use in the form: YYYYMMDD
where YYYY is the 4-digit year, MM the 2-digit month and DD the 2-digit
day in the month.
Please note:
- glibc has snapshots done every monday, and only the last ten are kept.
- uClibc has daily snapshots, and only the last 30-or-so are kept.
So if you want to be able to re-build your toolchain later, you will
have to save your C library tarball by yourself.
source "config/gen/libc.in" source "config/gen/libc.in"
config LIBC_SUPPORT_THREADS_ANY config LIBC_SUPPORT_THREADS_ANY
@ -47,7 +30,7 @@ config THREADS
string string
default "none" if THREADS_NONE default "none" if THREADS_NONE
if ! LIBC_none if ! LIBC_NONE
comment "Common C library options" comment "Common C library options"
@ -123,8 +106,6 @@ config LIBC_XLDD
for the native ldd. Please see the help, by running it for the native ldd. Please see the help, by running it
with '--help' for more explanations. with '--help' for more explanations.
source "config/gen/libc.in.2" endif # ! LIBC_NONE
endif # ! LIBC_none
endmenu endmenu

View File

@ -1,6 +1,6 @@
# avr-libc options # avr-libc options
## depends on ARCH_avr ## depends on ARCH_AVR
## depends on ! LINUX && ! WINDOWS && BARE_METAL ## depends on ! LINUX && ! WINDOWS && BARE_METAL
## ##
## select LIBC_SUPPORT_THREADS_NONE ## select LIBC_SUPPORT_THREADS_NONE
@ -9,66 +9,11 @@
## help Atmel AVR 8-bit RISC microcontrollers. In addition, the library ## help Atmel AVR 8-bit RISC microcontrollers. In addition, the library
## help provides the basic startup code needed by most applications. ## help provides the basic startup code needed by most applications.
config LIBC_AVR_LIBC_CUSTOM source "config/versions/avr-libc.in"
bool
prompt "Custom avr-libc" config LIBC_AVR_LIBC_EXTRA_CONFIG_ARRAY
depends on EXPERIMENTAL string
prompt "Extra config for avr-libc"
default ""
help help
The choosen avr-libc version shall be not downloaded. Instead use Extra flags to pass onto ./configure when configuring the avr-libc.
a custom location to get the source.
if LIBC_AVR_LIBC_CUSTOM
config LIBC_AVR_LIBC_CUSTOM_LOCATION
string
prompt "Full path to custom avr-libc source"
help
Enter the path to the directory or tarball of your source for avr-libc.
If the path is a tarball, it should extract to: <name>-<version>/
where the name is this component, avr-libc, and the version is set
below in the custom version string.
config LIBC_AVR_LIBC_CUSTOM_VERSION
string
prompt "Custom AVR-Libc version"
help
Enter the version number for your custom avr-libc.
config LIBC_VERSION
string
default LIBC_AVR_LIBC_CUSTOM_VERSION
endif # LIBC_AVR_LIBC_CUSTOM
if ! LIBC_AVR_LIBC_CUSTOM
choice
bool
prompt "avr-libc version"
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config LIBC_AVR_LIBC_V_2_0_0
bool
prompt "2.0.0"
config LIBC_AVR_LIBC_V_1_8_1
bool
prompt "1.8.1"
config LIBC_AVR_LIBC_V_1_8_0
bool
prompt "1.8.0"
endchoice
config LIBC_VERSION
string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
default "2.0.0" if LIBC_AVR_LIBC_V_2_0_0
default "1.8.1" if LIBC_AVR_LIBC_V_1_8_1
default "1.8.0" if LIBC_AVR_LIBC_V_1_8_0
endif # ! LIBC_AVR_LIBC_CUSTOM

View File

@ -1,8 +0,0 @@
# avr-libc second-part options
config LIBC_AVR_LIBC_EXTRA_CONFIG_ARRAY
string
prompt "Extra config for avr-libc"
default ""
help
Extra flags to pass onto ./configure when configuring the avr-libc.

View File

@ -1,9 +1,9 @@
# bionic options # bionic options
## depends on ! WINDOWS && ! BARE_METAL ## depends on ! WINDOWS && ! BARE_METAL
## depends on ARCH_arm || ARCH_mips || ARCH_x86 ## depends on ARCH_ARM || ARCH_MIPS || ARCH_X86
## depends on EXPERIMENTAL ## depends on EXPERIMENTAL
## depends on CC_GCC_6_or_later ## depends on GCC_6_or_later
## ##
## select LIBC_SUPPORT_THREADS_POSIX ## select LIBC_SUPPORT_THREADS_POSIX
## ##
@ -11,98 +11,17 @@
## help This platform has no TLS (Thread Local Storage) support so that option must be ## help This platform has no TLS (Thread Local Storage) support so that option must be
## help disabled in the Compiler options. ## help disabled in the Compiler options.
source "config/versions/android-ndk.in"
config THREADS config THREADS
default "posix" default "posix"
config LIBC_BIONIC_CUSTOM # FIXME does API level depend on the bionic version? generate that, too?
bool
prompt "Custom bionic"
help
The chosen bionic-libc version shall be not downloaded. Instead use
a custom location to get the source.
if LIBC_BIONIC_CUSTOM
config LIBC_BIONIC_CUSTOM_LOCATION
string
prompt "Full path to custom bionic source"
help
Enter the path to the directory or tarball of your source for bionic.
If the path is a zip archive, it should extract to: <name>-<version>/
where the name is android-ndk, and the version is set
below in the custom version string.
config LIBC_BIONIC_CUSTOM_VERSION
string
prompt "Custom BIONIC version"
help
Enter the version number for your custom bionic.
config LIBC_VERSION
string
default LIBC_BIONIC_CUSTOM_VERSION
endif # LIBC_BIONIC_CUSTOM
if ! LIBC_BIONIC_CUSTOM
choice
bool
prompt "bionic version"
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config LIBC_BIONIC_V_15beta1
bool
prompt "15beta1"
config LIBC_BIONIC_V_14b
bool
prompt "14b"
config LIBC_BIONIC_V_13b
bool
prompt "13b (OBSOLETE)"
depends on OBSOLETE
config LIBC_BIONIC_V_12b
bool
prompt "12b (OBSOLETE)"
depends on OBSOLETE
config LIBC_BIONIC_V_11c
bool
prompt "11c (OBSOLETE)"
depends on OBSOLETE
config LIBC_BIONIC_V_10e
bool
prompt "10e (OBSOLETE)"
depends on OBSOLETE
endchoice
config LIBC_VERSION
string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
default "r15-beta1" if LIBC_BIONIC_V_15beta1
default "r14b" if LIBC_BIONIC_V_14b
default "r13b" if LIBC_BIONIC_V_13b
default "r12b" if LIBC_BIONIC_V_12b
default "r11c" if LIBC_BIONIC_V_11c
default "r10e" if LIBC_BIONIC_V_10e
endif # ! LIBC_BIONIC_CUSTOM
choice choice
bool bool
prompt "Android API level" prompt "Android API level"
help help
The minimum for 64 bit support is 21. The minimum for 64 bit support is 21.
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config ANDROID_API_24 config ANDROID_API_24
bool bool
@ -169,8 +88,6 @@ endchoice
config ANDROID_API config ANDROID_API
string string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
default "24" if ANDROID_API_24 default "24" if ANDROID_API_24
default "23" if ANDROID_API_23 default "23" if ANDROID_API_23
default "22" if ANDROID_API_22 default "22" if ANDROID_API_22
@ -184,4 +101,3 @@ config ANDROID_API
default "13" if ANDROID_API_13 default "13" if ANDROID_API_13
default "12" if ANDROID_API_12 default "12" if ANDROID_API_12
default "9" if ANDROID_API_9 default "9" if ANDROID_API_9

View File

@ -1,222 +1,289 @@
# glibc options # This file contains the common configuration options
# that apply to both glibc.
## depends on ! WINDOWS && ! BARE_METAL && ARCH_USE_MMU ## depends on ! WINDOWS && ! BARE_METAL && ARCH_USE_MMU
##
## select LIBC_SUPPORT_THREADS_NATIVE ## select LIBC_SUPPORT_THREADS_NATIVE
## select CC_CORE_PASSES_NEEDED ## select CC_CORE_PASSES_NEEDED
# TBD: select GETTEXT for build only, not for host
## select GETTEXT_NEEDED ## select GETTEXT_NEEDED
## ## select BINUTILS_FORCE_LD_BFD_DEFAULT
## help The de-facto standard for Linux distributions. ## help The de-facto standard for Linux distributions.
## help Feature-rich, but large... Most useful for desktop-like systems. ## help Feature-rich, but large... Most useful for desktop-like systems.
config THREADS
default "nptl"
config LIBC_GLIBC_CUSTOM
bool
prompt "Custom glibc"
depends on EXPERIMENTAL
select LIBC_CUSTOM
select LIBC_GLIBC_2_20_or_later
help
The choosen glibc version shall be not downloaded. Instead use
a custom location to get the source.
if LIBC_GLIBC_CUSTOM
config LIBC_GLIBC_CUSTOM_LOCATION
string
prompt "Full path to custom glibc source"
help
Enter the path to the directory or tarball of your source for glibc.
If the path is a tarball, it should extract to: <name>-<version>/
where the name is this component, glibc, and the version is set
below in the custom version string.
config LIBC_GLIBC_CUSTOM_VERSION
string
prompt "Custom GLIBC version"
help
Enter the version number for your custom glibc.
config LIBC_VERSION
string
default LIBC_GLIBC_CUSTOM_VERSION
endif # LIBC_GLIBC_CUSTOM
if ! LIBC_GLIBC_CUSTOM
config CC_GLIBC_SHOW_LINARO
bool
prompt "Show Linaro versions"
help
Linaro is maintaining some advanced/more stable/experimental versions
of glibc, especially for the ARM architecture.
Those versions have not been blessed by the glibc comunity (nor have they
been cursed either!), but they look to be pretty much stable, and even
more stable than the upstream versions. YMMV...
If you do not know what this Linaro stuff is, then simply say 'n' here,
and rest in peace. OTOH, if you know what you are doing, you will be
able to use and enjoy :-) the Linaro versions by saying 'y' here.
Linaro: http://www.linaro.org/
# GLIBC and kernel are special when it comes to obsoletion. Users # GLIBC and kernel are special when it comes to obsoletion. Users
# of crosstool-ng depend on the ability to build new toolchains matching # of crosstool-ng depend on the ability to build new toolchains matching
# the kernel/libc versions of a particular target system, and LTS releases # the kernel/libc versions of a particular target system, and LTS releases
# are still using quite ancient versions. Please do not retire versions # are still using quite ancient versions. Please do not retire versions
# (including versions in between) until the EOL dates indicated below. # (including versions in between) until the EOL dates indicated in version.desc.
choice source "config/versions/glibc.in"
bool if GLIBC_USE_PORTS_EXTERNAL
prompt "glibc version" source "config/versions/glibc-ports.in"
# Don't remove next line endif
# CT_INSERT_VERSION_BELOW
config LIBC_GLIBC_V_2_25 config THREADS
bool default "nptl"
prompt "2.25"
select LIBC_GLIBC_2_23_or_later
config LIBC_GLIBC_V_2_24 # Known add-ons and when they exist(ed)
bool # crypt external in 2.1, no longer an add-on since 2.2
prompt "2.24" # libidn external in 2.3.4 .. 2.10, still an add-on
select LIBC_GLIBC_2_23_or_later # linuxthreads external in 2.0.1 .. 2.5, no longer available since 2.6 [*]
# localedata external in 2.0.1 .. 2.0.6, no longer an add-on since 2.1 [*]
# ports external in 2.3.4 .. 2.16, no longer an add-on since 2.20
# nptl never external, no longer an add-on since 2.20
#
# Given the list of currently supported glibc releases, we only need to worry about
# 'libidn', 'ports' and 'nptl' add-ons. Of these, only 'ports' can be an external
# tarball; and only 'libidn' is user-selectable ('ports' & 'nptl' are selected
# by crosstool-NG, as dictated by the architecture and thread model).
#
# I had trouble locating the sources in the repository for some of the released
# versions. E.g., there is a 2.5 version of linuxthreads, but the tag for 2.5 in Git
# does not have the linuxthreads directory at all. Similarly, 2.0.6 tag did not have
# localedata. Since these releases are no longer supported by crosstool-NG, this is
# of pure historical interest now, however.
# EOL 04/2021 [Ubuntu16.04] config GLIBC_HAS_NPTL_ADDON
config LIBC_GLIBC_V_2_23 def_bool y
bool depends on !GLIBC_2_20_or_later
prompt "2.23"
select LIBC_GLIBC_2_23_or_later
config LIBC_GLIBC_V_2_22 config GLIBC_HAS_PORTS_ADDON
bool def_bool y
prompt "2.22 (OBSOLETE)" depends on !GLIBC_2_20_or_later
select LIBC_GLIBC_2_20_or_later
depends on OBSOLETE
config LIBC_GLIBC_V_2_21 config GLIBC_HAS_PORTS_ADDON_EXTERNAL
bool def_bool y
prompt "2.21 (OBSOLETE)" depends on !GLIBC_2_17_or_later
select LIBC_GLIBC_2_20_or_later
depends on OBSOLETE
config LIBC_GLIBC_LINARO_V_2_20 # In case it folds into main distribution in some future release, too
bool config GLIBC_HAS_LIBIDN_ADDON
prompt "Linaro 2.20-2014.11 (OBSOLETE)" def_bool y
select LIBC_GLIBC_2_20_or_later
depends on CC_GLIBC_SHOW_LINARO
depends on OBSOLETE
config LIBC_GLIBC_V_2_20 # Some architectures require the ports addon. List them one by one here:
bool # This list must be carefully in sync with the architectures names
prompt "2.20 (OBSOLETE)" # we can find in config/arch/*
select LIBC_GLIBC_2_20_or_later config GLIBC_USE_PORTS_ADDON
depends on OBSOLETE def_bool y
depends on ARCH_ALPHA || ARCH_ARM || ARCH_M68K || ARCH_MIPS || ARCH_POWERPC
depends on GLIBC_HAS_PORTS_ADDON
# EOL 04/2019 [Ubuntu14.04] config GLIBC_USE_PORTS_EXTERNAL
config LIBC_GLIBC_V_2_19 def_bool y
bool depends on GLIBC_USE_PORTS_ADDON && GLIBC_HAS_PORTS_ADDON_EXTERNAL
prompt "2.19 (OBSOLETE)"
depends on OBSOLETE
select LIBC_GLIBC_2_17_or_later
config LIBC_GLIBC_V_2_18 config GLIBC_USE_NPTL_ADDON
bool def_bool y
prompt "2.18 (OBSOLETE)" depends on THREADS_NATIVE && GLIBC_HAS_NPTL_ADDON
depends on OBSOLETE
select LIBC_GLIBC_2_17_or_later
# EOL 06/2024 [CentOS7.x] config GLIBC_USE_LIBIDN_ADDON
config LIBC_GLIBC_V_2_17 bool "Build libidn add-on"
bool help
prompt "2.17 (OBSOLETE)" Enables the libidn add-on in GNU libc.
depends on OBSOLETE
select LIBC_GLIBC_2_17_or_later
config LIBC_GLIBC_V_2_16_0 # SPARCv8 support retired in 2.23
bool config GLIBC_NO_SPARC_V8
prompt "2.16.0 (OBSOLETE)" def_bool y
depends on OBSOLETE depends on GLIBC_2_23_or_later
# EOL 04/2017 [Ubuntu12.04] config GLIBC_EXTRA_CONFIG_ARRAY
config LIBC_GLIBC_V_2_15 string
bool prompt "extra config"
prompt "2.15 (OBSOLETE)" default ""
depends on OBSOLETE help
Extra flags to pass onto ./configure when configuring.
config LIBC_GLIBC_V_2_14_1 You can enter multiple arguments here, and arguments can contain spaces
bool if they are properly quoted (or escaped, but prefer quotes). Eg.:
prompt "2.14.1 (OBSOLETE)" --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
depends on OBSOLETE
config LIBC_GLIBC_V_2_14 config GLIBC_CONFIGPARMS
bool string
prompt "2.14 (OBSOLETE)" prompt "Extra config params (READ HELP)"
depends on OBSOLETE default "" if ! ARCH_SH
default "no-z-defs=yes" if ARCH_SH
help
Some architectures need to set options in the file configparms.
This is the case for sh3/4, which really need to set configparms
to "no-z-defs=yes" as of gcc-3.4/glibc-2.3.2.
config LIBC_GLIBC_V_2_13 Unless you are building a toolchain for sh3/4, you should leave that empty.
bool
prompt "2.13 (OBSOLETE)"
depends on OBSOLETE
# This version did not have glibc-ports addon released Note: If you need to pass more than one value, separate them with
config LIBC_GLIBC_V_2_12_2 '\n'. Eg.: var1=val1\nvar2=val2
bool
prompt "2.12.2 (OBSOLETE)"
depends on OBSOLETE
depends on !LIBC_GLIBC_NEEDS_PORTS
# EOL 11/2020 [CentOS6.x] config GLIBC_EXTRA_CFLAGS
config LIBC_GLIBC_V_2_12_1 string
prompt "extra target CFLAGS"
default ""
help
Extra target CFLAGS to use when building.
config GLIBC_ENABLE_FORTIFIED_BUILD
bool bool
prompt "2.12.1 (OBSOLETE)" prompt "Enable fortified build (EXPERIMENTAL)"
depends on OBSOLETE depends on EXPERIMENTAL
help
If you say 'y' here, then glibc will be using fortified versions
of functions with format arguments (eg. vsyslog, printf...), and
do a sanity check on the format at runtime, to avoid some of the
common format string attacks.
This is currently not supported, and will most probably result in
a broken build, with an error message like:
../misc/syslog.c: In function '__vsyslog_chk':
../misc/syslog.c:123: sorry, unimplemented: inlining failed in
call to 'syslog': function body not available
If you are brave enough and want to debug the issue, then say 'y'
here. Otherwise, be still and say 'n' (the default). ;-)
config GLIBC_DISABLE_VERSIONING
bool
prompt "Disable symbols versioning"
help
Do not include versioning information in the library objects.
config GLIBC_OLDEST_ABI
string
prompt "Oldest supported ABI"
default ""
help
Set the oldest ABI supported by the C library.
Setting this option, for example, to 2.2 will provide ABI support
back to (e)glibc-2.2.
If this option is not set, (e)glibc will choose for you.
config GLIBC_FORCE_UNWIND
bool
prompt "Force unwind support (READ HELP!)"
default y
help
If your toolchain fails building while building the C library
start files, or the complete C library, with a message like:
configure: error: forced unwind support is required
then you may try changing this option. Otherwise, leave it to
the default 'y'.
The issue seems to be related to building NPTL on old versions
of glibc on some architectures
(seen on s390, s390x and x86_64).
config GLIBC_LOCALES
bool
prompt "Build and install locales"
help
Whether to build and install the libc locale files for the target,
which is required in order to support internationalization.
if LIBC_GLIBC && GLIBC_LOCALES
comment "WARNING! "
comment "| The built locales will be usable if and only if the build "
comment "| machine and the target: "
comment "| - have the same endianness, "
comment "| - and have the same alignment requirements for uint32_t. "
comment "| You will have to check by yourself (for now). "
comment "WARNING! "
comment "| Building GLIBC locales requires that GLIBC supports "
comment "| the build machine as the target. "
endif # LIBC_GLIBC && GLIBC_LOCALES
if KERNEL_LINUX
choice GLIBC_SUPPORTED_KERNEL
bool
prompt "Minimum supported kernel version"
default GLIBC_KERNEL_VERSION_AS_HEADERS
config GLIBC_KERNEL_VERSION_NONE
bool
prompt "Let ./configure decide"
help
Let ./configure decide what minimum kernel version glibc will be
able to run against.
This will include legacy compatibility code for older kernels in
the C library, thus ensuring that it will run on a large number
of old kernels.
The minimum kernel version supported will be dependent upon the
target you build for. For example:
alpha*-*-linux-gnu Requires Linux 2.6.9 for NPTL
sh[34]-*-linux-gnu Requires Linux 2.6.11
powerpc* Requires Linux 2.4.19
arm*-*-linux-*gnueabi Requires Linux 2.6.16
config GLIBC_KERNEL_VERSION_AS_HEADERS
bool
prompt "Same as kernel headers (default)"
help
Normally, you'll want glibc to run against the same kernel
version as the one used for the headers.
This is the default.
If enabled, crosstool-ng will use the chosen version of kernel
headers for the glibc minimum kernel version supported, which is
what gets passed to "--enable-kernel=" when configuring glibc.
Enabling this will ensure that no legacy compatibility code for
older kernels is built into your C libraries, but it will
be unable to run on kernel versions older than whichever kernel
headers version you've built the toolchain for.
If you know for sure that your toolchain will never need to build
applications that will run under a kernel version older than your
chosen kernel headers version (CT_KERNEL_VERSION), you can choose
"y" here.
config GLIBC_KERNEL_VERSION_CHOSEN
bool
prompt "Specific kernel version"
help
Specify the earliest Linux kernel version you want glibc to
include support for. This does not have to match the kernel
headers version used for your toolchain. This controls what is
passed to the "--enable-kernel=" option to the glibc configure
script.
If you want to be able to statically link programs with your
toolchain's C library, make sure this kernel version is lower than
all kernels you wish to support to avoid "FATAL: kernel too old"
errors. The higher the version you specify, the less legacy code
will be built into libc.
Most people can leave this at the default value of "2.6.9".
if GLIBC_KERNEL_VERSION_CHOSEN
config GLIBC_MIN_KERNEL_VERSION
string
prompt "Minimum kernel version to support"
default "2.6.9"
help
Enter here the lowest kernel version glibc will be able to run against.
The minimum kernel version supported will be dependent upon the
target you build for. For example:
alpha*-*-linux-gnu Requires Linux 2.6.9 for NPTL
sh[34]-*-linux-gnu Requires Linux 2.6.11
powerpc* Requires Linux 2.4.19
arm*-*-linux-*gnueabi Requires Linux 2.6.16
Note that no sanity check is performed by crosstool-NG to ensure
that the value you enter here is appropriate for your target.
endif # GLIBC_KERNEL_VERSION_CHOSEN
endchoice endchoice
endif # ! LIBC_GLIBC_CUSTOM config GLIBC_MIN_KERNEL
# Checked by SPARC build: SPARCv8 is dropped in 2.23.
config LIBC_GLIBC_2_23_or_later
select LIBC_GLIBC_2_20_or_later
bool
# DeMark 2.20 as no longer needs to set NPTL as an addon.
# It is no longer possible to build glibc without pthread!
config LIBC_GLIBC_2_20_or_later
bool
select LIBC_GLIBC_2_17_or_later
# DeMark no more ports
config LIBC_GLIBC_2_17_or_later
bool
if ! LIBC_GLIBC_CUSTOM
config LIBC_VERSION
string string
# Don't remove next line default "" if GLIBC_KERNEL_VERSION_NONE
# CT_INSERT_VERSION_STRING_BELOW default LINUX_VERSION if GLIBC_KERNEL_VERSION_AS_HEADERS
default "2.25" if LIBC_GLIBC_V_2_25 default GLIBC_MIN_KERNEL_VERSION if GLIBC_KERNEL_VERSION_CHOSEN
default "2.24" if LIBC_GLIBC_V_2_24
default "2.23" if LIBC_GLIBC_V_2_23
default "2.22" if LIBC_GLIBC_V_2_22
default "2.21" if LIBC_GLIBC_V_2_21
default "linaro-2.20-2014.11" if LIBC_GLIBC_LINARO_V_2_20
default "2.20" if LIBC_GLIBC_V_2_20
default "2.19" if LIBC_GLIBC_V_2_19
default "2.18" if LIBC_GLIBC_V_2_18
default "2.17" if LIBC_GLIBC_V_2_17
default "2.16.0" if LIBC_GLIBC_V_2_16_0
default "2.15" if LIBC_GLIBC_V_2_15
default "2.14.1" if LIBC_GLIBC_V_2_14_1
default "2.14" if LIBC_GLIBC_V_2_14
default "2.13" if LIBC_GLIBC_V_2_13
default "2.12.2" if LIBC_GLIBC_V_2_12_2
default "2.12.1" if LIBC_GLIBC_V_2_12_1
endif # ! LIBC_GLIBC_CUSTOM endif # KERNEL_LINUX

View File

@ -1,245 +0,0 @@
# This file contains the common configuration options
# that apply to both glibc.
# Some architectures require the ports addon. List them one by one here:
# This list must be carefully in sync with the architectures names
# we can find in config/arch/*
# Ports were integrated into the main tarball in 2.17
config LIBC_GLIBC_PORTS_EXTERNAL
def_bool y
depends on !LIBC_GLIBC_2_17_or_later
config LIBC_GLIBC_NEEDS_PORTS
def_bool y
depends on ARCH_alpha || ARCH_arm || ARCH_m68k || ARCH_mips || ARCH_powerpc
# Ports are no longer an add-on starting with 2.20
config LIBC_GLIBC_USE_PORTS
def_bool y
depends on LIBC_GLIBC_NEEDS_PORTS && !LIBC_GLIBC_2_20_or_later
# Force using the BFD linker during the toolchain build
config LIBC_glibc_family
bool
default y
select BINUTILS_FORCE_LD_BFD_DEFAULT
config LIBC_GLIBC_EXTRA_CONFIG_ARRAY
string
prompt "extra config"
default ""
help
Extra flags to pass onto ./configure when configuring.
You can enter multiple arguments here, and arguments can contain spaces
if they are properly quoted (or escaped, but prefer quotes). Eg.:
--with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space
config LIBC_GLIBC_CONFIGPARMS
string
prompt "Extra config params (READ HELP)"
default "" if ! ARCH_sh
default "no-z-defs=yes" if ARCH_sh
help
Some architectures need to set options in the file configparms.
This is the case for sh3/4, which really need to set configparms
to "no-z-defs=yes" as of gcc-3.4/glibc-2.3.2.
Unless you are building a toolchain for sh3/4, you should leave that empty.
Note: If you need to pass more than one value, separate them with
'\n'. Eg.: var1=val1\nvar2=val2
config LIBC_GLIBC_EXTRA_CFLAGS
string
prompt "extra target CFLAGS"
default ""
help
Extra target CFLAGS to use when building.
config LIBC_ENABLE_FORTIFIED_BUILD
bool
prompt "Enable fortified build (EXPERIMENTAL)"
depends on EXPERIMENTAL
help
If you say 'y' here, then glibc will be using fortified versions
of functions with format arguments (eg. vsyslog, printf...), and
do a sanity check on the format at runtime, to avoid some of the
common format string attacks.
This is currently not supported, and will most probably result in
a broken build, with an error message like:
../misc/syslog.c: In function '__vsyslog_chk':
../misc/syslog.c:123: sorry, unimplemented: inlining failed in
call to 'syslog': function body not available
If you are brave enough and want to debug the issue, then say 'y'
here. Otherwise, be still and say 'n' (the default). ;-)
config LIBC_DISABLE_VERSIONING
bool
prompt "Disable symbols versioning"
help
Do not include versioning information in the library objects.
config LIBC_OLDEST_ABI
string
prompt "Oldest supported ABI"
default ""
help
Set the oldest ABI supported by the C library.
Setting this option, for example, to 2.2 will provide ABI support
back to (e)glibc-2.2.
If this option is not set, (e)glibc will choose for you.
config LIBC_GLIBC_FORCE_UNWIND
bool
prompt "Force unwind support (READ HELP!)"
default y
help
If your toolchain fails building while building the C library
start files, or the complete C library, with a message like:
configure: error: forced unwind support is required
then you may try changing this option. Otherwise, leave it to
the default 'y'.
The issue seems to be related to building NPTL on old versions
of glibc on some architectures
(seen on s390, s390x and x86_64).
config LIBC_ADDONS_LIST
string
prompt "Extra addons"
default ""
help
Extra addons to include. Space separated list.
You need to specify neither linuxthreads nor nptl, as they are added
automagically for you depending on the threading model you chose
earlier and on libc version selected.
Also, do not specify ports even if applicable to the selected libc
version/architecture; it is selected automatically.
Eg.: libidn
config LIBC_LOCALES
bool
prompt "Build and install locales"
help
Whether to build and install the libc locale files for the target,
which is required in order to support internationalization.
if LIBC_glibc && LIBC_LOCALES
comment "WARNING! "
comment "| The built locales will be usable if and only if the build "
comment "| machine and the target: "
comment "| - have the same endianness, "
comment "| - and have the same alignment requirements for uint32_t. "
comment "| You will have to check by yourself (for now). "
comment "WARNING! "
comment "| Building GLIBC locales requires that GLIBC supports "
comment "| the build machine as the target. "
endif # LIBC_glibc && LIBC_LOCALES
if KERNEL_linux
choice LIBC_GLIBC_SUPPORTED_KERNEL
bool
prompt "Minimum supported kernel version"
default LIBC_GLIBC_KERNEL_VERSION_AS_HEADERS
config LIBC_GLIBC_KERNEL_VERSION_NONE
bool
prompt "Let ./configure decide"
help
Let ./configure decide what minimum kernel version glibc will be
able to run against.
This will include legacy compatibility code for older kernels in
the C library, thus ensuring that it will run on a large number
of old kernels.
The minimum kernel version supported will be dependent upon the
target you build for. For example:
alpha*-*-linux-gnu Requires Linux 2.6.9 for NPTL
sh[34]-*-linux-gnu Requires Linux 2.6.11
powerpc* Requires Linux 2.4.19
arm*-*-linux-*gnueabi Requires Linux 2.6.16
config LIBC_GLIBC_KERNEL_VERSION_AS_HEADERS
bool
prompt "Same as kernel headers (default)"
help
Normally, you'll want glibc to run against the same kernel
version as the one used for the headers.
This is the default.
If enabled, crosstool-ng will use the chosen version of kernel
headers for the glibc minimum kernel version supported, which is
what gets passed to "--enable-kernel=" when configuring glibc.
Enabling this will ensure that no legacy compatibility code for
older kernels is built into your C libraries, but it will
be unable to run on kernel versions older than whichever kernel
headers version you've built the toolchain for.
If you know for sure that your toolchain will never need to build
applications that will run under a kernel version older than your
chosen kernel headers version (CT_KERNEL_VERSION), you can choose
"y" here.
config LIBC_GLIBC_KERNEL_VERSION_CHOSEN
bool
prompt "Specific kernel version"
help
Specify the earliest Linux kernel version you want glibc to
include support for. This does not have to match the kernel
headers version used for your toolchain. This controls what is
passed to the "--enable-kernel=" option to the glibc configure
script.
If you want to be able to statically link programs with your
toolchain's C library, make sure this kernel version is lower than
all kernels you wish to support to avoid "FATAL: kernel too old"
errors. The higher the version you specify, the less legacy code
will be built into libc.
Most people can leave this at the default value of "2.6.9".
if LIBC_GLIBC_KERNEL_VERSION_CHOSEN
config LIBC_GLIBC_MIN_KERNEL_VERSION
string
prompt "Minimum kernel version to support"
default "2.6.9"
help
Enter here the lowest kernel version glibc will be able to run against.
The minimum kernel version supported will be dependent upon the
target you build for. For example:
alpha*-*-linux-gnu Requires Linux 2.6.9 for NPTL
sh[34]-*-linux-gnu Requires Linux 2.6.11
powerpc* Requires Linux 2.4.19
arm*-*-linux-*gnueabi Requires Linux 2.6.16
Note that no sanity check is performed by crosstool-NG to ensure
that the value you enter here is appropriate for your target.
endif # LIBC_GLIBC_KERNEL_VERSION_CHOSEN
endchoice
config LIBC_GLIBC_MIN_KERNEL
string
default "" if LIBC_GLIBC_KERNEL_VERSION_NONE
default KERNEL_VERSION if LIBC_GLIBC_KERNEL_VERSION_AS_HEADERS
default LIBC_GLIBC_MIN_KERNEL_VERSION if LIBC_GLIBC_KERNEL_VERSION_CHOSEN
endif # KERNEL_linux

39
config/libc/mingw-w64.in Normal file
View File

@ -0,0 +1,39 @@
# mingw options
## depends on WINDOWS
##
## select LIBC_SUPPORT_THREADS_NATIVE
## select LIBC_SUPPORT_THREADS_POSIX
## select CC_CORE_PASS_2_NEEDED
##
## help The de-facto standard for Mingw distributions.
source "config/versions/mingw-w64.in"
config THREADS
default "win32" if THREADS_NATIVE
default "posix" if THREADS_POSIX
config MINGW_SECURE_API
bool "Expose secure API prototypes"
default y
config MINGW_DIRECTX
bool "Include DirectX development files"
config MINGW_DDK
bool "Include DDK development files"
config MINGW_TOOLS
bool "Include the companion tools"
default y
help
Build the companion tools with mingw such as widl, gendef,
and genpeimg.
config MINGW_TOOL_LIST_ARRAY
string "List of mingw-w64 tools to build"
default "gendef genidl genlib genpeimg widl"
depends on MINGW_TOOLS
help
List of mingw-w64 tools to build.

View File

@ -1,159 +0,0 @@
# mingw options
## depends on WINDOWS
##
## select LIBC_SUPPORT_THREADS_NATIVE
## select LIBC_SUPPORT_THREADS_POSIX
## select CC_CORE_PASS_2_NEEDED
##
## help The de-facto standard for Mingw distributions.
config THREADS
default "win32" if THREADS_NATIVE
default "posix" if THREADS_POSIX
choice
bool
prompt "Windows API version"
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config WINAPI_V_5_0_2
bool
prompt "5.0.2"
config WINAPI_V_5_0_1
bool
prompt "5.0.1 (OBSOLETE)"
depends on OBSOLETE
config WINAPI_V_5_0_0
bool
prompt "5.0.0 (OBSOLETE)"
depends on OBSOLETE
config WINAPI_V_4_0_6
bool
prompt "4.0.6"
config WINAPI_V_4_0_5
bool
prompt "4.0.5 (OBSOLETE)"
depends on OBSOLETE
config WINAPI_V_4_0_4
bool
prompt "4.0.4 (OBSOLETE)"
depends on OBSOLETE
config WINAPI_V_4_0_2
bool
prompt "4.0.2 (OBSOLETE)"
depends on OBSOLETE
config WINAPI_V_4_0_1
bool
prompt "4.0.1 (OBSOLETE)"
depends on OBSOLETE
config WINAPI_V_4_0_0
bool
prompt "4.0.0 (OBSOLETE)"
depends on OBSOLETE
config WINAPI_V_3_3_0
bool
prompt "3.3.0 (OBSOLETE)"
depends on OBSOLETE
config WINAPI_V_3_2_0
bool
prompt "3.2.0 (OBSOLETE)"
depends on OBSOLETE
config WINAPI_V_3_1_0
bool
prompt "3.1.0 (OBSOLETE)"
depends on OBSOLETE
config WINAPI_V_3_0_0
bool
prompt "3.0.0 (OBSOLETE)"
depends on OBSOLETE
config WINAPI_V_2_0_9
bool
prompt "2.0.9 (OBSOLETE)"
depends on OBSOLETE
config WINAPI_V_2_0_8
bool
prompt "2.0.8 (OBSOLETE)"
depends on OBSOLETE
config WINAPI_V_2_0_7
bool
prompt "2.0.7 (OBSOLETE)"
depends on OBSOLETE
config WINAPI_V_select
bool
prompt "Other version"
config WINAPI_V_DEVEL
bool
prompt "devel"
depends on EXPERIMENTAL
depends on CONFIGURE_has_git
endchoice
config WINAPI_VERSION
string
prompt "Windows API version" if WINAPI_V_select
default "devel" if WINAPI_V_DEVEL
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
default "5.0.2" if WINAPI_V_5_0_2
default "5.0.1" if WINAPI_V_5_0_1
default "5.0.0" if WINAPI_V_5_0_0
default "4.0.6" if WINAPI_V_4_0_6
default "4.0.5" if WINAPI_V_4_0_5
default "4.0.4" if WINAPI_V_4_0_4
default "4.0.2" if WINAPI_V_4_0_2
default "4.0.1" if WINAPI_V_4_0_1
default "4.0.0" if WINAPI_V_4_0_0
default "3.3.0" if WINAPI_V_3_3_0
default "3.2.0" if WINAPI_V_3_2_0
default "3.1.0" if WINAPI_V_3_1_0
default "3.0.0" if WINAPI_V_3_0_0
default "2.0.9" if WINAPI_V_2_0_9
default "2.0.8" if WINAPI_V_2_0_8
default "2.0.7" if WINAPI_V_2_0_7
help
Enter the version number of the Windows API files to use
config MINGW_SECURE_API
bool "Expose secure API prototypes"
default y
config MINGW_DIRECTX
bool "Include DirectX development files"
config MINGW_DDK
bool "Include DDK development files"
config MINGW_TOOLS
bool "Include the companion tools"
default y
help
Build the companion tools with mingw such as widl, gendef,
and genpeimg.
config MINGW_TOOL_LIST_ARRAY
string "List of mingw-w64 tools to build"
default "gendef genidl genlib genpeimg widl"
depends on MINGW_TOOLS
help
List of mingw-w64 tools to build.

View File

@ -1,75 +1,66 @@
# musl options # musl second-part option
## depends on ! WINDOWS && ! BARE_METAL ## depends on ! WINDOWS && ! BARE_METAL
## depends on EXPERIMENTAL ## depends on EXPERIMENTAL
##
## select LIBC_SUPPORT_THREADS_NATIVE ## select LIBC_SUPPORT_THREADS_NATIVE
## select CC_CORE_PASSES_NEEDED ## select CC_CORE_PASSES_NEEDED
##
## help Musl is a new standard library to power a new generation of Linux-based ## help Musl is a new standard library to power a new generation of Linux-based
## help devices. musl is lightweight, fast, simple, free, and strives to be ## help devices. musl is lightweight, fast, simple, free, and strives to be
## help correct in the sense of standards-conformance and safety. ## help correct in the sense of standards-conformance and safety.
source "config/versions/musl.in"
# TBD why? it claims "native", why report "musl"?
config THREADS config THREADS
default "musl" default "musl"
config LIBC_MUSL_CUSTOM config LIBC_MUSL_DEBUG
bool bool
prompt "Custom musl" prompt "Build with debugging information"
depends on EXPERIMENTAL
help help
The choosen musl-libc version shall be not downloaded. Instead use This option enables debugging information, this will increase the size of
a custom location to get the source. the resulting library.
if LIBC_MUSL_CUSTOM config LIBC_MUSL_WARNINGS
bool
config LIBC_MUSL_CUSTOM_LOCATION prompt "Build with recommended warnings flags"
string
prompt "Full path to custom musl-libc source"
help help
Enter the path to the directory or tarball of your source for musl. Build musl-libc with extra warnings, useful for musl-libc development.
If the path is a tarball, it should extract to: <name>-<version>/
where the name is this component, musl, and the version is set
below in the custom version string.
config LIBC_MUSL_CUSTOM_VERSION
string
prompt "Custom MUSL version"
help
Enter the version number for your custom musl-libc.
config LIBC_VERSION
string
default LIBC_MUSL_CUSTOM_VERSION
endif # LIBC_MUSL_CUSTOM
if ! LIBC_MUSL_CUSTOM
choice choice
bool prompt "How to optimize musl-libc"
prompt "musl version" default LIBC_MUSL_OPTIMIZE_AUTO
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config LIBC_MUSL_V_1_1_16 config LIBC_MUSL_OPTIMIZE_NONE
bool bool
prompt "1.1.16" prompt "Do not optimize musl-libc"
depends on EXPERIMENTAL help
This option sets `--enable-optimize=no' to disable optimization.
config LIBC_MUSL_V_1_1_15 config LIBC_MUSL_OPTIMIZE_AUTO
bool bool
prompt "1.1.15 (OBSOLETE)" prompt "Use musl-libc's automatic optimization"
depends on EXPERIMENTAL && OBSOLETE help
This option sets `--enable-optimize=auto' to automatically set optimization.
config LIBC_MUSL_OPTIMIZE_SPEED
bool
prompt "Optimize musl-libc for speed"
help
This option sets `--enable-optimize=yes' to set optimization to -O3 for speed.
config LIBC_MUSL_OPTIMIZE_SIZE
bool
prompt "Optimize musl-libc for size"
help
This option sets `--enable-optimize=size' to set optimization to -Os for size.
endchoice endchoice
config LIBC_VERSION config LIBC_MUSL_OPTIMIZE
string string
# Don't remove next line default "no" if LIBC_MUSL_OPTIMIZE_NONE
# CT_INSERT_VERSION_STRING_BELOW default "auto" if LIBC_MUSL_OPTIMIZE_AUTO
default "1.1.16" if LIBC_MUSL_V_1_1_16 default "yes" if LIBC_MUSL_OPTIMIZE_SPEED
default "1.1.15" if LIBC_MUSL_V_1_1_15 default "size" if LIBC_MUSL_OPTIMIZE_SIZE
endif # ! LIBC_MUSL_CUSTOM

View File

@ -1,51 +0,0 @@
# musl second-part option
config LIBC_MUSL_DEBUG
bool
prompt "Build with debugging information"
help
This option enables debugging information, this will increase the size of
the resulting library.
config LIBC_MUSL_WARNINGS
bool
prompt "Build with recommended warnings flags"
help
Build musl-libc with extra warnings, useful for musl-libc development.
choice
prompt "How to optimize musl-libc"
default LIBC_MUSL_OPTIMIZE_AUTO
config LIBC_MUSL_OPTIMIZE_NONE
bool
prompt "Do not optimize musl-libc"
help
This option sets `--enable-optimize=no' to disable optimization.
config LIBC_MUSL_OPTIMIZE_AUTO
bool
prompt "Use musl-libc's automatic optimization"
help
This option sets `--enable-optimize=auto' to automatically set optimization.
config LIBC_MUSL_OPTIMIZE_SPEED
bool
prompt "Optimize musl-libc for speed"
help
This option sets `--enable-optimize=yes' to set optimization to -O3 for speed.
config LIBC_MUSL_OPTIMIZE_SIZE
bool
prompt "Optimize musl-libc for size"
help
This option sets `--enable-optimize=size' to set optimization to -Os for size.
endchoice
config LIBC_MUSL_OPTIMIZE
string
default "no" if LIBC_MUSL_OPTIMIZE_NONE
default "auto" if LIBC_MUSL_OPTIMIZE_AUTO
default "yes" if LIBC_MUSL_OPTIMIZE_SPEED
default "size" if LIBC_MUSL_OPTIMIZE_SIZE

View File

@ -1,209 +1,33 @@
# newlib options # newlib options
## depends on BARE_METAL ## depends on BARE_METAL
##
## select LIBC_SUPPORT_THREADS_NONE ## select LIBC_SUPPORT_THREADS_NONE
## select CC_CORE_PASSES_NEEDED if CANADIAN ## select CC_CORE_PASSES_NEEDED if CANADIAN
## select CC_CORE_PASS_2_NEEDED if ! CANADIAN ## select CC_CORE_PASS_2_NEEDED if ! CANADIAN
##
## help Newlib is a C library intended for use on embedded systems. It is a ## help Newlib is a C library intended for use on embedded systems. It is a
## help conglomeration of several library parts, all under free software ## help conglomeration of several library parts, all under free software
## help licenses that make them easily usable on embedded products. Newlib ## help licenses that make them easily usable on embedded products. Newlib
## help is only available in source form. It can be compiled for a wide ## help is only available in source form. It can be compiled for a wide
## help array of processors, and will usually work on any architecture with ## help array of processors, and will usually work on any architecture with
## help the addition of a few low-level routines. ## help the addition of a few low-level routines.
#
config LIBC_NEWLIB_CUSTOM
bool
prompt "Custom newlib"
depends on EXPERIMENTAL
select LIBC_NEWLIB_2_5_or_later
help
The choosen newlib version shall be not downloaded. Instead use
a custom location to get the source.
if LIBC_NEWLIB_CUSTOM source "config/versions/newlib.in"
config LIBC_NEWLIB_CUSTOM_LOCATION
string
prompt "Full path to custom newlib source"
help
Enter the path to the directory or tarball of your source for newlib.
If the path is a tarball, it should extract to: <name>-<version>/
where the name is this component, newlib, and the version is set
below in the custom version string.
config LIBC_NEWLIB_CUSTOM_VERSION
string
prompt "Custom NEWLIB version"
help
Enter the version number for your custom newlib.
config LIBC_VERSION
string
default LIBC_NEWLIB_CUSTOM_VERSION
endif # LIBC_NEWLIB_CUSTOM
if ! LIBC_NEWLIB_CUSTOM
config CC_NEWLIB_SHOW_LINARO
bool
prompt "Show Linaro versions"
help
Linaro is maintaining some advanced/more stable/experimental versions
of newlib, especially for the ARM architecture.
Those versions have not been blessed by the newlib comunity (nor have they
been cursed either!), but they look to be pretty much stable, and even
more stable than the upstream versions. YMMV...
If you do not know what this Linaro stuff is, then simply say 'n' here,
and rest in peace. OTOH, if you know what you are doing, you will be
able to use and enjoy :-) the Linaro versions by saying 'y' here.
Linaro: http://www.linaro.org/
choice
bool
prompt "newlib version"
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config LIBC_NEWLIB_V_2_5_0
bool
prompt "2.5.0.20170519"
select LIBC_NEWLIB_2_5
config LIBC_NEWLIB_V_2_4_0
bool
prompt "2.4.0.20161025"
select LIBC_NEWLIB_2_4
config LIBC_NEWLIB_V_2_3_0
bool
prompt "2.3.0.20160226"
select LIBC_NEWLIB_2_3
config LIBC_NEWLIB_LINARO_V_2_2_0
bool
prompt "Linaro 2.2.0-2015.01"
depends on CC_NEWLIB_SHOW_LINARO
select LIBC_NEWLIB_2_2
config LIBC_NEWLIB_V_2_2_0
bool
prompt "2.2.0.20151023"
select LIBC_NEWLIB_2_2
config LIBC_NEWLIB_LINARO_V_2_1_0
bool
prompt "Linaro 2.1.0-2014.09"
depends on CC_NEWLIB_SHOW_LINARO
select LIBC_NEWLIB_2_1
config LIBC_NEWLIB_V_2_1_0
bool
prompt "2.1.0"
select LIBC_NEWLIB_2_1
config LIBC_NEWLIB_V_2_0_0
bool
prompt "2.0.0"
select LIBC_NEWLIB_2_0
config LIBC_NEWLIB_V_1_20_0
bool
prompt "1.20.0"
config LIBC_NEWLIB_V_1_19_0
bool
prompt "1.19.0"
config LIBC_NEWLIB_V_1_18_0
bool
prompt "1.18.0"
config LIBC_NEWLIB_V_1_17_0
bool
prompt "1.17.0"
endchoice
endif # ! LIBC_NEWLIB_CUSTOM
config LIBC_NEWLIB_2_5
bool
select LIBC_NEWLIB_2_5_or_later
config LIBC_NEWLIB_2_4
bool
select LIBC_NEWLIB_2_4_or_later
config LIBC_NEWLIB_2_3
bool
select LIBC_NEWLIB_2_3_or_later
config LIBC_NEWLIB_2_2
bool
select LIBC_NEWLIB_2_2_or_later
config LIBC_NEWLIB_2_1
bool
select LIBC_NEWLIB_2_1_or_later
config LIBC_NEWLIB_2_0
bool
select LIBC_NEWLIB_2_0_or_later
config LIBC_NEWLIB_2_5_or_later
bool
select LIBC_NEWLIB_2_4_or_later
config LIBC_NEWLIB_2_4_or_later
bool
select LIBC_NEWLIB_2_3_or_later
config LIBC_NEWLIB_2_3_or_later
bool
select LIBC_NEWLIB_2_2_or_later
config LIBC_NEWLIB_2_2_or_later
bool
select LIBC_NEWLIB_2_1_or_later
config LIBC_NEWLIB_2_1_or_later
bool
select LIBC_NEWLIB_2_0_or_later
# maybe older versions of newlib will support it too, but this # maybe older versions of newlib will support it too, but this
# needs to be checked # needs to be checked
config LIBC_NEWLIB_2_0_or_later config NEWLIB_CXA_ATEXIT
bool def_bool y
depends on NEWLIB_2_0_or_later
select LIBC_PROVIDES_CXA_ATEXIT select LIBC_PROVIDES_CXA_ATEXIT
if ! LIBC_NEWLIB_CUSTOM config NEWLIB_HAS_NANO_MALLOC
config LIBC_VERSION def_bool y
string depends on NEWLIB_2_1_or_later
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
default "2.5.0.20170519" if LIBC_NEWLIB_V_2_5_0
default "2.4.0.20161025" if LIBC_NEWLIB_V_2_4_0
default "2.3.0.20160226" if LIBC_NEWLIB_V_2_3_0
default "linaro-2.2.0-2015.01" if LIBC_NEWLIB_LINARO_V_2_2_0
default "2.2.0.20151023" if LIBC_NEWLIB_V_2_2_0
default "linaro-2.1.0-2014.09" if LIBC_NEWLIB_LINARO_V_2_1_0
default "2.1.0" if LIBC_NEWLIB_V_2_1_0
default "2.0.0" if LIBC_NEWLIB_V_2_0_0
default "1.20.0" if LIBC_NEWLIB_V_1_20_0
default "1.19.0" if LIBC_NEWLIB_V_1_19_0
default "1.18.0" if LIBC_NEWLIB_V_1_18_0
default "1.17.0" if LIBC_NEWLIB_V_1_17_0
help
Enter the tag you want to use.
Leave empty to use the 'head' of the repository.
endif # ! LIBC_NEWLIB_CUSTOM config NEWLIB_HAS_NANO_FORMATTED_IO
def_bool y
depends on NEWLIB_2_2_or_later
config LIBC_NEWLIB_TARGET_CFLAGS config LIBC_NEWLIB_TARGET_CFLAGS
string string
@ -218,3 +42,178 @@ config LIBC_NEWLIB_TARGET_CFLAGS
to compile the libraries. to compile the libraries.
Leave blank if you don't know better. Leave blank if you don't know better.
config LIBC_NEWLIB_IO_C99FMT
bool
prompt "Enable IOs on C99 formats"
help
Enable support for IOs on C99 formats.
config LIBC_NEWLIB_IO_LL
bool
prompt "Enable IOs on long long"
help
Enable support for IOs on long long integers.
config LIBC_NEWLIB_IO_FLOAT
bool
prompt "Enable IOs on floats and doubles"
help
Enable support for IOs on floating point
values (float and double).
config LIBC_NEWLIB_IO_LDBL
bool
prompt "Enable IOs on long doubles"
depends on LIBC_NEWLIB_IO_FLOAT
help
Enable support for IOs on long doubles.
config LIBC_NEWLIB_IO_POS_ARGS
bool
prompt "Enable printf-family positional arg support"
help
Enable printf-family positional arg support.
config LIBC_NEWLIB_FVWRITE_IN_STREAMIO
bool
prompt "Vector buffer mechanism to support stream IO buffering"
default y
help
NEWLIB implements the vector buffer mechanism to support stream IO
buffering required by C standard. This feature is possibly
unnecessary for embedded systems which won't change file buffering
with functions like `setbuf' or `setvbuf'. The buffering mechanism
still acts as default for STDIN/STDOUT/STDERR even if this option
is specified.
config LIBC_NEWLIB_UNBUF_STREAM_OPT
bool
prompt "Optimize fprintf to unbuffered unix file"
default y
help
NEWLIB does optimization when `fprintf to write only unbuffered unix
file'. It creates a temorary buffer to do the optimization that
increases stack consumption by about `BUFSIZ' bytes. Disabling this option
disables the optimization and saves size of text and stack.
config LIBC_NEWLIB_FSEEK_OPTIMIZATION
bool
prompt "Fseek optimisation"
default y
help
Disabling fseek optimisation can decrease code size.
config LIBC_NEWLIB_DISABLE_SUPPLIED_SYSCALLS
bool
prompt "Disable the syscalls supplied with newlib"
help
Disable the syscalls that come with newlib. You
will have to implement your own _sbrk, _read,
_write... If you plan to port newlib to a new
platform/board, say Yes.
config LIBC_NEWLIB_REGISTER_FINI
bool
prompt "Enable finalization function registration using atexit"
help
Enable finalization function registration using atexit.
config LIBC_NEWLIB_ATEXIT_DYNAMIC_ALLOC
bool
prompt "Enable dynamic allocation of atexit entries"
default y
help
Enable dynamic allocation of atexit entries.
config LIBC_NEWLIB_GLOBAL_ATEXIT
bool
prompt "Enable atexit data structure as global variable"
help
Enable atexit data structure as global variable. By doing so it is
move out of _reent structure, and can be garbage collected if atexit
is not referenced.
config LIBC_NEWLIB_LITE_EXIT
bool
prompt "Enable lite exit"
help
Enable lite exit, a size-reduced implementation of exit that doesn't
invoke clean-up functions such as _fini or global destructors.
config LIBC_NEWLIB_REENT_SMALL
bool
prompt "Enable small reentrant struct support"
help
Enable small reentrant struct support.
config LIBC_NEWLIB_MULTITHREAD
bool
prompt "Enable support for multiple threads"
default y
help
Enable support for multiple threads.
config LIBC_NEWLIB_EXTRA_SECTIONS
bool
prompt "Place each function & data element in their own section"
help
Place each function & data symbol in their own section. This allows
the linker to garbage collect unused symbols at link time.
config LIBC_NEWLIB_WIDE_ORIENT
bool
prompt "Allow wide C99 stream orientation"
default y
help
C99 states that each stream has an orientation, wide or byte. This
feature is possibly unnecessary for embedded systems which only do
byte input/output operations on stream. Disabling this feature can
decrease code size.
config LIBC_NEWLIB_ENABLE_TARGET_OPTSPACE
bool
prompt "Optimize newlib for size"
default y
help
Pass --enable-target-optspace to newlib configure.
This will compile newlib with -Os.
config LIBC_NEWLIB_LTO
bool
prompt "Enable Link Time Optimization"
depends on CC_GCC_USE_LTO
help
Builds the libraries with -flto to enable more aggressive link time
optimization. You will need to add -flto-partition=one to your
application's link line to keep the RETURN assembler macro together
with it's consumers.
config LIBC_NEWLIB_NANO_MALLOC
bool
prompt "Enable Nano Malloc"
depends on NEWLIB_HAS_NANO_MALLOC
help
NEWLIB has two implementations of malloc family's functions, one in
`mallocr.c' and the other one in `nano-mallocr.c'. This options
enables the nano-malloc implementation, which is for small systems
with very limited memory. Note that this implementation does not
support `--enable-malloc-debugging' any more.
config LIBC_NEWLIB_NANO_FORMATTED_IO
bool
prompt "Enable Nano Formatted I/O"
depends on NEWLIB_HAS_NANO_FORMATTED_IO
help
This builds NEWLIB with a special implementation of formatted I/O
functions, designed to lower the size of application on small systems
with size constraint issues. This option does not affect wide-char
formatted I/O functions.
config LIBC_NEWLIB_EXTRA_CONFIG_ARRAY
string
prompt "Extra config for newlib"
default ""
help
Extra flags to pass onto ./configure when configuring the newlib.

View File

@ -1,176 +0,0 @@
# newlib second-part options
config LIBC_NEWLIB_IO_C99FMT
bool
prompt "Enable IOs on C99 formats"
help
Enable support for IOs on C99 formats.
config LIBC_NEWLIB_IO_LL
bool
prompt "Enable IOs on long long"
help
Enable support for IOs on long long integers.
config LIBC_NEWLIB_IO_FLOAT
bool
prompt "Enable IOs on floats and doubles"
help
Enable support for IOs on floating point
values (float and double).
config LIBC_NEWLIB_IO_LDBL
bool
prompt "Enable IOs on long doubles"
depends on LIBC_NEWLIB_IO_FLOAT
help
Enable support for IOs on long doubles.
config LIBC_NEWLIB_IO_POS_ARGS
bool
prompt "Enable printf-family positional arg support"
help
Enable printf-family positional arg support.
config LIBC_NEWLIB_FVWRITE_IN_STREAMIO
bool
prompt "Vector buffer mechanism to support stream IO buffering"
default y
help
NEWLIB implements the vector buffer mechanism to support stream IO
buffering required by C standard. This feature is possibly
unnecessary for embedded systems which won't change file buffering
with functions like `setbuf' or `setvbuf'. The buffering mechanism
still acts as default for STDIN/STDOUT/STDERR even if this option
is specified.
config LIBC_NEWLIB_UNBUF_STREAM_OPT
bool
prompt "Optimize fprintf to unbuffered unix file"
default y
help
NEWLIB does optimization when `fprintf to write only unbuffered unix
file'. It creates a temorary buffer to do the optimization that
increases stack consumption by about `BUFSIZ' bytes. Disabling this option
disables the optimization and saves size of text and stack.
config LIBC_NEWLIB_FSEEK_OPTIMIZATION
bool
prompt "Fseek optimisation"
default y
help
Disabling fseek optimisation can decrease code size.
config LIBC_NEWLIB_DISABLE_SUPPLIED_SYSCALLS
bool
prompt "Disable the syscalls supplied with newlib"
help
Disable the syscalls that come with newlib. You
will have to implement your own _sbrk, _read,
_write... If you plan to port newlib to a new
platform/board, say Yes.
config LIBC_NEWLIB_REGISTER_FINI
bool
prompt "Enable finalization function registration using atexit"
help
Enable finalization function registration using atexit.
config LIBC_NEWLIB_ATEXIT_DYNAMIC_ALLOC
bool
prompt "Enable dynamic allocation of atexit entries"
default y
help
Enable dynamic allocation of atexit entries.
config LIBC_NEWLIB_GLOBAL_ATEXIT
bool
prompt "Enable atexit data structure as global variable"
help
Enable atexit data structure as global variable. By doing so it is
move out of _reent structure, and can be garbage collected if atexit
is not referenced.
config LIBC_NEWLIB_LITE_EXIT
bool
prompt "Enable lite exit"
help
Enable lite exit, a size-reduced implementation of exit that doesn't
invoke clean-up functions such as _fini or global destructors.
config LIBC_NEWLIB_REENT_SMALL
bool
prompt "Enable small reentrant struct support"
help
Enable small reentrant struct support.
config LIBC_NEWLIB_MULTITHREAD
bool
prompt "Enable support for multiple threads"
default y
help
Enable support for multiple threads.
config LIBC_NEWLIB_EXTRA_SECTIONS
bool
prompt "Place each function & data element in their own section"
help
Place each function & data symbol in their own section. This allows
the linker to garbage collect unused symbols at link time.
config LIBC_NEWLIB_WIDE_ORIENT
bool
prompt "Allow wide C99 stream orientation"
default y
help
C99 states that each stream has an orientation, wide or byte. This
feature is possibly unnecessary for embedded systems which only do
byte input/output operations on stream. Disabling this feature can
decrease code size.
config LIBC_NEWLIB_ENABLE_TARGET_OPTSPACE
bool
prompt "Optimize newlib for size"
default y
help
Pass --enable-target-optspace to newlib configure.
This will compile newlib with -Os.
config LIBC_NEWLIB_LTO
bool
prompt "Enable Link Time Optimization"
depends on CC_GCC_USE_LTO
help
Builds the libraries with -flto to enable more aggressive link time
optimization. You will need to add -flto-partition=one to your
application's link line to keep the RETURN assembler macro together
with it's consumers.
config LIBC_NEWLIB_NANO_MALLOC
bool
prompt "Enable Nano Malloc"
depends on LIBC_NEWLIB_2_1_or_later
help
NEWLIB has two implementations of malloc family's functions, one in
`mallocr.c' and the other one in `nano-mallocr.c'. This options
enables the nano-malloc implementation, which is for small systems
with very limited memory. Note that this implementation does not
support `--enable-malloc-debugging' any more.
config LIBC_NEWLIB_NANO_FORMATTED_IO
bool
prompt "Enable Nano Formatted I/O"
depends on LIBC_NEWLIB_2_2_or_later
help
This builds NEWLIB with a special implementation of formatted I/O
functions, designed to lower the size of application on small systems
with size constraint issues. This option does not affect wide-char
formatted I/O functions.
config LIBC_NEWLIB_EXTRA_CONFIG_ARRAY
string
prompt "Extra config for newlib"
default ""
help
Extra flags to pass onto ./configure when configuring the newlib.

View File

@ -4,6 +4,7 @@
## ##
## select LIBC_SUPPORT_THREADS_LT ## select LIBC_SUPPORT_THREADS_LT
## select LIBC_SUPPORT_THREADS_NONE ## select LIBC_SUPPORT_THREADS_NONE
## select LIBC_SUPPORT_THREADS_NATIVE if UCLIBC_0_9_33_2_or_later
## select CC_CORE_PASSES_NEEDED ## select CC_CORE_PASSES_NEEDED
## ##
## help The de-facto standard for embeded linux systems. ## help The de-facto standard for embeded linux systems.
@ -11,6 +12,8 @@
## help Highly configurable, thus as feature-rich as you ## help Highly configurable, thus as feature-rich as you
## help need, without compromising for size. ## help need, without compromising for size.
source "config/versions/uClibc.in"
config THREADS config THREADS
default "nptl" if THREADS_NATIVE default "nptl" if THREADS_NATIVE
default "linuxthreads" if THREADS_LT default "linuxthreads" if THREADS_LT
@ -20,141 +23,18 @@ comment "'softfp' ABI and uClibc is not entirely tested in crosstool-NG"
comment "You may experience issues, although it should work just fine" comment "You may experience issues, although it should work just fine"
endif # ARCH_FLOAT_SOFTFP endif # ARCH_FLOAT_SOFTFP
config LIBC_UCLIBC_CUSTOM
bool
prompt "Custom uClibc"
depends on EXPERIMENTAL
help
The choosen uclibc version shall be not downloaded. Instead use
a custom location to get the source.
if LIBC_UCLIBC_CUSTOM
choice
bool
prompt "uClibc Version Name"
config LIBC_UCLIBC_CUSTOM_UCLIBC
bool "uClibc (OBSOLETE)"
depends on OBSOLETE
select LIBC_UCLIBC_0_9_33_2_or_later
config LIBC_UCLIBC_CUSTOM_UCLIBC_NG
bool "uClibc-ng (1.0.15 or later)"
select LIBC_UCLIBC_NG_1_0_15_or_later
config LIBC_UCLIBC_CUSTOM_UCLIBC_NG_OLD
bool "uClibc-ng (older than 1.0.15)"
select LIBC_UCLIBC_NG_1_0_0_or_later
endchoice
config LIBC_UCLIBC_CUSTOM_LOCATION
string
prompt "Full path to custom uClibc source"
help
Enter the path to the directory or tarball of your source for uClibc.
If the path is a tarball, it should extract to: <name>-<version>/
where the name is this component will be set by the uClibc Version Name
option from above, and the version is set below in the custom version
string.
config LIBC_UCLIBC_CUSTOM_VERSION
string
prompt "Custom uClibc Version"
help
Enter the version number for your custom uClibc.
Version 1.0.18 is only enabled in EXPERIMENTAL builds due to issues
with static libraries.
config LIBC_VERSION
string
default LIBC_UCLIBC_CUSTOM_VERSION
endif # LIBC_UCLIBC_CUSTOM
if ! LIBC_UCLIBC_CUSTOM
choice
bool
prompt "uClibc version"
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config LIBC_UCLIBC_NG_V_1_0_25
bool
prompt "1.0.25"
select LIBC_UCLIBC_NG_1_0_15_or_later
config LIBC_UCLIBC_NG_V_1_0_24
bool
prompt "1.0.24"
select LIBC_UCLIBC_NG_1_0_15_or_later
config LIBC_UCLIBC_NG_V_1_0_23
bool
prompt "1.0.23"
select LIBC_UCLIBC_NG_1_0_15_or_later
config LIBC_UCLIBC_NG_V_1_0_22
bool
prompt "1.0.22"
select LIBC_UCLIBC_NG_1_0_15_or_later
config LIBC_UCLIBC_NG_V_1_0_21
bool
prompt "1.0.21 (OBSOLETE)"
depends on OBSOLETE
select LIBC_UCLIBC_NG_1_0_15_or_later
config LIBC_UCLIBC_NG_V_1_0_20
bool
prompt "1.0.20 (OBSOLETE)"
depends on OBSOLETE
select LIBC_UCLIBC_NG_1_0_15_or_later
config LIBC_UCLIBC_V_0_9_33_2
bool
prompt "0.9.33.2 (OBSOLETE)"
depends on OBSOLETE
select LIBC_UCLIBC_0_9_33_2_or_later
endchoice
config LIBC_VERSION
string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
default "1.0.25" if LIBC_UCLIBC_NG_V_1_0_25
default "1.0.24" if LIBC_UCLIBC_NG_V_1_0_24
default "1.0.23" if LIBC_UCLIBC_NG_V_1_0_23
default "1.0.22" if LIBC_UCLIBC_NG_V_1_0_22
default "1.0.21" if LIBC_UCLIBC_NG_V_1_0_21
default "1.0.20" if LIBC_UCLIBC_NG_V_1_0_20
default "0.9.33.2" if LIBC_UCLIBC_V_0_9_33_2
endif # ! LIBC_UCLIBC_CUSTOM
config LIBC_UCLIBC_NG_1_0_15_or_later
bool
select LIBC_UCLIBC_NG_1_0_0_or_later
config LIBC_UCLIBC_NG_1_0_0_or_later
bool
select LIBC_UCLIBC_NG
select LIBC_UCLIBC_0_9_33_2_or_later
config LIBC_UCLIBC_0_9_33_2_or_later
bool
select LIBC_SUPPORT_THREADS_NATIVE
select LIBC_UCLIBC_PARALLEL
config LIBC_UCLIBC_PARALLEL config LIBC_UCLIBC_PARALLEL
bool def_bool y
depends on UCLIBC_0_9_33_2_or_later
config LIBC_UCLIBC_NG config LIBC_UCLIBC_NG
bool def_bool y
depends on UCLIBC_1_0_0_or_later
# uClibc-ng 1.0.15 did away with 2 implementations of linuxthreads
config UCLIBC_MERGED_LINUXTHREADS
def_bool y
depends on UCLIBC_1_0_15_or_later
choice choice
bool bool
@ -230,3 +110,98 @@ config LIBC_UCLIBC_CONFIG_FILE
Path to the configuration file. Path to the configuration file.
If the file is not provided, we fall back to a default config file. If the file is not provided, we fall back to a default config file.
if THREADS_LT && !UCLIBC_MERGED_LINUXTHREADS
choice
bool
prompt "Linuxthread implementation: "
default LIBC_UCLIBC_LNXTHRD_OLD
config LIBC_UCLIBC_LNXTHRD_OLD
bool
prompt "old/stable"
help
From the uClibc config option help:
There are two versions of linuxthreads. The older (stable) version
has been in uClibc for quite a long time but hasn't seen too many
updates other than bugfixes.
config LIBC_UCLIBC_LNXTHRD_NEW
bool
prompt "new"
help
From the uClibc config option help:
The new version has not been tested much, and lacks ports for arches
which glibc does not support (like frv, etc...), but is based on
the latest code from glibc, so it may be the only choice for the
newer ports (like alpha/amd64/64bit arches and hppa).
endchoice
endif # THREADS_LT
config LIBC_UCLIBC_LNXTHRD
string
default "" if THREADS_NONE
default "" if THREADS_NATIVE
default "" if UCLIBC_MERGED_LINUXTHREADS
default "old" if LIBC_UCLIBC_LNXTHRD_OLD
default "new" if LIBC_UCLIBC_LNXTHRD_NEW
config LIBC_UCLIBC_LOCALES
bool
select LIBC_UCLIBC_WCHAR
prompt "Add support for locales"
help
Say y if you want uClibc to support localisation.
Note that seems to be broken on recent uClibc releases.
config LIBC_UCLIBC_IPV6
bool
prompt "Add support for IPv6"
help
Say y if you want uClibc to support IPv6.
config LIBC_UCLIBC_WCHAR
bool
prompt "Add support for WCHAR"
help
Say y if you want uClibc to support WCHAR.
Maybe this is needed, if you're building a C++-Compiler
config LIBC_UCLIBC_FENV
bool
prompt "Add support for fenv.h"
default y if ARCH_X86
help
fenv.h provides functions to control the floating point environment,
such as rounding mode, exceptions...
For some architectures, fenv.h is incomplete, so is not installed
by default. x86 is known to have a rather complete fenv.h, so it is
installed by default only for x86.
If you need fenv.h on other architectures, say 'y' here, but you may
encounter some issues.
config LIBC_UCLIBC_RPC
bool
prompt "Add support for RPC"
help
Enable support for remote procedure calls (RPC) in uClibc.
if ARCH_ARM
config LIBC_UCLIBC_USE_GNU_SUFFIX
bool
default y
prompt "Use -uclibcgnueabi suffix"
help
Depending on where the resulting toolchain will be used, you may need
to tweak the "system" part of the target tuple. Buildroot prefers
to have arm-*-linux-uclibcgnueabi; OpenEmbedded prefers
arm-*-linux-uclibceabi. Other tools seem to either accept both, or
don't care about the suffix.
endif

View File

@ -1,110 +0,0 @@
# uClibc second-part option
if THREADS_LT && !LIBC_UCLIBC_NG_1_0_15_or_later
choice
bool
prompt "Linuxthread implementation: "
default LIBC_UCLIBC_LNXTHRD_OLD
config LIBC_UCLIBC_LNXTHRD_OLD
bool
prompt "old/stable"
help
From the uClibc config option help:
There are two versions of linuxthreads. The older (stable) version
has been in uClibc for quite a long time but hasn't seen too many
updates other than bugfixes.
config LIBC_UCLIBC_LNXTHRD_NEW
bool
prompt "new"
help
From the uClibc config option help:
The new version has not been tested much, and lacks ports for arches
which glibc does not support (like frv, etc...), but is based on
the latest code from glibc, so it may be the only choice for the
newer ports (like alpha/amd64/64bit arches and hppa).
endchoice
endif # THREADS_LT
# uClibc-ng 1.0.15 did away with 2 implementations of linuxthreads
config LIBC_UCLIBC_LNXTHRD
string
default "" if THREADS_NONE
default "" if THREADS_NATIVE
default "" if LIBC_UCLIBC_NG_1_0_15_or_later
default "old" if LIBC_UCLIBC_LNXTHRD_OLD
default "new" if LIBC_UCLIBC_LNXTHRD_NEW
config LIBC_UCLIBC_LOCALES
bool
select LIBC_UCLIBC_WCHAR
prompt "Add support for locales"
help
Say y if you want uClibc to support localisation.
Note that seems to be broken on recent uClibc releases.
config LIBC_UCLIBC_LOCALES_PREGEN_DATA
bool
prompt "Use pregen locales"
depends on LIBC_UCLIBC_LOCALES
depends on ! LIBC_UCLIBC_NG
default y
help
If you see issues with using pre-generated locales data,
you can try switching this off.
If so, please report the issue, so we can default this
to off if too many people complain.
config LIBC_UCLIBC_IPV6
bool
prompt "Add support for IPv6"
help
Say y if you want uClibc to support IPv6.
config LIBC_UCLIBC_WCHAR
bool
prompt "Add support for WCHAR"
help
Say y if you want uClibc to support WCHAR.
Maybe this is needed, if you're building a C++-Compiler
config LIBC_UCLIBC_FENV
bool
prompt "Add support for fenv.h"
default y if ARCH_x86
help
fenv.h provides functions to control the floating point environment,
such as rounding mode, exceptions...
For some architectures, fenv.h is incomplete, so is not installed
by default. x86 is known to have a rather complete fenv.h, so it is
installed by default only for x86.
If you need fenv.h on other architectures, say 'y' here, but you may
encounter some issues.
config LIBC_UCLIBC_RPC
bool
prompt "Add support for RPC"
help
Enable support for remote procedure calls (RPC) in uClibc.
if ARCH_arm
config LIBC_UCLIBC_USE_GNU_SUFFIX
bool
default y
prompt "Use -uclibcgnueabi suffix"
help
Depending on where the resulting toolchain will be used, you may need
to tweak the "system" part of the target tuple. Buildroot prefers
to have arm-*-linux-uclibcgnueabi; OpenEmbedded prefers
arm-*-linux-uclibceabi. Other tools seem to either accept both, or
don't care about the suffix.
endif

View File

@ -2,9 +2,6 @@
menu "Target options" menu "Target options"
config ARCH
string
source "config/gen/arch.in" source "config/gen/arch.in"
config ARCH_SUFFIX config ARCH_SUFFIX
@ -405,6 +402,30 @@ config ARCH_FLOAT
default "soft" if ARCH_FLOAT_SW default "soft" if ARCH_FLOAT_SW
default "softfp" if ARCH_FLOAT_SOFTFP default "softfp" if ARCH_FLOAT_SOFTFP
source "config/gen/arch.in.2" config TARGET_USE_OVERLAY
bool
if TARGET_USE_OVERLAY
config OVERLAY_NAME
string "Custom processor configuration name"
help
Enter the name of the custom processor configuration.
Overlay file for that configuration must be called
'<ARCH>_<OVERLAY_NAME>.tar' (optionally, with .gz/.bz2/.lzma/.xz
extension).
Leave blank to use the default '<ARCH>_overlay.tar'.
For more information about this option, please also consult the
section 'Using crosstool-NG to build Xtensa toolchains' in the
in http://crosstool-ng.github.io/docs/caveats-features/
config OVERLAY_LOCATION
string "Full path to custom configuration (overlay)"
help
Enter the path to the directory for the custom processor
configuration file.
endif
endmenu endmenu

View File

@ -105,7 +105,7 @@ comment "Tuple completion and aliasing"
config TARGET_VENDOR config TARGET_VENDOR
string string
prompt "Tuple's vendor string" prompt "Tuple's vendor string"
depends on !LIBC_avr_libc depends on !LIBC_AVR_LIBC
default "unknown" default "unknown"
help help
Vendor part of the target tuple. Vendor part of the target tuple.

View File

@ -26,6 +26,7 @@ nconfig:
oldconfig: .config oldconfig: .config
@$(CT_ECHO) " CONF $@" @$(CT_ECHO) " CONF $@"
$(SILENT)$(sed) -i -r -f $(CT_LIB_DIR)/scripts/upgrade.sed $<
$(SILENT)$(CONF) --silent$@ $(KCONFIG_TOP) $(SILENT)$(CONF) --silent$@ $(KCONFIG_TOP)
savedefconfig: .config savedefconfig: .config

View File

@ -1,238 +0,0 @@
#!/bin/sh
set -e
# Adds a new version to one of the toolchain component
myname="$0"
# Parse the tools' paths configuration
# It is expected that this script is only to be run from the
# source directory of crosstool-NG, so it is trivial to find
# paths.sh (we can't use ". paths.sh", as POSIX states that
# $PATH should be searched for, and $PATH most probably doe
# not include "."), hence the "./".
. "./paths.sh"
doHelp() {
cat <<-EOF
Usage: ${myname} <--tool> <[options] version [...]> ...
'tool' in one of:
gcc, binutils, glibc, uClibc, uClibc-ng, newlib, linux, gdb,
duma, strace, ltrace, libelf, gmp, mpfr, isl, cloog, mpc,
mingw-w64, expat, ncurses, musl, gettext, zlib, libiconv
Valid options for all tools:
--stable, -s, +x (default)
mark the version as being stable (as opposed to experimental, below)
--experimental, -x, +s
mark the version as being experimental (as opposed to stable, above)
--current, -c, +o (default)
mark the version as being cuurent (as opposed to obsolete, below)
--obsolete, -o, +c
mark the version as being obsolete (as opposed to current, above)
Note: setting a new tool resets to the defaults: 'stable' and 'current'.
'version' is a valid version for the specified tool.
Examples:
add stable current version 2.6.19.2 to linux kernel:
${myname} --linux 2.6.19.2
add experimental obsolete version 2.3.5 and stable current versions 2.6.1
and 2.6.2 to glibc, add stable obsolete version 3.3.3 to gcc:
${myname} --glibc -x -o 2.3.5 -s -c 2.6.1 2.6.2 --gcc -o 3.3.3
EOF
}
# Extract field $3 from version $1 with separator $2
getVersionField() {
local version="$1"
local sep="$2"
local field="$3"
echo "${version}${sep}${sep}${sep}${sep}" |cut -d ${sep} -f ${field}
}
# Effectively add a version to the specified tool
# $cat : tool category
# $tool : tool name
# $tool_prefix : tool directory prefix
# $EXP : set to non empty if experimental, to empty otherwise
# OBS : set to non empty if obsolete, to empty otherwise
# $1 : version string to add
addToolVersion() {
local version="$1"
local file="$2"
local config_ver_option
local exp_obs_prompt
local deps v ver_M ver_m ver_p
local SedExpr1 SedExpr2
[ -f "${file}" ] || return 0
v=$(echo "${version}" |"${sed}" -r -e 's/-/_/g; s/\./_/g;')
config_ver_option="${cat}_V_${v}"
# Check for existing version: it can be legitimitate for an end-user
# to try adding a new version if the one he/she wants is not listed.
# But it can be the case where the version is hidden behind either one
# of EXPERIMENTAL or OBSOLETE, so warn if the version is already listed.
if ${grep} -E "^config ${config_ver_option}$" "${file}" >/dev/null 2>&1; then
echo "'${tool}': version '${version}' already present:"
${grep} -A1 -B0 -n \
-E "^(config ${config_ver_option}| {4}prompt \"${version}\")$" \
"${file}" /dev/null
return 0
fi
SedExpr1="${SedExpr1}config ${config_ver_option}\n"
SedExpr1="${SedExpr1} bool\n"
SedExpr1="${SedExpr1} prompt \"${version}"
case "${EXP},${OBS}" in
,) ;;
,*) exp_obs_prompt=" (OBSOLETE)"
deps=" depends on OBSOLETE"
;;
*,) exp_obs_prompt=" (EXPERIMENTAL)"
deps=" depends on EXPERIMENTAL"
;;
*) exp_obs_prompt=" (EXPERIMENTAL, OBSOLETE)"
deps=" depends on EXPERIMENTAL \\&\\& OBSOLETE"
;;
esac
[ -n "${exp_obs_prompt}" ] && SedExpr1="${SedExpr1}${exp_obs_prompt}"
SedExpr1="${SedExpr1}\""
[ -n "${deps}" ] && SedExpr1="${SedExpr1}\n${deps}"
case "${tool}" in
gcc)
# Extract 'M'ajor and 'm'inor from version string
ver_M=$(getVersionField "${version}" . 1)
ver_m=$(getVersionField "${version}" . 2)
if [ ${ver_M} -ge 4 ] && [ ${ver_m} -ge 2 ]; then
SedExpr1="${SedExpr1}\n select CC_GCC_${ver_M}_${ver_m}"
fi
;;
binutils)
# Extract 'M'ajor, 'm'inor, sometimes 'p'atch from version string
# TODO: Rework this
ver_M=$(getVersionField "${version}" . 1)
ver_m=$(getVersionField "${version}" . 2)
ver_p=$(getVersionField "${version}" . 3)
if [ ${ver_M} -eq 2 -a ${ver_m} -eq 27 ]; then
SedExpr1="${SedExpr1}\n select BINUTILS_2_27_or_later"
elif [ ${ver_M} -eq 2 -a ${ver_m} -eq 26 ]; then
SedExpr1="${SedExpr1}\n select BINUTILS_2_26_or_later"
elif [ ${ver_M} -eq 2 -a ${ver_m} -eq 25 -a ${ver_p} -eq 1 ]; then
SedExpr1="${SedExpr1}\n select BINUTILS_2_25_1_or_later"
elif [ ${ver_M} -eq 2 -a ${ver_m} -eq 25 -a -z ${ver_p} ]; then
SedExpr1="${SedExpr1}\n select BINUTILS_2_25_or_later"
elif [ ${ver_M} -eq 2 -a ${ver_m} -eq 24 ]; then
SedExpr1="${SedExpr1}\n select BINUTILS_2_24_or_later"
elif [ ${ver_M} -eq 2 -a ${ver_m} -eq 23 -a ${ver_p} -eq 2 ]; then
SedExpr1="${SedExpr1}\n select BINUTILS_2_23_2_or_later"
fi
;;
uClibc)
# uClibc-0.9.33.2 needs some love
ver_M=$(getVersionField "${version}" . 1)
ver_m=$(getVersionField "${version}" . 2)
ver_p=$(getVersionField "${version}" . 3)
if [ ${ver_M} -eq 0 -a ${ver_m} -eq 9 -a ${ver_p} -eq 33 ]; then
SedExpr1="${SedExpr1}\n select LIBC_UCLIBC_0_9_33_2_or_later"
fi
;;
uClibc-ng)
# uClibc-ng-1.0.15 changed threading configuration, no longer compatible
# with the rest of uClibc gang.
ver_M=$(getVersionField "${version}" . 1)
ver_m=$(getVersionField "${version}" . 2)
ver_p=$(getVersionField "${version}" . 3)
if [ ${ver_M} -eq 1 -a ${ver_m} -eq 0 -a ${ver_p} -eq 15 ]; then
SedExpr1="${SedExpr1}\n select LIBC_UCLIBC_NG_1_0_15_or_later"
fi
;;
gdb)
# gdb-7.0 and above have special handling
ver_M=$(getVersionField "${version}" . 1)
ver_m=$(getVersionField "${version}" . 2)
if [ ${ver_M} -ge 7 ]; then
if [ ${ver_m} -ge 2 ]; then
SedExpr1="${SedExpr1}\n select GDB_7_2_or_later"
else
SedExpr1="${SedExpr1}\n select GDB_7_0_or_later"
fi
fi
;;
esac
SedExpr2=" default \"${version}\" if ${config_ver_option}"
"${sed}" -r -i -e 's/^(# CT_INSERT_VERSION_BELOW)$/\1\n\n'"${SedExpr1}"'/;' "${file}"
"${sed}" -r -i -e 's/^(# CT_INSERT_VERSION_STRING_BELOW)$/\1\n'"${SedExpr2}"'/;' "${file}"
}
cat=
tool=
tool_prefix=
VERSION=
EXP=
OBS=
if [ $# -eq 0 ]; then
doHelp
exit 1
fi
while [ $# -gt 0 ]; do
case "$1" in
# Tools:
--gcc) EXP=; OBS=; cat=CC_GCC; tool=gcc; tool_prefix=cc; dot2suffix=;;
--binutils) EXP=; OBS=; cat=BINUTILS; tool=binutils; tool_prefix=binutils; dot2suffix=;;
--glibc) EXP=; OBS=; cat=LIBC_GLIBC; tool=glibc; tool_prefix=libc; dot2suffix=;;
--uClibc) EXP=; OBS=; cat=LIBC_UCLIBC; tool=uClibc; tool_prefix=libc; dot2suffix=;;
--uClibc-ng)EXP=; OBS=; cat=LIBC_UCLIBC_NG; tool=uClibc; tool_prefix=libc; dot2suffix=;;
--newlib) EXP=; OBS=; cat=LIBC_NEWLIB; tool=newlib; tool_prefix=libc; dot2suffix=;;
--mingw-w64)EXP=; OBS=; cat=WINAPI; tool=mingw; tool_prefix=libc; dot2suffix=;;
--musl) EXP=; OBS=; cat=LIBC_MUSL; tool=musl; tool_prefix=libc; dot2suffix=;;
--linux) EXP=; OBS=; cat=KERNEL; tool=linux; tool_prefix=kernel; dot2suffix=;;
--gdb) EXP=; OBS=; cat=GDB; tool=gdb; tool_prefix=debug; dot2suffix=;;
--duma) EXP=; OBS=; cat=DUMA; tool=duma; tool_prefix=debug; dot2suffix=;;
--strace) EXP=; OBS=; cat=STRACE; tool=strace; tool_prefix=debug; dot2suffix=;;
--ltrace) EXP=; OBS=; cat=LTRACE; tool=ltrace; tool_prefix=debug; dot2suffix=;;
--gmp) EXP=; OBS=; cat=GMP; tool=gmp; tool_prefix=companion_libs; dot2suffix=;;
--mpfr) EXP=; OBS=; cat=MPFR; tool=mpfr; tool_prefix=companion_libs; dot2suffix=;;
--isl) EXP=; OBS=; cat=ISL; tool=isl; tool_prefix=companion_libs; dot2suffix=;;
--cloog) EXP=; OBS=; cat=CLOOG; tool=cloog; tool_prefix=companion_libs; dot2suffix=;;
--mpc) EXP=; OBS=; cat=MPC; tool=mpc; tool_prefix=companion_libs; dot2suffix=;;
--libelf) EXP=; OBS=; cat=LIBELF; tool=libelf; tool_prefix=companion_libs; dot2suffix=;;
--expat) EXP=; OBS=; cat=EXPAT; tool=expat; tool_prefix=companion_libs; dot2suffix=;;
--ncurses) EXP=; OBS=; cat=NCURSES; tool=ncurses; tool_prefix=companion_libs; dot2suffix=;;
--gettext) EXP=; OBS=; cat=GETTEXT; tool=gettext; tool_prefix=companion_libs; dot2suffix=;;
--libiconv) EXP=; OBS=; cat=LIBICONV; tool=libiconv; tool_prefix=companion_libs; dot2suffix=;;
--zlib) EXP=; OBS=; cat=ZLIB; tool=zlib; tool_prefix=companion_tools; dot2suffix=;;
--make) EXP=; OBS=; cat=MAKE; tool=make; tool_prefix=companion_tools; dot2suffix=;;
--m4) EXP=; OBS=; cat=M4; tool=m4; tool_prefix=companion_tools; dot2suffix=;;
--autoconf) EXP=; OBS=; cat=AUTOCONF; tool=autoconf; tool_prefix=companion_tools; dot2suffix=;;
--automake) EXP=; OBS=; cat=AUTOMAKE; tool=automake; tool_prefix=companion_tools; dot2suffix=;;
--libtool) EXP=; OBS=; cat=LIBTOOL; tool=libtool; tool_prefix=companion_tools; dot2suffix=;;
# Tools options:
-x|--experimental|+s) EXP=1;;
-s|--stable|+x) EXP=;;
-o|--obsolete|+c) OBS=1;;
-c|--current|+o) OBS=;;
# Misc:
-h|--help) doHelp; exit 0;;
-*) echo "Unknown option: '$1' (use -h/--help for help)."; exit 1;;
# Version string:
*) [ -n "${tool}" ] || { doHelp; exit 1; }
file_base="config/${tool_prefix}/${tool}.in"
addToolVersion "$1" "${file_base}${dot2suffix}"
;;
esac
shift
done

View File

@ -1,160 +0,0 @@
#!/bin/bash
set -e
# Accept overrides from command line if needed
sed=${SED:-sed}
grep=${GREP:-grep}
# Generate either a choice or a menuconfig with the specified entries.
#
# Usage:
# generate a choice:
# gen_choice <out-file> <label> <config-prefix> <base-dir>
#
# generate a menuconfig:
# gen_menu <out-file> <label> <config-prefix> <base-dir>
#
# where:
# out-file
# put the generated choice/menuconfig into that file
# for choices, it acts as the base bname of the file, the secondary
# parts (the .in.2) are put in out-file.2
#
# label
# name for the entries family
# eg. Architecture, Kernel...
#
# config-prefix
# prefix for the choice entries
# eg. ARCH, KERNEL...
#
# base-dir
# base directory containing config files
# eg. config/arch, config/kernel...
#
# Helper: find the base names of all *.in files in a given directory
get_components() {
local dir="${1}"
local f b
for f in ${dir}/*.in; do
b=${f#${dir}/}
echo ${b%.in}
done
}
# Generate a choice
# See above for usage
gen_choice() {
local out_file="${1}"
local label="${2}"
local cfg_prefix="${3}"
local base_dir="${4}"
local file entry _entry
# Generate the part-1
exec >"${out_file}"
printf '# %s menu\n' "${label}"
printf '# Generated file, do not edit!!!\n'
printf '\n'
printf 'choice GEN_CHOICE_%s\n' "${cfg_prefix}"
printf ' bool\n'
printf ' prompt "%s"\n' "${label}"
printf '\n'
for entry in `get_components ${base_dir}`; do
file="${base_dir}/${entry}.in"
_entry=$(printf '%s\n' "${entry}" |"${sed}" -r -s -e 's/[-.+]/_/g;')
printf 'config %s_%s\n' "${cfg_prefix}" "${_entry}"
printf ' bool\n'
printf ' prompt "%s"\n' "${entry}"
"${sed}" -r -e '/^## depends on /!d; s/^## / /;' ${file} 2>/dev/null
"${sed}" -r -e '/^## select /!d; s/^## / /;' ${file} 2>/dev/null
if "${grep}" -E '^## help' ${file} >/dev/null 2>&1; then
printf ' help\n'
"${sed}" -r -e '/^## help ?/!d; s/^## help ?/ /;' ${file} 2>/dev/null
fi
printf '\n'
done
printf 'endchoice\n'
printf '\n'
printf 'config %s\n' "${cfg_prefix}"
for entry in `get_components ${base_dir}`; do
file="${base_dir}/${entry}.in"
_entry=$(printf '%s\n' "${entry}" |"${sed}" -r -s -e 's/[-.+]/_/g;')
printf ' default "%s" if %s_%s\n' "${entry}" "${cfg_prefix}" "${_entry}"
done
printf '\n'
for entry in `get_components ${base_dir}`; do
file="${base_dir}/${entry}.in"
_entry=$(printf '%s\n' "${entry}" |"${sed}" -r -s -e 's/[-.+]/_/g;')
printf 'if %s_%s\n' "${cfg_prefix}" "${_entry}"
printf 'source "%s"\n' "${file}"
printf 'endif\n'
done
# Generate the part-2
exec >"${out_file}.2"
printf '# %s second part options\n' "${label}"
printf '# Generated file, do not edit!!!\n'
for entry in `get_components ${base_dir}`; do
file="${base_dir}/${entry}.in"
_entry=$(printf '%s\n' "${entry}" |"${sed}" -r -s -e 's/[-.+]/_/g;')
if [ -f "${file}.2" ]; then
printf '\n'
printf 'if %s_%s\n' "${cfg_prefix}" "${_entry}"
printf 'comment "%s other options"\n' "${entry}"
printf 'source "%s.2"\n' "${file}"
printf 'endif\n'
fi
done
}
# Generate a menuconfig
# See above for usage
gen_menu() {
local out_file="${1}"
local label="${2}"
local cfg_prefix="${3}"
local base_dir="${4}"
local file entry _entry
# Generate the menuconfig
exec >"${out_file}"
printf '# %s menu\n' "${label}"
printf '# Generated file, do not edit!!!\n'
printf '\n'
for entry in `get_components ${base_dir}`; do
file="${base_dir}/${entry}.in"
_entry=$(printf '%s\n' "${entry}" |"${sed}" -r -s -e 's/[-.+]/_/g;')
printf 'menuconfig %s_%s\n' "${cfg_prefix}" "${_entry}"
printf ' bool\n'
if "${grep}" -E '^## default' ${file} >/dev/null 2>&1; then
"${sed}" -r -e '/^## default ?/!d; s/^## default ?/ default /;' ${file} 2>/dev/null
fi
printf ' prompt "%s"\n' "${entry}"
"${sed}" -r -e '/^## depends on /!d; s/^## / /;' ${file} 2>/dev/null
"${sed}" -r -e '/^## select /!d; s/^## / /;' ${file} 2>/dev/null
if "${grep}" -E '^## help' ${file} >/dev/null 2>&1; then
printf ' help\n'
"${sed}" -r -e '/^## help ?/!d; s/^## help ?/ /;' ${file} 2>/dev/null
fi
printf '\n'
printf 'if %s_%s\n' "${cfg_prefix}" "${_entry}"
printf 'source "%s"\n' "${file}"
printf 'endif\n'
printf '\n'
done
}
mkdir -p config/gen
gen_choice config/gen/arch.in "Target Architecture" "ARCH" "config/arch"
gen_choice config/gen/kernel.in "Target OS" "KERNEL" "config/kernel"
gen_choice config/gen/cc.in "Compiler" "CC" "config/cc"
gen_choice config/gen/binutils.in "Binutils" "BINUTILS" "config/binutils"
gen_choice config/gen/libc.in "C library" "LIBC" "config/libc"
gen_menu config/gen/debug.in "Debug facilities" "DEBUG" "config/debug"
gen_menu config/gen/companion_tools.in "Companion tools" "COMP_TOOLS" "config/companion_tools"

View File

@ -0,0 +1,32 @@
#
# DO NOT EDIT! This file is automatically generated.
#
choice GEN_CHOICE_@@prefix@@
bool "@@label@@"
#!foreach choice
config @@prefix@@_@@kcfg_choice@@
bool "@@choice@@"
#!foreach dependency
@@depline@@
#!end-foreach
help
#!foreach help
@@helpline@@
#!end-foreach
#!end-foreach
endchoice
config @@prefix@@
string
#!foreach choice
default "@@choice@@" if @@prefix@@_@@kcfg_choice@@
#!end-foreach
#!foreach choice
if @@prefix@@_@@kcfg_choice@@
source "config/@@dir@@/@@choice@@.in"
endif
#!end-foreach

View File

@ -0,0 +1,20 @@
#
# DO NOT EDIT! This file is automatically generated.
#
#!foreach choice
menuconfig @@prefix@@_@@kcfg_choice@@
bool "@@choice@@"
#!foreach dependency
@@depline@@
#!end-foreach
help
#!foreach help
@@helpline@@
#!end-foreach
if @@prefix@@_@@kcfg_choice@@
source "config/@@dir@@/@@choice@@.in"
endif
#!end-foreach

View File

@ -0,0 +1,285 @@
#
# DO NOT EDIT! This file is automatically generated.
#
# The component directory name
config @@masterpfx@@_DIR_NAME
string
default "@@master@@"
#!if [ "@@nforks@@" -ge 2 ]
choice
bool "Show @@master@@ versions from"
#!foreach fork
config @@masterpfx@@_USE_@@originpfx@@
bool "@@origin@@"
#!if [ -n "@@only_obsolete@@" ]
depends on OBSOLETE
#!end-if
#!if [ -n "@@only_experimental@@" ]
depends on EXPERIMENTAL
#!end-if
help
@@originhelp@@
#!end-foreach
endchoice
config @@masterpfx@@_USE
string
#!foreach fork
default "@@pfx@@" if @@masterpfx@@_USE_@@originpfx@@
#!end-foreach
#!end-if
#!foreach fork
#!if [ "@@nforks@@" -ge 2 ]
if @@masterpfx@@_USE_@@originpfx@@
#!end-if
config @@pfx@@_PKG_NAME
string
default "@@pkg_name@@"
#!// If a project makes official releases, using "bleeding edge"
#!// from a development repository is experimental. However, there
#!// are projects that consider its HEAD a "rolling release". For
#!// those, checking out from a repository is the regular method.
choice
bool "Source of @@pkg_label@@"
#!if [ -n "@@all_versions@@" ]
config @@pfx@@_SRC_RELEASE
bool "Released tarball"
help
Download a released tarball.
#!end-if
config @@pfx@@_SRC_DEVEL
bool "Vendor/custom repository"
#!if [ -n "@@all_versions@@" ]
depends on EXPERIMENTAL
#!end-if
help
Check out from a repository.
#!if [ -n "@@repository@@" ]
Default is the vendor repository at @@repository_url@@
#!end-if
if @@pfx@@_SRC_DEVEL
choice
bool "VCS type"
#!if [ -n "@@repository@@" ]
default @@pfx@@_DEVEL_VCS_@@vcs@@
#!end-if
help
Version control system from which the sources will be checked out.
The default value points to the development repository for @@pkg_label@@.
config @@pfx@@_DEVEL_VCS_git
bool "Git"
config @@pfx@@_DEVEL_VCS_svn
bool "Subversion"
config @@pfx@@_DEVEL_VCS_hg
bool "Mercurial"
config @@pfx@@_DEVEL_VCS_cvs
bool "CVS"
endchoice
config @@pfx@@_DEVEL_VCS
string
default "git" if @@pfx@@_DEVEL_VCS_git
default "svn" if @@pfx@@_DEVEL_VCS_svn
default "hg" if @@pfx@@_DEVEL_VCS_hg
default "cvs" if @@pfx@@_DEVEL_VCS_cvs
config @@pfx@@_DEVEL_URL
string "Repository URL"
#!if [ -n "@@repository@@" ]
default "@@repository_url@@"
#!end-if
help
Repository URL.
For CVS, enter both the value of CVS root and the module name, separated
by a space.
config @@pfx@@_DEVEL_BRANCH
string "Branch/tag to check out"
default "@@repository_branch@@"
help
Git/CVS: branch/tag to be checked out
Subversion: directories to append to the repository URL (i.e. branch or tag)
Mercurial: official guide recommends using separate repositories to maintain
stable branches. You likely need to change the repository URL, rather than
enter anything here.
config @@pfx@@_DEVEL_REVISION
string "Revision/changeset"
default "@@repository_cset@@"
help
Commit ID or revision ID to check out.
Git: enter the commit ID to check out a commit.
CVS: enter the date in "YYYY/MM/DD HH:MM:SS" format (UTC) to check out certain date.
Subversion: enter the revision.
config @@pfx@@_DEVEL_SUBDIR
string "Subdirectory in the repository"
default "@@repository_subdir@@"
help
Some projects produce releases not from the top-level directory in the
repository, but rather from some subdirectory. If it is the case,
specify this subdirectory here.
config @@pfx@@_DEVEL_BOOTSTRAP
string "Bootstrap command"
default "@@bootstrap@@"
help
Command to run after checking out. Some projects don't store the generated
files like configure script in the repository; building out of a checked out
working copy thus requires some extra steps. Separate multiple shell commands
with &&.
endif
config @@pfx@@_SRC_CUSTOM
bool "Custom location"
depends on EXPERIMENTAL
help
Custom directory or tarball.
if @@pfx@@_SRC_CUSTOM
config @@pfx@@_CUSTOM_LOCATION
string "Custom source location"
help
Path to the directory or tarball with the sources.
endif
endchoice
#!if [ -n "@@all_versions@@" ]
config @@pfx@@_MIRRORS
string
default "@@mirrors@@"
config @@pfx@@_ARCHIVE_FILENAME
string
default "@@archive_filename@@"
config @@pfx@@_ARCHIVE_DIRNAME
string
default "@@archive_dirname@@"
#!end-if
#!// Below, we explicitly select all milestones to which a given version
#!// compares greater-or-equal. We don't select just the latest applicable
#!// (and letting milestones chain-select each other, with FOO_6_or_later
#!// selecting FOO_5_or_later and so on) so that we can handle the cases
#!// where we need to identify a range of releases on a branch, for example,
#!// "all FOO releases after 4.9.1 but before 4.9.3".
#!//
#!if [ -n "@@all_versions@@" -a -z "@@versionlocked@@" ]
choice
bool "Version of @@pkg_label@@"
help
For a released version, select the version of @@pkg_label@@ to download
and build. For sources out of the vendor repository or from a custom
location, select the version that describes those custom sources.
Based on this version, crosstool-NG may apply some version-specific
quirks while building @@pkg_label@@.
config @@pfx@@_VERY_NEW
bool "newer than anything below"
depends on EXPERIMENTAL
depends on @@pfx@@_SRC_DEVEL || @@pfx@@_SRC_CUSTOM
#!foreach milestone
select @@masterpfx@@_@@ms_kcfg@@_or_later
depends on !@@masterpfx@@_REQUIRE_@@ms_kcfg@@_or_older
#!end-foreach
#!foreach version
config @@pfx@@_V_@@kcfg@@
bool "@@ver@@@@ver_postfix@@"
#!if [ "@@obsolete@@" = "yes" ]
depends on OBSOLETE
#!end-if
#!if [ "@@experimental@@" = "yes" ]
depends on EXPERIMENTAL
#!end-if
#!foreach milestone
#!if [ "@@version_cmp_milestone@@" -ge 0 ]
select @@masterpfx@@_@@ms_kcfg@@_or_later
#!end-if
#!if [ "@@version_cmp_milestone@@" -le 0 ]
select @@masterpfx@@_@@ms_kcfg@@_or_older
#!end-if
#!if [ "@@version_cmp_milestone@@" -gt 0 ]
depends on !@@masterpfx@@_REQUIRE_@@ms_kcfg@@_or_older
#!end-if
#!if [ "@@version_cmp_milestone@@" -lt 0 ]
depends on !@@masterpfx@@_REQUIRE_@@ms_kcfg@@_or_later
#!end-if
#!end-foreach
#!end-foreach
config @@pfx@@_VERY_OLD
bool "older than anything above"
depends on OBSOLETE && EXPERIMENTAL
depends on @@pfx@@_SRC_DEVEL || @@pfx@@_SRC_CUSTOM
#!foreach milestone
depends on !@@masterpfx@@_REQUIRE_@@ms_kcfg@@_or_later
#!end-foreach
endchoice
#!end-if
#!if [ -n "@@versionlocked@@" ]
#!foreach version
config @@pfx@@_V_@@kcfg@@
def_bool y
depends on @@versionlocked@@_V_@@kcfg@@
#!end-foreach
#!end-if
config @@pfx@@_VERSION
string
#!foreach version
default "@@ver@@" if @@pfx@@_V_@@kcfg@@
#!end-foreach
default "unknown"
#!if [ "@@nforks@@" -ge 2 ]
endif
#!end-if
#!end-foreach
#!foreach milestone
#!// Milestones selected by a chosen version of this package
config @@masterpfx@@_@@ms_kcfg@@_or_later
bool
config @@masterpfx@@_@@ms_kcfg@@_or_older
bool
#!// Milestone requirements selected by other packages that restrict
#!// the choices in this package
config @@masterpfx@@_REQUIRE_@@ms_kcfg@@_or_later
bool
config @@masterpfx@@_REQUIRE_@@ms_kcfg@@_or_older
bool
#!end-foreach

6
packages/GNU.help Normal file
View File

@ -0,0 +1,6 @@
GNU (which is a recursive acronym for "GNU's Not Unix") provides GNU binutils,
GNU C Compiler (gcc), GNU debugger (gdb) and many other utilities. GNU is
considered the master source for these packages.
You should select "GNU" here unless you definitely know that you need some version
from another source.

4
packages/Linaro.help Normal file
View File

@ -0,0 +1,4 @@
Linaro is maintaining some advanced/more stable/experimental versions
of binutils, gcc, glibc and gdb, especially for the ARM architecture.
These versions contain some changes that are not (yet?) merged into
their respective upstream repositories.

View File

@ -0,0 +1,3 @@
# We don't support building bionic (yet) so no official repository
mirrors='https://dl.google.com/android/repository'
archive_filename='@{pkg_name}-@{version}-linux-x86_64'

View File

@ -0,0 +1 @@
obsolete='yes'

View File

@ -0,0 +1 @@
obsolete='yes'

View File

@ -0,0 +1 @@
obsolete='yes'

View File

@ -0,0 +1 @@
obsolete='yes'

View File

View File

0
packages/autoconf/2.65/version.desc vendored Normal file
View File

0
packages/autoconf/2.69/version.desc vendored Normal file
View File

Some files were not shown because too many files have changed in this diff Show More