dc: conditionalize parts which require libm
authorDenis Vlasenko <vda.linux@googlemail.com>
Mon, 20 Oct 2008 08:43:10 +0000 (08:43 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Mon, 20 Oct 2008 08:43:10 +0000 (08:43 -0000)
editors/Config.in
miscutils/Config.in
miscutils/dc.c
shell/ash_test/ash-standalone/noexec_gets_no_env.right
shell/ash_test/ash-standalone/noexec_gets_no_env.tests

index 27426bc2e36f7692169a927061ebd6829f622fab..0388737c3357026c6c3a162d655400e417ca478a 100644 (file)
@@ -14,7 +14,7 @@ config AWK
 
 config FEATURE_AWK_MATH
        bool "Enable math functions (requires libm)"
-       default y
+       default n
        depends on AWK
        help
          Enable math functions of the Awk programming language.
index 0c80ae6e9b3c53ba7ea93849e73f29fa047c52fb..15f677a7398dc715400ca4127c0ab8081382c588 100644 (file)
@@ -138,6 +138,14 @@ config DC
          Dc is a reverse-polish desk calculator which supports unlimited
          precision arithmetic.
 
+config FEATURE_DC_LIBM
+       bool "Enable power and exp functions (requires libm)"
+       default n
+       depends on DC
+       help
+         Enable power and exp functions.
+         NOTE: This will require libm to be present for linking.
+
 config DEVFSD
        bool "devfsd (obsolete)"
        default n
index 47ec060c807e8c34687d5d4bcfa1a975d9e7877c..7d5886eb2f9f5e3111f0c59fd36ac374550ec116 100644 (file)
@@ -53,12 +53,14 @@ static void mul(void)
        push(pop() * pop());
 }
 
+#if ENABLE_FEATURE_DC_LIBM
 static void power(void)
 {
        double topower = pop();
 
        push(pow(pop(), topower));
 }
+#endif
 
 static void divide(void)
 {
@@ -137,9 +139,11 @@ static const struct op operators[] = {
        {"mul", mul},
        {"/",   divide},
        {"div", divide},
+#if ENABLE_FEATURE_DC_LIBM
        {"**",  power},
        {"exp", power},
        {"pow", power},
+#endif
        {"%",   mod},
        {"mod", mod},
        {"and", and},
index 3d55d73b860860f7b92c72ab229c620aff6f31c3..8522dff3102eefd76c7016e448e51581acc2c13b 100644 (file)
@@ -1,2 +1,4 @@
 VAR7=VAL
 0
+VAR8=VAL
+0
index 5e12e5a25cd3f3e42c0cce0cfd2192af8f989009..0d347bdcd703ee4b2c4b55abc66449ff86e1136f 100755 (executable)
@@ -1,3 +1,5 @@
 export VAR7=VAL
 env | grep ^VAR7=
 echo $?
+VAR8=VAL env | grep ^VAR8=
+echo $?