Reorganize advanced options in Config.in
- Put parallelization menu first - Fix the logic for variable definitions in this menu - change jhalfs to reflect the separation of optimization and parallelization - validate new variables - remove MAKEFLAGS from the validation of optimize variables - also remove the black list, which has not been used in years.
This commit is contained in:
parent
1352172467
commit
645ec4780e
4 changed files with 100 additions and 102 deletions
182
Config.in
182
Config.in
|
@ -771,6 +771,95 @@ endmenu #--- System configuration
|
||||||
menu "Advanced Features"
|
menu "Advanced Features"
|
||||||
depends on !BOOK_BLFS
|
depends on !BOOK_BLFS
|
||||||
|
|
||||||
|
#--- Parallelism
|
||||||
|
menu "Parallelism settings"
|
||||||
|
if HAVE_NPROC
|
||||||
|
config ALL_CORES
|
||||||
|
bool "Use all cores as in new books (say n for old books)"
|
||||||
|
default y
|
||||||
|
help
|
||||||
|
Use book instructions as written for parallelism since version
|
||||||
|
r12.0-87 included. If you answer no, then jhalfs will fall back
|
||||||
|
to a static number of cores, defined below. If you answer y, and
|
||||||
|
your system supports it, you'll be asked for a cpu set to use.
|
||||||
|
There is no detection of book version. If the book version
|
||||||
|
is lower than r12.0-87, say no!
|
||||||
|
|
||||||
|
if ALL_CORES && HAVE_CGROUP
|
||||||
|
config CPUSET
|
||||||
|
string "set of cpus to use, or 'all' for all cpus"
|
||||||
|
default "all"
|
||||||
|
help
|
||||||
|
See "List format" in cpuset(7). Choosing cpus depend
|
||||||
|
on the topology of your processors. Sometimes two
|
||||||
|
hyperthreads on the same core are numbered consecutively.
|
||||||
|
For example for using all cores and no hyperthreading on
|
||||||
|
a Haswell, use "0,2,4,6". Other brands may have a different
|
||||||
|
topology, and may require e.g. "0-3" to use the first 4 cores.
|
||||||
|
If not sure, keep the default.
|
||||||
|
endif
|
||||||
|
|
||||||
|
endif # HAVE_NPROC
|
||||||
|
if !HAVE_NPROC
|
||||||
|
config ALL_CORES
|
||||||
|
bool
|
||||||
|
default n
|
||||||
|
endif
|
||||||
|
|
||||||
|
config N_PARALLEL
|
||||||
|
int "Number of parallel `make' jobs"
|
||||||
|
depends on !ALL_CORES
|
||||||
|
default 1
|
||||||
|
help
|
||||||
|
#-- The usual recommandation is (number of CPU cores)+1
|
||||||
|
# Do not set for meaningful SBU calculations.
|
||||||
|
|
||||||
|
config REALSBU
|
||||||
|
bool "Build Binutils pass1 without parallelism (Real SBU)"
|
||||||
|
default n
|
||||||
|
help
|
||||||
|
#-- Use -j1 in make invokation for Binutils pass1 to
|
||||||
|
# get a valid SBU value.
|
||||||
|
endmenu # parallelism
|
||||||
|
|
||||||
|
#--- Optimizations
|
||||||
|
config CONFIG_OPTIMIZE
|
||||||
|
bool "Optimization"
|
||||||
|
default n
|
||||||
|
help
|
||||||
|
# Opens a menu for various optimization settings:
|
||||||
|
# Actual optimization flags MUST be defined in ./optimize/*
|
||||||
|
# before activating this option.
|
||||||
|
#
|
||||||
|
# WARNING: The use of build optimizations may lead to build issues.
|
||||||
|
# If the system doesn't work as expected, please rebuild
|
||||||
|
# without optimizations before asking for support.
|
||||||
|
menu "Optimization settings"
|
||||||
|
depends on CONFIG_OPTIMIZE
|
||||||
|
|
||||||
|
choice
|
||||||
|
prompt "Optimization level"
|
||||||
|
default OPT_1
|
||||||
|
help
|
||||||
|
#-- Optimization values are set in optimize/* files
|
||||||
|
|
||||||
|
config OPT_1
|
||||||
|
bool "Final system only"
|
||||||
|
|
||||||
|
config OPT_2
|
||||||
|
bool "Both temp tools and final system"
|
||||||
|
|
||||||
|
endchoice
|
||||||
|
|
||||||
|
endmenu # Optimization settings
|
||||||
|
config OPTIMIZE
|
||||||
|
int
|
||||||
|
default "0" if !CONFIG_OPTIMIZE
|
||||||
|
default "1" if OPT_1
|
||||||
|
default "2" if OPT_2
|
||||||
|
|
||||||
|
#--- End Optimizations
|
||||||
|
|
||||||
config REPORT
|
config REPORT
|
||||||
bool "Create SBU and disk usage report"
|
bool "Create SBU and disk usage report"
|
||||||
default y
|
default y
|
||||||
|
@ -817,99 +906,6 @@ depends on !BOOK_BLFS
|
||||||
|
|
||||||
#--- End ICA
|
#--- End ICA
|
||||||
|
|
||||||
#--- Optimizations
|
|
||||||
config CONFIG_OPTIMIZE
|
|
||||||
bool "Optimization"
|
|
||||||
default n
|
|
||||||
help
|
|
||||||
# Opens a menu for various optimization settings:
|
|
||||||
# Actual optimization flags MUST be defined in ./optimize/*
|
|
||||||
# before activating this option.
|
|
||||||
#
|
|
||||||
# WARNING: The use of build optimizations may lead to build issues.
|
|
||||||
# If the system doesn't work as expected, please rebuild
|
|
||||||
# without optimizations before asking for support.
|
|
||||||
menu "Optimization settings"
|
|
||||||
depends on CONFIG_OPTIMIZE
|
|
||||||
|
|
||||||
choice
|
|
||||||
prompt "Optimization level"
|
|
||||||
default OPT_1
|
|
||||||
help
|
|
||||||
#-- Optimization values are set in optimize/* files
|
|
||||||
|
|
||||||
config OPT_1
|
|
||||||
bool "Final system only"
|
|
||||||
|
|
||||||
config OPT_2
|
|
||||||
bool "Both temp tools and final system"
|
|
||||||
|
|
||||||
endchoice
|
|
||||||
|
|
||||||
endmenu # Optimization settings
|
|
||||||
config OPTIMIZE
|
|
||||||
int
|
|
||||||
default "0" if !CONFIG_OPTIMIZE
|
|
||||||
default "1" if OPT_1
|
|
||||||
default "2" if OPT_2
|
|
||||||
|
|
||||||
#--- End Optimizations
|
|
||||||
#--- Parallelism
|
|
||||||
menu "Parallelism settings"
|
|
||||||
if HAVE_NPROC
|
|
||||||
config ALL_CORES
|
|
||||||
bool "Use all cores as in the book"
|
|
||||||
default y
|
|
||||||
help
|
|
||||||
Use book instructions as written for parallelism. If you
|
|
||||||
answer no, then jhalfs will fall back to a static number of
|
|
||||||
cores, defined below. If you answer y, and your system
|
|
||||||
supports it, you'll be asked for a cpu set to use.
|
|
||||||
|
|
||||||
if HAVE_CGROUP
|
|
||||||
config CPUSET
|
|
||||||
string "set of cpus to use, or 'all' for all cpus"
|
|
||||||
default "all"
|
|
||||||
help
|
|
||||||
See "List format" in cpuset(7). Choosing cpus depend
|
|
||||||
on the topology of your processors. Sometimes two
|
|
||||||
hyperthreads on the same core are numbered consecutively.
|
|
||||||
For example for using all cores and no hyperthreading on
|
|
||||||
a Haswell, use "0,2,4,6". Other brands may have a different
|
|
||||||
topology, and may require e.g. "0-3" to use the first 4 cores.
|
|
||||||
If not sure, keep the default.
|
|
||||||
endif
|
|
||||||
if !HAVE_CGROUP
|
|
||||||
config CPUSET
|
|
||||||
string
|
|
||||||
default "all"
|
|
||||||
endif
|
|
||||||
|
|
||||||
endif # HAVE_NPROC
|
|
||||||
if !HAVE_NPROC
|
|
||||||
config ALL_CORES
|
|
||||||
bool
|
|
||||||
default n
|
|
||||||
endif
|
|
||||||
|
|
||||||
config N_PARALLEL
|
|
||||||
int "Number of parallel `make' jobs"
|
|
||||||
depends on !ALL_CORES
|
|
||||||
default 1
|
|
||||||
help
|
|
||||||
#-- The usual recommandation is (number of CPU cores)+1
|
|
||||||
# Do not set for meaningful SBU calculations.
|
|
||||||
|
|
||||||
config REALSBU
|
|
||||||
bool "Build Binutls pass1 without parallelism (Real SBU)"
|
|
||||||
depends on ALL_CORES != 1
|
|
||||||
default n
|
|
||||||
help
|
|
||||||
#-- Use -j1 in make invokation for Binutils pass1 to
|
|
||||||
# get a valid SBU value.
|
|
||||||
endmenu # parallelism
|
|
||||||
|
|
||||||
|
|
||||||
#-- Internal Settings
|
#-- Internal Settings
|
||||||
menu "Internal Settings (WARNING: for jhalfs developers only)"
|
menu "Internal Settings (WARNING: for jhalfs developers only)"
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ inline_doc
|
||||||
local -r LFS_system="HOSTNAME INTERFACE IP_ADDR GATEWAY PREFIX BROADCAST DOMAIN DNS1 DNS2 FONT KEYMAP LOCAL LOG_LEVEL"
|
local -r LFS_system="HOSTNAME INTERFACE IP_ADDR GATEWAY PREFIX BROADCAST DOMAIN DNS1 DNS2 FONT KEYMAP LOCAL LOG_LEVEL"
|
||||||
|
|
||||||
# Full list of books settings
|
# Full list of books settings
|
||||||
local -r lfs_PARAM_LIST="$LFS_book $GENERAL_common $LFS_build $LFS_system $ADVANCED_chroot N_PARALLEL REALSBU SAVE_CH5 $ADVANCED_common"
|
local -r lfs_PARAM_LIST="$LFS_book $GENERAL_common $LFS_build $LFS_system $ADVANCED_chroot ALL_CORES CPUSET N_PARALLEL REALSBU SAVE_CH5 $ADVANCED_common"
|
||||||
# local -r blfs_PARAM_LIST="BRANCH_ID BLFS_ROOT BLFS_XML TRACKING_DIR"
|
# local -r blfs_PARAM_LIST="BRANCH_ID BLFS_ROOT BLFS_XML TRACKING_DIR"
|
||||||
|
|
||||||
# Additional variables
|
# Additional variables
|
||||||
|
@ -133,8 +133,8 @@ inline_doc
|
||||||
RETRYSRCDOWNLOAD) [[ "$GETPKG" = "y" ]] && echo -e "`eval echo $PARAM_VALS`" ;;
|
RETRYSRCDOWNLOAD) [[ "$GETPKG" = "y" ]] && echo -e "`eval echo $PARAM_VALS`" ;;
|
||||||
RETRYDOWNLOADCNT) [[ "$GETPKG" = "y" ]] && echo -e "`eval echo $PARAM_VALS`" ;;
|
RETRYDOWNLOADCNT) [[ "$GETPKG" = "y" ]] && echo -e "`eval echo $PARAM_VALS`" ;;
|
||||||
DOWNLOADTIMEOUT) [[ "$GETPKG" = "y" ]] && echo -e "`eval echo $PARAM_VALS`" ;;
|
DOWNLOADTIMEOUT) [[ "$GETPKG" = "y" ]] && echo -e "`eval echo $PARAM_VALS`" ;;
|
||||||
N_PARALLEL) [[ "$OPTIMIZE" -gt "0" ]] && echo -e "`eval echo $PARAM_VALS`" ;;
|
CPUSET) [[ "$HAVE_CGROUP" = "y" ]] && [[ "$ALL_CORES" = "y" ]] && echo -e "`eval echo $PARAM_VALS`" ;;
|
||||||
REALSBU) [[ "$OPTIMIZE" = "2" ]] && echo -e "`eval echo $PARAM_VALS`" ;;
|
N_PARALLEL) [[ "$ALL_CORES" = "n" ]] && echo -e "`eval echo $PARAM_VALS`" ;;
|
||||||
|
|
||||||
# Envars that requires some validation
|
# Envars that requires some validation
|
||||||
LUSER) echo -e "`eval echo $PARAM_VALS`"
|
LUSER) echo -e "`eval echo $PARAM_VALS`"
|
||||||
|
|
9
jhalfs
9
jhalfs
|
@ -175,6 +175,7 @@ SET_MISC=${SET_MISC:=n}
|
||||||
SET_BLOWFISH=${SET_BLOWFISH:=n}
|
SET_BLOWFISH=${SET_BLOWFISH:=n}
|
||||||
UNICODE=${UNICODE:=n}
|
UNICODE=${UNICODE:=n}
|
||||||
LOCAL=${LOCAL:=n}
|
LOCAL=${LOCAL:=n}
|
||||||
|
ALL_CORES=${ALL_CORES:=n}
|
||||||
REALSBU=${REALSBU:=n}
|
REALSBU=${REALSBU:=n}
|
||||||
SAVE_CH5=${SAVE_CH5:=n}
|
SAVE_CH5=${SAVE_CH5:=n}
|
||||||
|
|
||||||
|
@ -287,12 +288,14 @@ if [[ "$OPTIMIZE" != "0" ]]; then
|
||||||
#
|
#
|
||||||
# optimize configurations
|
# optimize configurations
|
||||||
load_file optimize/opt_config 'Loading optimization config'
|
load_file optimize/opt_config 'Loading optimization config'
|
||||||
# The number of parallel jobs is taken from configuration now
|
|
||||||
# shellcheck disable=SC2034
|
|
||||||
JH_MAKEFLAGS="-j${N_PARALLEL}"
|
|
||||||
# Validate optimize settings, if required
|
# Validate optimize settings, if required
|
||||||
validate_opt_settings
|
validate_opt_settings
|
||||||
fi
|
fi
|
||||||
|
# Parallelization is outside optimization, because it is now in the book
|
||||||
|
if [[ "$ALL_CORES" = "n" ]]; then
|
||||||
|
# shellcheck disable=SC2034
|
||||||
|
JH_MAKEFLAGS="-j${N_PARALLEL}"
|
||||||
|
fi
|
||||||
#
|
#
|
||||||
|
|
||||||
if [[ "$REBUILD_MAKEFILE" = "n" ]] ; then
|
if [[ "$REBUILD_MAKEFILE" = "n" ]] ; then
|
||||||
|
|
|
@ -16,9 +16,8 @@ validate_opt_settings() { # Show optimize setting and wait user agreeme
|
||||||
echo -e "expected, please rebuild without optimizations before"
|
echo -e "expected, please rebuild without optimizations before"
|
||||||
echo -e "asking for support.${OFF}\n"
|
echo -e "asking for support.${OFF}\n"
|
||||||
|
|
||||||
echo -e "MAKEFLAGS: ${L_arrow}${BOLD}${JH_MAKEFLAGS}${OFF}${R_arrow}"
|
# [ -n "$JH_MAKEFLAGS" ] && \
|
||||||
[ -n "$JH_MAKEFLAGS" ] && \
|
# echo -e "BLACK_LIST: ${L_arrow}${BOLD}${BLACK_LIST}${OFF}${R_arrow}\n"
|
||||||
echo -e "BLACK_LIST: ${L_arrow}${BOLD}${BLACK_LIST}${OFF}${R_arrow}\n"
|
|
||||||
|
|
||||||
echo -e "DEF_OPT_MODE: ${L_arrow}${BOLD}${DEF_OPT_MODE}${OFF}${R_arrow}\n"
|
echo -e "DEF_OPT_MODE: ${L_arrow}${BOLD}${DEF_OPT_MODE}${OFF}${R_arrow}\n"
|
||||||
|
|
||||||
|
|
Reference in a new issue