applets
arch
archival
console-tools
coreutils
debianutils
docs
e2fsprogs
editors
examples
findutils
include
init
libbb
libpwdgrp
loginutils
mailutils
miscutils
modutils
networking
printutils
procps
runit
scripts
basic
kconfig
Kbuild
Kbuild.include
Makefile.IMA
Makefile.build
Makefile.clean
Makefile.host
Makefile.lib
bb_release
bloat-o-meter
checkhelp.awk
checkstack.pl
cleanup_printf2puts
defconfig
echo.c
find_bad_common_bufsiz
find_stray_common_vars
fix_ws.sh
gcc-version.sh
individual
memusage
mkconfigs
mkdiff_obj
mkdiff_obj_bloat
mkmakefile
objsizes
randomtest
randomtest.loop
sample_pmap
showasm
trylink
selinux
shell
sysklogd
testsuite
util-linux
.gitignore
.indent.pro
AUTHORS
Config.in
INSTALL
LICENSE
Makefile
Makefile.custom
Makefile.flags
Makefile.help
README
TODO
TODO_config_nommu
84 lines
1.8 KiB
Bash
Executable File
84 lines
1.8 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# Select which libc to build against
|
|
libc="glibc" # assumed native
|
|
# static, cross-compilation
|
|
libc="uclibc"
|
|
# x86 32-bit:
|
|
uclibc_cross="i486-linux-uclibc-"
|
|
# My system has strange prefix for x86 64-bit uclibc:
|
|
#uclibc_cross="x86_64-pc-linux-gnu-"
|
|
|
|
test -d tree || exit 1
|
|
|
|
dir=test.$$
|
|
while test -e "$dir" -o -e failed."$dir"; do
|
|
dir=test."$RANDOM"
|
|
done
|
|
|
|
cp -dpr tree "$dir" || exit 1
|
|
cd "$dir" || exit 1
|
|
|
|
echo "Running randconfig test in $dir..." >&2
|
|
|
|
make randconfig >/dev/null || exit 1
|
|
|
|
cat .config \
|
|
| grep -v ^CONFIG_DEBUG_PESSIMIZE= \
|
|
| grep -v CONFIG_WERROR \
|
|
| cat >.config.new
|
|
mv .config.new .config
|
|
echo CONFIG_WERROR=y >>.config
|
|
|
|
test "$libc" = glibc && {
|
|
cat .config \
|
|
| grep -v ^CONFIG_SELINUX= \
|
|
| grep -v ^CONFIG_EFENCE= \
|
|
| grep -v ^CONFIG_DMALLOC= \
|
|
| cat >.config.new
|
|
mv .config.new .config
|
|
}
|
|
|
|
test "$libc" = uclibc && {
|
|
cat .config \
|
|
| grep -v ^CONFIG_SELINUX= \
|
|
| grep -v ^CONFIG_EFENCE= \
|
|
| grep -v ^CONFIG_DMALLOC= \
|
|
| grep -v ^CONFIG_BUILD_LIBBUSYBOX= \
|
|
| grep -v ^CONFIG_PAM= \
|
|
| grep -v ^CONFIG_TASKSET= \
|
|
| grep -v ^CONFIG_FEATURE_ASSUME_UNICODE= \
|
|
| grep -v ^CONFIG_PIE= \
|
|
| grep -v CONFIG_STATIC \
|
|
| grep -v CONFIG_CROSS_COMPILER_PREFIX \
|
|
| cat >.config.new
|
|
mv .config.new .config
|
|
echo 'CONFIG_CROSS_COMPILER_PREFIX="'"$uclibc_cross"'"' >>.config
|
|
echo 'CONFIG_STATIC=y' >>.config
|
|
}
|
|
|
|
# If STATIC, remove some things
|
|
# PAM with static linking is probably pointless
|
|
# (but I need to try - now I don't have libpam.a on my system, only libpam.so)
|
|
grep -q ^CONFIG_STATIC= .config && {
|
|
cat .config \
|
|
| grep -v ^CONFIG_PAM= \
|
|
| cat >.config.new
|
|
mv .config.new .config
|
|
}
|
|
|
|
# Regenerate .config with default answers for yanked-off options
|
|
{ yes "" | make oldconfig >/dev/null; } || exit 1
|
|
|
|
nice -n 10 make $MAKEOPTS 2>&1 | tee -a make.log
|
|
|
|
test -x busybox && {
|
|
cd ..
|
|
rm -rf "$dir"
|
|
exit 0
|
|
}
|
|
|
|
cd ..
|
|
mv "$dir" "failed.$dir"
|
|
exit 1
|