From 55f819f12ac56a63c47613e6ef59370c7a8b5b02 Mon Sep 17 00:00:00 2001 From: "Juergen \"George\" Sawinski" Date: Sat, 3 Jul 2004 10:17:06 +0000 Subject: [PATCH] Juergen Sawinski: -use DIETHOME in bootdisk target, so that our cross built dietlibc is used -add possibility to not use sysenter for dietlibc (and use it in bootdisk target) [2004062901302014720] (https://www.rocklinux.net/submaster) git-svn-id: http://www.rocklinux.org/svn/rock-linux/trunk@3500 c5f82cb5-29bc-0310-9cd0-bff59a50e3bc --- package/base/dietlibc/config-350.hlp | 9 +++++++++ package/base/dietlibc/config-350.in | 4 ++++ package/base/dietlibc/dietlibc.conf | 8 +++++++- target/bootdisk/build.sh | 2 +- target/bootdisk/config.in | 1 + 5 files changed, 22 insertions(+), 2 deletions(-) diff --git a/package/base/dietlibc/config-350.hlp b/package/base/dietlibc/config-350.hlp index aa2529c3e..a28d95458 100644 --- a/package/base/dietlibc/config-350.hlp +++ b/package/base/dietlibc/config-350.hlp @@ -34,3 +34,12 @@ ROCKCFG_DIETLIBC_ALL Please check here if you wnt to build all packages with dietlibc which support it. Uncheck to select individual packages. + +MENU_PKG_DIETLIBC_FEATURES + Here you find special (adjustable) features of dietlibc + +ROCKCFG_DIETWANT_SYSENTER + On i386, Linux has an alternate syscall method since 2002/12/16 + on my Athlon XP, it is twice as fast, but it's only in kernel 2.5 + 20040118: enabling this breaks User Mode Linux! It's their fault. + diff --git a/package/base/dietlibc/config-350.in b/package/base/dietlibc/config-350.in index 637c91675..e8d708519 100644 --- a/package/base/dietlibc/config-350.in +++ b/package/base/dietlibc/config-350.in @@ -25,6 +25,10 @@ then menu_begin MENU_PKG_DIETLIBC 'Dietlibc Options' bool 'Enable dietlibc support' ROCKCFG_DIETLIBC 0 if [ $ROCKCFG_DIETLIBC = 1 ] ; then + menu_begin MENU_PKG_DIETLIBC_FEATURES 'Special features' + bool 'WANT_SYSENTER' \ + ROCKCFG_DIETWANT_SYSENTER 1 + menu_end bool 'Link binaries dynamically with dietlibc' \ ROCKCFG_DIETLIBC_DYN 0 diff --git a/package/base/dietlibc/dietlibc.conf b/package/base/dietlibc/dietlibc.conf index fcdec56c5..4f71687aa 100644 --- a/package/base/dietlibc/dietlibc.conf +++ b/package/base/dietlibc/dietlibc.conf @@ -38,8 +38,14 @@ EOT done fi + # special features + if ! [ "$ROCKCFG_DIETWANT_SYSENTER" = "1" ]; then + sed -i "s,^#define WANT_SYSENTER$,/*\0*/," dietfeatures.h + fi + + # build package if [ "$crossnative" = native ] ; then - # dietlibc uses uname - so we always need to set ARCH + # dietlibc uses uname - so we always need to set MYARCH eval "$MAKE MYARCH=$cpu $makeopt" if [ $toolsdir = tools.cross ] ; then cp -v bin-*/diet-i $toolsbin/diet || true diff --git a/target/bootdisk/build.sh b/target/bootdisk/build.sh index ace1264da..b7040b882 100644 --- a/target/bootdisk/build.sh +++ b/target/bootdisk/build.sh @@ -13,7 +13,7 @@ fi # Add tools.cross/diet-bin/ to path so we find our 'diet' program PATH="$base/build/${ROCKCFG_ID}/ROCK/$toolsdir/diet-bin:$PATH" - +export DIETHOME="$base/build/${ROCKCFG_ID}/usr/dietlibc" if [ "$ROCK_DEBUG_BOOTDISK_NOSTAGE2" != 1 ] then diff --git a/target/bootdisk/config.in b/target/bootdisk/config.in index 63a81db59..c50072050 100644 --- a/target/bootdisk/config.in +++ b/target/bootdisk/config.in @@ -77,6 +77,7 @@ ROCKCFGSET_DIETLIBC_bzip2=1 ROCKCFGSET_DIETLIBC_wget=1 ROCKCFGSET_DIETLIBC_gawk=1 ROCKCFGSET_DIETLIBC_iproute2=1 +ROCKCFGSET_DIETWANT_SYSENTER=0 ROCKCFGSET_PKG_TERMCAP_USEIT=1 ROCKCFGSET_PKG_GCC2_NO_CHILL=1