aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog12
-rw-r--r--awk.h24
-rwxr-xr-xconfigure26
-rw-r--r--configure.ac22
-rw-r--r--doc/ChangeLog4
-rw-r--r--doc/gawk.info123
-rw-r--r--doc/gawk.texi7
-rw-r--r--doc/gawktexi.in7
8 files changed, 151 insertions, 74 deletions
diff --git a/ChangeLog b/ChangeLog
index cc24d750..9238218e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2017-04-20 Arnold D. Robbins <arnold@skeeve.com>
+
+ * configure.ac: Make letter case usage in the various
+ AC_ARG_ENABLE messages consistent with the rest of configure
+ output.
+ (--disable-mpfr): Add this option to make it easier
+ to check compiles without MPFR. Motivated by:
+ * awk.h (NODE): Rearrange the layout of the 'val' subportion
+ of the union to fix alignment problems when compiling without
+ MPFR. The problem only happened on 64-bit compiles, not
+ 32-bit compiles.
+
2017-04-16 Arnold D. Robbins <arnold@skeeve.com>
Rename intdiv it intdiv0 and require enabling at configure time.
diff --git a/awk.h b/awk.h
index f2ad3ebe..e2a400a6 100644
--- a/awk.h
+++ b/awk.h
@@ -365,6 +365,21 @@ typedef struct exp_node {
} nodep;
struct {
+ // April 2017:
+ // The NODE union will be the death of me yet. :-(
+ //
+ // On 64 bit Intel systems, at least, if compiling
+ // without MPFR, the pointers need to come before the
+ // the double. Otherwise things break pretty
+ // badly. This doesn't happen on 32 bit compiles.
+ // I saw this on GCC 5.4.0, GCC 6.3.0, PCC, TCC
+ // and clang 3.8.0. It's way too much work to
+ // try to figure out why. So I just put pointers,
+ // then the double, then the size_t's, and then
+ // the rest. Sigh.
+ char *sp;
+ wchar_t *wsp;
+ struct exp_node *typre;
#ifdef HAVE_MPFR
union {
AWKNUM fltnum;
@@ -372,17 +387,12 @@ typedef struct exp_node {
mpz_t mpi;
} nm;
#else
- AWKNUM fltnum; /* this is here for optimal packing of
- * the structure on many machines
- */
+ AWKNUM fltnum;
#endif
- char *sp;
size_t slen;
+ size_t wslen;
long sref;
int idx;
- wchar_t *wsp;
- size_t wslen;
- struct exp_node *typre;
} val;
} sub;
NODETYPE type;
diff --git a/configure b/configure
index e7a491bb..4b1b3209 100755
--- a/configure
+++ b/configure
@@ -767,6 +767,7 @@ with_whiny_user_strftime
enable_lint
enable_severe_portability_problems
enable_builtin_intdiv0
+enable_mpfr
enable_dependency_tracking
enable_largefile
enable_nls
@@ -1410,11 +1411,12 @@ Optional Features:
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--enable-silent-rules less verbose build output (undo: "make V=1")
--disable-silent-rules verbose build output (undo: "make V=0")
- --disable-lint Disable gawk lint checking
+ --disable-lint do not compile in gawk lint checking
--enable-severe-portability-problems
- Enable really nasty portability problems
+ allow really nasty portability problems
--enable-builtin-intdiv0
- Enable built-in intdiv0 function
+ enable built-in intdiv0 function
+ --disable-mpfr do not check for MPFR
--enable-dependency-tracking
do not reject slow dependency extractors
--disable-dependency-tracking
@@ -1428,7 +1430,7 @@ Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-whiny-user-strftime
- Force use of included version of strftime for
+ force use of included version of strftime for
deficient systems
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
--with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib
@@ -3262,6 +3264,17 @@ $as_echo "#define SUPPLY_INTDIV 1" >>confdefs.h
fi
+SKIP_MPFR=no
+# Check whether --enable-mpfr was given.
+if test "${enable_mpfr+set}" = set; then :
+ enableval=$enable_mpfr; if test "$enableval" = no
+ then
+ SKIP_MPFR=yes
+ fi
+
+fi
+
+
# Make sure we can run config.sub.
$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
@@ -10540,7 +10553,8 @@ case `uname -m` in
*'Power Macintosh'*)
: ;;
*)
-
+ case $SKIP_MPFR in
+ no)
# Check whether --with-mpfr was given.
if test "${with_mpfr+set}" = set; then :
@@ -10614,6 +10628,8 @@ $as_echo "#define HAVE_MPFR 1" >>confdefs.h
unset _found_mpfr
fi
+ ;;
+ esac
;;
esac
diff --git a/configure.ac b/configure.ac
index e2226ad9..79a70e3f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -46,7 +46,7 @@ AC_CONFIG_MACRO_DIR([m4])
dnl Additional argument stuff
AC_ARG_WITH(whiny-user-strftime,
- [AS_HELP_STRING([--with-whiny-user-strftime], [Force use of included version of strftime for deficient systems])],
+ [AS_HELP_STRING([--with-whiny-user-strftime], [force use of included version of strftime for deficient systems])],
if test "$withval" = yes
then
AC_DEFINE(USE_INCLUDED_STRFTIME, 1,
@@ -54,21 +54,21 @@ AC_ARG_WITH(whiny-user-strftime,
fi
)
AC_ARG_ENABLE([lint],
- [AS_HELP_STRING([--disable-lint],[Disable gawk lint checking])],
+ [AS_HELP_STRING([--disable-lint],[do not compile in gawk lint checking])],
if test "$enableval" = no
then
AC_DEFINE(NO_LINT, 1, [disable lint checks])
fi
)
AC_ARG_ENABLE([severe-portability-problems],
- [AS_HELP_STRING([--enable-severe-portability-problems],[Enable really nasty portability problems])],
+ [AS_HELP_STRING([--enable-severe-portability-problems],[allow really nasty portability problems])],
if test "$enableval" = yes
then
AC_DEFINE(I_DONT_KNOW_WHAT_IM_DOING, 1, [enable severe portability problems])
fi
)
AC_ARG_ENABLE([builtin-intdiv0],
- [AS_HELP_STRING([--enable-builtin-intdiv0],[Enable built-in intdiv0 function])],
+ [AS_HELP_STRING([--enable-builtin-intdiv0],[enable built-in intdiv0 function])],
if test "$enableval" = yes
then
AC_DEFINE(SUPPLY_INTDIV, 1, [enable built-in intdiv0 function])
@@ -79,6 +79,15 @@ AC_ARG_ENABLE([builtin-intdiv0],
fi
)
+SKIP_MPFR=no
+AC_ARG_ENABLE([mpfr],
+ [AS_HELP_STRING([--disable-mpfr],[do not check for MPFR])],
+ if test "$enableval" = no
+ then
+ SKIP_MPFR=yes
+ fi
+)
+
AC_CANONICAL_HOST
AC_USE_SYSTEM_EXTENSIONS
@@ -391,7 +400,10 @@ case `uname -m` in
*'Power Macintosh'*)
: ;;
*)
- GNUPG_CHECK_MPFR
+ case $SKIP_MPFR in
+ no) GNUPG_CHECK_MPFR
+ ;;
+ esac
;;
esac
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 45876892..dd8b910f 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,7 @@
+2017-04-20 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawktexi.in: Document --disable-mpfr configure option.
+
2017-04-16 Arnold D. Robbins <arnold@skeeve.com>
* awkcard.in: Comment out description of intdiv().
diff --git a/doc/gawk.info b/doc/gawk.info
index 25e9409d..20702093 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -28553,6 +28553,11 @@ command line when compiling 'gawk' from scratch, including:
test suite to fail. This option may be removed at a later
date.
+'--disable-mpfr'
+ Skip checking for the MPFR and GMP libraries. This is useful
+ mainly for the developers, to make sure nothing breaks if MPFR
+ support is not available.
+
'--disable-nls'
Disable all message-translation facilities. This is usually not
desirable, but it may bring you some slight performance
@@ -32440,8 +32445,10 @@ Index
(line 9)
* --disable-lint configuration option: Additional Configuration Options.
(line 15)
-* --disable-nls configuration option: Additional Configuration Options.
+* --disable-mpfr configuration option: Additional Configuration Options.
(line 32)
+* --disable-nls configuration option: Additional Configuration Options.
+ (line 37)
* --dump-variables option: Options. (line 94)
* --dump-variables option, using for library functions: Library Names.
(line 45)
@@ -32481,7 +32488,7 @@ Index
* --use-lc-numeric option: Options. (line 218)
* --version option: Options. (line 304)
* --with-whiny-user-strftime configuration option: Additional Configuration Options.
- (line 37)
+ (line 42)
* -b option: Options. (line 69)
* -c option: Options. (line 82)
* -C option: Options. (line 89)
@@ -33179,10 +33186,12 @@ Index
(line 9)
* configuration option, --disable-lint: Additional Configuration Options.
(line 15)
-* configuration option, --disable-nls: Additional Configuration Options.
+* configuration option, --disable-mpfr: Additional Configuration Options.
(line 32)
-* configuration option, --with-whiny-user-strftime: Additional Configuration Options.
+* configuration option, --disable-nls: Additional Configuration Options.
(line 37)
+* configuration option, --with-whiny-user-strftime: Additional Configuration Options.
+ (line 42)
* configuration options, gawk: Additional Configuration Options.
(line 6)
* constant regexps: Regexp Usage. (line 57)
@@ -35996,58 +36005,58 @@ Node: Unix Installation1146886
Node: Quick Installation1147568
Node: Shell Startup Files1149982
Node: Additional Configuration Options1151071
-Node: Configuration Philosophy1152876
-Node: Non-Unix Installation1155245
-Node: PC Installation1155705
-Node: PC Binary Installation1156543
-Node: PC Compiling1156978
-Node: PC Using1158095
-Node: Cygwin1161140
-Node: MSYS1161910
-Node: VMS Installation1162411
-Node: VMS Compilation1163202
-Ref: VMS Compilation-Footnote-11164431
-Node: VMS Dynamic Extensions1164489
-Node: VMS Installation Details1166174
-Node: VMS Running1168427
-Node: VMS GNV1172706
-Node: VMS Old Gawk1173441
-Node: Bugs1173912
-Node: Bug address1174575
-Node: Usenet1176972
-Node: Maintainers1177749
-Node: Other Versions1179125
-Node: Installation summary1185709
-Node: Notes1186744
-Node: Compatibility Mode1187609
-Node: Additions1188391
-Node: Accessing The Source1189316
-Node: Adding Code1190751
-Node: New Ports1196969
-Node: Derived Files1201457
-Ref: Derived Files-Footnote-11206942
-Ref: Derived Files-Footnote-21206977
-Ref: Derived Files-Footnote-31207575
-Node: Future Extensions1207689
-Node: Implementation Limitations1208347
-Node: Extension Design1209530
-Node: Old Extension Problems1210684
-Ref: Old Extension Problems-Footnote-11212202
-Node: Extension New Mechanism Goals1212259
-Ref: Extension New Mechanism Goals-Footnote-11215623
-Node: Extension Other Design Decisions1215812
-Node: Extension Future Growth1217925
-Node: Old Extension Mechanism1218761
-Node: Notes summary1220524
-Node: Basic Concepts1221706
-Node: Basic High Level1222387
-Ref: figure-general-flow1222669
-Ref: figure-process-flow1223354
-Ref: Basic High Level-Footnote-11226655
-Node: Basic Data Typing1226840
-Node: Glossary1230168
-Node: Copying1262115
-Node: GNU Free Documentation License1299654
-Node: Index1324772
+Node: Configuration Philosophy1153060
+Node: Non-Unix Installation1155429
+Node: PC Installation1155889
+Node: PC Binary Installation1156727
+Node: PC Compiling1157162
+Node: PC Using1158279
+Node: Cygwin1161324
+Node: MSYS1162094
+Node: VMS Installation1162595
+Node: VMS Compilation1163386
+Ref: VMS Compilation-Footnote-11164615
+Node: VMS Dynamic Extensions1164673
+Node: VMS Installation Details1166358
+Node: VMS Running1168611
+Node: VMS GNV1172890
+Node: VMS Old Gawk1173625
+Node: Bugs1174096
+Node: Bug address1174759
+Node: Usenet1177156
+Node: Maintainers1177933
+Node: Other Versions1179309
+Node: Installation summary1185893
+Node: Notes1186928
+Node: Compatibility Mode1187793
+Node: Additions1188575
+Node: Accessing The Source1189500
+Node: Adding Code1190935
+Node: New Ports1197153
+Node: Derived Files1201641
+Ref: Derived Files-Footnote-11207126
+Ref: Derived Files-Footnote-21207161
+Ref: Derived Files-Footnote-31207759
+Node: Future Extensions1207873
+Node: Implementation Limitations1208531
+Node: Extension Design1209714
+Node: Old Extension Problems1210868
+Ref: Old Extension Problems-Footnote-11212386
+Node: Extension New Mechanism Goals1212443
+Ref: Extension New Mechanism Goals-Footnote-11215807
+Node: Extension Other Design Decisions1215996
+Node: Extension Future Growth1218109
+Node: Old Extension Mechanism1218945
+Node: Notes summary1220708
+Node: Basic Concepts1221890
+Node: Basic High Level1222571
+Ref: figure-general-flow1222853
+Ref: figure-process-flow1223538
+Ref: Basic High Level-Footnote-11226839
+Node: Basic Data Typing1227024
+Node: Glossary1230352
+Node: Copying1262299
+Node: GNU Free Documentation License1299838
+Node: Index1324956

End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index d374c93a..6641705c 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -38824,6 +38824,13 @@ Using this option will cause some of the tests in the test suite
to fail. This option may be removed at a later date.
@end quotation
+@cindex @option{--disable-mpfr} configuration option
+@cindex configuration option, @code{--disable-mpfr}
+@item --disable-mpfr
+Skip checking for the MPFR and GMP libraries. This is useful
+mainly for the developers, to make sure nothing breaks if
+MPFR support is not available.
+
@cindex @option{--disable-nls} configuration option
@cindex configuration option, @code{--disable-nls}
@item --disable-nls
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 9d7be49a..0a8c30fe 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -37838,6 +37838,13 @@ Using this option will cause some of the tests in the test suite
to fail. This option may be removed at a later date.
@end quotation
+@cindex @option{--disable-mpfr} configuration option
+@cindex configuration option, @code{--disable-mpfr}
+@item --disable-mpfr
+Skip checking for the MPFR and GMP libraries. This is useful
+mainly for the developers, to make sure nothing breaks if
+MPFR support is not available.
+
@cindex @option{--disable-nls} configuration option
@cindex configuration option, @code{--disable-nls}
@item --disable-nls