diff options
-rw-r--r-- | ChangeLog | 12 | ||||
-rw-r--r-- | awk.h | 24 | ||||
-rwxr-xr-x | configure | 26 | ||||
-rw-r--r-- | configure.ac | 22 | ||||
-rw-r--r-- | doc/ChangeLog | 4 | ||||
-rw-r--r-- | doc/gawk.info | 123 | ||||
-rw-r--r-- | doc/gawk.texi | 7 | ||||
-rw-r--r-- | doc/gawktexi.in | 7 |
8 files changed, 151 insertions, 74 deletions
@@ -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. @@ -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; @@ -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 |