diff options
| author | Paul Eggert | 2011-02-20 00:48:52 -0800 |
|---|---|---|
| committer | Paul Eggert | 2011-02-20 00:48:52 -0800 |
| commit | 61353ac8cdbdda53d75f5ab9aa7f0b637aee5a00 (patch) | |
| tree | 2cfc088246ad9c97eea1ba1c7a1b7e5af64bea2d | |
| parent | 01baa1e6f227a87530f65b7e45049968a1afc12a (diff) | |
| parent | ff05203ec64be4e2148ca607d4f7e04375426916 (diff) | |
| download | emacs-61353ac8cdbdda53d75f5ab9aa7f0b637aee5a00.tar.gz emacs-61353ac8cdbdda53d75f5ab9aa7f0b637aee5a00.zip | |
Merge: Import crypto/md5 and stdint modules from gnulib.
| -rw-r--r-- | ChangeLog | 14 | ||||
| -rw-r--r-- | Makefile.in | 3 | ||||
| -rw-r--r-- | aclocal.m4 | 3 | ||||
| -rw-r--r-- | admin/notes/copyright | 4 | ||||
| -rwxr-xr-x | configure | 1359 | ||||
| -rw-r--r-- | lib/Makefile.in | 95 | ||||
| -rw-r--r-- | lib/gnulib.mk | 55 | ||||
| -rw-r--r-- | lib/md5.c | 462 | ||||
| -rw-r--r-- | lib/md5.h | 126 | ||||
| -rw-r--r-- | lib/stdint.in.h | 592 | ||||
| -rw-r--r-- | m4/gl-comp.m4 | 12 | ||||
| -rw-r--r-- | m4/longlong.m4 | 113 | ||||
| -rw-r--r-- | m4/md5.m4 | 15 | ||||
| -rw-r--r-- | m4/stdint.m4 | 479 | ||||
| -rw-r--r-- | src/ChangeLog | 10 | ||||
| -rw-r--r-- | src/Makefile.in | 2 | ||||
| -rw-r--r-- | src/config.in | 59 | ||||
| -rw-r--r-- | src/deps.mk | 9 | ||||
| -rw-r--r-- | src/md5.c | 429 | ||||
| -rw-r--r-- | src/md5.h | 148 |
20 files changed, 3343 insertions, 646 deletions
| @@ -1,3 +1,17 @@ | |||
| 1 | 2011-02-20 Paul Eggert <eggert@cs.ucla.edu> | ||
| 2 | |||
| 3 | Import crypto/md5 and stdint modules from gnulib. | ||
| 4 | * aclocal.m4, configure, lib/Makefile.in, lib/gnulib.mk, m4/gl-comp.m4: | ||
| 5 | Regenerate. | ||
| 6 | * lib/md5.c, lib/md5.h: Rename from src/md5.h and lib/md5.h. | ||
| 7 | Import the new versions from gnulib; they assume a C99-style | ||
| 8 | <stdint.h>, supplied by the stdint module. | ||
| 9 | * lib/stdint.in.h, m4/longlong.m4, m4/stdint.m4, m4/md5.m4: New files, | ||
| 10 | imported from gnulib. | ||
| 11 | * Makefile.in (MAKEFILE_MODULES): Add crypto/md5. | ||
| 12 | * admin/notes/copyright: Remove src/md5.c and src/md5.h as | ||
| 13 | special cases. | ||
| 14 | |||
| 1 | 2011-02-19 Eli Zaretskii <eliz@gnu.org> | 15 | 2011-02-19 Eli Zaretskii <eliz@gnu.org> |
| 2 | 16 | ||
| 3 | * .bzrignore: Ignore cxxdefs.h and lib/*.in-h files. | 17 | * .bzrignore: Ignore cxxdefs.h and lib/*.in-h files. |
diff --git a/Makefile.in b/Makefile.in index 126304cc4e5..8e1eb1e3b1a 100644 --- a/Makefile.in +++ b/Makefile.in | |||
| @@ -330,7 +330,8 @@ DOS_gnulib_comp.m4 = gl-comp.m4 | |||
| 330 | # Update modules from gnulib, for maintainers, who should have it in | 330 | # Update modules from gnulib, for maintainers, who should have it in |
| 331 | # $(gnulib_srcdir) (relative to $(srcdir) and should have build tools | 331 | # $(gnulib_srcdir) (relative to $(srcdir) and should have build tools |
| 332 | # as per $(gnulib_srcdir)/DEPENDENCIES. | 332 | # as per $(gnulib_srcdir)/DEPENDENCIES. |
| 333 | GNULIB_MODULES = dtoastr getloadavg getopt-gnu ignore-value mktime strftime | 333 | GNULIB_MODULES = \ |
| 334 | crypto/md5 dtoastr getloadavg getopt-gnu ignore-value mktime strftime | ||
| 334 | GNULIB_TOOL_FLAGS = \ | 335 | GNULIB_TOOL_FLAGS = \ |
| 335 | --import --no-changelog --no-vc-files --makefile-name=gnulib.mk | 336 | --import --no-changelog --no-vc-files --makefile-name=gnulib.mk |
| 336 | sync-from-gnulib: $(gnulib_srcdir) | 337 | sync-from-gnulib: $(gnulib_srcdir) |
diff --git a/aclocal.m4 b/aclocal.m4 index f299e4ab11e..2468e83d25a 100644 --- a/aclocal.m4 +++ b/aclocal.m4 | |||
| @@ -992,10 +992,13 @@ m4_include([m4/getopt.m4]) | |||
| 992 | m4_include([m4/gl-comp.m4]) | 992 | m4_include([m4/gl-comp.m4]) |
| 993 | m4_include([m4/gnulib-common.m4]) | 993 | m4_include([m4/gnulib-common.m4]) |
| 994 | m4_include([m4/include_next.m4]) | 994 | m4_include([m4/include_next.m4]) |
| 995 | m4_include([m4/longlong.m4]) | ||
| 996 | m4_include([m4/md5.m4]) | ||
| 995 | m4_include([m4/mktime.m4]) | 997 | m4_include([m4/mktime.m4]) |
| 996 | m4_include([m4/multiarch.m4]) | 998 | m4_include([m4/multiarch.m4]) |
| 997 | m4_include([m4/stdbool.m4]) | 999 | m4_include([m4/stdbool.m4]) |
| 998 | m4_include([m4/stddef_h.m4]) | 1000 | m4_include([m4/stddef_h.m4]) |
| 1001 | m4_include([m4/stdint.m4]) | ||
| 999 | m4_include([m4/stdlib_h.m4]) | 1002 | m4_include([m4/stdlib_h.m4]) |
| 1000 | m4_include([m4/strftime.m4]) | 1003 | m4_include([m4/strftime.m4]) |
| 1001 | m4_include([m4/time_h.m4]) | 1004 | m4_include([m4/time_h.m4]) |
diff --git a/admin/notes/copyright b/admin/notes/copyright index 32a096c928d..54d97adaf1c 100644 --- a/admin/notes/copyright +++ b/admin/notes/copyright | |||
| @@ -557,7 +557,7 @@ Note: erring on the side of caution, I also added notices to some | |||
| 557 | files I thought might be considered non-trivial (if one includes | 557 | files I thought might be considered non-trivial (if one includes |
| 558 | comment) in s/: | 558 | comment) in s/: |
| 559 | aix4-1.h hpux10.h irix6-0.h irix6-5.h | 559 | aix4-1.h hpux10.h irix6-0.h irix6-5.h |
| 560 | ptx4.h sol2.h | 560 | ptx4.h sol2.h |
| 561 | 561 | ||
| 562 | (everything with > 30 non-blank lines, which at least is _some_ kind of | 562 | (everything with > 30 non-blank lines, which at least is _some_ kind of |
| 563 | system) | 563 | system) |
| @@ -632,8 +632,6 @@ alone (may import them from Gnulib again). These are: | |||
| 632 | lib/*.[ch] | 632 | lib/*.[ch] |
| 633 | lib/gnulib.mk | 633 | lib/gnulib.mk |
| 634 | src/gmalloc.c | 634 | src/gmalloc.c |
| 635 | src/md5.c | ||
| 636 | src/md5.h | ||
| 637 | src/termcap.c | 635 | src/termcap.c |
| 638 | src/tparam.c | 636 | src/tparam.c |
| 639 | 637 | ||
| @@ -679,6 +679,30 @@ NEXT_AS_FIRST_DIRECTIVE_TIME_H | |||
| 679 | NEXT_TIME_H | 679 | NEXT_TIME_H |
| 680 | NEXT_AS_FIRST_DIRECTIVE_STDLIB_H | 680 | NEXT_AS_FIRST_DIRECTIVE_STDLIB_H |
| 681 | NEXT_STDLIB_H | 681 | NEXT_STDLIB_H |
| 682 | STDINT_H | ||
| 683 | WINT_T_SUFFIX | ||
| 684 | WCHAR_T_SUFFIX | ||
| 685 | SIG_ATOMIC_T_SUFFIX | ||
| 686 | SIZE_T_SUFFIX | ||
| 687 | PTRDIFF_T_SUFFIX | ||
| 688 | HAVE_SIGNED_WINT_T | ||
| 689 | HAVE_SIGNED_WCHAR_T | ||
| 690 | HAVE_SIGNED_SIG_ATOMIC_T | ||
| 691 | BITSIZEOF_WINT_T | ||
| 692 | BITSIZEOF_WCHAR_T | ||
| 693 | BITSIZEOF_SIG_ATOMIC_T | ||
| 694 | BITSIZEOF_SIZE_T | ||
| 695 | BITSIZEOF_PTRDIFF_T | ||
| 696 | HAVE_SYS_BITYPES_H | ||
| 697 | HAVE_SYS_INTTYPES_H | ||
| 698 | HAVE_STDINT_H | ||
| 699 | NEXT_AS_FIRST_DIRECTIVE_STDINT_H | ||
| 700 | NEXT_STDINT_H | ||
| 701 | HAVE_SYS_TYPES_H | ||
| 702 | HAVE_INTTYPES_H | ||
| 703 | HAVE_WCHAR_H | ||
| 704 | HAVE_UNSIGNED_LONG_LONG_INT | ||
| 705 | HAVE_LONG_LONG_INT | ||
| 682 | NEXT_AS_FIRST_DIRECTIVE_STDDEF_H | 706 | NEXT_AS_FIRST_DIRECTIVE_STDDEF_H |
| 683 | NEXT_STDDEF_H | 707 | NEXT_STDDEF_H |
| 684 | STDDEF_H | 708 | STDDEF_H |
| @@ -2431,6 +2455,184 @@ $as_echo "$ac_res" >&6; } | |||
| 2431 | eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno | 2455 | eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno |
| 2432 | 2456 | ||
| 2433 | } # ac_fn_c_check_type | 2457 | } # ac_fn_c_check_type |
| 2458 | |||
| 2459 | # ac_fn_c_compute_int LINENO EXPR VAR INCLUDES | ||
| 2460 | # -------------------------------------------- | ||
| 2461 | # Tries to find the compile-time value of EXPR in a program that includes | ||
| 2462 | # INCLUDES, setting VAR accordingly. Returns whether the value could be | ||
| 2463 | # computed | ||
| 2464 | ac_fn_c_compute_int () | ||
| 2465 | { | ||
| 2466 | as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack | ||
| 2467 | if test "$cross_compiling" = yes; then | ||
| 2468 | # Depending upon the size, compute the lo and hi bounds. | ||
| 2469 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
| 2470 | /* end confdefs.h. */ | ||
| 2471 | $4 | ||
| 2472 | int | ||
| 2473 | main () | ||
| 2474 | { | ||
| 2475 | static int test_array [1 - 2 * !(($2) >= 0)]; | ||
| 2476 | test_array [0] = 0 | ||
| 2477 | |||
| 2478 | ; | ||
| 2479 | return 0; | ||
| 2480 | } | ||
| 2481 | _ACEOF | ||
| 2482 | if ac_fn_c_try_compile "$LINENO"; then : | ||
| 2483 | ac_lo=0 ac_mid=0 | ||
| 2484 | while :; do | ||
| 2485 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
| 2486 | /* end confdefs.h. */ | ||
| 2487 | $4 | ||
| 2488 | int | ||
| 2489 | main () | ||
| 2490 | { | ||
| 2491 | static int test_array [1 - 2 * !(($2) <= $ac_mid)]; | ||
| 2492 | test_array [0] = 0 | ||
| 2493 | |||
| 2494 | ; | ||
| 2495 | return 0; | ||
| 2496 | } | ||
| 2497 | _ACEOF | ||
| 2498 | if ac_fn_c_try_compile "$LINENO"; then : | ||
| 2499 | ac_hi=$ac_mid; break | ||
| 2500 | else | ||
| 2501 | as_fn_arith $ac_mid + 1 && ac_lo=$as_val | ||
| 2502 | if test $ac_lo -le $ac_mid; then | ||
| 2503 | ac_lo= ac_hi= | ||
| 2504 | break | ||
| 2505 | fi | ||
| 2506 | as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val | ||
| 2507 | fi | ||
| 2508 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
| 2509 | done | ||
| 2510 | else | ||
| 2511 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
| 2512 | /* end confdefs.h. */ | ||
| 2513 | $4 | ||
| 2514 | int | ||
| 2515 | main () | ||
| 2516 | { | ||
| 2517 | static int test_array [1 - 2 * !(($2) < 0)]; | ||
| 2518 | test_array [0] = 0 | ||
| 2519 | |||
| 2520 | ; | ||
| 2521 | return 0; | ||
| 2522 | } | ||
| 2523 | _ACEOF | ||
| 2524 | if ac_fn_c_try_compile "$LINENO"; then : | ||
| 2525 | ac_hi=-1 ac_mid=-1 | ||
| 2526 | while :; do | ||
| 2527 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
| 2528 | /* end confdefs.h. */ | ||
| 2529 | $4 | ||
| 2530 | int | ||
| 2531 | main () | ||
| 2532 | { | ||
| 2533 | static int test_array [1 - 2 * !(($2) >= $ac_mid)]; | ||
| 2534 | test_array [0] = 0 | ||
| 2535 | |||
| 2536 | ; | ||
| 2537 | return 0; | ||
| 2538 | } | ||
| 2539 | _ACEOF | ||
| 2540 | if ac_fn_c_try_compile "$LINENO"; then : | ||
| 2541 | ac_lo=$ac_mid; break | ||
| 2542 | else | ||
| 2543 | as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val | ||
| 2544 | if test $ac_mid -le $ac_hi; then | ||
| 2545 | ac_lo= ac_hi= | ||
| 2546 | break | ||
| 2547 | fi | ||
| 2548 | as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val | ||
| 2549 | fi | ||
| 2550 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
| 2551 | done | ||
| 2552 | else | ||
| 2553 | ac_lo= ac_hi= | ||
| 2554 | fi | ||
| 2555 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
| 2556 | fi | ||
| 2557 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
| 2558 | # Binary search between lo and hi bounds. | ||
| 2559 | while test "x$ac_lo" != "x$ac_hi"; do | ||
| 2560 | as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val | ||
| 2561 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
| 2562 | /* end confdefs.h. */ | ||
| 2563 | $4 | ||
| 2564 | int | ||
| 2565 | main () | ||
| 2566 | { | ||
| 2567 | static int test_array [1 - 2 * !(($2) <= $ac_mid)]; | ||
| 2568 | test_array [0] = 0 | ||
| 2569 | |||
| 2570 | ; | ||
| 2571 | return 0; | ||
| 2572 | } | ||
| 2573 | _ACEOF | ||
| 2574 | if ac_fn_c_try_compile "$LINENO"; then : | ||
| 2575 | ac_hi=$ac_mid | ||
| 2576 | else | ||
| 2577 | as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val | ||
| 2578 | fi | ||
| 2579 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
| 2580 | done | ||
| 2581 | case $ac_lo in #(( | ||
| 2582 | ?*) eval "$3=\$ac_lo"; ac_retval=0 ;; | ||
| 2583 | '') ac_retval=1 ;; | ||
| 2584 | esac | ||
| 2585 | else | ||
| 2586 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
| 2587 | /* end confdefs.h. */ | ||
| 2588 | $4 | ||
| 2589 | static long int longval () { return $2; } | ||
| 2590 | static unsigned long int ulongval () { return $2; } | ||
| 2591 | #include <stdio.h> | ||
| 2592 | #include <stdlib.h> | ||
| 2593 | int | ||
| 2594 | main () | ||
| 2595 | { | ||
| 2596 | |||
| 2597 | FILE *f = fopen ("conftest.val", "w"); | ||
| 2598 | if (! f) | ||
| 2599 | return 1; | ||
| 2600 | if (($2) < 0) | ||
| 2601 | { | ||
| 2602 | long int i = longval (); | ||
| 2603 | if (i != ($2)) | ||
| 2604 | return 1; | ||
| 2605 | fprintf (f, "%ld", i); | ||
| 2606 | } | ||
| 2607 | else | ||
| 2608 | { | ||
| 2609 | unsigned long int i = ulongval (); | ||
| 2610 | if (i != ($2)) | ||
| 2611 | return 1; | ||
| 2612 | fprintf (f, "%lu", i); | ||
| 2613 | } | ||
| 2614 | /* Do not output a trailing newline, as this causes \r\n confusion | ||
| 2615 | on some platforms. */ | ||
| 2616 | return ferror (f) || fclose (f) != 0; | ||
| 2617 | |||
| 2618 | ; | ||
| 2619 | return 0; | ||
| 2620 | } | ||
| 2621 | _ACEOF | ||
| 2622 | if ac_fn_c_try_run "$LINENO"; then : | ||
| 2623 | echo >>conftest.val; read $3 <conftest.val; ac_retval=0 | ||
| 2624 | else | ||
| 2625 | ac_retval=1 | ||
| 2626 | fi | ||
| 2627 | rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ | ||
| 2628 | conftest.$ac_objext conftest.beam conftest.$ac_ext | ||
| 2629 | rm -f conftest.val | ||
| 2630 | |||
| 2631 | fi | ||
| 2632 | eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno | ||
| 2633 | as_fn_set_status $ac_retval | ||
| 2634 | |||
| 2635 | } # ac_fn_c_compute_int | ||
| 2434 | cat >config.log <<_ACEOF | 2636 | cat >config.log <<_ACEOF |
| 2435 | This file contains any messages produced by compilers while | 2637 | This file contains any messages produced by compilers while |
| 2436 | running configure, to aid debugging if configure makes a mistake. | 2638 | running configure, to aid debugging if configure makes a mistake. |
| @@ -2721,6 +2923,8 @@ as_fn_append ac_header_list " sys/param.h" | |||
| 2721 | gl_getopt_required=GNU | 2923 | gl_getopt_required=GNU |
| 2722 | as_fn_append ac_header_list " getopt.h" | 2924 | as_fn_append ac_header_list " getopt.h" |
| 2723 | as_fn_append ac_func_list " alarm" | 2925 | as_fn_append ac_func_list " alarm" |
| 2926 | as_fn_append ac_header_list " wchar.h" | ||
| 2927 | as_fn_append ac_header_list " stdint.h" | ||
| 2724 | as_fn_append ac_func_list " tzset" | 2928 | as_fn_append ac_func_list " tzset" |
| 2725 | as_fn_append ac_header_list " sys/time.h" | 2929 | as_fn_append ac_header_list " sys/time.h" |
| 2726 | as_fn_append ac_func_list " localtime_r" | 2930 | as_fn_append ac_func_list " localtime_r" |
| @@ -5881,6 +6085,7 @@ $as_echo "$ac_cv_safe_to_define___extensions__" >&6; } | |||
| 5881 | 6085 | ||
| 5882 | # Code from module arg-nonnull: | 6086 | # Code from module arg-nonnull: |
| 5883 | # Code from module c++defs: | 6087 | # Code from module c++defs: |
| 6088 | # Code from module crypto/md5: | ||
| 5884 | # Code from module dtoastr: | 6089 | # Code from module dtoastr: |
| 5885 | # Code from module extensions: | 6090 | # Code from module extensions: |
| 5886 | 6091 | ||
| @@ -5895,6 +6100,7 @@ $as_echo "$ac_cv_safe_to_define___extensions__" >&6; } | |||
| 5895 | # Code from module multiarch: | 6100 | # Code from module multiarch: |
| 5896 | # Code from module stdbool: | 6101 | # Code from module stdbool: |
| 5897 | # Code from module stddef: | 6102 | # Code from module stddef: |
| 6103 | # Code from module stdint: | ||
| 5898 | # Code from module stdlib: | 6104 | # Code from module stdlib: |
| 5899 | # Code from module strftime: | 6105 | # Code from module strftime: |
| 5900 | # Code from module time: | 6106 | # Code from module time: |
| @@ -13201,6 +13407,274 @@ fi | |||
| 13201 | export LIBC_FATAL_STDERR_ | 13407 | export LIBC_FATAL_STDERR_ |
| 13202 | 13408 | ||
| 13203 | 13409 | ||
| 13410 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 | ||
| 13411 | $as_echo_n "checking whether byte ordering is bigendian... " >&6; } | ||
| 13412 | if ${ac_cv_c_bigendian+:} false; then : | ||
| 13413 | $as_echo_n "(cached) " >&6 | ||
| 13414 | else | ||
| 13415 | ac_cv_c_bigendian=unknown | ||
| 13416 | # See if we're dealing with a universal compiler. | ||
| 13417 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
| 13418 | /* end confdefs.h. */ | ||
| 13419 | #ifndef __APPLE_CC__ | ||
| 13420 | not a universal capable compiler | ||
| 13421 | #endif | ||
| 13422 | typedef int dummy; | ||
| 13423 | |||
| 13424 | _ACEOF | ||
| 13425 | if ac_fn_c_try_compile "$LINENO"; then : | ||
| 13426 | |||
| 13427 | # Check for potential -arch flags. It is not universal unless | ||
| 13428 | # there are at least two -arch flags with different values. | ||
| 13429 | ac_arch= | ||
| 13430 | ac_prev= | ||
| 13431 | for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do | ||
| 13432 | if test -n "$ac_prev"; then | ||
| 13433 | case $ac_word in | ||
| 13434 | i?86 | x86_64 | ppc | ppc64) | ||
| 13435 | if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then | ||
| 13436 | ac_arch=$ac_word | ||
| 13437 | else | ||
| 13438 | ac_cv_c_bigendian=universal | ||
| 13439 | break | ||
| 13440 | fi | ||
| 13441 | ;; | ||
| 13442 | esac | ||
| 13443 | ac_prev= | ||
| 13444 | elif test "x$ac_word" = "x-arch"; then | ||
| 13445 | ac_prev=arch | ||
| 13446 | fi | ||
| 13447 | done | ||
| 13448 | fi | ||
| 13449 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
| 13450 | if test $ac_cv_c_bigendian = unknown; then | ||
| 13451 | # See if sys/param.h defines the BYTE_ORDER macro. | ||
| 13452 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
| 13453 | /* end confdefs.h. */ | ||
| 13454 | #include <sys/types.h> | ||
| 13455 | #include <sys/param.h> | ||
| 13456 | |||
| 13457 | int | ||
| 13458 | main () | ||
| 13459 | { | ||
| 13460 | #if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ | ||
| 13461 | && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ | ||
| 13462 | && LITTLE_ENDIAN) | ||
| 13463 | bogus endian macros | ||
| 13464 | #endif | ||
| 13465 | |||
| 13466 | ; | ||
| 13467 | return 0; | ||
| 13468 | } | ||
| 13469 | _ACEOF | ||
| 13470 | if ac_fn_c_try_compile "$LINENO"; then : | ||
| 13471 | # It does; now see whether it defined to BIG_ENDIAN or not. | ||
| 13472 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
| 13473 | /* end confdefs.h. */ | ||
| 13474 | #include <sys/types.h> | ||
| 13475 | #include <sys/param.h> | ||
| 13476 | |||
| 13477 | int | ||
| 13478 | main () | ||
| 13479 | { | ||
| 13480 | #if BYTE_ORDER != BIG_ENDIAN | ||
| 13481 | not big endian | ||
| 13482 | #endif | ||
| 13483 | |||
| 13484 | ; | ||
| 13485 | return 0; | ||
| 13486 | } | ||
| 13487 | _ACEOF | ||
| 13488 | if ac_fn_c_try_compile "$LINENO"; then : | ||
| 13489 | ac_cv_c_bigendian=yes | ||
| 13490 | else | ||
| 13491 | ac_cv_c_bigendian=no | ||
| 13492 | fi | ||
| 13493 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
| 13494 | fi | ||
| 13495 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
| 13496 | fi | ||
| 13497 | if test $ac_cv_c_bigendian = unknown; then | ||
| 13498 | # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). | ||
| 13499 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
| 13500 | /* end confdefs.h. */ | ||
| 13501 | #include <limits.h> | ||
| 13502 | |||
| 13503 | int | ||
| 13504 | main () | ||
| 13505 | { | ||
| 13506 | #if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) | ||
| 13507 | bogus endian macros | ||
| 13508 | #endif | ||
| 13509 | |||
| 13510 | ; | ||
| 13511 | return 0; | ||
| 13512 | } | ||
| 13513 | _ACEOF | ||
| 13514 | if ac_fn_c_try_compile "$LINENO"; then : | ||
| 13515 | # It does; now see whether it defined to _BIG_ENDIAN or not. | ||
| 13516 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
| 13517 | /* end confdefs.h. */ | ||
| 13518 | #include <limits.h> | ||
| 13519 | |||
| 13520 | int | ||
| 13521 | main () | ||
| 13522 | { | ||
| 13523 | #ifndef _BIG_ENDIAN | ||
| 13524 | not big endian | ||
| 13525 | #endif | ||
| 13526 | |||
| 13527 | ; | ||
| 13528 | return 0; | ||
| 13529 | } | ||
| 13530 | _ACEOF | ||
| 13531 | if ac_fn_c_try_compile "$LINENO"; then : | ||
| 13532 | ac_cv_c_bigendian=yes | ||
| 13533 | else | ||
| 13534 | ac_cv_c_bigendian=no | ||
| 13535 | fi | ||
| 13536 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
| 13537 | fi | ||
| 13538 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
| 13539 | fi | ||
| 13540 | if test $ac_cv_c_bigendian = unknown; then | ||
| 13541 | # Compile a test program. | ||
| 13542 | if test "$cross_compiling" = yes; then : | ||
| 13543 | # Try to guess by grepping values from an object file. | ||
| 13544 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
| 13545 | /* end confdefs.h. */ | ||
| 13546 | short int ascii_mm[] = | ||
| 13547 | { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; | ||
| 13548 | short int ascii_ii[] = | ||
| 13549 | { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; | ||
| 13550 | int use_ascii (int i) { | ||
| 13551 | return ascii_mm[i] + ascii_ii[i]; | ||
| 13552 | } | ||
| 13553 | short int ebcdic_ii[] = | ||
| 13554 | { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; | ||
| 13555 | short int ebcdic_mm[] = | ||
| 13556 | { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; | ||
| 13557 | int use_ebcdic (int i) { | ||
| 13558 | return ebcdic_mm[i] + ebcdic_ii[i]; | ||
| 13559 | } | ||
| 13560 | extern int foo; | ||
| 13561 | |||
| 13562 | int | ||
| 13563 | main () | ||
| 13564 | { | ||
| 13565 | return use_ascii (foo) == use_ebcdic (foo); | ||
| 13566 | ; | ||
| 13567 | return 0; | ||
| 13568 | } | ||
| 13569 | _ACEOF | ||
| 13570 | if ac_fn_c_try_compile "$LINENO"; then : | ||
| 13571 | if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then | ||
| 13572 | ac_cv_c_bigendian=yes | ||
| 13573 | fi | ||
| 13574 | if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then | ||
| 13575 | if test "$ac_cv_c_bigendian" = unknown; then | ||
| 13576 | ac_cv_c_bigendian=no | ||
| 13577 | else | ||
| 13578 | # finding both strings is unlikely to happen, but who knows? | ||
| 13579 | ac_cv_c_bigendian=unknown | ||
| 13580 | fi | ||
| 13581 | fi | ||
| 13582 | fi | ||
| 13583 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
| 13584 | else | ||
| 13585 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
| 13586 | /* end confdefs.h. */ | ||
| 13587 | $ac_includes_default | ||
| 13588 | int | ||
| 13589 | main () | ||
| 13590 | { | ||
| 13591 | |||
| 13592 | /* Are we little or big endian? From Harbison&Steele. */ | ||
| 13593 | union | ||
| 13594 | { | ||
| 13595 | long int l; | ||
| 13596 | char c[sizeof (long int)]; | ||
| 13597 | } u; | ||
| 13598 | u.l = 1; | ||
| 13599 | return u.c[sizeof (long int) - 1] == 1; | ||
| 13600 | |||
| 13601 | ; | ||
| 13602 | return 0; | ||
| 13603 | } | ||
| 13604 | _ACEOF | ||
| 13605 | if ac_fn_c_try_run "$LINENO"; then : | ||
| 13606 | ac_cv_c_bigendian=no | ||
| 13607 | else | ||
| 13608 | ac_cv_c_bigendian=yes | ||
| 13609 | fi | ||
| 13610 | rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ | ||
| 13611 | conftest.$ac_objext conftest.beam conftest.$ac_ext | ||
| 13612 | fi | ||
| 13613 | |||
| 13614 | fi | ||
| 13615 | fi | ||
| 13616 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 | ||
| 13617 | $as_echo "$ac_cv_c_bigendian" >&6; } | ||
| 13618 | case $ac_cv_c_bigendian in #( | ||
| 13619 | yes) | ||
| 13620 | $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h | ||
| 13621 | ;; #( | ||
| 13622 | no) | ||
| 13623 | ;; #( | ||
| 13624 | universal) | ||
| 13625 | |||
| 13626 | $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h | ||
| 13627 | |||
| 13628 | ;; #( | ||
| 13629 | *) | ||
| 13630 | as_fn_error $? "unknown endianness | ||
| 13631 | presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; | ||
| 13632 | esac | ||
| 13633 | |||
| 13634 | |||
| 13635 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 | ||
| 13636 | $as_echo_n "checking for inline... " >&6; } | ||
| 13637 | if ${ac_cv_c_inline+:} false; then : | ||
| 13638 | $as_echo_n "(cached) " >&6 | ||
| 13639 | else | ||
| 13640 | ac_cv_c_inline=no | ||
| 13641 | for ac_kw in inline __inline__ __inline; do | ||
| 13642 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
| 13643 | /* end confdefs.h. */ | ||
| 13644 | #ifndef __cplusplus | ||
| 13645 | typedef int foo_t; | ||
| 13646 | static $ac_kw foo_t static_foo () {return 0; } | ||
| 13647 | $ac_kw foo_t foo () {return 0; } | ||
| 13648 | #endif | ||
| 13649 | |||
| 13650 | _ACEOF | ||
| 13651 | if ac_fn_c_try_compile "$LINENO"; then : | ||
| 13652 | ac_cv_c_inline=$ac_kw | ||
| 13653 | fi | ||
| 13654 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
| 13655 | test "$ac_cv_c_inline" != no && break | ||
| 13656 | done | ||
| 13657 | |||
| 13658 | fi | ||
| 13659 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 | ||
| 13660 | $as_echo "$ac_cv_c_inline" >&6; } | ||
| 13661 | |||
| 13662 | case $ac_cv_c_inline in | ||
| 13663 | inline | yes) ;; | ||
| 13664 | *) | ||
| 13665 | case $ac_cv_c_inline in | ||
| 13666 | no) ac_val=;; | ||
| 13667 | *) ac_val=$ac_cv_c_inline;; | ||
| 13668 | esac | ||
| 13669 | cat >>confdefs.h <<_ACEOF | ||
| 13670 | #ifndef __cplusplus | ||
| 13671 | #define inline $ac_val | ||
| 13672 | #endif | ||
| 13673 | _ACEOF | ||
| 13674 | ;; | ||
| 13675 | esac | ||
| 13676 | |||
| 13677 | |||
| 13204 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strtold conforms to C99" >&5 | 13678 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strtold conforms to C99" >&5 |
| 13205 | $as_echo_n "checking whether strtold conforms to C99... " >&6; } | 13679 | $as_echo_n "checking whether strtold conforms to C99... " >&6; } |
| 13206 | if ${gl_cv_func_c99_strtold+:} false; then : | 13680 | if ${gl_cv_func_c99_strtold+:} false; then : |
| @@ -13964,48 +14438,6 @@ $as_echo "#define __GETOPT_PREFIX rpl_" >>confdefs.h | |||
| 13964 | fi | 14438 | fi |
| 13965 | 14439 | ||
| 13966 | 14440 | ||
| 13967 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 | ||
| 13968 | $as_echo_n "checking for inline... " >&6; } | ||
| 13969 | if ${ac_cv_c_inline+:} false; then : | ||
| 13970 | $as_echo_n "(cached) " >&6 | ||
| 13971 | else | ||
| 13972 | ac_cv_c_inline=no | ||
| 13973 | for ac_kw in inline __inline__ __inline; do | ||
| 13974 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
| 13975 | /* end confdefs.h. */ | ||
| 13976 | #ifndef __cplusplus | ||
| 13977 | typedef int foo_t; | ||
| 13978 | static $ac_kw foo_t static_foo () {return 0; } | ||
| 13979 | $ac_kw foo_t foo () {return 0; } | ||
| 13980 | #endif | ||
| 13981 | |||
| 13982 | _ACEOF | ||
| 13983 | if ac_fn_c_try_compile "$LINENO"; then : | ||
| 13984 | ac_cv_c_inline=$ac_kw | ||
| 13985 | fi | ||
| 13986 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
| 13987 | test "$ac_cv_c_inline" != no && break | ||
| 13988 | done | ||
| 13989 | |||
| 13990 | fi | ||
| 13991 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 | ||
| 13992 | $as_echo "$ac_cv_c_inline" >&6; } | ||
| 13993 | |||
| 13994 | case $ac_cv_c_inline in | ||
| 13995 | inline | yes) ;; | ||
| 13996 | *) | ||
| 13997 | case $ac_cv_c_inline in | ||
| 13998 | no) ac_val=;; | ||
| 13999 | *) ac_val=$ac_cv_c_inline;; | ||
| 14000 | esac | ||
| 14001 | cat >>confdefs.h <<_ACEOF | ||
| 14002 | #ifndef __cplusplus | ||
| 14003 | #define inline $ac_val | ||
| 14004 | #endif | ||
| 14005 | _ACEOF | ||
| 14006 | ;; | ||
| 14007 | esac | ||
| 14008 | |||
| 14009 | 14441 | ||
| 14010 | GNULIB_MKTIME=0; | 14442 | GNULIB_MKTIME=0; |
| 14011 | GNULIB_NANOSLEEP=0; | 14443 | GNULIB_NANOSLEEP=0; |
| @@ -14206,6 +14638,127 @@ $as_echo "#define HAVE_WCHAR_T 1" >>confdefs.h | |||
| 14206 | fi | 14638 | fi |
| 14207 | 14639 | ||
| 14208 | 14640 | ||
| 14641 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned long long int" >&5 | ||
| 14642 | $as_echo_n "checking for unsigned long long int... " >&6; } | ||
| 14643 | if ${ac_cv_type_unsigned_long_long_int+:} false; then : | ||
| 14644 | $as_echo_n "(cached) " >&6 | ||
| 14645 | else | ||
| 14646 | ac_cv_type_unsigned_long_long_int=yes | ||
| 14647 | if test "x${ac_cv_prog_cc_c99-no}" = xno; then | ||
| 14648 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
| 14649 | /* end confdefs.h. */ | ||
| 14650 | |||
| 14651 | /* For now, do not test the preprocessor; as of 2007 there are too many | ||
| 14652 | implementations with broken preprocessors. Perhaps this can | ||
| 14653 | be revisited in 2012. In the meantime, code should not expect | ||
| 14654 | #if to work with literals wider than 32 bits. */ | ||
| 14655 | /* Test literals. */ | ||
| 14656 | long long int ll = 9223372036854775807ll; | ||
| 14657 | long long int nll = -9223372036854775807LL; | ||
| 14658 | unsigned long long int ull = 18446744073709551615ULL; | ||
| 14659 | /* Test constant expressions. */ | ||
| 14660 | typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) | ||
| 14661 | ? 1 : -1)]; | ||
| 14662 | typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1 | ||
| 14663 | ? 1 : -1)]; | ||
| 14664 | int i = 63; | ||
| 14665 | int | ||
| 14666 | main () | ||
| 14667 | { | ||
| 14668 | /* Test availability of runtime routines for shift and division. */ | ||
| 14669 | long long int llmax = 9223372036854775807ll; | ||
| 14670 | unsigned long long int ullmax = 18446744073709551615ull; | ||
| 14671 | return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) | ||
| 14672 | | (llmax / ll) | (llmax % ll) | ||
| 14673 | | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) | ||
| 14674 | | (ullmax / ull) | (ullmax % ull)); | ||
| 14675 | ; | ||
| 14676 | return 0; | ||
| 14677 | } | ||
| 14678 | |||
| 14679 | _ACEOF | ||
| 14680 | if ac_fn_c_try_link "$LINENO"; then : | ||
| 14681 | |||
| 14682 | else | ||
| 14683 | ac_cv_type_unsigned_long_long_int=no | ||
| 14684 | fi | ||
| 14685 | rm -f core conftest.err conftest.$ac_objext \ | ||
| 14686 | conftest$ac_exeext conftest.$ac_ext | ||
| 14687 | fi | ||
| 14688 | fi | ||
| 14689 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_unsigned_long_long_int" >&5 | ||
| 14690 | $as_echo "$ac_cv_type_unsigned_long_long_int" >&6; } | ||
| 14691 | if test $ac_cv_type_unsigned_long_long_int = yes; then | ||
| 14692 | |||
| 14693 | $as_echo "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h | ||
| 14694 | |||
| 14695 | fi | ||
| 14696 | |||
| 14697 | |||
| 14698 | |||
| 14699 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long int" >&5 | ||
| 14700 | $as_echo_n "checking for long long int... " >&6; } | ||
| 14701 | if ${ac_cv_type_long_long_int+:} false; then : | ||
| 14702 | $as_echo_n "(cached) " >&6 | ||
| 14703 | else | ||
| 14704 | ac_cv_type_long_long_int=yes | ||
| 14705 | if test "x${ac_cv_prog_cc_c99-no}" = xno; then | ||
| 14706 | ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int | ||
| 14707 | if test $ac_cv_type_long_long_int = yes; then | ||
| 14708 | if test "$cross_compiling" = yes; then : | ||
| 14709 | : | ||
| 14710 | else | ||
| 14711 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
| 14712 | /* end confdefs.h. */ | ||
| 14713 | #include <limits.h> | ||
| 14714 | #ifndef LLONG_MAX | ||
| 14715 | # define HALF \ | ||
| 14716 | (1LL << (sizeof (long long int) * CHAR_BIT - 2)) | ||
| 14717 | # define LLONG_MAX (HALF - 1 + HALF) | ||
| 14718 | #endif | ||
| 14719 | int | ||
| 14720 | main () | ||
| 14721 | { | ||
| 14722 | long long int n = 1; | ||
| 14723 | int i; | ||
| 14724 | for (i = 0; ; i++) | ||
| 14725 | { | ||
| 14726 | long long int m = n << i; | ||
| 14727 | if (m >> i != n) | ||
| 14728 | return 1; | ||
| 14729 | if (LLONG_MAX / 2 < m) | ||
| 14730 | break; | ||
| 14731 | } | ||
| 14732 | return 0; | ||
| 14733 | ; | ||
| 14734 | return 0; | ||
| 14735 | } | ||
| 14736 | _ACEOF | ||
| 14737 | if ac_fn_c_try_run "$LINENO"; then : | ||
| 14738 | |||
| 14739 | else | ||
| 14740 | ac_cv_type_long_long_int=no | ||
| 14741 | fi | ||
| 14742 | rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ | ||
| 14743 | conftest.$ac_objext conftest.beam conftest.$ac_ext | ||
| 14744 | fi | ||
| 14745 | |||
| 14746 | fi | ||
| 14747 | fi | ||
| 14748 | fi | ||
| 14749 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_long_int" >&5 | ||
| 14750 | $as_echo "$ac_cv_type_long_long_int" >&6; } | ||
| 14751 | if test $ac_cv_type_long_long_int = yes; then | ||
| 14752 | |||
| 14753 | $as_echo "#define HAVE_LONG_LONG_INT 1" >>confdefs.h | ||
| 14754 | |||
| 14755 | fi | ||
| 14756 | |||
| 14757 | |||
| 14758 | |||
| 14759 | |||
| 14760 | |||
| 14761 | |||
| 14209 | ac_fn_c_check_member "$LINENO" "struct tm" "tm_gmtoff" "ac_cv_member_struct_tm_tm_gmtoff" "#include <time.h> | 14762 | ac_fn_c_check_member "$LINENO" "struct tm" "tm_gmtoff" "ac_cv_member_struct_tm_tm_gmtoff" "#include <time.h> |
| 14210 | " | 14763 | " |
| 14211 | if test "x$ac_cv_member_struct_tm_tm_gmtoff" = xyes; then : | 14764 | if test "x$ac_cv_member_struct_tm_tm_gmtoff" = xyes; then : |
| @@ -14460,6 +15013,23 @@ fi | |||
| 14460 | gl_source_base='lib' | 15013 | gl_source_base='lib' |
| 14461 | # Code from module arg-nonnull: | 15014 | # Code from module arg-nonnull: |
| 14462 | # Code from module c++defs: | 15015 | # Code from module c++defs: |
| 15016 | # Code from module crypto/md5: | ||
| 15017 | |||
| 15018 | |||
| 15019 | |||
| 15020 | |||
| 15021 | |||
| 15022 | |||
| 15023 | |||
| 15024 | |||
| 15025 | |||
| 15026 | gl_LIBOBJS="$gl_LIBOBJS md5.$ac_objext" | ||
| 15027 | |||
| 15028 | |||
| 15029 | |||
| 15030 | |||
| 15031 | : | ||
| 15032 | |||
| 14463 | # Code from module dtoastr: | 15033 | # Code from module dtoastr: |
| 14464 | 15034 | ||
| 14465 | # Code from module extensions: | 15035 | # Code from module extensions: |
| @@ -15424,6 +15994,710 @@ $as_echo "$gl_cv_next_stddef_h" >&6; } | |||
| 15424 | 15994 | ||
| 15425 | fi | 15995 | fi |
| 15426 | 15996 | ||
| 15997 | # Code from module stdint: | ||
| 15998 | |||
| 15999 | |||
| 16000 | |||
| 16001 | if test $ac_cv_type_long_long_int = yes; then | ||
| 16002 | HAVE_LONG_LONG_INT=1 | ||
| 16003 | else | ||
| 16004 | HAVE_LONG_LONG_INT=0 | ||
| 16005 | fi | ||
| 16006 | |||
| 16007 | |||
| 16008 | if test $ac_cv_type_unsigned_long_long_int = yes; then | ||
| 16009 | HAVE_UNSIGNED_LONG_LONG_INT=1 | ||
| 16010 | else | ||
| 16011 | HAVE_UNSIGNED_LONG_LONG_INT=0 | ||
| 16012 | fi | ||
| 16013 | |||
| 16014 | |||
| 16015 | |||
| 16016 | if test $ac_cv_header_wchar_h = yes; then | ||
| 16017 | HAVE_WCHAR_H=1 | ||
| 16018 | else | ||
| 16019 | HAVE_WCHAR_H=0 | ||
| 16020 | fi | ||
| 16021 | |||
| 16022 | |||
| 16023 | if test $ac_cv_header_inttypes_h = yes; then | ||
| 16024 | HAVE_INTTYPES_H=1 | ||
| 16025 | else | ||
| 16026 | HAVE_INTTYPES_H=0 | ||
| 16027 | fi | ||
| 16028 | |||
| 16029 | |||
| 16030 | if test $ac_cv_header_sys_types_h = yes; then | ||
| 16031 | HAVE_SYS_TYPES_H=1 | ||
| 16032 | else | ||
| 16033 | HAVE_SYS_TYPES_H=0 | ||
| 16034 | fi | ||
| 16035 | |||
| 16036 | |||
| 16037 | |||
| 16038 | |||
| 16039 | |||
| 16040 | |||
| 16041 | |||
| 16042 | |||
| 16043 | |||
| 16044 | |||
| 16045 | |||
| 16046 | if test $gl_cv_have_include_next = yes; then | ||
| 16047 | gl_cv_next_stdint_h='<'stdint.h'>' | ||
| 16048 | else | ||
| 16049 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdint.h>" >&5 | ||
| 16050 | $as_echo_n "checking absolute name of <stdint.h>... " >&6; } | ||
| 16051 | if ${gl_cv_next_stdint_h+:} false; then : | ||
| 16052 | $as_echo_n "(cached) " >&6 | ||
| 16053 | else | ||
| 16054 | |||
| 16055 | if test $ac_cv_header_stdint_h = yes; then | ||
| 16056 | |||
| 16057 | |||
| 16058 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
| 16059 | /* end confdefs.h. */ | ||
| 16060 | #include <stdint.h> | ||
| 16061 | |||
| 16062 | _ACEOF | ||
| 16063 | case "$host_os" in | ||
| 16064 | aix*) gl_absname_cpp="$ac_cpp -C" ;; | ||
| 16065 | *) gl_absname_cpp="$ac_cpp" ;; | ||
| 16066 | esac | ||
| 16067 | gl_cv_next_stdint_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | | ||
| 16068 | sed -n '\#/stdint.h#{ | ||
| 16069 | s#.*"\(.*/stdint.h\)".*#\1# | ||
| 16070 | s#^/[^/]#//&# | ||
| 16071 | p | ||
| 16072 | q | ||
| 16073 | }'`'"' | ||
| 16074 | else | ||
| 16075 | gl_cv_next_stdint_h='<'stdint.h'>' | ||
| 16076 | fi | ||
| 16077 | |||
| 16078 | |||
| 16079 | fi | ||
| 16080 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdint_h" >&5 | ||
| 16081 | $as_echo "$gl_cv_next_stdint_h" >&6; } | ||
| 16082 | fi | ||
| 16083 | NEXT_STDINT_H=$gl_cv_next_stdint_h | ||
| 16084 | |||
| 16085 | if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then | ||
| 16086 | # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' | ||
| 16087 | gl_next_as_first_directive='<'stdint.h'>' | ||
| 16088 | else | ||
| 16089 | # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' | ||
| 16090 | gl_next_as_first_directive=$gl_cv_next_stdint_h | ||
| 16091 | fi | ||
| 16092 | NEXT_AS_FIRST_DIRECTIVE_STDINT_H=$gl_next_as_first_directive | ||
| 16093 | |||
| 16094 | |||
| 16095 | |||
| 16096 | |||
| 16097 | if test $ac_cv_header_stdint_h = yes; then | ||
| 16098 | HAVE_STDINT_H=1 | ||
| 16099 | else | ||
| 16100 | HAVE_STDINT_H=0 | ||
| 16101 | fi | ||
| 16102 | |||
| 16103 | |||
| 16104 | if test $ac_cv_header_stdint_h = yes; then | ||
| 16105 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdint.h conforms to C99" >&5 | ||
| 16106 | $as_echo_n "checking whether stdint.h conforms to C99... " >&6; } | ||
| 16107 | if ${gl_cv_header_working_stdint_h+:} false; then : | ||
| 16108 | $as_echo_n "(cached) " >&6 | ||
| 16109 | else | ||
| 16110 | gl_cv_header_working_stdint_h=no | ||
| 16111 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
| 16112 | /* end confdefs.h. */ | ||
| 16113 | |||
| 16114 | |||
| 16115 | #define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */ | ||
| 16116 | #define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */ | ||
| 16117 | #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ | ||
| 16118 | #include <stdint.h> | ||
| 16119 | /* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in <wchar.h>. */ | ||
| 16120 | #if !(defined WCHAR_MIN && defined WCHAR_MAX) | ||
| 16121 | #error "WCHAR_MIN, WCHAR_MAX not defined in <stdint.h>" | ||
| 16122 | #endif | ||
| 16123 | |||
| 16124 | |||
| 16125 | /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be | ||
| 16126 | included before <wchar.h>. */ | ||
| 16127 | #include <stddef.h> | ||
| 16128 | #include <signal.h> | ||
| 16129 | #if HAVE_WCHAR_H | ||
| 16130 | # include <stdio.h> | ||
| 16131 | # include <time.h> | ||
| 16132 | # include <wchar.h> | ||
| 16133 | #endif | ||
| 16134 | |||
| 16135 | |||
| 16136 | #ifdef INT8_MAX | ||
| 16137 | int8_t a1 = INT8_MAX; | ||
| 16138 | int8_t a1min = INT8_MIN; | ||
| 16139 | #endif | ||
| 16140 | #ifdef INT16_MAX | ||
| 16141 | int16_t a2 = INT16_MAX; | ||
| 16142 | int16_t a2min = INT16_MIN; | ||
| 16143 | #endif | ||
| 16144 | #ifdef INT32_MAX | ||
| 16145 | int32_t a3 = INT32_MAX; | ||
| 16146 | int32_t a3min = INT32_MIN; | ||
| 16147 | #endif | ||
| 16148 | #ifdef INT64_MAX | ||
| 16149 | int64_t a4 = INT64_MAX; | ||
| 16150 | int64_t a4min = INT64_MIN; | ||
| 16151 | #endif | ||
| 16152 | #ifdef UINT8_MAX | ||
| 16153 | uint8_t b1 = UINT8_MAX; | ||
| 16154 | #else | ||
| 16155 | typedef int b1[(unsigned char) -1 != 255 ? 1 : -1]; | ||
| 16156 | #endif | ||
| 16157 | #ifdef UINT16_MAX | ||
| 16158 | uint16_t b2 = UINT16_MAX; | ||
| 16159 | #endif | ||
| 16160 | #ifdef UINT32_MAX | ||
| 16161 | uint32_t b3 = UINT32_MAX; | ||
| 16162 | #endif | ||
| 16163 | #ifdef UINT64_MAX | ||
| 16164 | uint64_t b4 = UINT64_MAX; | ||
| 16165 | #endif | ||
| 16166 | int_least8_t c1 = INT8_C (0x7f); | ||
| 16167 | int_least8_t c1max = INT_LEAST8_MAX; | ||
| 16168 | int_least8_t c1min = INT_LEAST8_MIN; | ||
| 16169 | int_least16_t c2 = INT16_C (0x7fff); | ||
| 16170 | int_least16_t c2max = INT_LEAST16_MAX; | ||
| 16171 | int_least16_t c2min = INT_LEAST16_MIN; | ||
| 16172 | int_least32_t c3 = INT32_C (0x7fffffff); | ||
| 16173 | int_least32_t c3max = INT_LEAST32_MAX; | ||
| 16174 | int_least32_t c3min = INT_LEAST32_MIN; | ||
| 16175 | int_least64_t c4 = INT64_C (0x7fffffffffffffff); | ||
| 16176 | int_least64_t c4max = INT_LEAST64_MAX; | ||
| 16177 | int_least64_t c4min = INT_LEAST64_MIN; | ||
| 16178 | uint_least8_t d1 = UINT8_C (0xff); | ||
| 16179 | uint_least8_t d1max = UINT_LEAST8_MAX; | ||
| 16180 | uint_least16_t d2 = UINT16_C (0xffff); | ||
| 16181 | uint_least16_t d2max = UINT_LEAST16_MAX; | ||
| 16182 | uint_least32_t d3 = UINT32_C (0xffffffff); | ||
| 16183 | uint_least32_t d3max = UINT_LEAST32_MAX; | ||
| 16184 | uint_least64_t d4 = UINT64_C (0xffffffffffffffff); | ||
| 16185 | uint_least64_t d4max = UINT_LEAST64_MAX; | ||
| 16186 | int_fast8_t e1 = INT_FAST8_MAX; | ||
| 16187 | int_fast8_t e1min = INT_FAST8_MIN; | ||
| 16188 | int_fast16_t e2 = INT_FAST16_MAX; | ||
| 16189 | int_fast16_t e2min = INT_FAST16_MIN; | ||
| 16190 | int_fast32_t e3 = INT_FAST32_MAX; | ||
| 16191 | int_fast32_t e3min = INT_FAST32_MIN; | ||
| 16192 | int_fast64_t e4 = INT_FAST64_MAX; | ||
| 16193 | int_fast64_t e4min = INT_FAST64_MIN; | ||
| 16194 | uint_fast8_t f1 = UINT_FAST8_MAX; | ||
| 16195 | uint_fast16_t f2 = UINT_FAST16_MAX; | ||
| 16196 | uint_fast32_t f3 = UINT_FAST32_MAX; | ||
| 16197 | uint_fast64_t f4 = UINT_FAST64_MAX; | ||
| 16198 | #ifdef INTPTR_MAX | ||
| 16199 | intptr_t g = INTPTR_MAX; | ||
| 16200 | intptr_t gmin = INTPTR_MIN; | ||
| 16201 | #endif | ||
| 16202 | #ifdef UINTPTR_MAX | ||
| 16203 | uintptr_t h = UINTPTR_MAX; | ||
| 16204 | #endif | ||
| 16205 | intmax_t i = INTMAX_MAX; | ||
| 16206 | uintmax_t j = UINTMAX_MAX; | ||
| 16207 | |||
| 16208 | #include <limits.h> /* for CHAR_BIT */ | ||
| 16209 | #define TYPE_MINIMUM(t) \ | ||
| 16210 | ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t))) | ||
| 16211 | #define TYPE_MAXIMUM(t) \ | ||
| 16212 | ((t) ((t) 0 < (t) -1 \ | ||
| 16213 | ? (t) -1 \ | ||
| 16214 | : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) | ||
| 16215 | struct s { | ||
| 16216 | int check_PTRDIFF: | ||
| 16217 | PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t) | ||
| 16218 | && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t) | ||
| 16219 | ? 1 : -1; | ||
| 16220 | /* Detect bug in FreeBSD 6.0 / ia64. */ | ||
| 16221 | int check_SIG_ATOMIC: | ||
| 16222 | SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t) | ||
| 16223 | && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t) | ||
| 16224 | ? 1 : -1; | ||
| 16225 | int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1; | ||
| 16226 | int check_WCHAR: | ||
| 16227 | WCHAR_MIN == TYPE_MINIMUM (wchar_t) | ||
| 16228 | && WCHAR_MAX == TYPE_MAXIMUM (wchar_t) | ||
| 16229 | ? 1 : -1; | ||
| 16230 | /* Detect bug in mingw. */ | ||
| 16231 | int check_WINT: | ||
| 16232 | WINT_MIN == TYPE_MINIMUM (wint_t) | ||
| 16233 | && WINT_MAX == TYPE_MAXIMUM (wint_t) | ||
| 16234 | ? 1 : -1; | ||
| 16235 | |||
| 16236 | /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others. */ | ||
| 16237 | int check_UINT8_C: | ||
| 16238 | (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1; | ||
| 16239 | int check_UINT16_C: | ||
| 16240 | (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1; | ||
| 16241 | |||
| 16242 | /* Detect bugs in OpenBSD 3.9 stdint.h. */ | ||
| 16243 | #ifdef UINT8_MAX | ||
| 16244 | int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1; | ||
| 16245 | #endif | ||
| 16246 | #ifdef UINT16_MAX | ||
| 16247 | int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1; | ||
| 16248 | #endif | ||
| 16249 | #ifdef UINT32_MAX | ||
| 16250 | int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1; | ||
| 16251 | #endif | ||
| 16252 | #ifdef UINT64_MAX | ||
| 16253 | int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1; | ||
| 16254 | #endif | ||
| 16255 | int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1; | ||
| 16256 | int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1; | ||
| 16257 | int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1; | ||
| 16258 | int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1; | ||
| 16259 | int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1; | ||
| 16260 | int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1; | ||
| 16261 | int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1; | ||
| 16262 | int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1; | ||
| 16263 | int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1; | ||
| 16264 | int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1; | ||
| 16265 | int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1; | ||
| 16266 | }; | ||
| 16267 | |||
| 16268 | int | ||
| 16269 | main () | ||
| 16270 | { | ||
| 16271 | |||
| 16272 | ; | ||
| 16273 | return 0; | ||
| 16274 | } | ||
| 16275 | _ACEOF | ||
| 16276 | if ac_fn_c_try_compile "$LINENO"; then : | ||
| 16277 | if test "$cross_compiling" = yes; then : | ||
| 16278 | gl_cv_header_working_stdint_h=yes | ||
| 16279 | |||
| 16280 | else | ||
| 16281 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
| 16282 | /* end confdefs.h. */ | ||
| 16283 | |||
| 16284 | |||
| 16285 | #define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */ | ||
| 16286 | #define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */ | ||
| 16287 | #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ | ||
| 16288 | #include <stdint.h> | ||
| 16289 | |||
| 16290 | |||
| 16291 | /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be | ||
| 16292 | included before <wchar.h>. */ | ||
| 16293 | #include <stddef.h> | ||
| 16294 | #include <signal.h> | ||
| 16295 | #if HAVE_WCHAR_H | ||
| 16296 | # include <stdio.h> | ||
| 16297 | # include <time.h> | ||
| 16298 | # include <wchar.h> | ||
| 16299 | #endif | ||
| 16300 | |||
| 16301 | |||
| 16302 | #include <stdio.h> | ||
| 16303 | #include <string.h> | ||
| 16304 | #define MVAL(macro) MVAL1(macro) | ||
| 16305 | #define MVAL1(expression) #expression | ||
| 16306 | static const char *macro_values[] = | ||
| 16307 | { | ||
| 16308 | #ifdef INT8_MAX | ||
| 16309 | MVAL (INT8_MAX), | ||
| 16310 | #endif | ||
| 16311 | #ifdef INT16_MAX | ||
| 16312 | MVAL (INT16_MAX), | ||
| 16313 | #endif | ||
| 16314 | #ifdef INT32_MAX | ||
| 16315 | MVAL (INT32_MAX), | ||
| 16316 | #endif | ||
| 16317 | #ifdef INT64_MAX | ||
| 16318 | MVAL (INT64_MAX), | ||
| 16319 | #endif | ||
| 16320 | #ifdef UINT8_MAX | ||
| 16321 | MVAL (UINT8_MAX), | ||
| 16322 | #endif | ||
| 16323 | #ifdef UINT16_MAX | ||
| 16324 | MVAL (UINT16_MAX), | ||
| 16325 | #endif | ||
| 16326 | #ifdef UINT32_MAX | ||
| 16327 | MVAL (UINT32_MAX), | ||
| 16328 | #endif | ||
| 16329 | #ifdef UINT64_MAX | ||
| 16330 | MVAL (UINT64_MAX), | ||
| 16331 | #endif | ||
| 16332 | NULL | ||
| 16333 | }; | ||
| 16334 | |||
| 16335 | int | ||
| 16336 | main () | ||
| 16337 | { | ||
| 16338 | |||
| 16339 | const char **mv; | ||
| 16340 | for (mv = macro_values; *mv != NULL; mv++) | ||
| 16341 | { | ||
| 16342 | const char *value = *mv; | ||
| 16343 | /* Test whether it looks like a cast expression. */ | ||
| 16344 | if (strncmp (value, "((unsigned int)"/*)*/, 15) == 0 | ||
| 16345 | || strncmp (value, "((unsigned short)"/*)*/, 17) == 0 | ||
| 16346 | || strncmp (value, "((unsigned char)"/*)*/, 16) == 0 | ||
| 16347 | || strncmp (value, "((int)"/*)*/, 6) == 0 | ||
| 16348 | || strncmp (value, "((signed short)"/*)*/, 15) == 0 | ||
| 16349 | || strncmp (value, "((signed char)"/*)*/, 14) == 0) | ||
| 16350 | return mv - macro_values + 1; | ||
| 16351 | } | ||
| 16352 | return 0; | ||
| 16353 | |||
| 16354 | ; | ||
| 16355 | return 0; | ||
| 16356 | } | ||
| 16357 | _ACEOF | ||
| 16358 | if ac_fn_c_try_run "$LINENO"; then : | ||
| 16359 | gl_cv_header_working_stdint_h=yes | ||
| 16360 | fi | ||
| 16361 | rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ | ||
| 16362 | conftest.$ac_objext conftest.beam conftest.$ac_ext | ||
| 16363 | fi | ||
| 16364 | |||
| 16365 | |||
| 16366 | fi | ||
| 16367 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
| 16368 | |||
| 16369 | fi | ||
| 16370 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_stdint_h" >&5 | ||
| 16371 | $as_echo "$gl_cv_header_working_stdint_h" >&6; } | ||
| 16372 | fi | ||
| 16373 | if test "$gl_cv_header_working_stdint_h" = yes; then | ||
| 16374 | STDINT_H= | ||
| 16375 | else | ||
| 16376 | for ac_header in sys/inttypes.h sys/bitypes.h | ||
| 16377 | do : | ||
| 16378 | as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` | ||
| 16379 | ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" | ||
| 16380 | if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : | ||
| 16381 | cat >>confdefs.h <<_ACEOF | ||
| 16382 | #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 | ||
| 16383 | _ACEOF | ||
| 16384 | |||
| 16385 | fi | ||
| 16386 | |||
| 16387 | done | ||
| 16388 | |||
| 16389 | if test $ac_cv_header_sys_inttypes_h = yes; then | ||
| 16390 | HAVE_SYS_INTTYPES_H=1 | ||
| 16391 | else | ||
| 16392 | HAVE_SYS_INTTYPES_H=0 | ||
| 16393 | fi | ||
| 16394 | |||
| 16395 | if test $ac_cv_header_sys_bitypes_h = yes; then | ||
| 16396 | HAVE_SYS_BITYPES_H=1 | ||
| 16397 | else | ||
| 16398 | HAVE_SYS_BITYPES_H=0 | ||
| 16399 | fi | ||
| 16400 | |||
| 16401 | |||
| 16402 | |||
| 16403 | |||
| 16404 | if test $APPLE_UNIVERSAL_BUILD = 0; then | ||
| 16405 | |||
| 16406 | |||
| 16407 | for gltype in ptrdiff_t size_t ; do | ||
| 16408 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5 | ||
| 16409 | $as_echo_n "checking for bit size of $gltype... " >&6; } | ||
| 16410 | if eval \${gl_cv_bitsizeof_${gltype}+:} false; then : | ||
| 16411 | $as_echo_n "(cached) " >&6 | ||
| 16412 | else | ||
| 16413 | if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result" " | ||
| 16414 | /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be | ||
| 16415 | included before <wchar.h>. */ | ||
| 16416 | #include <stddef.h> | ||
| 16417 | #include <signal.h> | ||
| 16418 | #if HAVE_WCHAR_H | ||
| 16419 | # include <stdio.h> | ||
| 16420 | # include <time.h> | ||
| 16421 | # include <wchar.h> | ||
| 16422 | #endif | ||
| 16423 | |||
| 16424 | #include <limits.h>"; then : | ||
| 16425 | |||
| 16426 | else | ||
| 16427 | result=unknown | ||
| 16428 | fi | ||
| 16429 | |||
| 16430 | eval gl_cv_bitsizeof_${gltype}=\$result | ||
| 16431 | |||
| 16432 | fi | ||
| 16433 | eval ac_res=\$gl_cv_bitsizeof_${gltype} | ||
| 16434 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 | ||
| 16435 | $as_echo "$ac_res" >&6; } | ||
| 16436 | eval result=\$gl_cv_bitsizeof_${gltype} | ||
| 16437 | if test $result = unknown; then | ||
| 16438 | result=0 | ||
| 16439 | fi | ||
| 16440 | GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` | ||
| 16441 | cat >>confdefs.h <<_ACEOF | ||
| 16442 | #define BITSIZEOF_${GLTYPE} $result | ||
| 16443 | _ACEOF | ||
| 16444 | |||
| 16445 | eval BITSIZEOF_${GLTYPE}=\$result | ||
| 16446 | done | ||
| 16447 | |||
| 16448 | |||
| 16449 | fi | ||
| 16450 | |||
| 16451 | |||
| 16452 | for gltype in sig_atomic_t wchar_t wint_t ; do | ||
| 16453 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5 | ||
| 16454 | $as_echo_n "checking for bit size of $gltype... " >&6; } | ||
| 16455 | if eval \${gl_cv_bitsizeof_${gltype}+:} false; then : | ||
| 16456 | $as_echo_n "(cached) " >&6 | ||
| 16457 | else | ||
| 16458 | if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result" " | ||
| 16459 | /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be | ||
| 16460 | included before <wchar.h>. */ | ||
| 16461 | #include <stddef.h> | ||
| 16462 | #include <signal.h> | ||
| 16463 | #if HAVE_WCHAR_H | ||
| 16464 | # include <stdio.h> | ||
| 16465 | # include <time.h> | ||
| 16466 | # include <wchar.h> | ||
| 16467 | #endif | ||
| 16468 | |||
| 16469 | #include <limits.h>"; then : | ||
| 16470 | |||
| 16471 | else | ||
| 16472 | result=unknown | ||
| 16473 | fi | ||
| 16474 | |||
| 16475 | eval gl_cv_bitsizeof_${gltype}=\$result | ||
| 16476 | |||
| 16477 | fi | ||
| 16478 | eval ac_res=\$gl_cv_bitsizeof_${gltype} | ||
| 16479 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 | ||
| 16480 | $as_echo "$ac_res" >&6; } | ||
| 16481 | eval result=\$gl_cv_bitsizeof_${gltype} | ||
| 16482 | if test $result = unknown; then | ||
| 16483 | result=0 | ||
| 16484 | fi | ||
| 16485 | GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` | ||
| 16486 | cat >>confdefs.h <<_ACEOF | ||
| 16487 | #define BITSIZEOF_${GLTYPE} $result | ||
| 16488 | _ACEOF | ||
| 16489 | |||
| 16490 | eval BITSIZEOF_${GLTYPE}=\$result | ||
| 16491 | done | ||
| 16492 | |||
| 16493 | |||
| 16494 | |||
| 16495 | |||
| 16496 | for gltype in sig_atomic_t wchar_t wint_t ; do | ||
| 16497 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gltype is signed" >&5 | ||
| 16498 | $as_echo_n "checking whether $gltype is signed... " >&6; } | ||
| 16499 | if eval \${gl_cv_type_${gltype}_signed+:} false; then : | ||
| 16500 | $as_echo_n "(cached) " >&6 | ||
| 16501 | else | ||
| 16502 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
| 16503 | /* end confdefs.h. */ | ||
| 16504 | |||
| 16505 | /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be | ||
| 16506 | included before <wchar.h>. */ | ||
| 16507 | #include <stddef.h> | ||
| 16508 | #include <signal.h> | ||
| 16509 | #if HAVE_WCHAR_H | ||
| 16510 | # include <stdio.h> | ||
| 16511 | # include <time.h> | ||
| 16512 | # include <wchar.h> | ||
| 16513 | #endif | ||
| 16514 | |||
| 16515 | int verify[2 * (($gltype) -1 < ($gltype) 0) - 1]; | ||
| 16516 | int | ||
| 16517 | main () | ||
| 16518 | { | ||
| 16519 | |||
| 16520 | ; | ||
| 16521 | return 0; | ||
| 16522 | } | ||
| 16523 | _ACEOF | ||
| 16524 | if ac_fn_c_try_compile "$LINENO"; then : | ||
| 16525 | result=yes | ||
| 16526 | else | ||
| 16527 | result=no | ||
| 16528 | fi | ||
| 16529 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
| 16530 | eval gl_cv_type_${gltype}_signed=\$result | ||
| 16531 | |||
| 16532 | fi | ||
| 16533 | eval ac_res=\$gl_cv_type_${gltype}_signed | ||
| 16534 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 | ||
| 16535 | $as_echo "$ac_res" >&6; } | ||
| 16536 | eval result=\$gl_cv_type_${gltype}_signed | ||
| 16537 | GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` | ||
| 16538 | if test "$result" = yes; then | ||
| 16539 | cat >>confdefs.h <<_ACEOF | ||
| 16540 | #define HAVE_SIGNED_${GLTYPE} 1 | ||
| 16541 | _ACEOF | ||
| 16542 | |||
| 16543 | eval HAVE_SIGNED_${GLTYPE}=1 | ||
| 16544 | else | ||
| 16545 | eval HAVE_SIGNED_${GLTYPE}=0 | ||
| 16546 | fi | ||
| 16547 | done | ||
| 16548 | |||
| 16549 | |||
| 16550 | gl_cv_type_ptrdiff_t_signed=yes | ||
| 16551 | gl_cv_type_size_t_signed=no | ||
| 16552 | if test $APPLE_UNIVERSAL_BUILD = 0; then | ||
| 16553 | |||
| 16554 | |||
| 16555 | for gltype in ptrdiff_t size_t ; do | ||
| 16556 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5 | ||
| 16557 | $as_echo_n "checking for $gltype integer literal suffix... " >&6; } | ||
| 16558 | if eval \${gl_cv_type_${gltype}_suffix+:} false; then : | ||
| 16559 | $as_echo_n "(cached) " >&6 | ||
| 16560 | else | ||
| 16561 | eval gl_cv_type_${gltype}_suffix=no | ||
| 16562 | eval result=\$gl_cv_type_${gltype}_signed | ||
| 16563 | if test "$result" = yes; then | ||
| 16564 | glsufu= | ||
| 16565 | else | ||
| 16566 | glsufu=u | ||
| 16567 | fi | ||
| 16568 | for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do | ||
| 16569 | case $glsuf in | ||
| 16570 | '') gltype1='int';; | ||
| 16571 | l) gltype1='long int';; | ||
| 16572 | ll) gltype1='long long int';; | ||
| 16573 | i64) gltype1='__int64';; | ||
| 16574 | u) gltype1='unsigned int';; | ||
| 16575 | ul) gltype1='unsigned long int';; | ||
| 16576 | ull) gltype1='unsigned long long int';; | ||
| 16577 | ui64)gltype1='unsigned __int64';; | ||
| 16578 | esac | ||
| 16579 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
| 16580 | /* end confdefs.h. */ | ||
| 16581 | |||
| 16582 | /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be | ||
| 16583 | included before <wchar.h>. */ | ||
| 16584 | #include <stddef.h> | ||
| 16585 | #include <signal.h> | ||
| 16586 | #if HAVE_WCHAR_H | ||
| 16587 | # include <stdio.h> | ||
| 16588 | # include <time.h> | ||
| 16589 | # include <wchar.h> | ||
| 16590 | #endif | ||
| 16591 | |||
| 16592 | extern $gltype foo; | ||
| 16593 | extern $gltype1 foo; | ||
| 16594 | int | ||
| 16595 | main () | ||
| 16596 | { | ||
| 16597 | |||
| 16598 | ; | ||
| 16599 | return 0; | ||
| 16600 | } | ||
| 16601 | _ACEOF | ||
| 16602 | if ac_fn_c_try_compile "$LINENO"; then : | ||
| 16603 | eval gl_cv_type_${gltype}_suffix=\$glsuf | ||
| 16604 | fi | ||
| 16605 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
| 16606 | eval result=\$gl_cv_type_${gltype}_suffix | ||
| 16607 | test "$result" != no && break | ||
| 16608 | done | ||
| 16609 | fi | ||
| 16610 | eval ac_res=\$gl_cv_type_${gltype}_suffix | ||
| 16611 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 | ||
| 16612 | $as_echo "$ac_res" >&6; } | ||
| 16613 | GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` | ||
| 16614 | eval result=\$gl_cv_type_${gltype}_suffix | ||
| 16615 | test "$result" = no && result= | ||
| 16616 | eval ${GLTYPE}_SUFFIX=\$result | ||
| 16617 | cat >>confdefs.h <<_ACEOF | ||
| 16618 | #define ${GLTYPE}_SUFFIX $result | ||
| 16619 | _ACEOF | ||
| 16620 | |||
| 16621 | done | ||
| 16622 | |||
| 16623 | |||
| 16624 | fi | ||
| 16625 | |||
| 16626 | |||
| 16627 | for gltype in sig_atomic_t wchar_t wint_t ; do | ||
| 16628 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5 | ||
| 16629 | $as_echo_n "checking for $gltype integer literal suffix... " >&6; } | ||
| 16630 | if eval \${gl_cv_type_${gltype}_suffix+:} false; then : | ||
| 16631 | $as_echo_n "(cached) " >&6 | ||
| 16632 | else | ||
| 16633 | eval gl_cv_type_${gltype}_suffix=no | ||
| 16634 | eval result=\$gl_cv_type_${gltype}_signed | ||
| 16635 | if test "$result" = yes; then | ||
| 16636 | glsufu= | ||
| 16637 | else | ||
| 16638 | glsufu=u | ||
| 16639 | fi | ||
| 16640 | for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do | ||
| 16641 | case $glsuf in | ||
| 16642 | '') gltype1='int';; | ||
| 16643 | l) gltype1='long int';; | ||
| 16644 | ll) gltype1='long long int';; | ||
| 16645 | i64) gltype1='__int64';; | ||
| 16646 | u) gltype1='unsigned int';; | ||
| 16647 | ul) gltype1='unsigned long int';; | ||
| 16648 | ull) gltype1='unsigned long long int';; | ||
| 16649 | ui64)gltype1='unsigned __int64';; | ||
| 16650 | esac | ||
| 16651 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
| 16652 | /* end confdefs.h. */ | ||
| 16653 | |||
| 16654 | /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be | ||
| 16655 | included before <wchar.h>. */ | ||
| 16656 | #include <stddef.h> | ||
| 16657 | #include <signal.h> | ||
| 16658 | #if HAVE_WCHAR_H | ||
| 16659 | # include <stdio.h> | ||
| 16660 | # include <time.h> | ||
| 16661 | # include <wchar.h> | ||
| 16662 | #endif | ||
| 16663 | |||
| 16664 | extern $gltype foo; | ||
| 16665 | extern $gltype1 foo; | ||
| 16666 | int | ||
| 16667 | main () | ||
| 16668 | { | ||
| 16669 | |||
| 16670 | ; | ||
| 16671 | return 0; | ||
| 16672 | } | ||
| 16673 | _ACEOF | ||
| 16674 | if ac_fn_c_try_compile "$LINENO"; then : | ||
| 16675 | eval gl_cv_type_${gltype}_suffix=\$glsuf | ||
| 16676 | fi | ||
| 16677 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
| 16678 | eval result=\$gl_cv_type_${gltype}_suffix | ||
| 16679 | test "$result" != no && break | ||
| 16680 | done | ||
| 16681 | fi | ||
| 16682 | eval ac_res=\$gl_cv_type_${gltype}_suffix | ||
| 16683 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 | ||
| 16684 | $as_echo "$ac_res" >&6; } | ||
| 16685 | GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` | ||
| 16686 | eval result=\$gl_cv_type_${gltype}_suffix | ||
| 16687 | test "$result" = no && result= | ||
| 16688 | eval ${GLTYPE}_SUFFIX=\$result | ||
| 16689 | cat >>confdefs.h <<_ACEOF | ||
| 16690 | #define ${GLTYPE}_SUFFIX $result | ||
| 16691 | _ACEOF | ||
| 16692 | |||
| 16693 | done | ||
| 16694 | |||
| 16695 | |||
| 16696 | |||
| 16697 | STDINT_H=stdint.h | ||
| 16698 | fi | ||
| 16699 | |||
| 16700 | |||
| 15427 | # Code from module stdlib: | 16701 | # Code from module stdlib: |
| 15428 | 16702 | ||
| 15429 | 16703 | ||
| @@ -17861,6 +19135,7 @@ if test -z "${GL_COND_LIBTOOL_TRUE}" && test -z "${GL_COND_LIBTOOL_FALSE}"; then | |||
| 17861 | Usually this means the macro was only invoked conditionally." "$LINENO" 5 | 19135 | Usually this means the macro was only invoked conditionally." "$LINENO" 5 |
| 17862 | fi | 19136 | fi |
| 17863 | 19137 | ||
| 19138 | |||
| 17864 | gl_libobjs= | 19139 | gl_libobjs= |
| 17865 | gl_ltlibobjs= | 19140 | gl_ltlibobjs= |
| 17866 | if test -n "$gl_LIBOBJS"; then | 19141 | if test -n "$gl_LIBOBJS"; then |
diff --git a/lib/Makefile.in b/lib/Makefile.in index 82e23967865..0029719373a 100644 --- a/lib/Makefile.in +++ b/lib/Makefile.in | |||
| @@ -24,7 +24,7 @@ | |||
| 24 | # the same distribution terms as the rest of that program. | 24 | # the same distribution terms as the rest of that program. |
| 25 | # | 25 | # |
| 26 | # Generated by gnulib-tool. | 26 | # Generated by gnulib-tool. |
| 27 | # Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=. --makefile-name=gnulib.mk --no-libtool --macro-prefix=gl --no-vc-files dtoastr getloadavg getopt-gnu ignore-value mktime strftime | 27 | # Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=. --makefile-name=gnulib.mk --no-libtool --macro-prefix=gl --no-vc-files crypto/md5 dtoastr getloadavg getopt-gnu ignore-value mktime strftime |
| 28 | 28 | ||
| 29 | VPATH = @srcdir@ | 29 | VPATH = @srcdir@ |
| 30 | pkgdatadir = $(datadir)/@PACKAGE@ | 30 | pkgdatadir = $(datadir)/@PACKAGE@ |
| @@ -53,13 +53,14 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ | |||
| 53 | $(top_srcdir)/m4/c-strtod.m4 $(top_srcdir)/m4/extensions.m4 \ | 53 | $(top_srcdir)/m4/c-strtod.m4 $(top_srcdir)/m4/extensions.m4 \ |
| 54 | $(top_srcdir)/m4/getloadavg.m4 $(top_srcdir)/m4/getopt.m4 \ | 54 | $(top_srcdir)/m4/getloadavg.m4 $(top_srcdir)/m4/getopt.m4 \ |
| 55 | $(top_srcdir)/m4/gl-comp.m4 $(top_srcdir)/m4/gnulib-common.m4 \ | 55 | $(top_srcdir)/m4/gl-comp.m4 $(top_srcdir)/m4/gnulib-common.m4 \ |
| 56 | $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/mktime.m4 \ | 56 | $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/longlong.m4 \ |
| 57 | $(top_srcdir)/m4/md5.m4 $(top_srcdir)/m4/mktime.m4 \ | ||
| 57 | $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/stdbool.m4 \ | 58 | $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/stdbool.m4 \ |
| 58 | $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \ | 59 | $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \ |
| 59 | $(top_srcdir)/m4/strftime.m4 $(top_srcdir)/m4/time_h.m4 \ | 60 | $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strftime.m4 \ |
| 60 | $(top_srcdir)/m4/time_r.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \ | 61 | $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \ |
| 61 | $(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/wchar_t.m4 \ | 62 | $(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/unistd_h.m4 \ |
| 62 | $(top_srcdir)/configure.in | 63 | $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/configure.in |
| 63 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ | 64 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
| 64 | $(ACLOCAL_M4) | 65 | $(ACLOCAL_M4) |
| 65 | mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs | 66 | mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs |
| @@ -95,6 +96,11 @@ AUTOCONF = @AUTOCONF@ | |||
| 95 | AUTOHEADER = @AUTOHEADER@ | 96 | AUTOHEADER = @AUTOHEADER@ |
| 96 | AUTOMAKE = @AUTOMAKE@ | 97 | AUTOMAKE = @AUTOMAKE@ |
| 97 | AWK = @AWK@ | 98 | AWK = @AWK@ |
| 99 | BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ | ||
| 100 | BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ | ||
| 101 | BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ | ||
| 102 | BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ | ||
| 103 | BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ | ||
| 98 | BLESSMAIL_TARGET = @BLESSMAIL_TARGET@ | 104 | BLESSMAIL_TARGET = @BLESSMAIL_TARGET@ |
| 99 | CANNOT_DUMP = @CANNOT_DUMP@ | 105 | CANNOT_DUMP = @CANNOT_DUMP@ |
| 100 | CC = @CC@ | 106 | CC = @CC@ |
| @@ -244,9 +250,11 @@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ | |||
| 244 | HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ | 250 | HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ |
| 245 | HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ | 251 | HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ |
| 246 | HAVE_GRANTPT = @HAVE_GRANTPT@ | 252 | HAVE_GRANTPT = @HAVE_GRANTPT@ |
| 253 | HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ | ||
| 247 | HAVE_LCHOWN = @HAVE_LCHOWN@ | 254 | HAVE_LCHOWN = @HAVE_LCHOWN@ |
| 248 | HAVE_LINK = @HAVE_LINK@ | 255 | HAVE_LINK = @HAVE_LINK@ |
| 249 | HAVE_LINKAT = @HAVE_LINKAT@ | 256 | HAVE_LINKAT = @HAVE_LINKAT@ |
| 257 | HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ | ||
| 250 | HAVE_MAKEINFO = @HAVE_MAKEINFO@ | 258 | HAVE_MAKEINFO = @HAVE_MAKEINFO@ |
| 251 | HAVE_MKDTEMP = @HAVE_MKDTEMP@ | 259 | HAVE_MKDTEMP = @HAVE_MKDTEMP@ |
| 252 | HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ | 260 | HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ |
| @@ -267,7 +275,11 @@ HAVE_READLINKAT = @HAVE_READLINKAT@ | |||
| 267 | HAVE_REALPATH = @HAVE_REALPATH@ | 275 | HAVE_REALPATH = @HAVE_REALPATH@ |
| 268 | HAVE_RPMATCH = @HAVE_RPMATCH@ | 276 | HAVE_RPMATCH = @HAVE_RPMATCH@ |
| 269 | HAVE_SETENV = @HAVE_SETENV@ | 277 | HAVE_SETENV = @HAVE_SETENV@ |
| 278 | HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ | ||
| 279 | HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ | ||
| 280 | HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ | ||
| 270 | HAVE_SLEEP = @HAVE_SLEEP@ | 281 | HAVE_SLEEP = @HAVE_SLEEP@ |
| 282 | HAVE_STDINT_H = @HAVE_STDINT_H@ | ||
| 271 | HAVE_STRPTIME = @HAVE_STRPTIME@ | 283 | HAVE_STRPTIME = @HAVE_STRPTIME@ |
| 272 | HAVE_STRTOD = @HAVE_STRTOD@ | 284 | HAVE_STRTOD = @HAVE_STRTOD@ |
| 273 | HAVE_STRTOLL = @HAVE_STRTOLL@ | 285 | HAVE_STRTOLL = @HAVE_STRTOLL@ |
| @@ -275,13 +287,18 @@ HAVE_STRTOULL = @HAVE_STRTOULL@ | |||
| 275 | HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ | 287 | HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ |
| 276 | HAVE_SYMLINK = @HAVE_SYMLINK@ | 288 | HAVE_SYMLINK = @HAVE_SYMLINK@ |
| 277 | HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ | 289 | HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ |
| 290 | HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ | ||
| 291 | HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ | ||
| 278 | HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ | 292 | HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ |
| 279 | HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ | 293 | HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ |
| 294 | HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ | ||
| 280 | HAVE_TIMEGM = @HAVE_TIMEGM@ | 295 | HAVE_TIMEGM = @HAVE_TIMEGM@ |
| 281 | HAVE_UNISTD_H = @HAVE_UNISTD_H@ | 296 | HAVE_UNISTD_H = @HAVE_UNISTD_H@ |
| 282 | HAVE_UNLINKAT = @HAVE_UNLINKAT@ | 297 | HAVE_UNLINKAT = @HAVE_UNLINKAT@ |
| 283 | HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ | 298 | HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ |
| 299 | HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ | ||
| 284 | HAVE_USLEEP = @HAVE_USLEEP@ | 300 | HAVE_USLEEP = @HAVE_USLEEP@ |
| 301 | HAVE_WCHAR_H = @HAVE_WCHAR_H@ | ||
| 285 | HAVE_WCHAR_T = @HAVE_WCHAR_T@ | 302 | HAVE_WCHAR_T = @HAVE_WCHAR_T@ |
| 286 | HAVE_XSERVER = @HAVE_XSERVER@ | 303 | HAVE_XSERVER = @HAVE_XSERVER@ |
| 287 | HAVE__BOOL = @HAVE__BOOL@ | 304 | HAVE__BOOL = @HAVE__BOOL@ |
| @@ -350,11 +367,13 @@ MOUSE_SUPPORT = @MOUSE_SUPPORT@ | |||
| 350 | M_FILE = @M_FILE@ | 367 | M_FILE = @M_FILE@ |
| 351 | NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ | 368 | NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ |
| 352 | NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ | 369 | NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ |
| 370 | NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ | ||
| 353 | NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ | 371 | NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ |
| 354 | NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ | 372 | NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ |
| 355 | NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ | 373 | NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ |
| 356 | NEXT_GETOPT_H = @NEXT_GETOPT_H@ | 374 | NEXT_GETOPT_H = @NEXT_GETOPT_H@ |
| 357 | NEXT_STDDEF_H = @NEXT_STDDEF_H@ | 375 | NEXT_STDDEF_H = @NEXT_STDDEF_H@ |
| 376 | NEXT_STDINT_H = @NEXT_STDINT_H@ | ||
| 358 | NEXT_STDLIB_H = @NEXT_STDLIB_H@ | 377 | NEXT_STDLIB_H = @NEXT_STDLIB_H@ |
| 359 | NEXT_TIME_H = @NEXT_TIME_H@ | 378 | NEXT_TIME_H = @NEXT_TIME_H@ |
| 360 | NEXT_UNISTD_H = @NEXT_UNISTD_H@ | 379 | NEXT_UNISTD_H = @NEXT_UNISTD_H@ |
| @@ -381,6 +400,7 @@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ | |||
| 381 | PRE_ALLOC_OBJ = @PRE_ALLOC_OBJ@ | 400 | PRE_ALLOC_OBJ = @PRE_ALLOC_OBJ@ |
| 382 | PROFILING_CFLAGS = @PROFILING_CFLAGS@ | 401 | PROFILING_CFLAGS = @PROFILING_CFLAGS@ |
| 383 | PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ | 402 | PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ |
| 403 | PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ | ||
| 384 | RALLOC_OBJ = @RALLOC_OBJ@ | 404 | RALLOC_OBJ = @RALLOC_OBJ@ |
| 385 | RANLIB = @RANLIB@ | 405 | RANLIB = @RANLIB@ |
| 386 | REPLACE_CALLOC = @REPLACE_CALLOC@ | 406 | REPLACE_CALLOC = @REPLACE_CALLOC@ |
| @@ -427,9 +447,12 @@ RSVG_CFLAGS = @RSVG_CFLAGS@ | |||
| 427 | RSVG_LIBS = @RSVG_LIBS@ | 447 | RSVG_LIBS = @RSVG_LIBS@ |
| 428 | SET_MAKE = @SET_MAKE@ | 448 | SET_MAKE = @SET_MAKE@ |
| 429 | SHELL = @SHELL@ | 449 | SHELL = @SHELL@ |
| 450 | SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ | ||
| 451 | SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ | ||
| 430 | START_FILES = @START_FILES@ | 452 | START_FILES = @START_FILES@ |
| 431 | STDBOOL_H = @STDBOOL_H@ | 453 | STDBOOL_H = @STDBOOL_H@ |
| 432 | STDDEF_H = @STDDEF_H@ | 454 | STDDEF_H = @STDDEF_H@ |
| 455 | STDINT_H = @STDINT_H@ | ||
| 433 | STRIP = @STRIP@ | 456 | STRIP = @STRIP@ |
| 434 | SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ | 457 | SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ |
| 435 | S_FILE = @S_FILE@ | 458 | S_FILE = @S_FILE@ |
| @@ -443,8 +466,10 @@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ | |||
| 443 | UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ | 466 | UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ |
| 444 | VERSION = @VERSION@ | 467 | VERSION = @VERSION@ |
| 445 | VMLIMIT_OBJ = @VMLIMIT_OBJ@ | 468 | VMLIMIT_OBJ = @VMLIMIT_OBJ@ |
| 469 | WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ | ||
| 446 | WIDGET_OBJ = @WIDGET_OBJ@ | 470 | WIDGET_OBJ = @WIDGET_OBJ@ |
| 447 | WINDOW_SUPPORT = @WINDOW_SUPPORT@ | 471 | WINDOW_SUPPORT = @WINDOW_SUPPORT@ |
| 472 | WINT_T_SUFFIX = @WINT_T_SUFFIX@ | ||
| 448 | XFT_CFLAGS = @XFT_CFLAGS@ | 473 | XFT_CFLAGS = @XFT_CFLAGS@ |
| 449 | XFT_LIBS = @XFT_LIBS@ | 474 | XFT_LIBS = @XFT_LIBS@ |
| 450 | XMENU_OBJ = @XMENU_OBJ@ | 475 | XMENU_OBJ = @XMENU_OBJ@ |
| @@ -534,23 +559,25 @@ x_default_search_path = @x_default_search_path@ | |||
| 534 | # present in all Makefile.am that need it. This is ensured by the applicability | 559 | # present in all Makefile.am that need it. This is ensured by the applicability |
| 535 | # 'all' defined above. | 560 | # 'all' defined above. |
| 536 | BUILT_SOURCES = arg-nonnull.h c++defs.h $(GETOPT_H) $(STDBOOL_H) \ | 561 | BUILT_SOURCES = arg-nonnull.h c++defs.h $(GETOPT_H) $(STDBOOL_H) \ |
| 537 | $(STDDEF_H) stdlib.h time.h unistd.h warn-on-use.h | 562 | $(STDDEF_H) $(STDINT_H) stdlib.h time.h unistd.h warn-on-use.h |
| 538 | EXTRA_DIST = $(top_srcdir)/./arg-nonnull.h $(top_srcdir)/./c++defs.h \ | 563 | EXTRA_DIST = $(top_srcdir)/./arg-nonnull.h $(top_srcdir)/./c++defs.h \ |
| 539 | ftoastr.c ftoastr.h getloadavg.c getopt.c getopt.in.h \ | 564 | md5.c md5.h ftoastr.c ftoastr.h getloadavg.c getopt.c \ |
| 540 | getopt1.c getopt_int.h intprops.h mktime-internal.h mktime.c \ | 565 | getopt.in.h getopt1.c getopt_int.h intprops.h \ |
| 541 | stdbool.in.h stddef.in.h stdlib.in.h strftime.c strftime.h \ | 566 | mktime-internal.h mktime.c stdbool.in.h stddef.in.h \ |
| 542 | time.in.h time_r.c unistd.in.h $(top_srcdir)/./warn-on-use.h | 567 | stdint.in.h stdlib.in.h strftime.c strftime.h time.in.h \ |
| 568 | time_r.c unistd.in.h $(top_srcdir)/./warn-on-use.h | ||
| 543 | MOSTLYCLEANFILES = core *.stackdump arg-nonnull.h arg-nonnull.h-t \ | 569 | MOSTLYCLEANFILES = core *.stackdump arg-nonnull.h arg-nonnull.h-t \ |
| 544 | c++defs.h c++defs.h-t getopt.h getopt.h-t stdbool.h \ | 570 | c++defs.h c++defs.h-t getopt.h getopt.h-t stdbool.h \ |
| 545 | stdbool.h-t stddef.h stddef.h-t stdlib.h stdlib.h-t time.h \ | 571 | stdbool.h-t stddef.h stddef.h-t stdint.h stdint.h-t stdlib.h \ |
| 546 | time.h-t unistd.h unistd.h-t warn-on-use.h warn-on-use.h-t | 572 | stdlib.h-t time.h time.h-t unistd.h unistd.h-t warn-on-use.h \ |
| 573 | warn-on-use.h-t | ||
| 547 | noinst_LIBRARIES = libgnu.a | 574 | noinst_LIBRARIES = libgnu.a |
| 548 | DEFAULT_INCLUDES = -I. -I../src -I$(top_srcdir)/src | 575 | DEFAULT_INCLUDES = -I. -I../src -I$(top_srcdir)/src |
| 549 | libgnu_a_SOURCES = dtoastr.c gettext.h ignore-value.h | 576 | libgnu_a_SOURCES = dtoastr.c gettext.h ignore-value.h |
| 550 | libgnu_a_LIBADD = $(gl_LIBOBJS) | 577 | libgnu_a_LIBADD = $(gl_LIBOBJS) |
| 551 | libgnu_a_DEPENDENCIES = $(gl_LIBOBJS) | 578 | libgnu_a_DEPENDENCIES = $(gl_LIBOBJS) |
| 552 | EXTRA_libgnu_a_SOURCES = ftoastr.c getloadavg.c getopt.c getopt1.c \ | 579 | EXTRA_libgnu_a_SOURCES = md5.c ftoastr.c getloadavg.c getopt.c \ |
| 553 | mktime.c strftime.c time_r.c | 580 | getopt1.c mktime.c strftime.c time_r.c |
| 554 | ARG_NONNULL_H = arg-nonnull.h | 581 | ARG_NONNULL_H = arg-nonnull.h |
| 555 | CXXDEFS_H = c++defs.h | 582 | CXXDEFS_H = c++defs.h |
| 556 | WARN_ON_USE_H = warn-on-use.h | 583 | WARN_ON_USE_H = warn-on-use.h |
| @@ -608,6 +635,7 @@ distclean-compile: | |||
| 608 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getloadavg.Po@am__quote@ | 635 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getloadavg.Po@am__quote@ |
| 609 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@ | 636 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@ |
| 610 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Po@am__quote@ | 637 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Po@am__quote@ |
| 638 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5.Po@am__quote@ | ||
| 611 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mktime.Po@am__quote@ | 639 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mktime.Po@am__quote@ |
| 612 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strftime.Po@am__quote@ | 640 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strftime.Po@am__quote@ |
| 613 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/time_r.Po@am__quote@ | 641 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/time_r.Po@am__quote@ |
| @@ -882,6 +910,41 @@ stddef.h: stddef.in.h | |||
| 882 | } > $@-t && \ | 910 | } > $@-t && \ |
| 883 | mv $@-t $@ | 911 | mv $@-t $@ |
| 884 | 912 | ||
| 913 | # We need the following in order to create <stdint.h> when the system | ||
| 914 | # doesn't have one that works with the given compiler. | ||
| 915 | stdint.h: stdint.in.h | ||
| 916 | $(AM_V_GEN)rm -f $@-t $@ && \ | ||
| 917 | { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ | ||
| 918 | sed -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \ | ||
| 919 | -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ | ||
| 920 | -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ | ||
| 921 | -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ | ||
| 922 | -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \ | ||
| 923 | -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \ | ||
| 924 | -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ | ||
| 925 | -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \ | ||
| 926 | -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \ | ||
| 927 | -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \ | ||
| 928 | -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \ | ||
| 929 | -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \ | ||
| 930 | -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ | ||
| 931 | -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \ | ||
| 932 | -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \ | ||
| 933 | -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \ | ||
| 934 | -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \ | ||
| 935 | -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \ | ||
| 936 | -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \ | ||
| 937 | -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \ | ||
| 938 | -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \ | ||
| 939 | -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \ | ||
| 940 | -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \ | ||
| 941 | -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \ | ||
| 942 | -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \ | ||
| 943 | -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \ | ||
| 944 | < $(srcdir)/stdint.in.h; \ | ||
| 945 | } > $@-t && \ | ||
| 946 | mv $@-t $@ | ||
| 947 | |||
| 885 | # We need the following in order to create <stdlib.h> when the system | 948 | # We need the following in order to create <stdlib.h> when the system |
| 886 | # doesn't have one that works with the given compiler. | 949 | # doesn't have one that works with the given compiler. |
| 887 | stdlib.h: stdlib.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) | 950 | stdlib.h: stdlib.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) |
diff --git a/lib/gnulib.mk b/lib/gnulib.mk index 0e7263a002b..3e93e12d9bf 100644 --- a/lib/gnulib.mk +++ b/lib/gnulib.mk | |||
| @@ -9,7 +9,7 @@ | |||
| 9 | # the same distribution terms as the rest of that program. | 9 | # the same distribution terms as the rest of that program. |
| 10 | # | 10 | # |
| 11 | # Generated by gnulib-tool. | 11 | # Generated by gnulib-tool. |
| 12 | # Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=. --makefile-name=gnulib.mk --no-libtool --macro-prefix=gl --no-vc-files dtoastr getloadavg getopt-gnu ignore-value mktime strftime | 12 | # Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=. --makefile-name=gnulib.mk --no-libtool --macro-prefix=gl --no-vc-files crypto/md5 dtoastr getloadavg getopt-gnu ignore-value mktime strftime |
| 13 | 13 | ||
| 14 | 14 | ||
| 15 | MOSTLYCLEANFILES += core *.stackdump | 15 | MOSTLYCLEANFILES += core *.stackdump |
| @@ -69,6 +69,15 @@ EXTRA_DIST += $(top_srcdir)/./c++defs.h | |||
| 69 | 69 | ||
| 70 | ## end gnulib module c++defs | 70 | ## end gnulib module c++defs |
| 71 | 71 | ||
| 72 | ## begin gnulib module crypto/md5 | ||
| 73 | |||
| 74 | |||
| 75 | EXTRA_DIST += md5.c md5.h | ||
| 76 | |||
| 77 | EXTRA_libgnu_a_SOURCES += md5.c | ||
| 78 | |||
| 79 | ## end gnulib module crypto/md5 | ||
| 80 | |||
| 72 | ## begin gnulib module dtoastr | 81 | ## begin gnulib module dtoastr |
| 73 | 82 | ||
| 74 | libgnu_a_SOURCES += dtoastr.c | 83 | libgnu_a_SOURCES += dtoastr.c |
| @@ -184,6 +193,50 @@ EXTRA_DIST += stddef.in.h | |||
| 184 | 193 | ||
| 185 | ## end gnulib module stddef | 194 | ## end gnulib module stddef |
| 186 | 195 | ||
| 196 | ## begin gnulib module stdint | ||
| 197 | |||
| 198 | BUILT_SOURCES += $(STDINT_H) | ||
| 199 | |||
| 200 | # We need the following in order to create <stdint.h> when the system | ||
| 201 | # doesn't have one that works with the given compiler. | ||
| 202 | stdint.h: stdint.in.h | ||
| 203 | $(AM_V_GEN)rm -f $@-t $@ && \ | ||
| 204 | { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ | ||
| 205 | sed -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \ | ||
| 206 | -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ | ||
| 207 | -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ | ||
| 208 | -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ | ||
| 209 | -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \ | ||
| 210 | -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \ | ||
| 211 | -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ | ||
| 212 | -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \ | ||
| 213 | -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \ | ||
| 214 | -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \ | ||
| 215 | -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \ | ||
| 216 | -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \ | ||
| 217 | -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ | ||
| 218 | -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \ | ||
| 219 | -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \ | ||
| 220 | -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \ | ||
| 221 | -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \ | ||
| 222 | -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \ | ||
| 223 | -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \ | ||
| 224 | -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \ | ||
| 225 | -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \ | ||
| 226 | -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \ | ||
| 227 | -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \ | ||
| 228 | -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \ | ||
| 229 | -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \ | ||
| 230 | -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \ | ||
| 231 | < $(srcdir)/stdint.in.h; \ | ||
| 232 | } > $@-t && \ | ||
| 233 | mv $@-t $@ | ||
| 234 | MOSTLYCLEANFILES += stdint.h stdint.h-t | ||
| 235 | |||
| 236 | EXTRA_DIST += stdint.in.h | ||
| 237 | |||
| 238 | ## end gnulib module stdint | ||
| 239 | |||
| 187 | ## begin gnulib module stdlib | 240 | ## begin gnulib module stdlib |
| 188 | 241 | ||
| 189 | BUILT_SOURCES += stdlib.h | 242 | BUILT_SOURCES += stdlib.h |
diff --git a/lib/md5.c b/lib/md5.c new file mode 100644 index 00000000000..b7fad633364 --- /dev/null +++ b/lib/md5.c | |||
| @@ -0,0 +1,462 @@ | |||
| 1 | /* Functions to compute MD5 message digest of files or memory blocks. | ||
| 2 | according to the definition of MD5 in RFC 1321 from April 1992. | ||
| 3 | Copyright (C) 1995-1997, 1999-2001, 2005-2006, 2008-2011 Free Software | ||
| 4 | Foundation, Inc. | ||
| 5 | This file is part of the GNU C Library. | ||
| 6 | |||
| 7 | This program is free software; you can redistribute it and/or modify it | ||
| 8 | under the terms of the GNU General Public License as published by the | ||
| 9 | Free Software Foundation; either version 3, or (at your option) any | ||
| 10 | later version. | ||
| 11 | |||
| 12 | This program is distributed in the hope that it will be useful, | ||
| 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 15 | GNU General Public License for more details. | ||
| 16 | |||
| 17 | You should have received a copy of the GNU General Public License | ||
| 18 | along with this program; if not, write to the Free Software Foundation, | ||
| 19 | Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ | ||
| 20 | |||
| 21 | /* Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. */ | ||
| 22 | |||
| 23 | #include <config.h> | ||
| 24 | |||
| 25 | #include "md5.h" | ||
| 26 | |||
| 27 | #include <stddef.h> | ||
| 28 | #include <stdlib.h> | ||
| 29 | #include <string.h> | ||
| 30 | #include <sys/types.h> | ||
| 31 | |||
| 32 | #if USE_UNLOCKED_IO | ||
| 33 | # include "unlocked-io.h" | ||
| 34 | #endif | ||
| 35 | |||
| 36 | #ifdef _LIBC | ||
| 37 | # include <endian.h> | ||
| 38 | # if __BYTE_ORDER == __BIG_ENDIAN | ||
| 39 | # define WORDS_BIGENDIAN 1 | ||
| 40 | # endif | ||
| 41 | /* We need to keep the namespace clean so define the MD5 function | ||
| 42 | protected using leading __ . */ | ||
| 43 | # define md5_init_ctx __md5_init_ctx | ||
| 44 | # define md5_process_block __md5_process_block | ||
| 45 | # define md5_process_bytes __md5_process_bytes | ||
| 46 | # define md5_finish_ctx __md5_finish_ctx | ||
| 47 | # define md5_read_ctx __md5_read_ctx | ||
| 48 | # define md5_stream __md5_stream | ||
| 49 | # define md5_buffer __md5_buffer | ||
| 50 | #endif | ||
| 51 | |||
| 52 | #ifdef WORDS_BIGENDIAN | ||
| 53 | # define SWAP(n) \ | ||
| 54 | (((n) << 24) | (((n) & 0xff00) << 8) | (((n) >> 8) & 0xff00) | ((n) >> 24)) | ||
| 55 | #else | ||
| 56 | # define SWAP(n) (n) | ||
| 57 | #endif | ||
| 58 | |||
| 59 | #define BLOCKSIZE 32768 | ||
| 60 | #if BLOCKSIZE % 64 != 0 | ||
| 61 | # error "invalid BLOCKSIZE" | ||
| 62 | #endif | ||
| 63 | |||
| 64 | /* This array contains the bytes used to pad the buffer to the next | ||
| 65 | 64-byte boundary. (RFC 1321, 3.1: Step 1) */ | ||
| 66 | static const unsigned char fillbuf[64] = { 0x80, 0 /* , 0, 0, ... */ }; | ||
| 67 | |||
| 68 | |||
| 69 | /* Initialize structure containing state of computation. | ||
| 70 | (RFC 1321, 3.3: Step 3) */ | ||
| 71 | void | ||
| 72 | md5_init_ctx (struct md5_ctx *ctx) | ||
| 73 | { | ||
| 74 | ctx->A = 0x67452301; | ||
| 75 | ctx->B = 0xefcdab89; | ||
| 76 | ctx->C = 0x98badcfe; | ||
| 77 | ctx->D = 0x10325476; | ||
| 78 | |||
| 79 | ctx->total[0] = ctx->total[1] = 0; | ||
| 80 | ctx->buflen = 0; | ||
| 81 | } | ||
| 82 | |||
| 83 | /* Copy the 4 byte value from v into the memory location pointed to by *cp, | ||
| 84 | If your architecture allows unaligned access this is equivalent to | ||
| 85 | * (uint32_t *) cp = v */ | ||
| 86 | static inline void | ||
| 87 | set_uint32 (char *cp, uint32_t v) | ||
| 88 | { | ||
| 89 | memcpy (cp, &v, sizeof v); | ||
| 90 | } | ||
| 91 | |||
| 92 | /* Put result from CTX in first 16 bytes following RESBUF. The result | ||
| 93 | must be in little endian byte order. */ | ||
| 94 | void * | ||
| 95 | md5_read_ctx (const struct md5_ctx *ctx, void *resbuf) | ||
| 96 | { | ||
| 97 | char *r = resbuf; | ||
| 98 | set_uint32 (r + 0 * sizeof ctx->A, SWAP (ctx->A)); | ||
| 99 | set_uint32 (r + 1 * sizeof ctx->B, SWAP (ctx->B)); | ||
| 100 | set_uint32 (r + 2 * sizeof ctx->C, SWAP (ctx->C)); | ||
| 101 | set_uint32 (r + 3 * sizeof ctx->D, SWAP (ctx->D)); | ||
| 102 | |||
| 103 | return resbuf; | ||
| 104 | } | ||
| 105 | |||
| 106 | /* Process the remaining bytes in the internal buffer and the usual | ||
| 107 | prolog according to the standard and write the result to RESBUF. */ | ||
| 108 | void * | ||
| 109 | md5_finish_ctx (struct md5_ctx *ctx, void *resbuf) | ||
| 110 | { | ||
| 111 | /* Take yet unprocessed bytes into account. */ | ||
| 112 | uint32_t bytes = ctx->buflen; | ||
| 113 | size_t size = (bytes < 56) ? 64 / 4 : 64 * 2 / 4; | ||
| 114 | |||
| 115 | /* Now count remaining bytes. */ | ||
| 116 | ctx->total[0] += bytes; | ||
| 117 | if (ctx->total[0] < bytes) | ||
| 118 | ++ctx->total[1]; | ||
| 119 | |||
| 120 | /* Put the 64-bit file length in *bits* at the end of the buffer. */ | ||
| 121 | ctx->buffer[size - 2] = SWAP (ctx->total[0] << 3); | ||
| 122 | ctx->buffer[size - 1] = SWAP ((ctx->total[1] << 3) | (ctx->total[0] >> 29)); | ||
| 123 | |||
| 124 | memcpy (&((char *) ctx->buffer)[bytes], fillbuf, (size - 2) * 4 - bytes); | ||
| 125 | |||
| 126 | /* Process last bytes. */ | ||
| 127 | md5_process_block (ctx->buffer, size * 4, ctx); | ||
| 128 | |||
| 129 | return md5_read_ctx (ctx, resbuf); | ||
| 130 | } | ||
| 131 | |||
| 132 | /* Compute MD5 message digest for bytes read from STREAM. The | ||
| 133 | resulting message digest number will be written into the 16 bytes | ||
| 134 | beginning at RESBLOCK. */ | ||
| 135 | int | ||
| 136 | md5_stream (FILE *stream, void *resblock) | ||
| 137 | { | ||
| 138 | struct md5_ctx ctx; | ||
| 139 | size_t sum; | ||
| 140 | |||
| 141 | char *buffer = malloc (BLOCKSIZE + 72); | ||
| 142 | if (!buffer) | ||
| 143 | return 1; | ||
| 144 | |||
| 145 | /* Initialize the computation context. */ | ||
| 146 | md5_init_ctx (&ctx); | ||
| 147 | |||
| 148 | /* Iterate over full file contents. */ | ||
| 149 | while (1) | ||
| 150 | { | ||
| 151 | /* We read the file in blocks of BLOCKSIZE bytes. One call of the | ||
| 152 | computation function processes the whole buffer so that with the | ||
| 153 | next round of the loop another block can be read. */ | ||
| 154 | size_t n; | ||
| 155 | sum = 0; | ||
| 156 | |||
| 157 | /* Read block. Take care for partial reads. */ | ||
| 158 | while (1) | ||
| 159 | { | ||
| 160 | n = fread (buffer + sum, 1, BLOCKSIZE - sum, stream); | ||
| 161 | |||
| 162 | sum += n; | ||
| 163 | |||
| 164 | if (sum == BLOCKSIZE) | ||
| 165 | break; | ||
| 166 | |||
| 167 | if (n == 0) | ||
| 168 | { | ||
| 169 | /* Check for the error flag IFF N == 0, so that we don't | ||
| 170 | exit the loop after a partial read due to e.g., EAGAIN | ||
| 171 | or EWOULDBLOCK. */ | ||
| 172 | if (ferror (stream)) | ||
| 173 | { | ||
| 174 | free (buffer); | ||
| 175 | return 1; | ||
| 176 | } | ||
| 177 | goto process_partial_block; | ||
| 178 | } | ||
| 179 | |||
| 180 | /* We've read at least one byte, so ignore errors. But always | ||
| 181 | check for EOF, since feof may be true even though N > 0. | ||
| 182 | Otherwise, we could end up calling fread after EOF. */ | ||
| 183 | if (feof (stream)) | ||
| 184 | goto process_partial_block; | ||
| 185 | } | ||
| 186 | |||
| 187 | /* Process buffer with BLOCKSIZE bytes. Note that | ||
| 188 | BLOCKSIZE % 64 == 0 | ||
| 189 | */ | ||
| 190 | md5_process_block (buffer, BLOCKSIZE, &ctx); | ||
| 191 | } | ||
| 192 | |||
| 193 | process_partial_block: | ||
| 194 | |||
| 195 | /* Process any remaining bytes. */ | ||
| 196 | if (sum > 0) | ||
| 197 | md5_process_bytes (buffer, sum, &ctx); | ||
| 198 | |||
| 199 | /* Construct result in desired memory. */ | ||
| 200 | md5_finish_ctx (&ctx, resblock); | ||
| 201 | free (buffer); | ||
| 202 | return 0; | ||
| 203 | } | ||
| 204 | |||
| 205 | /* Compute MD5 message digest for LEN bytes beginning at BUFFER. The | ||
| 206 | result is always in little endian byte order, so that a byte-wise | ||
| 207 | output yields to the wanted ASCII representation of the message | ||
| 208 | digest. */ | ||
| 209 | void * | ||
| 210 | md5_buffer (const char *buffer, size_t len, void *resblock) | ||
| 211 | { | ||
| 212 | struct md5_ctx ctx; | ||
| 213 | |||
| 214 | /* Initialize the computation context. */ | ||
| 215 | md5_init_ctx (&ctx); | ||
| 216 | |||
| 217 | /* Process whole buffer but last len % 64 bytes. */ | ||
| 218 | md5_process_bytes (buffer, len, &ctx); | ||
| 219 | |||
| 220 | /* Put result in desired memory area. */ | ||
| 221 | return md5_finish_ctx (&ctx, resblock); | ||
| 222 | } | ||
| 223 | |||
| 224 | |||
| 225 | void | ||
| 226 | md5_process_bytes (const void *buffer, size_t len, struct md5_ctx *ctx) | ||
| 227 | { | ||
| 228 | /* When we already have some bits in our internal buffer concatenate | ||
| 229 | both inputs first. */ | ||
| 230 | if (ctx->buflen != 0) | ||
| 231 | { | ||
| 232 | size_t left_over = ctx->buflen; | ||
| 233 | size_t add = 128 - left_over > len ? len : 128 - left_over; | ||
| 234 | |||
| 235 | memcpy (&((char *) ctx->buffer)[left_over], buffer, add); | ||
| 236 | ctx->buflen += add; | ||
| 237 | |||
| 238 | if (ctx->buflen > 64) | ||
| 239 | { | ||
| 240 | md5_process_block (ctx->buffer, ctx->buflen & ~63, ctx); | ||
| 241 | |||
| 242 | ctx->buflen &= 63; | ||
| 243 | /* The regions in the following copy operation cannot overlap. */ | ||
| 244 | memcpy (ctx->buffer, | ||
| 245 | &((char *) ctx->buffer)[(left_over + add) & ~63], | ||
| 246 | ctx->buflen); | ||
| 247 | } | ||
| 248 | |||
| 249 | buffer = (const char *) buffer + add; | ||
| 250 | len -= add; | ||
| 251 | } | ||
| 252 | |||
| 253 | /* Process available complete blocks. */ | ||
| 254 | if (len >= 64) | ||
| 255 | { | ||
| 256 | #if !_STRING_ARCH_unaligned | ||
| 257 | # define alignof(type) offsetof (struct { char c; type x; }, x) | ||
| 258 | # define UNALIGNED_P(p) (((size_t) p) % alignof (uint32_t) != 0) | ||
| 259 | if (UNALIGNED_P (buffer)) | ||
| 260 | while (len > 64) | ||
| 261 | { | ||
| 262 | md5_process_block (memcpy (ctx->buffer, buffer, 64), 64, ctx); | ||
| 263 | buffer = (const char *) buffer + 64; | ||
| 264 | len -= 64; | ||
| 265 | } | ||
| 266 | else | ||
| 267 | #endif | ||
| 268 | { | ||
| 269 | md5_process_block (buffer, len & ~63, ctx); | ||
| 270 | buffer = (const char *) buffer + (len & ~63); | ||
| 271 | len &= 63; | ||
| 272 | } | ||
| 273 | } | ||
| 274 | |||
| 275 | /* Move remaining bytes in internal buffer. */ | ||
| 276 | if (len > 0) | ||
| 277 | { | ||
| 278 | size_t left_over = ctx->buflen; | ||
| 279 | |||
| 280 | memcpy (&((char *) ctx->buffer)[left_over], buffer, len); | ||
| 281 | left_over += len; | ||
| 282 | if (left_over >= 64) | ||
| 283 | { | ||
| 284 | md5_process_block (ctx->buffer, 64, ctx); | ||
| 285 | left_over -= 64; | ||
| 286 | memcpy (ctx->buffer, &ctx->buffer[16], left_over); | ||
| 287 | } | ||
| 288 | ctx->buflen = left_over; | ||
| 289 | } | ||
| 290 | } | ||
| 291 | |||
| 292 | |||
| 293 | /* These are the four functions used in the four steps of the MD5 algorithm | ||
| 294 | and defined in the RFC 1321. The first function is a little bit optimized | ||
| 295 | (as found in Colin Plumbs public domain implementation). */ | ||
| 296 | /* #define FF(b, c, d) ((b & c) | (~b & d)) */ | ||
| 297 | #define FF(b, c, d) (d ^ (b & (c ^ d))) | ||
| 298 | #define FG(b, c, d) FF (d, b, c) | ||
| 299 | #define FH(b, c, d) (b ^ c ^ d) | ||
| 300 | #define FI(b, c, d) (c ^ (b | ~d)) | ||
| 301 | |||
| 302 | /* Process LEN bytes of BUFFER, accumulating context into CTX. | ||
| 303 | It is assumed that LEN % 64 == 0. */ | ||
| 304 | |||
| 305 | void | ||
| 306 | md5_process_block (const void *buffer, size_t len, struct md5_ctx *ctx) | ||
| 307 | { | ||
| 308 | uint32_t correct_words[16]; | ||
| 309 | const uint32_t *words = buffer; | ||
| 310 | size_t nwords = len / sizeof (uint32_t); | ||
| 311 | const uint32_t *endp = words + nwords; | ||
| 312 | uint32_t A = ctx->A; | ||
| 313 | uint32_t B = ctx->B; | ||
| 314 | uint32_t C = ctx->C; | ||
| 315 | uint32_t D = ctx->D; | ||
| 316 | |||
| 317 | /* First increment the byte count. RFC 1321 specifies the possible | ||
| 318 | length of the file up to 2^64 bits. Here we only compute the | ||
| 319 | number of bytes. Do a double word increment. */ | ||
| 320 | ctx->total[0] += len; | ||
| 321 | if (ctx->total[0] < len) | ||
| 322 | ++ctx->total[1]; | ||
| 323 | |||
| 324 | /* Process all bytes in the buffer with 64 bytes in each round of | ||
| 325 | the loop. */ | ||
| 326 | while (words < endp) | ||
| 327 | { | ||
| 328 | uint32_t *cwp = correct_words; | ||
| 329 | uint32_t A_save = A; | ||
| 330 | uint32_t B_save = B; | ||
| 331 | uint32_t C_save = C; | ||
| 332 | uint32_t D_save = D; | ||
| 333 | |||
| 334 | /* First round: using the given function, the context and a constant | ||
| 335 | the next context is computed. Because the algorithms processing | ||
| 336 | unit is a 32-bit word and it is determined to work on words in | ||
| 337 | little endian byte order we perhaps have to change the byte order | ||
| 338 | before the computation. To reduce the work for the next steps | ||
| 339 | we store the swapped words in the array CORRECT_WORDS. */ | ||
| 340 | |||
| 341 | #define OP(a, b, c, d, s, T) \ | ||
| 342 | do \ | ||
| 343 | { \ | ||
| 344 | a += FF (b, c, d) + (*cwp++ = SWAP (*words)) + T; \ | ||
| 345 | ++words; \ | ||
| 346 | CYCLIC (a, s); \ | ||
| 347 | a += b; \ | ||
| 348 | } \ | ||
| 349 | while (0) | ||
| 350 | |||
| 351 | /* It is unfortunate that C does not provide an operator for | ||
| 352 | cyclic rotation. Hope the C compiler is smart enough. */ | ||
| 353 | #define CYCLIC(w, s) (w = (w << s) | (w >> (32 - s))) | ||
| 354 | |||
| 355 | /* Before we start, one word to the strange constants. | ||
| 356 | They are defined in RFC 1321 as | ||
| 357 | |||
| 358 | T[i] = (int) (4294967296.0 * fabs (sin (i))), i=1..64 | ||
| 359 | |||
| 360 | Here is an equivalent invocation using Perl: | ||
| 361 | |||
| 362 | perl -e 'foreach(1..64){printf "0x%08x\n", int (4294967296 * abs (sin $_))}' | ||
| 363 | */ | ||
| 364 | |||
| 365 | /* Round 1. */ | ||
| 366 | OP (A, B, C, D, 7, 0xd76aa478); | ||
| 367 | OP (D, A, B, C, 12, 0xe8c7b756); | ||
| 368 | OP (C, D, A, B, 17, 0x242070db); | ||
| 369 | OP (B, C, D, A, 22, 0xc1bdceee); | ||
| 370 | OP (A, B, C, D, 7, 0xf57c0faf); | ||
| 371 | OP (D, A, B, C, 12, 0x4787c62a); | ||
| 372 | OP (C, D, A, B, 17, 0xa8304613); | ||
| 373 | OP (B, C, D, A, 22, 0xfd469501); | ||
| 374 | OP (A, B, C, D, 7, 0x698098d8); | ||
| 375 | OP (D, A, B, C, 12, 0x8b44f7af); | ||
| 376 | OP (C, D, A, B, 17, 0xffff5bb1); | ||
| 377 | OP (B, C, D, A, 22, 0x895cd7be); | ||
| 378 | OP (A, B, C, D, 7, 0x6b901122); | ||
| 379 | OP (D, A, B, C, 12, 0xfd987193); | ||
| 380 | OP (C, D, A, B, 17, 0xa679438e); | ||
| 381 | OP (B, C, D, A, 22, 0x49b40821); | ||
| 382 | |||
| 383 | /* For the second to fourth round we have the possibly swapped words | ||
| 384 | in CORRECT_WORDS. Redefine the macro to take an additional first | ||
| 385 | argument specifying the function to use. */ | ||
| 386 | #undef OP | ||
| 387 | #define OP(f, a, b, c, d, k, s, T) \ | ||
| 388 | do \ | ||
| 389 | { \ | ||
| 390 | a += f (b, c, d) + correct_words[k] + T; \ | ||
| 391 | CYCLIC (a, s); \ | ||
| 392 | a += b; \ | ||
| 393 | } \ | ||
| 394 | while (0) | ||
| 395 | |||
| 396 | /* Round 2. */ | ||
| 397 | OP (FG, A, B, C, D, 1, 5, 0xf61e2562); | ||
| 398 | OP (FG, D, A, B, C, 6, 9, 0xc040b340); | ||
| 399 | OP (FG, C, D, A, B, 11, 14, 0x265e5a51); | ||
| 400 | OP (FG, B, C, D, A, 0, 20, 0xe9b6c7aa); | ||
| 401 | OP (FG, A, B, C, D, 5, 5, 0xd62f105d); | ||
| 402 | OP (FG, D, A, B, C, 10, 9, 0x02441453); | ||
| 403 | OP (FG, C, D, A, B, 15, 14, 0xd8a1e681); | ||
| 404 | OP (FG, B, C, D, A, 4, 20, 0xe7d3fbc8); | ||
| 405 | OP (FG, A, B, C, D, 9, 5, 0x21e1cde6); | ||
| 406 | OP (FG, D, A, B, C, 14, 9, 0xc33707d6); | ||
| 407 | OP (FG, C, D, A, B, 3, 14, 0xf4d50d87); | ||
| 408 | OP (FG, B, C, D, A, 8, 20, 0x455a14ed); | ||
| 409 | OP (FG, A, B, C, D, 13, 5, 0xa9e3e905); | ||
| 410 | OP (FG, D, A, B, C, 2, 9, 0xfcefa3f8); | ||
| 411 | OP (FG, C, D, A, B, 7, 14, 0x676f02d9); | ||
| 412 | OP (FG, B, C, D, A, 12, 20, 0x8d2a4c8a); | ||
| 413 | |||
| 414 | /* Round 3. */ | ||
| 415 | OP (FH, A, B, C, D, 5, 4, 0xfffa3942); | ||
| 416 | OP (FH, D, A, B, C, 8, 11, 0x8771f681); | ||
| 417 | OP (FH, C, D, A, B, 11, 16, 0x6d9d6122); | ||
| 418 | OP (FH, B, C, D, A, 14, 23, 0xfde5380c); | ||
| 419 | OP (FH, A, B, C, D, 1, 4, 0xa4beea44); | ||
| 420 | OP (FH, D, A, B, C, 4, 11, 0x4bdecfa9); | ||
| 421 | OP (FH, C, D, A, B, 7, 16, 0xf6bb4b60); | ||
| 422 | OP (FH, B, C, D, A, 10, 23, 0xbebfbc70); | ||
| 423 | OP (FH, A, B, C, D, 13, 4, 0x289b7ec6); | ||
| 424 | OP (FH, D, A, B, C, 0, 11, 0xeaa127fa); | ||
| 425 | OP (FH, C, D, A, B, 3, 16, 0xd4ef3085); | ||
| 426 | OP (FH, B, C, D, A, 6, 23, 0x04881d05); | ||
| 427 | OP (FH, A, B, C, D, 9, 4, 0xd9d4d039); | ||
| 428 | OP (FH, D, A, B, C, 12, 11, 0xe6db99e5); | ||
| 429 | OP (FH, C, D, A, B, 15, 16, 0x1fa27cf8); | ||
| 430 | OP (FH, B, C, D, A, 2, 23, 0xc4ac5665); | ||
| 431 | |||
| 432 | /* Round 4. */ | ||
| 433 | OP (FI, A, B, C, D, 0, 6, 0xf4292244); | ||
| 434 | OP (FI, D, A, B, C, 7, 10, 0x432aff97); | ||
| 435 | OP (FI, C, D, A, B, 14, 15, 0xab9423a7); | ||
| 436 | OP (FI, B, C, D, A, 5, 21, 0xfc93a039); | ||
| 437 | OP (FI, A, B, C, D, 12, 6, 0x655b59c3); | ||
| 438 | OP (FI, D, A, B, C, 3, 10, 0x8f0ccc92); | ||
| 439 | OP (FI, C, D, A, B, 10, 15, 0xffeff47d); | ||
| 440 | OP (FI, B, C, D, A, 1, 21, 0x85845dd1); | ||
| 441 | OP (FI, A, B, C, D, 8, 6, 0x6fa87e4f); | ||
| 442 | OP (FI, D, A, B, C, 15, 10, 0xfe2ce6e0); | ||
| 443 | OP (FI, C, D, A, B, 6, 15, 0xa3014314); | ||
| 444 | OP (FI, B, C, D, A, 13, 21, 0x4e0811a1); | ||
| 445 | OP (FI, A, B, C, D, 4, 6, 0xf7537e82); | ||
| 446 | OP (FI, D, A, B, C, 11, 10, 0xbd3af235); | ||
| 447 | OP (FI, C, D, A, B, 2, 15, 0x2ad7d2bb); | ||
| 448 | OP (FI, B, C, D, A, 9, 21, 0xeb86d391); | ||
| 449 | |||
| 450 | /* Add the starting values of the context. */ | ||
| 451 | A += A_save; | ||
| 452 | B += B_save; | ||
| 453 | C += C_save; | ||
| 454 | D += D_save; | ||
| 455 | } | ||
| 456 | |||
| 457 | /* Put checksum in context given as argument. */ | ||
| 458 | ctx->A = A; | ||
| 459 | ctx->B = B; | ||
| 460 | ctx->C = C; | ||
| 461 | ctx->D = D; | ||
| 462 | } | ||
diff --git a/lib/md5.h b/lib/md5.h new file mode 100644 index 00000000000..53e60480292 --- /dev/null +++ b/lib/md5.h | |||
| @@ -0,0 +1,126 @@ | |||
| 1 | /* Declaration of functions and data types used for MD5 sum computing | ||
| 2 | library functions. | ||
| 3 | Copyright (C) 1995-1997, 1999-2001, 2004-2006, 2008-2011 Free Software | ||
| 4 | Foundation, Inc. | ||
| 5 | This file is part of the GNU C Library. | ||
| 6 | |||
| 7 | This program is free software; you can redistribute it and/or modify it | ||
| 8 | under the terms of the GNU General Public License as published by the | ||
| 9 | Free Software Foundation; either version 3, or (at your option) any | ||
| 10 | later version. | ||
| 11 | |||
| 12 | This program is distributed in the hope that it will be useful, | ||
| 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 15 | GNU General Public License for more details. | ||
| 16 | |||
| 17 | You should have received a copy of the GNU General Public License | ||
| 18 | along with this program; if not, write to the Free Software Foundation, | ||
| 19 | Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ | ||
| 20 | |||
| 21 | #ifndef _MD5_H | ||
| 22 | #define _MD5_H 1 | ||
| 23 | |||
| 24 | #include <stdio.h> | ||
| 25 | #include <stdint.h> | ||
| 26 | |||
| 27 | #define MD5_DIGEST_SIZE 16 | ||
| 28 | #define MD5_BLOCK_SIZE 64 | ||
| 29 | |||
| 30 | #ifndef __GNUC_PREREQ | ||
| 31 | # if defined __GNUC__ && defined __GNUC_MINOR__ | ||
| 32 | # define __GNUC_PREREQ(maj, min) \ | ||
| 33 | ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) | ||
| 34 | # else | ||
| 35 | # define __GNUC_PREREQ(maj, min) 0 | ||
| 36 | # endif | ||
| 37 | #endif | ||
| 38 | |||
| 39 | #ifndef __THROW | ||
| 40 | # if defined __cplusplus && __GNUC_PREREQ (2,8) | ||
| 41 | # define __THROW throw () | ||
| 42 | # else | ||
| 43 | # define __THROW | ||
| 44 | # endif | ||
| 45 | #endif | ||
| 46 | |||
| 47 | #ifndef _LIBC | ||
| 48 | # define __md5_buffer md5_buffer | ||
| 49 | # define __md5_finish_ctx md5_finish_ctx | ||
| 50 | # define __md5_init_ctx md5_init_ctx | ||
| 51 | # define __md5_process_block md5_process_block | ||
| 52 | # define __md5_process_bytes md5_process_bytes | ||
| 53 | # define __md5_read_ctx md5_read_ctx | ||
| 54 | # define __md5_stream md5_stream | ||
| 55 | #endif | ||
| 56 | |||
| 57 | # ifdef __cplusplus | ||
| 58 | extern "C" { | ||
| 59 | # endif | ||
| 60 | |||
| 61 | /* Structure to save state of computation between the single steps. */ | ||
| 62 | struct md5_ctx | ||
| 63 | { | ||
| 64 | uint32_t A; | ||
| 65 | uint32_t B; | ||
| 66 | uint32_t C; | ||
| 67 | uint32_t D; | ||
| 68 | |||
| 69 | uint32_t total[2]; | ||
| 70 | uint32_t buflen; | ||
| 71 | uint32_t buffer[32]; | ||
| 72 | }; | ||
| 73 | |||
| 74 | /* | ||
| 75 | * The following three functions are build up the low level used in | ||
| 76 | * the functions `md5_stream' and `md5_buffer'. | ||
| 77 | */ | ||
| 78 | |||
| 79 | /* Initialize structure containing state of computation. | ||
| 80 | (RFC 1321, 3.3: Step 3) */ | ||
| 81 | extern void __md5_init_ctx (struct md5_ctx *ctx) __THROW; | ||
| 82 | |||
| 83 | /* Starting with the result of former calls of this function (or the | ||
| 84 | initialization function update the context for the next LEN bytes | ||
| 85 | starting at BUFFER. | ||
| 86 | It is necessary that LEN is a multiple of 64!!! */ | ||
| 87 | extern void __md5_process_block (const void *buffer, size_t len, | ||
| 88 | struct md5_ctx *ctx) __THROW; | ||
| 89 | |||
| 90 | /* Starting with the result of former calls of this function (or the | ||
| 91 | initialization function update the context for the next LEN bytes | ||
| 92 | starting at BUFFER. | ||
| 93 | It is NOT required that LEN is a multiple of 64. */ | ||
| 94 | extern void __md5_process_bytes (const void *buffer, size_t len, | ||
| 95 | struct md5_ctx *ctx) __THROW; | ||
| 96 | |||
| 97 | /* Process the remaining bytes in the buffer and put result from CTX | ||
| 98 | in first 16 bytes following RESBUF. The result is always in little | ||
| 99 | endian byte order, so that a byte-wise output yields to the wanted | ||
| 100 | ASCII representation of the message digest. */ | ||
| 101 | extern void *__md5_finish_ctx (struct md5_ctx *ctx, void *resbuf) __THROW; | ||
| 102 | |||
| 103 | |||
| 104 | /* Put result from CTX in first 16 bytes following RESBUF. The result is | ||
| 105 | always in little endian byte order, so that a byte-wise output yields | ||
| 106 | to the wanted ASCII representation of the message digest. */ | ||
| 107 | extern void *__md5_read_ctx (const struct md5_ctx *ctx, void *resbuf) __THROW; | ||
| 108 | |||
| 109 | |||
| 110 | /* Compute MD5 message digest for bytes read from STREAM. The | ||
| 111 | resulting message digest number will be written into the 16 bytes | ||
| 112 | beginning at RESBLOCK. */ | ||
| 113 | extern int __md5_stream (FILE *stream, void *resblock) __THROW; | ||
| 114 | |||
| 115 | /* Compute MD5 message digest for LEN bytes beginning at BUFFER. The | ||
| 116 | result is always in little endian byte order, so that a byte-wise | ||
| 117 | output yields to the wanted ASCII representation of the message | ||
| 118 | digest. */ | ||
| 119 | extern void *__md5_buffer (const char *buffer, size_t len, | ||
| 120 | void *resblock) __THROW; | ||
| 121 | |||
| 122 | # ifdef __cplusplus | ||
| 123 | } | ||
| 124 | # endif | ||
| 125 | |||
| 126 | #endif /* md5.h */ | ||
diff --git a/lib/stdint.in.h b/lib/stdint.in.h new file mode 100644 index 00000000000..b32227bb04c --- /dev/null +++ b/lib/stdint.in.h | |||
| @@ -0,0 +1,592 @@ | |||
| 1 | /* Copyright (C) 2001-2002, 2004-2011 Free Software Foundation, Inc. | ||
| 2 | Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood. | ||
| 3 | This file is part of gnulib. | ||
| 4 | |||
| 5 | This program is free software; you can redistribute it and/or modify | ||
| 6 | it under the terms of the GNU General Public License as published by | ||
| 7 | the Free Software Foundation; either version 3, or (at your option) | ||
| 8 | any later version. | ||
| 9 | |||
| 10 | This program is distributed in the hope that it will be useful, | ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 13 | GNU General Public License for more details. | ||
| 14 | |||
| 15 | You should have received a copy of the GNU General Public License | ||
| 16 | along with this program; if not, write to the Free Software Foundation, | ||
| 17 | Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ | ||
| 18 | |||
| 19 | /* | ||
| 20 | * ISO C 99 <stdint.h> for platforms that lack it. | ||
| 21 | * <http://www.opengroup.org/susv3xbd/stdint.h.html> | ||
| 22 | */ | ||
| 23 | |||
| 24 | #ifndef _GL_STDINT_H | ||
| 25 | |||
| 26 | #if __GNUC__ >= 3 | ||
| 27 | @PRAGMA_SYSTEM_HEADER@ | ||
| 28 | #endif | ||
| 29 | @PRAGMA_COLUMNS@ | ||
| 30 | |||
| 31 | /* When including a system file that in turn includes <inttypes.h>, | ||
| 32 | use the system <inttypes.h>, not our substitute. This avoids | ||
| 33 | problems with (for example) VMS, whose <sys/bitypes.h> includes | ||
| 34 | <inttypes.h>. */ | ||
| 35 | #define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H | ||
| 36 | |||
| 37 | /* Get those types that are already defined in other system include | ||
| 38 | files, so that we can "#define int8_t signed char" below without | ||
| 39 | worrying about a later system include file containing a "typedef | ||
| 40 | signed char int8_t;" that will get messed up by our macro. Our | ||
| 41 | macros should all be consistent with the system versions, except | ||
| 42 | for the "fast" types and macros, which we recommend against using | ||
| 43 | in public interfaces due to compiler differences. */ | ||
| 44 | |||
| 45 | #if @HAVE_STDINT_H@ | ||
| 46 | # if defined __sgi && ! defined __c99 | ||
| 47 | /* Bypass IRIX's <stdint.h> if in C89 mode, since it merely annoys users | ||
| 48 | with "This header file is to be used only for c99 mode compilations" | ||
| 49 | diagnostics. */ | ||
| 50 | # define __STDINT_H__ | ||
| 51 | # endif | ||
| 52 | /* Other systems may have an incomplete or buggy <stdint.h>. | ||
| 53 | Include it before <inttypes.h>, since any "#include <stdint.h>" | ||
| 54 | in <inttypes.h> would reinclude us, skipping our contents because | ||
| 55 | _GL_STDINT_H is defined. | ||
| 56 | The include_next requires a split double-inclusion guard. */ | ||
| 57 | # @INCLUDE_NEXT@ @NEXT_STDINT_H@ | ||
| 58 | #endif | ||
| 59 | |||
| 60 | #if ! defined _GL_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H | ||
| 61 | #define _GL_STDINT_H | ||
| 62 | |||
| 63 | /* <sys/types.h> defines some of the stdint.h types as well, on glibc, | ||
| 64 | IRIX 6.5, and OpenBSD 3.8 (via <machine/types.h>). | ||
| 65 | AIX 5.2 <sys/types.h> isn't needed and causes troubles. | ||
| 66 | MacOS X 10.4.6 <sys/types.h> includes <stdint.h> (which is us), but | ||
| 67 | relies on the system <stdint.h> definitions, so include | ||
| 68 | <sys/types.h> after @NEXT_STDINT_H@. */ | ||
| 69 | #if @HAVE_SYS_TYPES_H@ && ! defined _AIX | ||
| 70 | # include <sys/types.h> | ||
| 71 | #endif | ||
| 72 | |||
| 73 | /* Get LONG_MIN, LONG_MAX, ULONG_MAX. */ | ||
| 74 | #include <limits.h> | ||
| 75 | |||
| 76 | #if @HAVE_INTTYPES_H@ | ||
| 77 | /* In OpenBSD 3.8, <inttypes.h> includes <machine/types.h>, which defines | ||
| 78 | int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__. | ||
| 79 | <inttypes.h> also defines intptr_t and uintptr_t. */ | ||
| 80 | # include <inttypes.h> | ||
| 81 | #elif @HAVE_SYS_INTTYPES_H@ | ||
| 82 | /* Solaris 7 <sys/inttypes.h> has the types except the *_fast*_t types, and | ||
| 83 | the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN, PTRDIFF_MAX. */ | ||
| 84 | # include <sys/inttypes.h> | ||
| 85 | #endif | ||
| 86 | |||
| 87 | #if @HAVE_SYS_BITYPES_H@ && ! defined __BIT_TYPES_DEFINED__ | ||
| 88 | /* Linux libc4 >= 4.6.7 and libc5 have a <sys/bitypes.h> that defines | ||
| 89 | int{8,16,32,64}_t and __BIT_TYPES_DEFINED__. In libc5 >= 5.2.2 it is | ||
| 90 | included by <sys/types.h>. */ | ||
| 91 | # include <sys/bitypes.h> | ||
| 92 | #endif | ||
| 93 | |||
| 94 | #undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H | ||
| 95 | |||
| 96 | /* Minimum and maximum values for a integer type under the usual assumption. | ||
| 97 | Return an unspecified value if BITS == 0, adding a check to pacify | ||
| 98 | picky compilers. */ | ||
| 99 | |||
| 100 | #define _STDINT_MIN(signed, bits, zero) \ | ||
| 101 | ((signed) ? (- ((zero) + 1) << ((bits) ? (bits) - 1 : 0)) : (zero)) | ||
| 102 | |||
| 103 | #define _STDINT_MAX(signed, bits, zero) \ | ||
| 104 | ((signed) \ | ||
| 105 | ? ~ _STDINT_MIN (signed, bits, zero) \ | ||
| 106 | : /* The expression for the unsigned case. The subtraction of (signed) \ | ||
| 107 | is a nop in the unsigned case and avoids "signed integer overflow" \ | ||
| 108 | warnings in the signed case. */ \ | ||
| 109 | ((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1) | ||
| 110 | |||
| 111 | #if !GNULIB_defined_stdint_types | ||
| 112 | |||
| 113 | /* 7.18.1.1. Exact-width integer types */ | ||
| 114 | |||
| 115 | /* Here we assume a standard architecture where the hardware integer | ||
| 116 | types have 8, 16, 32, optionally 64 bits. */ | ||
| 117 | |||
| 118 | #undef int8_t | ||
| 119 | #undef uint8_t | ||
| 120 | typedef signed char gl_int8_t; | ||
| 121 | typedef unsigned char gl_uint8_t; | ||
| 122 | #define int8_t gl_int8_t | ||
| 123 | #define uint8_t gl_uint8_t | ||
| 124 | |||
| 125 | #undef int16_t | ||
| 126 | #undef uint16_t | ||
| 127 | typedef short int gl_int16_t; | ||
| 128 | typedef unsigned short int gl_uint16_t; | ||
| 129 | #define int16_t gl_int16_t | ||
| 130 | #define uint16_t gl_uint16_t | ||
| 131 | |||
| 132 | #undef int32_t | ||
| 133 | #undef uint32_t | ||
| 134 | typedef int gl_int32_t; | ||
| 135 | typedef unsigned int gl_uint32_t; | ||
| 136 | #define int32_t gl_int32_t | ||
| 137 | #define uint32_t gl_uint32_t | ||
| 138 | |||
| 139 | /* If the system defines INT64_MAX, assume int64_t works. That way, | ||
| 140 | if the underlying platform defines int64_t to be a 64-bit long long | ||
| 141 | int, the code below won't mistakenly define it to be a 64-bit long | ||
| 142 | int, which would mess up C++ name mangling. We must use #ifdef | ||
| 143 | rather than #if, to avoid an error with HP-UX 10.20 cc. */ | ||
| 144 | |||
| 145 | #ifdef INT64_MAX | ||
| 146 | # define GL_INT64_T | ||
| 147 | #else | ||
| 148 | /* Do not undefine int64_t if gnulib is not being used with 64-bit | ||
| 149 | types, since otherwise it breaks platforms like Tandem/NSK. */ | ||
| 150 | # if LONG_MAX >> 31 >> 31 == 1 | ||
| 151 | # undef int64_t | ||
| 152 | typedef long int gl_int64_t; | ||
| 153 | # define int64_t gl_int64_t | ||
| 154 | # define GL_INT64_T | ||
| 155 | # elif defined _MSC_VER | ||
| 156 | # undef int64_t | ||
| 157 | typedef __int64 gl_int64_t; | ||
| 158 | # define int64_t gl_int64_t | ||
| 159 | # define GL_INT64_T | ||
| 160 | # elif @HAVE_LONG_LONG_INT@ | ||
| 161 | # undef int64_t | ||
| 162 | typedef long long int gl_int64_t; | ||
| 163 | # define int64_t gl_int64_t | ||
| 164 | # define GL_INT64_T | ||
| 165 | # endif | ||
| 166 | #endif | ||
| 167 | |||
| 168 | #ifdef UINT64_MAX | ||
| 169 | # define GL_UINT64_T | ||
| 170 | #else | ||
| 171 | # if ULONG_MAX >> 31 >> 31 >> 1 == 1 | ||
| 172 | # undef uint64_t | ||
| 173 | typedef unsigned long int gl_uint64_t; | ||
| 174 | # define uint64_t gl_uint64_t | ||
| 175 | # define GL_UINT64_T | ||
| 176 | # elif defined _MSC_VER | ||
| 177 | # undef uint64_t | ||
| 178 | typedef unsigned __int64 gl_uint64_t; | ||
| 179 | # define uint64_t gl_uint64_t | ||
| 180 | # define GL_UINT64_T | ||
| 181 | # elif @HAVE_UNSIGNED_LONG_LONG_INT@ | ||
| 182 | # undef uint64_t | ||
| 183 | typedef unsigned long long int gl_uint64_t; | ||
| 184 | # define uint64_t gl_uint64_t | ||
| 185 | # define GL_UINT64_T | ||
| 186 | # endif | ||
| 187 | #endif | ||
| 188 | |||
| 189 | /* Avoid collision with Solaris 2.5.1 <pthread.h> etc. */ | ||
| 190 | #define _UINT8_T | ||
| 191 | #define _UINT32_T | ||
| 192 | #define _UINT64_T | ||
| 193 | |||
| 194 | |||
| 195 | /* 7.18.1.2. Minimum-width integer types */ | ||
| 196 | |||
| 197 | /* Here we assume a standard architecture where the hardware integer | ||
| 198 | types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types | ||
| 199 | are the same as the corresponding N_t types. */ | ||
| 200 | |||
| 201 | #undef int_least8_t | ||
| 202 | #undef uint_least8_t | ||
| 203 | #undef int_least16_t | ||
| 204 | #undef uint_least16_t | ||
| 205 | #undef int_least32_t | ||
| 206 | #undef uint_least32_t | ||
| 207 | #undef int_least64_t | ||
| 208 | #undef uint_least64_t | ||
| 209 | #define int_least8_t int8_t | ||
| 210 | #define uint_least8_t uint8_t | ||
| 211 | #define int_least16_t int16_t | ||
| 212 | #define uint_least16_t uint16_t | ||
| 213 | #define int_least32_t int32_t | ||
| 214 | #define uint_least32_t uint32_t | ||
| 215 | #ifdef GL_INT64_T | ||
| 216 | # define int_least64_t int64_t | ||
| 217 | #endif | ||
| 218 | #ifdef GL_UINT64_T | ||
| 219 | # define uint_least64_t uint64_t | ||
| 220 | #endif | ||
| 221 | |||
| 222 | /* 7.18.1.3. Fastest minimum-width integer types */ | ||
| 223 | |||
| 224 | /* Note: Other <stdint.h> substitutes may define these types differently. | ||
| 225 | It is not recommended to use these types in public header files. */ | ||
| 226 | |||
| 227 | /* Here we assume a standard architecture where the hardware integer | ||
| 228 | types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types | ||
| 229 | are taken from the same list of types. Assume that 'long int' | ||
| 230 | is fast enough for all narrower integers. */ | ||
| 231 | |||
| 232 | #undef int_fast8_t | ||
| 233 | #undef uint_fast8_t | ||
| 234 | #undef int_fast16_t | ||
| 235 | #undef uint_fast16_t | ||
| 236 | #undef int_fast32_t | ||
| 237 | #undef uint_fast32_t | ||
| 238 | #undef int_fast64_t | ||
| 239 | #undef uint_fast64_t | ||
| 240 | typedef long int gl_int_fast8_t; | ||
| 241 | typedef unsigned long int gl_uint_fast8_t; | ||
| 242 | typedef long int gl_int_fast16_t; | ||
| 243 | typedef unsigned long int gl_uint_fast16_t; | ||
| 244 | typedef long int gl_int_fast32_t; | ||
| 245 | typedef unsigned long int gl_uint_fast32_t; | ||
| 246 | #define int_fast8_t gl_int_fast8_t | ||
| 247 | #define uint_fast8_t gl_uint_fast8_t | ||
| 248 | #define int_fast16_t gl_int_fast16_t | ||
| 249 | #define uint_fast16_t gl_uint_fast16_t | ||
| 250 | #define int_fast32_t gl_int_fast32_t | ||
| 251 | #define uint_fast32_t gl_uint_fast32_t | ||
| 252 | #ifdef GL_INT64_T | ||
| 253 | # define int_fast64_t int64_t | ||
| 254 | #endif | ||
| 255 | #ifdef GL_UINT64_T | ||
| 256 | # define uint_fast64_t uint64_t | ||
| 257 | #endif | ||
| 258 | |||
| 259 | /* 7.18.1.4. Integer types capable of holding object pointers */ | ||
| 260 | |||
| 261 | #undef intptr_t | ||
| 262 | #undef uintptr_t | ||
| 263 | typedef long int gl_intptr_t; | ||
| 264 | typedef unsigned long int gl_uintptr_t; | ||
| 265 | #define intptr_t gl_intptr_t | ||
| 266 | #define uintptr_t gl_uintptr_t | ||
| 267 | |||
| 268 | /* 7.18.1.5. Greatest-width integer types */ | ||
| 269 | |||
| 270 | /* Note: These types are compiler dependent. It may be unwise to use them in | ||
| 271 | public header files. */ | ||
| 272 | |||
| 273 | #undef intmax_t | ||
| 274 | #if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 | ||
| 275 | typedef long long int gl_intmax_t; | ||
| 276 | # define intmax_t gl_intmax_t | ||
| 277 | #elif defined GL_INT64_T | ||
| 278 | # define intmax_t int64_t | ||
| 279 | #else | ||
| 280 | typedef long int gl_intmax_t; | ||
| 281 | # define intmax_t gl_intmax_t | ||
| 282 | #endif | ||
| 283 | |||
| 284 | #undef uintmax_t | ||
| 285 | #if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 | ||
| 286 | typedef unsigned long long int gl_uintmax_t; | ||
| 287 | # define uintmax_t gl_uintmax_t | ||
| 288 | #elif defined GL_UINT64_T | ||
| 289 | # define uintmax_t uint64_t | ||
| 290 | #else | ||
| 291 | typedef unsigned long int gl_uintmax_t; | ||
| 292 | # define uintmax_t gl_uintmax_t | ||
| 293 | #endif | ||
| 294 | |||
| 295 | /* Verify that intmax_t and uintmax_t have the same size. Too much code | ||
| 296 | breaks if this is not the case. If this check fails, the reason is likely | ||
| 297 | to be found in the autoconf macros. */ | ||
| 298 | typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t) | ||
| 299 | ? 1 : -1]; | ||
| 300 | |||
| 301 | #define GNULIB_defined_stdint_types 1 | ||
| 302 | #endif /* !GNULIB_defined_stdint_types */ | ||
| 303 | |||
| 304 | /* 7.18.2. Limits of specified-width integer types */ | ||
| 305 | |||
| 306 | #if ! defined __cplusplus || defined __STDC_LIMIT_MACROS | ||
| 307 | |||
| 308 | /* 7.18.2.1. Limits of exact-width integer types */ | ||
| 309 | |||
| 310 | /* Here we assume a standard architecture where the hardware integer | ||
| 311 | types have 8, 16, 32, optionally 64 bits. */ | ||
| 312 | |||
| 313 | #undef INT8_MIN | ||
| 314 | #undef INT8_MAX | ||
| 315 | #undef UINT8_MAX | ||
| 316 | #define INT8_MIN (~ INT8_MAX) | ||
| 317 | #define INT8_MAX 127 | ||
| 318 | #define UINT8_MAX 255 | ||
| 319 | |||
| 320 | #undef INT16_MIN | ||
| 321 | #undef INT16_MAX | ||
| 322 | #undef UINT16_MAX | ||
| 323 | #define INT16_MIN (~ INT16_MAX) | ||
| 324 | #define INT16_MAX 32767 | ||
| 325 | #define UINT16_MAX 65535 | ||
| 326 | |||
| 327 | #undef INT32_MIN | ||
| 328 | #undef INT32_MAX | ||
| 329 | #undef UINT32_MAX | ||
| 330 | #define INT32_MIN (~ INT32_MAX) | ||
| 331 | #define INT32_MAX 2147483647 | ||
| 332 | #define UINT32_MAX 4294967295U | ||
| 333 | |||
| 334 | #if defined GL_INT64_T && ! defined INT64_MAX | ||
| 335 | /* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0 | ||
| 336 | evaluates the latter incorrectly in preprocessor expressions. */ | ||
| 337 | # define INT64_MIN (- INTMAX_C (1) << 63) | ||
| 338 | # define INT64_MAX INTMAX_C (9223372036854775807) | ||
| 339 | #endif | ||
| 340 | |||
| 341 | #if defined GL_UINT64_T && ! defined UINT64_MAX | ||
| 342 | # define UINT64_MAX UINTMAX_C (18446744073709551615) | ||
| 343 | #endif | ||
| 344 | |||
| 345 | /* 7.18.2.2. Limits of minimum-width integer types */ | ||
| 346 | |||
| 347 | /* Here we assume a standard architecture where the hardware integer | ||
| 348 | types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types | ||
| 349 | are the same as the corresponding N_t types. */ | ||
| 350 | |||
| 351 | #undef INT_LEAST8_MIN | ||
| 352 | #undef INT_LEAST8_MAX | ||
| 353 | #undef UINT_LEAST8_MAX | ||
| 354 | #define INT_LEAST8_MIN INT8_MIN | ||
| 355 | #define INT_LEAST8_MAX INT8_MAX | ||
| 356 | #define UINT_LEAST8_MAX UINT8_MAX | ||
| 357 | |||
| 358 | #undef INT_LEAST16_MIN | ||
| 359 | #undef INT_LEAST16_MAX | ||
| 360 | #undef UINT_LEAST16_MAX | ||
| 361 | #define INT_LEAST16_MIN INT16_MIN | ||
| 362 | #define INT_LEAST16_MAX INT16_MAX | ||
| 363 | #define UINT_LEAST16_MAX UINT16_MAX | ||
| 364 | |||
| 365 | #undef INT_LEAST32_MIN | ||
| 366 | #undef INT_LEAST32_MAX | ||
| 367 | #undef UINT_LEAST32_MAX | ||
| 368 | #define INT_LEAST32_MIN INT32_MIN | ||
| 369 | #define INT_LEAST32_MAX INT32_MAX | ||
| 370 | #define UINT_LEAST32_MAX UINT32_MAX | ||
| 371 | |||
| 372 | #undef INT_LEAST64_MIN | ||
| 373 | #undef INT_LEAST64_MAX | ||
| 374 | #ifdef GL_INT64_T | ||
| 375 | # define INT_LEAST64_MIN INT64_MIN | ||
| 376 | # define INT_LEAST64_MAX INT64_MAX | ||
| 377 | #endif | ||
| 378 | |||
| 379 | #undef UINT_LEAST64_MAX | ||
| 380 | #ifdef GL_UINT64_T | ||
| 381 | # define UINT_LEAST64_MAX UINT64_MAX | ||
| 382 | #endif | ||
| 383 | |||
| 384 | /* 7.18.2.3. Limits of fastest minimum-width integer types */ | ||
| 385 | |||
| 386 | /* Here we assume a standard architecture where the hardware integer | ||
| 387 | types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types | ||
| 388 | are taken from the same list of types. */ | ||
| 389 | |||
| 390 | #undef INT_FAST8_MIN | ||
| 391 | #undef INT_FAST8_MAX | ||
| 392 | #undef UINT_FAST8_MAX | ||
| 393 | #define INT_FAST8_MIN LONG_MIN | ||
| 394 | #define INT_FAST8_MAX LONG_MAX | ||
| 395 | #define UINT_FAST8_MAX ULONG_MAX | ||
| 396 | |||
| 397 | #undef INT_FAST16_MIN | ||
| 398 | #undef INT_FAST16_MAX | ||
| 399 | #undef UINT_FAST16_MAX | ||
| 400 | #define INT_FAST16_MIN LONG_MIN | ||
| 401 | #define INT_FAST16_MAX LONG_MAX | ||
| 402 | #define UINT_FAST16_MAX ULONG_MAX | ||
| 403 | |||
| 404 | #undef INT_FAST32_MIN | ||
| 405 | #undef INT_FAST32_MAX | ||
| 406 | #undef UINT_FAST32_MAX | ||
| 407 | #define INT_FAST32_MIN LONG_MIN | ||
| 408 | #define INT_FAST32_MAX LONG_MAX | ||
| 409 | #define UINT_FAST32_MAX ULONG_MAX | ||
| 410 | |||
| 411 | #undef INT_FAST64_MIN | ||
| 412 | #undef INT_FAST64_MAX | ||
| 413 | #ifdef GL_INT64_T | ||
| 414 | # define INT_FAST64_MIN INT64_MIN | ||
| 415 | # define INT_FAST64_MAX INT64_MAX | ||
| 416 | #endif | ||
| 417 | |||
| 418 | #undef UINT_FAST64_MAX | ||
| 419 | #ifdef GL_UINT64_T | ||
| 420 | # define UINT_FAST64_MAX UINT64_MAX | ||
| 421 | #endif | ||
| 422 | |||
| 423 | /* 7.18.2.4. Limits of integer types capable of holding object pointers */ | ||
| 424 | |||
| 425 | #undef INTPTR_MIN | ||
| 426 | #undef INTPTR_MAX | ||
| 427 | #undef UINTPTR_MAX | ||
| 428 | #define INTPTR_MIN LONG_MIN | ||
| 429 | #define INTPTR_MAX LONG_MAX | ||
| 430 | #define UINTPTR_MAX ULONG_MAX | ||
| 431 | |||
| 432 | /* 7.18.2.5. Limits of greatest-width integer types */ | ||
| 433 | |||
| 434 | #undef INTMAX_MIN | ||
| 435 | #undef INTMAX_MAX | ||
| 436 | #ifdef INT64_MAX | ||
| 437 | # define INTMAX_MIN INT64_MIN | ||
| 438 | # define INTMAX_MAX INT64_MAX | ||
| 439 | #else | ||
| 440 | # define INTMAX_MIN INT32_MIN | ||
| 441 | # define INTMAX_MAX INT32_MAX | ||
| 442 | #endif | ||
| 443 | |||
| 444 | #undef UINTMAX_MAX | ||
| 445 | #ifdef UINT64_MAX | ||
| 446 | # define UINTMAX_MAX UINT64_MAX | ||
| 447 | #else | ||
| 448 | # define UINTMAX_MAX UINT32_MAX | ||
| 449 | #endif | ||
| 450 | |||
| 451 | /* 7.18.3. Limits of other integer types */ | ||
| 452 | |||
| 453 | /* ptrdiff_t limits */ | ||
| 454 | #undef PTRDIFF_MIN | ||
| 455 | #undef PTRDIFF_MAX | ||
| 456 | #if @APPLE_UNIVERSAL_BUILD@ | ||
| 457 | # ifdef _LP64 | ||
| 458 | # define PTRDIFF_MIN _STDINT_MIN (1, 64, 0l) | ||
| 459 | # define PTRDIFF_MAX _STDINT_MAX (1, 64, 0l) | ||
| 460 | # else | ||
| 461 | # define PTRDIFF_MIN _STDINT_MIN (1, 32, 0) | ||
| 462 | # define PTRDIFF_MAX _STDINT_MAX (1, 32, 0) | ||
| 463 | # endif | ||
| 464 | #else | ||
| 465 | # define PTRDIFF_MIN \ | ||
| 466 | _STDINT_MIN (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@) | ||
| 467 | # define PTRDIFF_MAX \ | ||
| 468 | _STDINT_MAX (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@) | ||
| 469 | #endif | ||
| 470 | |||
| 471 | /* sig_atomic_t limits */ | ||
| 472 | #undef SIG_ATOMIC_MIN | ||
| 473 | #undef SIG_ATOMIC_MAX | ||
| 474 | #define SIG_ATOMIC_MIN \ | ||
| 475 | _STDINT_MIN (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \ | ||
| 476 | 0@SIG_ATOMIC_T_SUFFIX@) | ||
| 477 | #define SIG_ATOMIC_MAX \ | ||
| 478 | _STDINT_MAX (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \ | ||
| 479 | 0@SIG_ATOMIC_T_SUFFIX@) | ||
| 480 | |||
| 481 | |||
| 482 | /* size_t limit */ | ||
| 483 | #undef SIZE_MAX | ||
| 484 | #if @APPLE_UNIVERSAL_BUILD@ | ||
| 485 | # ifdef _LP64 | ||
| 486 | # define SIZE_MAX _STDINT_MAX (0, 64, 0ul) | ||
| 487 | # else | ||
| 488 | # define SIZE_MAX _STDINT_MAX (0, 32, 0ul) | ||
| 489 | # endif | ||
| 490 | #else | ||
| 491 | # define SIZE_MAX _STDINT_MAX (0, @BITSIZEOF_SIZE_T@, 0@SIZE_T_SUFFIX@) | ||
| 492 | #endif | ||
| 493 | |||
| 494 | /* wchar_t limits */ | ||
| 495 | /* Get WCHAR_MIN, WCHAR_MAX. | ||
| 496 | This include is not on the top, above, because on OSF/1 4.0 we have a | ||
| 497 | sequence of nested includes | ||
| 498 | <wchar.h> -> <stdio.h> -> <getopt.h> -> <stdlib.h>, and the latter includes | ||
| 499 | <stdint.h> and assumes its types are already defined. */ | ||
| 500 | #if @HAVE_WCHAR_H@ && ! (defined WCHAR_MIN && defined WCHAR_MAX) | ||
| 501 | /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be | ||
| 502 | included before <wchar.h>. */ | ||
| 503 | # include <stddef.h> | ||
| 504 | # include <stdio.h> | ||
| 505 | # include <time.h> | ||
| 506 | # define _GL_JUST_INCLUDE_SYSTEM_WCHAR_H | ||
| 507 | # include <wchar.h> | ||
| 508 | # undef _GL_JUST_INCLUDE_SYSTEM_WCHAR_H | ||
| 509 | #endif | ||
| 510 | #undef WCHAR_MIN | ||
| 511 | #undef WCHAR_MAX | ||
| 512 | #define WCHAR_MIN \ | ||
| 513 | _STDINT_MIN (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@) | ||
| 514 | #define WCHAR_MAX \ | ||
| 515 | _STDINT_MAX (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@) | ||
| 516 | |||
| 517 | /* wint_t limits */ | ||
| 518 | #undef WINT_MIN | ||
| 519 | #undef WINT_MAX | ||
| 520 | #define WINT_MIN \ | ||
| 521 | _STDINT_MIN (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) | ||
| 522 | #define WINT_MAX \ | ||
| 523 | _STDINT_MAX (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) | ||
| 524 | |||
| 525 | #endif /* !defined __cplusplus || defined __STDC_LIMIT_MACROS */ | ||
| 526 | |||
| 527 | /* 7.18.4. Macros for integer constants */ | ||
| 528 | |||
| 529 | #if ! defined __cplusplus || defined __STDC_CONSTANT_MACROS | ||
| 530 | |||
| 531 | /* 7.18.4.1. Macros for minimum-width integer constants */ | ||
| 532 | /* According to ISO C 99 Technical Corrigendum 1 */ | ||
| 533 | |||
| 534 | /* Here we assume a standard architecture where the hardware integer | ||
| 535 | types have 8, 16, 32, optionally 64 bits, and int is 32 bits. */ | ||
| 536 | |||
| 537 | #undef INT8_C | ||
| 538 | #undef UINT8_C | ||
| 539 | #define INT8_C(x) x | ||
| 540 | #define UINT8_C(x) x | ||
| 541 | |||
| 542 | #undef INT16_C | ||
| 543 | #undef UINT16_C | ||
| 544 | #define INT16_C(x) x | ||
| 545 | #define UINT16_C(x) x | ||
| 546 | |||
| 547 | #undef INT32_C | ||
| 548 | #undef UINT32_C | ||
| 549 | #define INT32_C(x) x | ||
| 550 | #define UINT32_C(x) x ## U | ||
| 551 | |||
| 552 | #undef INT64_C | ||
| 553 | #undef UINT64_C | ||
| 554 | #if LONG_MAX >> 31 >> 31 == 1 | ||
| 555 | # define INT64_C(x) x##L | ||
| 556 | #elif defined _MSC_VER | ||
| 557 | # define INT64_C(x) x##i64 | ||
| 558 | #elif @HAVE_LONG_LONG_INT@ | ||
| 559 | # define INT64_C(x) x##LL | ||
| 560 | #endif | ||
| 561 | #if ULONG_MAX >> 31 >> 31 >> 1 == 1 | ||
| 562 | # define UINT64_C(x) x##UL | ||
| 563 | #elif defined _MSC_VER | ||
| 564 | # define UINT64_C(x) x##ui64 | ||
| 565 | #elif @HAVE_UNSIGNED_LONG_LONG_INT@ | ||
| 566 | # define UINT64_C(x) x##ULL | ||
| 567 | #endif | ||
| 568 | |||
| 569 | /* 7.18.4.2. Macros for greatest-width integer constants */ | ||
| 570 | |||
| 571 | #undef INTMAX_C | ||
| 572 | #if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 | ||
| 573 | # define INTMAX_C(x) x##LL | ||
| 574 | #elif defined GL_INT64_T | ||
| 575 | # define INTMAX_C(x) INT64_C(x) | ||
| 576 | #else | ||
| 577 | # define INTMAX_C(x) x##L | ||
| 578 | #endif | ||
| 579 | |||
| 580 | #undef UINTMAX_C | ||
| 581 | #if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 | ||
| 582 | # define UINTMAX_C(x) x##ULL | ||
| 583 | #elif defined GL_UINT64_T | ||
| 584 | # define UINTMAX_C(x) UINT64_C(x) | ||
| 585 | #else | ||
| 586 | # define UINTMAX_C(x) x##UL | ||
| 587 | #endif | ||
| 588 | |||
| 589 | #endif /* !defined __cplusplus || defined __STDC_CONSTANT_MACROS */ | ||
| 590 | |||
| 591 | #endif /* _GL_STDINT_H */ | ||
| 592 | #endif /* !defined _GL_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */ | ||
diff --git a/m4/gl-comp.m4 b/m4/gl-comp.m4 index 036b67452c8..43ff36558b5 100644 --- a/m4/gl-comp.m4 +++ b/m4/gl-comp.m4 | |||
| @@ -28,6 +28,7 @@ AC_DEFUN([gl_EARLY], | |||
| 28 | AC_REQUIRE([AC_PROG_RANLIB]) | 28 | AC_REQUIRE([AC_PROG_RANLIB]) |
| 29 | # Code from module arg-nonnull: | 29 | # Code from module arg-nonnull: |
| 30 | # Code from module c++defs: | 30 | # Code from module c++defs: |
| 31 | # Code from module crypto/md5: | ||
| 31 | # Code from module dtoastr: | 32 | # Code from module dtoastr: |
| 32 | # Code from module extensions: | 33 | # Code from module extensions: |
| 33 | AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) | 34 | AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) |
| @@ -42,6 +43,7 @@ AC_DEFUN([gl_EARLY], | |||
| 42 | # Code from module multiarch: | 43 | # Code from module multiarch: |
| 43 | # Code from module stdbool: | 44 | # Code from module stdbool: |
| 44 | # Code from module stddef: | 45 | # Code from module stddef: |
| 46 | # Code from module stdint: | ||
| 45 | # Code from module stdlib: | 47 | # Code from module stdlib: |
| 46 | # Code from module strftime: | 48 | # Code from module strftime: |
| 47 | # Code from module time: | 49 | # Code from module time: |
| @@ -68,6 +70,8 @@ AC_DEFUN([gl_INIT], | |||
| 68 | gl_source_base='lib' | 70 | gl_source_base='lib' |
| 69 | # Code from module arg-nonnull: | 71 | # Code from module arg-nonnull: |
| 70 | # Code from module c++defs: | 72 | # Code from module c++defs: |
| 73 | # Code from module crypto/md5: | ||
| 74 | gl_MD5 | ||
| 71 | # Code from module dtoastr: | 75 | # Code from module dtoastr: |
| 72 | AC_REQUIRE([gl_C99_STRTOLD]) | 76 | AC_REQUIRE([gl_C99_STRTOLD]) |
| 73 | # Code from module extensions: | 77 | # Code from module extensions: |
| @@ -95,6 +99,8 @@ AC_DEFUN([gl_INIT], | |||
| 95 | AM_STDBOOL_H | 99 | AM_STDBOOL_H |
| 96 | # Code from module stddef: | 100 | # Code from module stddef: |
| 97 | gl_STDDEF_H | 101 | gl_STDDEF_H |
| 102 | # Code from module stdint: | ||
| 103 | gl_STDINT_H | ||
| 98 | # Code from module stdlib: | 104 | # Code from module stdlib: |
| 99 | gl_STDLIB_H | 105 | gl_STDLIB_H |
| 100 | # Code from module strftime: | 106 | # Code from module strftime: |
| @@ -261,10 +267,13 @@ AC_DEFUN([gl_FILE_LIST], [ | |||
| 261 | lib/gettext.h | 267 | lib/gettext.h |
| 262 | lib/ignore-value.h | 268 | lib/ignore-value.h |
| 263 | lib/intprops.h | 269 | lib/intprops.h |
| 270 | lib/md5.c | ||
| 271 | lib/md5.h | ||
| 264 | lib/mktime-internal.h | 272 | lib/mktime-internal.h |
| 265 | lib/mktime.c | 273 | lib/mktime.c |
| 266 | lib/stdbool.in.h | 274 | lib/stdbool.in.h |
| 267 | lib/stddef.in.h | 275 | lib/stddef.in.h |
| 276 | lib/stdint.in.h | ||
| 268 | lib/stdlib.in.h | 277 | lib/stdlib.in.h |
| 269 | lib/strftime.c | 278 | lib/strftime.c |
| 270 | lib/strftime.h | 279 | lib/strftime.h |
| @@ -278,10 +287,13 @@ AC_DEFUN([gl_FILE_LIST], [ | |||
| 278 | m4/getopt.m4 | 287 | m4/getopt.m4 |
| 279 | m4/gnulib-common.m4 | 288 | m4/gnulib-common.m4 |
| 280 | m4/include_next.m4 | 289 | m4/include_next.m4 |
| 290 | m4/longlong.m4 | ||
| 291 | m4/md5.m4 | ||
| 281 | m4/mktime.m4 | 292 | m4/mktime.m4 |
| 282 | m4/multiarch.m4 | 293 | m4/multiarch.m4 |
| 283 | m4/stdbool.m4 | 294 | m4/stdbool.m4 |
| 284 | m4/stddef_h.m4 | 295 | m4/stddef_h.m4 |
| 296 | m4/stdint.m4 | ||
| 285 | m4/stdlib_h.m4 | 297 | m4/stdlib_h.m4 |
| 286 | m4/strftime.m4 | 298 | m4/strftime.m4 |
| 287 | m4/time_h.m4 | 299 | m4/time_h.m4 |
diff --git a/m4/longlong.m4 b/m4/longlong.m4 new file mode 100644 index 00000000000..aed816cfa5e --- /dev/null +++ b/m4/longlong.m4 | |||
| @@ -0,0 +1,113 @@ | |||
| 1 | # longlong.m4 serial 16 | ||
| 2 | dnl Copyright (C) 1999-2007, 2009-2011 Free Software Foundation, Inc. | ||
| 3 | dnl This file is free software; the Free Software Foundation | ||
| 4 | dnl gives unlimited permission to copy and/or distribute it, | ||
| 5 | dnl with or without modifications, as long as this notice is preserved. | ||
| 6 | |||
| 7 | dnl From Paul Eggert. | ||
| 8 | |||
| 9 | # Define HAVE_LONG_LONG_INT if 'long long int' works. | ||
| 10 | # This fixes a bug in Autoconf 2.61, and can be faster | ||
| 11 | # than what's in Autoconf 2.62 through 2.68. | ||
| 12 | |||
| 13 | # Note: If the type 'long long int' exists but is only 32 bits large | ||
| 14 | # (as on some very old compilers), HAVE_LONG_LONG_INT will not be | ||
| 15 | # defined. In this case you can treat 'long long int' like 'long int'. | ||
| 16 | |||
| 17 | AC_DEFUN([AC_TYPE_LONG_LONG_INT], | ||
| 18 | [ | ||
| 19 | AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT]) | ||
| 20 | AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int], | ||
| 21 | [ac_cv_type_long_long_int=yes | ||
| 22 | if test "x${ac_cv_prog_cc_c99-no}" = xno; then | ||
| 23 | ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int | ||
| 24 | if test $ac_cv_type_long_long_int = yes; then | ||
| 25 | dnl Catch a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004. | ||
| 26 | dnl If cross compiling, assume the bug is not important, since | ||
| 27 | dnl nobody cross compiles for this platform as far as we know. | ||
| 28 | AC_RUN_IFELSE( | ||
| 29 | [AC_LANG_PROGRAM( | ||
| 30 | [[@%:@include <limits.h> | ||
| 31 | @%:@ifndef LLONG_MAX | ||
| 32 | @%:@ define HALF \ | ||
| 33 | (1LL << (sizeof (long long int) * CHAR_BIT - 2)) | ||
| 34 | @%:@ define LLONG_MAX (HALF - 1 + HALF) | ||
| 35 | @%:@endif]], | ||
| 36 | [[long long int n = 1; | ||
| 37 | int i; | ||
| 38 | for (i = 0; ; i++) | ||
| 39 | { | ||
| 40 | long long int m = n << i; | ||
| 41 | if (m >> i != n) | ||
| 42 | return 1; | ||
| 43 | if (LLONG_MAX / 2 < m) | ||
| 44 | break; | ||
| 45 | } | ||
| 46 | return 0;]])], | ||
| 47 | [], | ||
| 48 | [ac_cv_type_long_long_int=no], | ||
| 49 | [:]) | ||
| 50 | fi | ||
| 51 | fi]) | ||
| 52 | if test $ac_cv_type_long_long_int = yes; then | ||
| 53 | AC_DEFINE([HAVE_LONG_LONG_INT], [1], | ||
| 54 | [Define to 1 if the system has the type `long long int'.]) | ||
| 55 | fi | ||
| 56 | ]) | ||
| 57 | |||
| 58 | # Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works. | ||
| 59 | # This fixes a bug in Autoconf 2.61, and can be faster | ||
| 60 | # than what's in Autoconf 2.62 through 2.68. | ||
| 61 | |||
| 62 | # Note: If the type 'unsigned long long int' exists but is only 32 bits | ||
| 63 | # large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT | ||
| 64 | # will not be defined. In this case you can treat 'unsigned long long int' | ||
| 65 | # like 'unsigned long int'. | ||
| 66 | |||
| 67 | AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT], | ||
| 68 | [ | ||
| 69 | AC_CACHE_CHECK([for unsigned long long int], | ||
| 70 | [ac_cv_type_unsigned_long_long_int], | ||
| 71 | [ac_cv_type_unsigned_long_long_int=yes | ||
| 72 | if test "x${ac_cv_prog_cc_c99-no}" = xno; then | ||
| 73 | AC_LINK_IFELSE( | ||
| 74 | [_AC_TYPE_LONG_LONG_SNIPPET], | ||
| 75 | [], | ||
| 76 | [ac_cv_type_unsigned_long_long_int=no]) | ||
| 77 | fi]) | ||
| 78 | if test $ac_cv_type_unsigned_long_long_int = yes; then | ||
| 79 | AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], [1], | ||
| 80 | [Define to 1 if the system has the type `unsigned long long int'.]) | ||
| 81 | fi | ||
| 82 | ]) | ||
| 83 | |||
| 84 | # Expands to a C program that can be used to test for simultaneous support | ||
| 85 | # of 'long long' and 'unsigned long long'. We don't want to say that | ||
| 86 | # 'long long' is available if 'unsigned long long' is not, or vice versa, | ||
| 87 | # because too many programs rely on the symmetry between signed and unsigned | ||
| 88 | # integer types (excluding 'bool'). | ||
| 89 | AC_DEFUN([_AC_TYPE_LONG_LONG_SNIPPET], | ||
| 90 | [ | ||
| 91 | AC_LANG_PROGRAM( | ||
| 92 | [[/* For now, do not test the preprocessor; as of 2007 there are too many | ||
| 93 | implementations with broken preprocessors. Perhaps this can | ||
| 94 | be revisited in 2012. In the meantime, code should not expect | ||
| 95 | #if to work with literals wider than 32 bits. */ | ||
| 96 | /* Test literals. */ | ||
| 97 | long long int ll = 9223372036854775807ll; | ||
| 98 | long long int nll = -9223372036854775807LL; | ||
| 99 | unsigned long long int ull = 18446744073709551615ULL; | ||
| 100 | /* Test constant expressions. */ | ||
| 101 | typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) | ||
| 102 | ? 1 : -1)]; | ||
| 103 | typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1 | ||
| 104 | ? 1 : -1)]; | ||
| 105 | int i = 63;]], | ||
| 106 | [[/* Test availability of runtime routines for shift and division. */ | ||
| 107 | long long int llmax = 9223372036854775807ll; | ||
| 108 | unsigned long long int ullmax = 18446744073709551615ull; | ||
| 109 | return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) | ||
| 110 | | (llmax / ll) | (llmax % ll) | ||
| 111 | | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) | ||
| 112 | | (ullmax / ull) | (ullmax % ull));]]) | ||
| 113 | ]) | ||
diff --git a/m4/md5.m4 b/m4/md5.m4 new file mode 100644 index 00000000000..ce7671d6cea --- /dev/null +++ b/m4/md5.m4 | |||
| @@ -0,0 +1,15 @@ | |||
| 1 | # md5.m4 serial 11 | ||
| 2 | dnl Copyright (C) 2002-2006, 2008-2011 Free Software Foundation, Inc. | ||
| 3 | dnl This file is free software; the Free Software Foundation | ||
| 4 | dnl gives unlimited permission to copy and/or distribute it, | ||
| 5 | dnl with or without modifications, as long as this notice is preserved. | ||
| 6 | |||
| 7 | AC_DEFUN([gl_MD5], | ||
| 8 | [ | ||
| 9 | AC_LIBOBJ([md5]) | ||
| 10 | |||
| 11 | dnl Prerequisites of lib/md5.c. | ||
| 12 | AC_REQUIRE([gl_BIGENDIAN]) | ||
| 13 | AC_REQUIRE([AC_C_INLINE]) | ||
| 14 | : | ||
| 15 | ]) | ||
diff --git a/m4/stdint.m4 b/m4/stdint.m4 new file mode 100644 index 00000000000..e7d0d0765a2 --- /dev/null +++ b/m4/stdint.m4 | |||
| @@ -0,0 +1,479 @@ | |||
| 1 | # stdint.m4 serial 39 | ||
| 2 | dnl Copyright (C) 2001-2011 Free Software Foundation, Inc. | ||
| 3 | dnl This file is free software; the Free Software Foundation | ||
| 4 | dnl gives unlimited permission to copy and/or distribute it, | ||
| 5 | dnl with or without modifications, as long as this notice is preserved. | ||
| 6 | |||
| 7 | dnl From Paul Eggert and Bruno Haible. | ||
| 8 | dnl Test whether <stdint.h> is supported or must be substituted. | ||
| 9 | |||
| 10 | AC_DEFUN([gl_STDINT_H], | ||
| 11 | [ | ||
| 12 | AC_PREREQ([2.59])dnl | ||
| 13 | |||
| 14 | dnl Check for long long int and unsigned long long int. | ||
| 15 | AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) | ||
| 16 | if test $ac_cv_type_long_long_int = yes; then | ||
| 17 | HAVE_LONG_LONG_INT=1 | ||
| 18 | else | ||
| 19 | HAVE_LONG_LONG_INT=0 | ||
| 20 | fi | ||
| 21 | AC_SUBST([HAVE_LONG_LONG_INT]) | ||
| 22 | AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT]) | ||
| 23 | if test $ac_cv_type_unsigned_long_long_int = yes; then | ||
| 24 | HAVE_UNSIGNED_LONG_LONG_INT=1 | ||
| 25 | else | ||
| 26 | HAVE_UNSIGNED_LONG_LONG_INT=0 | ||
| 27 | fi | ||
| 28 | AC_SUBST([HAVE_UNSIGNED_LONG_LONG_INT]) | ||
| 29 | |||
| 30 | dnl Check for <wchar.h>, in the same way as gl_WCHAR_H does. | ||
| 31 | AC_CHECK_HEADERS_ONCE([wchar.h]) | ||
| 32 | if test $ac_cv_header_wchar_h = yes; then | ||
| 33 | HAVE_WCHAR_H=1 | ||
| 34 | else | ||
| 35 | HAVE_WCHAR_H=0 | ||
| 36 | fi | ||
| 37 | AC_SUBST([HAVE_WCHAR_H]) | ||
| 38 | |||
| 39 | dnl Check for <inttypes.h>. | ||
| 40 | dnl AC_INCLUDES_DEFAULT defines $ac_cv_header_inttypes_h. | ||
| 41 | if test $ac_cv_header_inttypes_h = yes; then | ||
| 42 | HAVE_INTTYPES_H=1 | ||
| 43 | else | ||
| 44 | HAVE_INTTYPES_H=0 | ||
| 45 | fi | ||
| 46 | AC_SUBST([HAVE_INTTYPES_H]) | ||
| 47 | |||
| 48 | dnl Check for <sys/types.h>. | ||
| 49 | dnl AC_INCLUDES_DEFAULT defines $ac_cv_header_sys_types_h. | ||
| 50 | if test $ac_cv_header_sys_types_h = yes; then | ||
| 51 | HAVE_SYS_TYPES_H=1 | ||
| 52 | else | ||
| 53 | HAVE_SYS_TYPES_H=0 | ||
| 54 | fi | ||
| 55 | AC_SUBST([HAVE_SYS_TYPES_H]) | ||
| 56 | |||
| 57 | gl_CHECK_NEXT_HEADERS([stdint.h]) | ||
| 58 | if test $ac_cv_header_stdint_h = yes; then | ||
| 59 | HAVE_STDINT_H=1 | ||
| 60 | else | ||
| 61 | HAVE_STDINT_H=0 | ||
| 62 | fi | ||
| 63 | AC_SUBST([HAVE_STDINT_H]) | ||
| 64 | |||
| 65 | dnl Now see whether we need a substitute <stdint.h>. | ||
| 66 | if test $ac_cv_header_stdint_h = yes; then | ||
| 67 | AC_CACHE_CHECK([whether stdint.h conforms to C99], | ||
| 68 | [gl_cv_header_working_stdint_h], | ||
| 69 | [gl_cv_header_working_stdint_h=no | ||
| 70 | AC_COMPILE_IFELSE([ | ||
| 71 | AC_LANG_PROGRAM([[ | ||
| 72 | #define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */ | ||
| 73 | #define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */ | ||
| 74 | #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ | ||
| 75 | #include <stdint.h> | ||
| 76 | /* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in <wchar.h>. */ | ||
| 77 | #if !(defined WCHAR_MIN && defined WCHAR_MAX) | ||
| 78 | #error "WCHAR_MIN, WCHAR_MAX not defined in <stdint.h>" | ||
| 79 | #endif | ||
| 80 | ] | ||
| 81 | gl_STDINT_INCLUDES | ||
| 82 | [ | ||
| 83 | #ifdef INT8_MAX | ||
| 84 | int8_t a1 = INT8_MAX; | ||
| 85 | int8_t a1min = INT8_MIN; | ||
| 86 | #endif | ||
| 87 | #ifdef INT16_MAX | ||
| 88 | int16_t a2 = INT16_MAX; | ||
| 89 | int16_t a2min = INT16_MIN; | ||
| 90 | #endif | ||
| 91 | #ifdef INT32_MAX | ||
| 92 | int32_t a3 = INT32_MAX; | ||
| 93 | int32_t a3min = INT32_MIN; | ||
| 94 | #endif | ||
| 95 | #ifdef INT64_MAX | ||
| 96 | int64_t a4 = INT64_MAX; | ||
| 97 | int64_t a4min = INT64_MIN; | ||
| 98 | #endif | ||
| 99 | #ifdef UINT8_MAX | ||
| 100 | uint8_t b1 = UINT8_MAX; | ||
| 101 | #else | ||
| 102 | typedef int b1[(unsigned char) -1 != 255 ? 1 : -1]; | ||
| 103 | #endif | ||
| 104 | #ifdef UINT16_MAX | ||
| 105 | uint16_t b2 = UINT16_MAX; | ||
| 106 | #endif | ||
| 107 | #ifdef UINT32_MAX | ||
| 108 | uint32_t b3 = UINT32_MAX; | ||
| 109 | #endif | ||
| 110 | #ifdef UINT64_MAX | ||
| 111 | uint64_t b4 = UINT64_MAX; | ||
| 112 | #endif | ||
| 113 | int_least8_t c1 = INT8_C (0x7f); | ||
| 114 | int_least8_t c1max = INT_LEAST8_MAX; | ||
| 115 | int_least8_t c1min = INT_LEAST8_MIN; | ||
| 116 | int_least16_t c2 = INT16_C (0x7fff); | ||
| 117 | int_least16_t c2max = INT_LEAST16_MAX; | ||
| 118 | int_least16_t c2min = INT_LEAST16_MIN; | ||
| 119 | int_least32_t c3 = INT32_C (0x7fffffff); | ||
| 120 | int_least32_t c3max = INT_LEAST32_MAX; | ||
| 121 | int_least32_t c3min = INT_LEAST32_MIN; | ||
| 122 | int_least64_t c4 = INT64_C (0x7fffffffffffffff); | ||
| 123 | int_least64_t c4max = INT_LEAST64_MAX; | ||
| 124 | int_least64_t c4min = INT_LEAST64_MIN; | ||
| 125 | uint_least8_t d1 = UINT8_C (0xff); | ||
| 126 | uint_least8_t d1max = UINT_LEAST8_MAX; | ||
| 127 | uint_least16_t d2 = UINT16_C (0xffff); | ||
| 128 | uint_least16_t d2max = UINT_LEAST16_MAX; | ||
| 129 | uint_least32_t d3 = UINT32_C (0xffffffff); | ||
| 130 | uint_least32_t d3max = UINT_LEAST32_MAX; | ||
| 131 | uint_least64_t d4 = UINT64_C (0xffffffffffffffff); | ||
| 132 | uint_least64_t d4max = UINT_LEAST64_MAX; | ||
| 133 | int_fast8_t e1 = INT_FAST8_MAX; | ||
| 134 | int_fast8_t e1min = INT_FAST8_MIN; | ||
| 135 | int_fast16_t e2 = INT_FAST16_MAX; | ||
| 136 | int_fast16_t e2min = INT_FAST16_MIN; | ||
| 137 | int_fast32_t e3 = INT_FAST32_MAX; | ||
| 138 | int_fast32_t e3min = INT_FAST32_MIN; | ||
| 139 | int_fast64_t e4 = INT_FAST64_MAX; | ||
| 140 | int_fast64_t e4min = INT_FAST64_MIN; | ||
| 141 | uint_fast8_t f1 = UINT_FAST8_MAX; | ||
| 142 | uint_fast16_t f2 = UINT_FAST16_MAX; | ||
| 143 | uint_fast32_t f3 = UINT_FAST32_MAX; | ||
| 144 | uint_fast64_t f4 = UINT_FAST64_MAX; | ||
| 145 | #ifdef INTPTR_MAX | ||
| 146 | intptr_t g = INTPTR_MAX; | ||
| 147 | intptr_t gmin = INTPTR_MIN; | ||
| 148 | #endif | ||
| 149 | #ifdef UINTPTR_MAX | ||
| 150 | uintptr_t h = UINTPTR_MAX; | ||
| 151 | #endif | ||
| 152 | intmax_t i = INTMAX_MAX; | ||
| 153 | uintmax_t j = UINTMAX_MAX; | ||
| 154 | |||
| 155 | #include <limits.h> /* for CHAR_BIT */ | ||
| 156 | #define TYPE_MINIMUM(t) \ | ||
| 157 | ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t))) | ||
| 158 | #define TYPE_MAXIMUM(t) \ | ||
| 159 | ((t) ((t) 0 < (t) -1 \ | ||
| 160 | ? (t) -1 \ | ||
| 161 | : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) | ||
| 162 | struct s { | ||
| 163 | int check_PTRDIFF: | ||
| 164 | PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t) | ||
| 165 | && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t) | ||
| 166 | ? 1 : -1; | ||
| 167 | /* Detect bug in FreeBSD 6.0 / ia64. */ | ||
| 168 | int check_SIG_ATOMIC: | ||
| 169 | SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t) | ||
| 170 | && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t) | ||
| 171 | ? 1 : -1; | ||
| 172 | int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1; | ||
| 173 | int check_WCHAR: | ||
| 174 | WCHAR_MIN == TYPE_MINIMUM (wchar_t) | ||
| 175 | && WCHAR_MAX == TYPE_MAXIMUM (wchar_t) | ||
| 176 | ? 1 : -1; | ||
| 177 | /* Detect bug in mingw. */ | ||
| 178 | int check_WINT: | ||
| 179 | WINT_MIN == TYPE_MINIMUM (wint_t) | ||
| 180 | && WINT_MAX == TYPE_MAXIMUM (wint_t) | ||
| 181 | ? 1 : -1; | ||
| 182 | |||
| 183 | /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others. */ | ||
| 184 | int check_UINT8_C: | ||
| 185 | (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1; | ||
| 186 | int check_UINT16_C: | ||
| 187 | (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1; | ||
| 188 | |||
| 189 | /* Detect bugs in OpenBSD 3.9 stdint.h. */ | ||
| 190 | #ifdef UINT8_MAX | ||
| 191 | int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1; | ||
| 192 | #endif | ||
| 193 | #ifdef UINT16_MAX | ||
| 194 | int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1; | ||
| 195 | #endif | ||
| 196 | #ifdef UINT32_MAX | ||
| 197 | int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1; | ||
| 198 | #endif | ||
| 199 | #ifdef UINT64_MAX | ||
| 200 | int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1; | ||
| 201 | #endif | ||
| 202 | int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1; | ||
| 203 | int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1; | ||
| 204 | int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1; | ||
| 205 | int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1; | ||
| 206 | int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1; | ||
| 207 | int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1; | ||
| 208 | int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1; | ||
| 209 | int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1; | ||
| 210 | int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1; | ||
| 211 | int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1; | ||
| 212 | int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1; | ||
| 213 | }; | ||
| 214 | ]])], | ||
| 215 | [dnl Determine whether the various *_MIN, *_MAX macros are usable | ||
| 216 | dnl in preprocessor expression. We could do it by compiling a test | ||
| 217 | dnl program for each of these macros. It is faster to run a program | ||
| 218 | dnl that inspects the macro expansion. | ||
| 219 | dnl This detects a bug on HP-UX 11.23/ia64. | ||
| 220 | AC_RUN_IFELSE([ | ||
| 221 | AC_LANG_PROGRAM([[ | ||
| 222 | #define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */ | ||
| 223 | #define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */ | ||
| 224 | #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ | ||
| 225 | #include <stdint.h> | ||
| 226 | ] | ||
| 227 | gl_STDINT_INCLUDES | ||
| 228 | [ | ||
| 229 | #include <stdio.h> | ||
| 230 | #include <string.h> | ||
| 231 | #define MVAL(macro) MVAL1(macro) | ||
| 232 | #define MVAL1(expression) #expression | ||
| 233 | static const char *macro_values[] = | ||
| 234 | { | ||
| 235 | #ifdef INT8_MAX | ||
| 236 | MVAL (INT8_MAX), | ||
| 237 | #endif | ||
| 238 | #ifdef INT16_MAX | ||
| 239 | MVAL (INT16_MAX), | ||
| 240 | #endif | ||
| 241 | #ifdef INT32_MAX | ||
| 242 | MVAL (INT32_MAX), | ||
| 243 | #endif | ||
| 244 | #ifdef INT64_MAX | ||
| 245 | MVAL (INT64_MAX), | ||
| 246 | #endif | ||
| 247 | #ifdef UINT8_MAX | ||
| 248 | MVAL (UINT8_MAX), | ||
| 249 | #endif | ||
| 250 | #ifdef UINT16_MAX | ||
| 251 | MVAL (UINT16_MAX), | ||
| 252 | #endif | ||
| 253 | #ifdef UINT32_MAX | ||
| 254 | MVAL (UINT32_MAX), | ||
| 255 | #endif | ||
| 256 | #ifdef UINT64_MAX | ||
| 257 | MVAL (UINT64_MAX), | ||
| 258 | #endif | ||
| 259 | NULL | ||
| 260 | }; | ||
| 261 | ]], [[ | ||
| 262 | const char **mv; | ||
| 263 | for (mv = macro_values; *mv != NULL; mv++) | ||
| 264 | { | ||
| 265 | const char *value = *mv; | ||
| 266 | /* Test whether it looks like a cast expression. */ | ||
| 267 | if (strncmp (value, "((unsigned int)"/*)*/, 15) == 0 | ||
| 268 | || strncmp (value, "((unsigned short)"/*)*/, 17) == 0 | ||
| 269 | || strncmp (value, "((unsigned char)"/*)*/, 16) == 0 | ||
| 270 | || strncmp (value, "((int)"/*)*/, 6) == 0 | ||
| 271 | || strncmp (value, "((signed short)"/*)*/, 15) == 0 | ||
| 272 | || strncmp (value, "((signed char)"/*)*/, 14) == 0) | ||
| 273 | return mv - macro_values + 1; | ||
| 274 | } | ||
| 275 | return 0; | ||
| 276 | ]])], | ||
| 277 | [gl_cv_header_working_stdint_h=yes], | ||
| 278 | [], | ||
| 279 | [dnl When cross-compiling, assume it works. | ||
| 280 | gl_cv_header_working_stdint_h=yes | ||
| 281 | ]) | ||
| 282 | ]) | ||
| 283 | ]) | ||
| 284 | fi | ||
| 285 | if test "$gl_cv_header_working_stdint_h" = yes; then | ||
| 286 | STDINT_H= | ||
| 287 | else | ||
| 288 | dnl Check for <sys/inttypes.h>, and for | ||
| 289 | dnl <sys/bitypes.h> (used in Linux libc4 >= 4.6.7 and libc5). | ||
| 290 | AC_CHECK_HEADERS([sys/inttypes.h sys/bitypes.h]) | ||
| 291 | if test $ac_cv_header_sys_inttypes_h = yes; then | ||
| 292 | HAVE_SYS_INTTYPES_H=1 | ||
| 293 | else | ||
| 294 | HAVE_SYS_INTTYPES_H=0 | ||
| 295 | fi | ||
| 296 | AC_SUBST([HAVE_SYS_INTTYPES_H]) | ||
| 297 | if test $ac_cv_header_sys_bitypes_h = yes; then | ||
| 298 | HAVE_SYS_BITYPES_H=1 | ||
| 299 | else | ||
| 300 | HAVE_SYS_BITYPES_H=0 | ||
| 301 | fi | ||
| 302 | AC_SUBST([HAVE_SYS_BITYPES_H]) | ||
| 303 | |||
| 304 | gl_STDINT_TYPE_PROPERTIES | ||
| 305 | STDINT_H=stdint.h | ||
| 306 | fi | ||
| 307 | AC_SUBST([STDINT_H]) | ||
| 308 | ]) | ||
| 309 | |||
| 310 | dnl gl_STDINT_BITSIZEOF(TYPES, INCLUDES) | ||
| 311 | dnl Determine the size of each of the given types in bits. | ||
| 312 | AC_DEFUN([gl_STDINT_BITSIZEOF], | ||
| 313 | [ | ||
| 314 | dnl Use a shell loop, to avoid bloating configure, and | ||
| 315 | dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into | ||
| 316 | dnl config.h.in, | ||
| 317 | dnl - extra AC_SUBST calls, so that the right substitutions are made. | ||
| 318 | m4_foreach_w([gltype], [$1], | ||
| 319 | [AH_TEMPLATE([BITSIZEOF_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]), | ||
| 320 | [Define to the number of bits in type ']gltype['.])]) | ||
| 321 | for gltype in $1 ; do | ||
| 322 | AC_CACHE_CHECK([for bit size of $gltype], [gl_cv_bitsizeof_${gltype}], | ||
| 323 | [AC_COMPUTE_INT([result], [sizeof ($gltype) * CHAR_BIT], | ||
| 324 | [$2 | ||
| 325 | #include <limits.h>], [result=unknown]) | ||
| 326 | eval gl_cv_bitsizeof_${gltype}=\$result | ||
| 327 | ]) | ||
| 328 | eval result=\$gl_cv_bitsizeof_${gltype} | ||
| 329 | if test $result = unknown; then | ||
| 330 | dnl Use a nonempty default, because some compilers, such as IRIX 5 cc, | ||
| 331 | dnl do a syntax check even on unused #if conditions and give an error | ||
| 332 | dnl on valid C code like this: | ||
| 333 | dnl #if 0 | ||
| 334 | dnl # if > 32 | ||
| 335 | dnl # endif | ||
| 336 | dnl #endif | ||
| 337 | result=0 | ||
| 338 | fi | ||
| 339 | GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` | ||
| 340 | AC_DEFINE_UNQUOTED([BITSIZEOF_${GLTYPE}], [$result]) | ||
| 341 | eval BITSIZEOF_${GLTYPE}=\$result | ||
| 342 | done | ||
| 343 | m4_foreach_w([gltype], [$1], | ||
| 344 | [AC_SUBST([BITSIZEOF_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))]) | ||
| 345 | ]) | ||
| 346 | |||
| 347 | dnl gl_CHECK_TYPES_SIGNED(TYPES, INCLUDES) | ||
| 348 | dnl Determine the signedness of each of the given types. | ||
| 349 | dnl Define HAVE_SIGNED_TYPE if type is signed. | ||
| 350 | AC_DEFUN([gl_CHECK_TYPES_SIGNED], | ||
| 351 | [ | ||
| 352 | dnl Use a shell loop, to avoid bloating configure, and | ||
| 353 | dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into | ||
| 354 | dnl config.h.in, | ||
| 355 | dnl - extra AC_SUBST calls, so that the right substitutions are made. | ||
| 356 | m4_foreach_w([gltype], [$1], | ||
| 357 | [AH_TEMPLATE([HAVE_SIGNED_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]), | ||
| 358 | [Define to 1 if ']gltype[' is a signed integer type.])]) | ||
| 359 | for gltype in $1 ; do | ||
| 360 | AC_CACHE_CHECK([whether $gltype is signed], [gl_cv_type_${gltype}_signed], | ||
| 361 | [AC_COMPILE_IFELSE( | ||
| 362 | [AC_LANG_PROGRAM([$2[ | ||
| 363 | int verify[2 * (($gltype) -1 < ($gltype) 0) - 1];]])], | ||
| 364 | result=yes, result=no) | ||
| 365 | eval gl_cv_type_${gltype}_signed=\$result | ||
| 366 | ]) | ||
| 367 | eval result=\$gl_cv_type_${gltype}_signed | ||
| 368 | GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` | ||
| 369 | if test "$result" = yes; then | ||
| 370 | AC_DEFINE_UNQUOTED([HAVE_SIGNED_${GLTYPE}], [1]) | ||
| 371 | eval HAVE_SIGNED_${GLTYPE}=1 | ||
| 372 | else | ||
| 373 | eval HAVE_SIGNED_${GLTYPE}=0 | ||
| 374 | fi | ||
| 375 | done | ||
| 376 | m4_foreach_w([gltype], [$1], | ||
| 377 | [AC_SUBST([HAVE_SIGNED_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))]) | ||
| 378 | ]) | ||
| 379 | |||
| 380 | dnl gl_INTEGER_TYPE_SUFFIX(TYPES, INCLUDES) | ||
| 381 | dnl Determine the suffix to use for integer constants of the given types. | ||
| 382 | dnl Define t_SUFFIX for each such type. | ||
| 383 | AC_DEFUN([gl_INTEGER_TYPE_SUFFIX], | ||
| 384 | [ | ||
| 385 | dnl Use a shell loop, to avoid bloating configure, and | ||
| 386 | dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into | ||
| 387 | dnl config.h.in, | ||
| 388 | dnl - extra AC_SUBST calls, so that the right substitutions are made. | ||
| 389 | m4_foreach_w([gltype], [$1], | ||
| 390 | [AH_TEMPLATE(m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX], | ||
| 391 | [Define to l, ll, u, ul, ull, etc., as suitable for | ||
| 392 | constants of type ']gltype['.])]) | ||
| 393 | for gltype in $1 ; do | ||
| 394 | AC_CACHE_CHECK([for $gltype integer literal suffix], | ||
| 395 | [gl_cv_type_${gltype}_suffix], | ||
| 396 | [eval gl_cv_type_${gltype}_suffix=no | ||
| 397 | eval result=\$gl_cv_type_${gltype}_signed | ||
| 398 | if test "$result" = yes; then | ||
| 399 | glsufu= | ||
| 400 | else | ||
| 401 | glsufu=u | ||
| 402 | fi | ||
| 403 | for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do | ||
| 404 | case $glsuf in | ||
| 405 | '') gltype1='int';; | ||
| 406 | l) gltype1='long int';; | ||
| 407 | ll) gltype1='long long int';; | ||
| 408 | i64) gltype1='__int64';; | ||
| 409 | u) gltype1='unsigned int';; | ||
| 410 | ul) gltype1='unsigned long int';; | ||
| 411 | ull) gltype1='unsigned long long int';; | ||
| 412 | ui64)gltype1='unsigned __int64';; | ||
| 413 | esac | ||
| 414 | AC_COMPILE_IFELSE( | ||
| 415 | [AC_LANG_PROGRAM([$2[ | ||
| 416 | extern $gltype foo; | ||
| 417 | extern $gltype1 foo;]])], | ||
| 418 | [eval gl_cv_type_${gltype}_suffix=\$glsuf]) | ||
| 419 | eval result=\$gl_cv_type_${gltype}_suffix | ||
| 420 | test "$result" != no && break | ||
| 421 | done]) | ||
| 422 | GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` | ||
| 423 | eval result=\$gl_cv_type_${gltype}_suffix | ||
| 424 | test "$result" = no && result= | ||
| 425 | eval ${GLTYPE}_SUFFIX=\$result | ||
| 426 | AC_DEFINE_UNQUOTED([${GLTYPE}_SUFFIX], [$result]) | ||
| 427 | done | ||
| 428 | m4_foreach_w([gltype], [$1], | ||
| 429 | [AC_SUBST(m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX])]) | ||
| 430 | ]) | ||
| 431 | |||
| 432 | dnl gl_STDINT_INCLUDES | ||
| 433 | AC_DEFUN([gl_STDINT_INCLUDES], | ||
| 434 | [[ | ||
| 435 | /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be | ||
| 436 | included before <wchar.h>. */ | ||
| 437 | #include <stddef.h> | ||
| 438 | #include <signal.h> | ||
| 439 | #if HAVE_WCHAR_H | ||
| 440 | # include <stdio.h> | ||
| 441 | # include <time.h> | ||
| 442 | # include <wchar.h> | ||
| 443 | #endif | ||
| 444 | ]]) | ||
| 445 | |||
| 446 | dnl gl_STDINT_TYPE_PROPERTIES | ||
| 447 | dnl Compute HAVE_SIGNED_t, BITSIZEOF_t and t_SUFFIX, for all the types t | ||
| 448 | dnl of interest to stdint.in.h. | ||
| 449 | AC_DEFUN([gl_STDINT_TYPE_PROPERTIES], | ||
| 450 | [ | ||
| 451 | AC_REQUIRE([gl_MULTIARCH]) | ||
| 452 | if test $APPLE_UNIVERSAL_BUILD = 0; then | ||
| 453 | gl_STDINT_BITSIZEOF([ptrdiff_t size_t], | ||
| 454 | [gl_STDINT_INCLUDES]) | ||
| 455 | fi | ||
| 456 | gl_STDINT_BITSIZEOF([sig_atomic_t wchar_t wint_t], | ||
| 457 | [gl_STDINT_INCLUDES]) | ||
| 458 | gl_CHECK_TYPES_SIGNED([sig_atomic_t wchar_t wint_t], | ||
| 459 | [gl_STDINT_INCLUDES]) | ||
| 460 | gl_cv_type_ptrdiff_t_signed=yes | ||
| 461 | gl_cv_type_size_t_signed=no | ||
| 462 | if test $APPLE_UNIVERSAL_BUILD = 0; then | ||
| 463 | gl_INTEGER_TYPE_SUFFIX([ptrdiff_t size_t], | ||
| 464 | [gl_STDINT_INCLUDES]) | ||
| 465 | fi | ||
| 466 | gl_INTEGER_TYPE_SUFFIX([sig_atomic_t wchar_t wint_t], | ||
| 467 | [gl_STDINT_INCLUDES]) | ||
| 468 | ]) | ||
| 469 | |||
| 470 | dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in. | ||
| 471 | dnl Remove this when we can assume autoconf >= 2.61. | ||
| 472 | m4_ifdef([AC_COMPUTE_INT], [], [ | ||
| 473 | AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])]) | ||
| 474 | ]) | ||
| 475 | |||
| 476 | # Hey Emacs! | ||
| 477 | # Local Variables: | ||
| 478 | # indent-tabs-mode: nil | ||
| 479 | # End: | ||
diff --git a/src/ChangeLog b/src/ChangeLog index 2b4d60f9189..54d912cc15d 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,13 @@ | |||
| 1 | 2011-02-20 Paul Eggert <eggert@cs.ucla.edu> | ||
| 2 | |||
| 3 | Import crypto/md5 and stdint modules from gnulib. | ||
| 4 | * Makefile.in (base_obj): Remove md5.o, since this file | ||
| 5 | is in lib now. | ||
| 6 | * config.in: Regenerate. | ||
| 7 | * md5.h, md5.h: Move to ../lib. | ||
| 8 | * deps.mk (md5.o): Remove. | ||
| 9 | (fns.o): Depend on ../lib/md5.h, not md5.h. | ||
| 10 | |||
| 1 | 2011-02-19 Eli Zaretskii <eliz@gnu.org> | 11 | 2011-02-19 Eli Zaretskii <eliz@gnu.org> |
| 2 | 12 | ||
| 3 | * termcap.c (tputs): Don't declare baud_rate. | 13 | * termcap.c (tputs): Don't declare baud_rate. |
diff --git a/src/Makefile.in b/src/Makefile.in index fda65be7084..41b6767f26e 100644 --- a/src/Makefile.in +++ b/src/Makefile.in | |||
| @@ -354,7 +354,7 @@ base_obj = dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o \ | |||
| 354 | syntax.o $(UNEXEC_OBJ) bytecode.o \ | 354 | syntax.o $(UNEXEC_OBJ) bytecode.o \ |
| 355 | process.o gnutls.o callproc.o \ | 355 | process.o gnutls.o callproc.o \ |
| 356 | region-cache.o sound.o atimer.o \ | 356 | region-cache.o sound.o atimer.o \ |
| 357 | doprnt.o intervals.o textprop.o composite.o md5.o xml.o \ | 357 | doprnt.o intervals.o textprop.o composite.o xml.o \ |
| 358 | $(MSDOS_OBJ) $(MSDOS_X_OBJ) $(NS_OBJ) $(CYGWIN_OBJ) $(FONT_OBJ) | 358 | $(MSDOS_OBJ) $(MSDOS_X_OBJ) $(NS_OBJ) $(CYGWIN_OBJ) $(FONT_OBJ) |
| 359 | obj = $(base_obj) $(NS_OBJC_OBJ) | 359 | obj = $(base_obj) $(NS_OBJC_OBJ) |
| 360 | 360 | ||
diff --git a/src/config.in b/src/config.in index 637287a024c..9e8364ec45b 100644 --- a/src/config.in +++ b/src/config.in | |||
| @@ -31,6 +31,21 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 31 | /* Define if building universal (internal helper macro) */ | 31 | /* Define if building universal (internal helper macro) */ |
| 32 | #undef AC_APPLE_UNIVERSAL_BUILD | 32 | #undef AC_APPLE_UNIVERSAL_BUILD |
| 33 | 33 | ||
| 34 | /* Define to the number of bits in type 'ptrdiff_t'. */ | ||
| 35 | #undef BITSIZEOF_PTRDIFF_T | ||
| 36 | |||
| 37 | /* Define to the number of bits in type 'sig_atomic_t'. */ | ||
| 38 | #undef BITSIZEOF_SIG_ATOMIC_T | ||
| 39 | |||
| 40 | /* Define to the number of bits in type 'size_t'. */ | ||
| 41 | #undef BITSIZEOF_SIZE_T | ||
| 42 | |||
| 43 | /* Define to the number of bits in type 'wchar_t'. */ | ||
| 44 | #undef BITSIZEOF_WCHAR_T | ||
| 45 | |||
| 46 | /* Define to the number of bits in type 'wint_t'. */ | ||
| 47 | #undef BITSIZEOF_WINT_T | ||
| 48 | |||
| 34 | /* Define if Emacs cannot be dumped on your system. */ | 49 | /* Define if Emacs cannot be dumped on your system. */ |
| 35 | #undef CANNOT_DUMP | 50 | #undef CANNOT_DUMP |
| 36 | 51 | ||
| @@ -440,6 +455,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 440 | /* Define to 1 if you support file names longer than 14 characters. */ | 455 | /* Define to 1 if you support file names longer than 14 characters. */ |
| 441 | #undef HAVE_LONG_FILE_NAMES | 456 | #undef HAVE_LONG_FILE_NAMES |
| 442 | 457 | ||
| 458 | /* Define to 1 if the system has the type `long long int'. */ | ||
| 459 | #undef HAVE_LONG_LONG_INT | ||
| 460 | |||
| 443 | /* Define to 1 if you have the `lrand48' function. */ | 461 | /* Define to 1 if you have the `lrand48' function. */ |
| 444 | #undef HAVE_LRAND48 | 462 | #undef HAVE_LRAND48 |
| 445 | 463 | ||
| @@ -596,6 +614,15 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 596 | /* Define to 1 if you have the `shutdown' function. */ | 614 | /* Define to 1 if you have the `shutdown' function. */ |
| 597 | #undef HAVE_SHUTDOWN | 615 | #undef HAVE_SHUTDOWN |
| 598 | 616 | ||
| 617 | /* Define to 1 if 'sig_atomic_t' is a signed integer type. */ | ||
| 618 | #undef HAVE_SIGNED_SIG_ATOMIC_T | ||
| 619 | |||
| 620 | /* Define to 1 if 'wchar_t' is a signed integer type. */ | ||
| 621 | #undef HAVE_SIGNED_WCHAR_T | ||
| 622 | |||
| 623 | /* Define to 1 if 'wint_t' is a signed integer type. */ | ||
| 624 | #undef HAVE_SIGNED_WINT_T | ||
| 625 | |||
| 599 | /* Define to 1 if the system has the type `size_t'. */ | 626 | /* Define to 1 if the system has the type `size_t'. */ |
| 600 | #undef HAVE_SIZE_T | 627 | #undef HAVE_SIZE_T |
| 601 | 628 | ||
| @@ -665,6 +692,12 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 665 | /* Define to 1 if you have the `sysinfo' function. */ | 692 | /* Define to 1 if you have the `sysinfo' function. */ |
| 666 | #undef HAVE_SYSINFO | 693 | #undef HAVE_SYSINFO |
| 667 | 694 | ||
| 695 | /* Define to 1 if you have the <sys/bitypes.h> header file. */ | ||
| 696 | #undef HAVE_SYS_BITYPES_H | ||
| 697 | |||
| 698 | /* Define to 1 if you have the <sys/inttypes.h> header file. */ | ||
| 699 | #undef HAVE_SYS_INTTYPES_H | ||
| 700 | |||
| 668 | /* Define to 1 if you have the <sys/loadavg.h> header file. */ | 701 | /* Define to 1 if you have the <sys/loadavg.h> header file. */ |
| 669 | #undef HAVE_SYS_LOADAVG_H | 702 | #undef HAVE_SYS_LOADAVG_H |
| 670 | 703 | ||
| @@ -745,6 +778,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 745 | /* Define to 1 if you have the <unistd.h> header file. */ | 778 | /* Define to 1 if you have the <unistd.h> header file. */ |
| 746 | #undef HAVE_UNISTD_H | 779 | #undef HAVE_UNISTD_H |
| 747 | 780 | ||
| 781 | /* Define to 1 if the system has the type `unsigned long long int'. */ | ||
| 782 | #undef HAVE_UNSIGNED_LONG_LONG_INT | ||
| 783 | |||
| 748 | /* Define to 1 if you have the <util.h> header file. */ | 784 | /* Define to 1 if you have the <util.h> header file. */ |
| 749 | #undef HAVE_UTIL_H | 785 | #undef HAVE_UTIL_H |
| 750 | 786 | ||
| @@ -763,6 +799,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 763 | /* Define to 1 if you have the <vfork.h> header file. */ | 799 | /* Define to 1 if you have the <vfork.h> header file. */ |
| 764 | #undef HAVE_VFORK_H | 800 | #undef HAVE_VFORK_H |
| 765 | 801 | ||
| 802 | /* Define to 1 if you have the <wchar.h> header file. */ | ||
| 803 | #undef HAVE_WCHAR_H | ||
| 804 | |||
| 766 | /* Define if you have the 'wchar_t' type. */ | 805 | /* Define if you have the 'wchar_t' type. */ |
| 767 | #undef HAVE_WCHAR_T | 806 | #undef HAVE_WCHAR_T |
| 768 | 807 | ||
| @@ -915,6 +954,10 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 915 | /* Define to 1 if the C compiler supports function prototypes. */ | 954 | /* Define to 1 if the C compiler supports function prototypes. */ |
| 916 | #undef PROTOTYPES | 955 | #undef PROTOTYPES |
| 917 | 956 | ||
| 957 | /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type | ||
| 958 | 'ptrdiff_t'. */ | ||
| 959 | #undef PTRDIFF_T_SUFFIX | ||
| 960 | |||
| 918 | /* Define REL_ALLOC if you want to use the relocating allocator for buffer | 961 | /* Define REL_ALLOC if you want to use the relocating allocator for buffer |
| 919 | space. */ | 962 | space. */ |
| 920 | #undef REL_ALLOC | 963 | #undef REL_ALLOC |
| @@ -922,6 +965,14 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 922 | /* Define as the return type of signal handlers (`int' or `void'). */ | 965 | /* Define as the return type of signal handlers (`int' or `void'). */ |
| 923 | #undef RETSIGTYPE | 966 | #undef RETSIGTYPE |
| 924 | 967 | ||
| 968 | /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type | ||
| 969 | 'sig_atomic_t'. */ | ||
| 970 | #undef SIG_ATOMIC_T_SUFFIX | ||
| 971 | |||
| 972 | /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type | ||
| 973 | 'size_t'. */ | ||
| 974 | #undef SIZE_T_SUFFIX | ||
| 975 | |||
| 925 | /* If using the C implementation of alloca, define if you know the | 976 | /* If using the C implementation of alloca, define if you know the |
| 926 | direction of stack growth for your system; otherwise it will be | 977 | direction of stack growth for your system; otherwise it will be |
| 927 | automatically deduced at runtime. | 978 | automatically deduced at runtime. |
| @@ -985,6 +1036,14 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 985 | /* Version number of package */ | 1036 | /* Version number of package */ |
| 986 | #undef VERSION | 1037 | #undef VERSION |
| 987 | 1038 | ||
| 1039 | /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type | ||
| 1040 | 'wchar_t'. */ | ||
| 1041 | #undef WCHAR_T_SUFFIX | ||
| 1042 | |||
| 1043 | /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type | ||
| 1044 | 'wint_t'. */ | ||
| 1045 | #undef WINT_T_SUFFIX | ||
| 1046 | |||
| 988 | /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most | 1047 | /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most |
| 989 | significant byte first (like Motorola and SPARC, unlike Intel). */ | 1048 | significant byte first (like Motorola and SPARC, unlike Intel). */ |
| 990 | #if defined AC_APPLE_UNIVERSAL_BUILD | 1049 | #if defined AC_APPLE_UNIVERSAL_BUILD |
diff --git a/src/deps.mk b/src/deps.mk index 3cb69bab2d8..5bd4a682bfa 100644 --- a/src/deps.mk +++ b/src/deps.mk | |||
| @@ -9,17 +9,17 @@ | |||
| 9 | ## it under the terms of the GNU General Public License as published by | 9 | ## it under the terms of the GNU General Public License as published by |
| 10 | ## the Free Software Foundation, either version 3 of the License, or | 10 | ## the Free Software Foundation, either version 3 of the License, or |
| 11 | ## (at your option) any later version. | 11 | ## (at your option) any later version. |
| 12 | ## | 12 | ## |
| 13 | ## GNU Emacs is distributed in the hope that it will be useful, | 13 | ## GNU Emacs is distributed in the hope that it will be useful, |
| 14 | ## but WITHOUT ANY WARRANTY; without even the implied warranty of | 14 | ## but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 15 | ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 15 | ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 16 | ## GNU General Public License for more details. | 16 | ## GNU General Public License for more details. |
| 17 | ## | 17 | ## |
| 18 | ## You should have received a copy of the GNU General Public License | 18 | ## You should have received a copy of the GNU General Public License |
| 19 | ## along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. | 19 | ## along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
| 20 | 20 | ||
| 21 | ## Commentary: | 21 | ## Commentary: |
| 22 | ## | 22 | ## |
| 23 | ## This file is inserted in src/Makefile if AUTO_DEPEND=no. | 23 | ## This file is inserted in src/Makefile if AUTO_DEPEND=no. |
| 24 | ## It defines static dependencies between the various source files. | 24 | ## It defines static dependencies between the various source files. |
| 25 | 25 | ||
| @@ -144,7 +144,6 @@ gmalloc.o: gmalloc.c $(config_h) | |||
| 144 | ralloc.o: ralloc.c lisp.h $(config_h) | 144 | ralloc.o: ralloc.c lisp.h $(config_h) |
| 145 | vm-limit.o: vm-limit.c mem-limits.h lisp.h globals.h $(config_h) | 145 | vm-limit.o: vm-limit.c mem-limits.h lisp.h globals.h $(config_h) |
| 146 | marker.o: marker.c buffer.h character.h lisp.h globals.h $(config_h) | 146 | marker.o: marker.c buffer.h character.h lisp.h globals.h $(config_h) |
| 147 | md5.o: md5.c md5.h $(config_h) | ||
| 148 | minibuf.o: minibuf.c syntax.h frame.h window.h keyboard.h systime.h \ | 147 | minibuf.o: minibuf.c syntax.h frame.h window.h keyboard.h systime.h \ |
| 149 | buffer.h commands.h character.h msdos.h $(INTERVALS_H) keymap.h \ | 148 | buffer.h commands.h character.h msdos.h $(INTERVALS_H) keymap.h \ |
| 150 | termhooks.h lisp.h globals.h $(config_h) coding.h | 149 | termhooks.h lisp.h globals.h $(config_h) coding.h |
| @@ -283,7 +282,7 @@ eval.o: eval.c commands.h keyboard.h blockinput.h atimer.h systime.h frame.h \ | |||
| 283 | msdos.h | 282 | msdos.h |
| 284 | floatfns.o: floatfns.c syssignal.h lisp.h globals.h $(config_h) | 283 | floatfns.o: floatfns.c syssignal.h lisp.h globals.h $(config_h) |
| 285 | fns.o: fns.c commands.h lisp.h $(config_h) frame.h buffer.h character.h \ | 284 | fns.o: fns.c commands.h lisp.h $(config_h) frame.h buffer.h character.h \ |
| 286 | keyboard.h keymap.h window.h $(INTERVALS_H) coding.h md5.h \ | 285 | keyboard.h keymap.h window.h $(INTERVALS_H) coding.h ../lib/md5.h \ |
| 287 | blockinput.h atimer.h systime.h xterm.h ../lib/unistd.h globals.h | 286 | blockinput.h atimer.h systime.h xterm.h ../lib/unistd.h globals.h |
| 288 | print.o: print.c process.h frame.h window.h buffer.h keyboard.h character.h \ | 287 | print.o: print.c process.h frame.h window.h buffer.h keyboard.h character.h \ |
| 289 | lisp.h globals.h $(config_h) termchar.h $(INTERVALS_H) msdos.h termhooks.h \ | 288 | lisp.h globals.h $(config_h) termchar.h $(INTERVALS_H) msdos.h termhooks.h \ |
diff --git a/src/md5.c b/src/md5.c deleted file mode 100644 index 5ac4536cff9..00000000000 --- a/src/md5.c +++ /dev/null | |||
| @@ -1,429 +0,0 @@ | |||
| 1 | /* Functions to compute MD5 message digest of files or memory blocks. | ||
| 2 | according to the definition of MD5 in RFC 1321 from April 1992. | ||
| 3 | Copyright (C) 1995, 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2004, | ||
| 4 | 2005, 2006, 2007, 2010 Free Software Foundation, Inc. | ||
| 5 | |||
| 6 | This file is part of the GNU C Library. | ||
| 7 | |||
| 8 | The GNU C Library is free software; you can redistribute it and/or | ||
| 9 | modify it under the terms of the GNU General Public License as | ||
| 10 | published by the Free Software Foundation; either version 2 of the | ||
| 11 | License, or (at your option) any later version. | ||
| 12 | |||
| 13 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 14 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 16 | General Public License for more details. | ||
| 17 | |||
| 18 | You should have received a copy of the GNU General Public License | ||
| 19 | along with the GNU C Library; see the file COPYING. If not, write to the | ||
| 20 | Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||
| 21 | Boston, MA 02110-1301, USA. */ | ||
| 22 | |||
| 23 | /* Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. */ | ||
| 24 | |||
| 25 | #ifdef HAVE_CONFIG_H | ||
| 26 | # include <config.h> | ||
| 27 | #endif | ||
| 28 | |||
| 29 | #include <sys/types.h> | ||
| 30 | |||
| 31 | #if STDC_HEADERS || defined _LIBC | ||
| 32 | # include <stdlib.h> | ||
| 33 | # include <string.h> | ||
| 34 | #else | ||
| 35 | # ifndef HAVE_MEMCPY | ||
| 36 | # define memcpy(d, s, n) bcopy ((s), (d), (n)) | ||
| 37 | # endif | ||
| 38 | #endif | ||
| 39 | |||
| 40 | #ifdef _LIBC | ||
| 41 | # include <endian.h> | ||
| 42 | # if __BYTE_ORDER == __BIG_ENDIAN | ||
| 43 | # define WORDS_BIGENDIAN 1 | ||
| 44 | # endif | ||
| 45 | /* We need to keep the namespace clean so define the MD5 function | ||
| 46 | protected using leading __ . */ | ||
| 47 | # define md5_init_ctx __md5_init_ctx | ||
| 48 | # define md5_process_block __md5_process_block | ||
| 49 | # define md5_process_bytes __md5_process_bytes | ||
| 50 | # define md5_finish_ctx __md5_finish_ctx | ||
| 51 | # define md5_read_ctx __md5_read_ctx | ||
| 52 | # define md5_stream __md5_stream | ||
| 53 | # define md5_buffer __md5_buffer | ||
| 54 | #endif | ||
| 55 | |||
| 56 | #include "md5.h" | ||
| 57 | |||
| 58 | #ifdef WORDS_BIGENDIAN | ||
| 59 | # define SWAP(n) \ | ||
| 60 | (((n) << 24) | (((n) & 0xff00) << 8) | (((n) >> 8) & 0xff00) | ((n) >> 24)) | ||
| 61 | #else | ||
| 62 | # define SWAP(n) (n) | ||
| 63 | #endif | ||
| 64 | |||
| 65 | |||
| 66 | /* This array contains the bytes used to pad the buffer to the next | ||
| 67 | 64-byte boundary. (RFC 1321, 3.1: Step 1) */ | ||
| 68 | static const unsigned char fillbuf[64] = { 0x80, 0 /* , 0, 0, ... */ }; | ||
| 69 | |||
| 70 | |||
| 71 | /* Initialize structure containing state of computation. | ||
| 72 | (RFC 1321, 3.3: Step 3) */ | ||
| 73 | void | ||
| 74 | md5_init_ctx (struct md5_ctx *ctx) | ||
| 75 | { | ||
| 76 | ctx->A = 0x67452301; | ||
| 77 | ctx->B = 0xefcdab89; | ||
| 78 | ctx->C = 0x98badcfe; | ||
| 79 | ctx->D = 0x10325476; | ||
| 80 | |||
| 81 | ctx->total[0] = ctx->total[1] = 0; | ||
| 82 | ctx->buflen = 0; | ||
| 83 | } | ||
| 84 | |||
| 85 | /* Put result from CTX in first 16 bytes following RESBUF. The result | ||
| 86 | must be in little endian byte order. | ||
| 87 | |||
| 88 | IMPORTANT: On some systems it is required that RESBUF is correctly | ||
| 89 | aligned for a 32 bits value. */ | ||
| 90 | void * | ||
| 91 | md5_read_ctx (const struct md5_ctx *ctx, void *resbuf) | ||
| 92 | { | ||
| 93 | ((md5_uint32 *) resbuf)[0] = SWAP (ctx->A); | ||
| 94 | ((md5_uint32 *) resbuf)[1] = SWAP (ctx->B); | ||
| 95 | ((md5_uint32 *) resbuf)[2] = SWAP (ctx->C); | ||
| 96 | ((md5_uint32 *) resbuf)[3] = SWAP (ctx->D); | ||
| 97 | |||
| 98 | return resbuf; | ||
| 99 | } | ||
| 100 | |||
| 101 | /* Process the remaining bytes in the internal buffer and the usual | ||
| 102 | prolog according to the standard and write the result to RESBUF. | ||
| 103 | |||
| 104 | IMPORTANT: On some systems it is required that RESBUF is correctly | ||
| 105 | aligned for a 32 bits value. */ | ||
| 106 | void * | ||
| 107 | md5_finish_ctx (struct md5_ctx *ctx, void *resbuf) | ||
| 108 | { | ||
| 109 | /* Take yet unprocessed bytes into account. */ | ||
| 110 | md5_uint32 bytes = ctx->buflen; | ||
| 111 | size_t pad; | ||
| 112 | |||
| 113 | /* Now count remaining bytes. */ | ||
| 114 | ctx->total[0] += bytes; | ||
| 115 | if (ctx->total[0] < bytes) | ||
| 116 | ++ctx->total[1]; | ||
| 117 | |||
| 118 | pad = bytes >= 56 ? 64 + 56 - bytes : 56 - bytes; | ||
| 119 | memcpy (&ctx->buffer[bytes], fillbuf, pad); | ||
| 120 | |||
| 121 | /* Put the 64-bit file length in *bits* at the end of the buffer. */ | ||
| 122 | *(md5_uint32 *) &ctx->buffer[bytes + pad] = SWAP (ctx->total[0] << 3); | ||
| 123 | *(md5_uint32 *) &ctx->buffer[bytes + pad + 4] = SWAP ((ctx->total[1] << 3) | | ||
| 124 | (ctx->total[0] >> 29)); | ||
| 125 | |||
| 126 | /* Process last bytes. */ | ||
| 127 | md5_process_block (ctx->buffer, bytes + pad + 8, ctx); | ||
| 128 | |||
| 129 | return md5_read_ctx (ctx, resbuf); | ||
| 130 | } | ||
| 131 | |||
| 132 | /* Compute MD5 message digest for bytes read from STREAM. The | ||
| 133 | resulting message digest number will be written into the 16 bytes | ||
| 134 | beginning at RESBLOCK. */ | ||
| 135 | int | ||
| 136 | md5_stream (FILE *stream, void *resblock) | ||
| 137 | { | ||
| 138 | /* Important: BLOCKSIZE must be a multiple of 64. */ | ||
| 139 | #define BLOCKSIZE 4096 | ||
| 140 | struct md5_ctx ctx; | ||
| 141 | char buffer[BLOCKSIZE + 72]; | ||
| 142 | size_t sum; | ||
| 143 | |||
| 144 | /* Initialize the computation context. */ | ||
| 145 | md5_init_ctx (&ctx); | ||
| 146 | |||
| 147 | /* Iterate over full file contents. */ | ||
| 148 | while (1) | ||
| 149 | { | ||
| 150 | /* We read the file in blocks of BLOCKSIZE bytes. One call of the | ||
| 151 | computation function processes the whole buffer so that with the | ||
| 152 | next round of the loop another block can be read. */ | ||
| 153 | size_t n; | ||
| 154 | sum = 0; | ||
| 155 | |||
| 156 | /* Read block. Take care for partial reads. */ | ||
| 157 | do | ||
| 158 | { | ||
| 159 | n = fread (buffer + sum, 1, BLOCKSIZE - sum, stream); | ||
| 160 | |||
| 161 | sum += n; | ||
| 162 | } | ||
| 163 | while (sum < BLOCKSIZE && n != 0); | ||
| 164 | if (n == 0 && ferror (stream)) | ||
| 165 | return 1; | ||
| 166 | |||
| 167 | /* If end of file is reached, end the loop. */ | ||
| 168 | if (n == 0) | ||
| 169 | break; | ||
| 170 | |||
| 171 | /* Process buffer with BLOCKSIZE bytes. Note that | ||
| 172 | BLOCKSIZE % 64 == 0 | ||
| 173 | */ | ||
| 174 | md5_process_block (buffer, BLOCKSIZE, &ctx); | ||
| 175 | } | ||
| 176 | |||
| 177 | /* Add the last bytes if necessary. */ | ||
| 178 | if (sum > 0) | ||
| 179 | md5_process_bytes (buffer, sum, &ctx); | ||
| 180 | |||
| 181 | /* Construct result in desired memory. */ | ||
| 182 | md5_finish_ctx (&ctx, resblock); | ||
| 183 | return 0; | ||
| 184 | } | ||
| 185 | |||
| 186 | /* Compute MD5 message digest for LEN bytes beginning at BUFFER. The | ||
| 187 | result is always in little endian byte order, so that a byte-wise | ||
| 188 | output yields to the wanted ASCII representation of the message | ||
| 189 | digest. */ | ||
| 190 | void * | ||
| 191 | md5_buffer (const char *buffer, size_t len, void *resblock) | ||
| 192 | { | ||
| 193 | struct md5_ctx ctx; | ||
| 194 | |||
| 195 | /* Initialize the computation context. */ | ||
| 196 | md5_init_ctx (&ctx); | ||
| 197 | |||
| 198 | /* Process whole buffer but last len % 64 bytes. */ | ||
| 199 | md5_process_bytes (buffer, len, &ctx); | ||
| 200 | |||
| 201 | /* Put result in desired memory area. */ | ||
| 202 | return md5_finish_ctx (&ctx, resblock); | ||
| 203 | } | ||
| 204 | |||
| 205 | |||
| 206 | void | ||
| 207 | md5_process_bytes (const void *buffer, size_t len, struct md5_ctx *ctx) | ||
| 208 | { | ||
| 209 | /* const void aligned_buffer = buffer; */ | ||
| 210 | |||
| 211 | /* When we already have some bits in our internal buffer concatenate | ||
| 212 | both inputs first. */ | ||
| 213 | if (ctx->buflen != 0) | ||
| 214 | { | ||
| 215 | size_t left_over = ctx->buflen; | ||
| 216 | size_t add = 128 - left_over > len ? len : 128 - left_over; | ||
| 217 | |||
| 218 | /* Only put full words in the buffer. */ | ||
| 219 | add -= add % sizeof (md5_uint32); | ||
| 220 | |||
| 221 | memcpy (&ctx->buffer[left_over], buffer, add); | ||
| 222 | ctx->buflen += add; | ||
| 223 | |||
| 224 | if (ctx->buflen > 64) | ||
| 225 | { | ||
| 226 | md5_process_block (ctx->buffer, ctx->buflen & ~63, ctx); | ||
| 227 | |||
| 228 | ctx->buflen &= 63; | ||
| 229 | /* The regions in the following copy operation cannot overlap. */ | ||
| 230 | memcpy (ctx->buffer, &ctx->buffer[(left_over + add) & ~63], | ||
| 231 | ctx->buflen); | ||
| 232 | } | ||
| 233 | |||
| 234 | buffer = (const char *) buffer + add; | ||
| 235 | len -= add; | ||
| 236 | } | ||
| 237 | |||
| 238 | /* Process available complete blocks. */ | ||
| 239 | if (len > 64) | ||
| 240 | { | ||
| 241 | md5_process_block (buffer, len & ~63, ctx); | ||
| 242 | buffer = (const char *) buffer + (len & ~63); | ||
| 243 | len &= 63; | ||
| 244 | } | ||
| 245 | |||
| 246 | /* Move remaining bytes in internal buffer. */ | ||
| 247 | if (len > 0) | ||
| 248 | { | ||
| 249 | size_t left_over = ctx->buflen; | ||
| 250 | |||
| 251 | memcpy (&ctx->buffer[left_over], buffer, len); | ||
| 252 | left_over += len; | ||
| 253 | if (left_over >= 64) | ||
| 254 | { | ||
| 255 | md5_process_block (ctx->buffer, 64, ctx); | ||
| 256 | left_over -= 64; | ||
| 257 | memcpy (ctx->buffer, &ctx->buffer[64], left_over); | ||
| 258 | } | ||
| 259 | ctx->buflen = left_over; | ||
| 260 | } | ||
| 261 | } | ||
| 262 | |||
| 263 | |||
| 264 | /* These are the four functions used in the four steps of the MD5 algorithm | ||
| 265 | and defined in the RFC 1321. The first function is a little bit optimized | ||
| 266 | (as found in Colin Plumbs public domain implementation). */ | ||
| 267 | /* #define FF(b, c, d) ((b & c) | (~b & d)) */ | ||
| 268 | #define FF(b, c, d) (d ^ (b & (c ^ d))) | ||
| 269 | #define FG(b, c, d) FF (d, b, c) | ||
| 270 | #define FH(b, c, d) (b ^ c ^ d) | ||
| 271 | #define FI(b, c, d) (c ^ (b | ~d)) | ||
| 272 | |||
| 273 | /* Process LEN bytes of BUFFER, accumulating context into CTX. | ||
| 274 | It is assumed that LEN % 64 == 0. */ | ||
| 275 | |||
| 276 | void | ||
| 277 | md5_process_block (const void *buffer, size_t len, struct md5_ctx *ctx) | ||
| 278 | { | ||
| 279 | md5_uint32 correct_words[16]; | ||
| 280 | const md5_uint32 *words = buffer; | ||
| 281 | size_t nwords = len / sizeof (md5_uint32); | ||
| 282 | const md5_uint32 *endp = words + nwords; | ||
| 283 | md5_uint32 A = ctx->A; | ||
| 284 | md5_uint32 B = ctx->B; | ||
| 285 | md5_uint32 C = ctx->C; | ||
| 286 | md5_uint32 D = ctx->D; | ||
| 287 | |||
| 288 | /* First increment the byte count. RFC 1321 specifies the possible | ||
| 289 | length of the file up to 2^64 bits. Here we only compute the | ||
| 290 | number of bytes. Do a double word increment. */ | ||
| 291 | ctx->total[0] += len; | ||
| 292 | if (ctx->total[0] < len) | ||
| 293 | ++ctx->total[1]; | ||
| 294 | |||
| 295 | /* Process all bytes in the buffer with 64 bytes in each round of | ||
| 296 | the loop. */ | ||
| 297 | while (words < endp) | ||
| 298 | { | ||
| 299 | md5_uint32 *cwp = correct_words; | ||
| 300 | md5_uint32 A_save = A; | ||
| 301 | md5_uint32 B_save = B; | ||
| 302 | md5_uint32 C_save = C; | ||
| 303 | md5_uint32 D_save = D; | ||
| 304 | |||
| 305 | /* First round: using the given function, the context and a constant | ||
| 306 | the next context is computed. Because the algorithms processing | ||
| 307 | unit is a 32-bit word and it is determined to work on words in | ||
| 308 | little endian byte order we perhaps have to change the byte order | ||
| 309 | before the computation. To reduce the work for the next steps | ||
| 310 | we store the swapped words in the array CORRECT_WORDS. */ | ||
| 311 | |||
| 312 | #define OP(a, b, c, d, s, T) \ | ||
| 313 | do \ | ||
| 314 | { \ | ||
| 315 | a += FF (b, c, d) + (*cwp++ = SWAP (*words)) + T; \ | ||
| 316 | ++words; \ | ||
| 317 | CYCLIC (a, s); \ | ||
| 318 | a += b; \ | ||
| 319 | } \ | ||
| 320 | while (0) | ||
| 321 | |||
| 322 | /* It is unfortunate that C does not provide an operator for | ||
| 323 | cyclic rotation. Hope the C compiler is smart enough. */ | ||
| 324 | #define CYCLIC(w, s) (w = (w << s) | (w >> (32 - s))) | ||
| 325 | |||
| 326 | /* Before we start, one word to the strange constants. | ||
| 327 | They are defined in RFC 1321 as | ||
| 328 | |||
| 329 | T[i] = (int) (4294967296.0 * fabs (sin (i))), i=1..64 | ||
| 330 | */ | ||
| 331 | |||
| 332 | /* Round 1. */ | ||
| 333 | OP (A, B, C, D, 7, 0xd76aa478); | ||
| 334 | OP (D, A, B, C, 12, 0xe8c7b756); | ||
| 335 | OP (C, D, A, B, 17, 0x242070db); | ||
| 336 | OP (B, C, D, A, 22, 0xc1bdceee); | ||
| 337 | OP (A, B, C, D, 7, 0xf57c0faf); | ||
| 338 | OP (D, A, B, C, 12, 0x4787c62a); | ||
| 339 | OP (C, D, A, B, 17, 0xa8304613); | ||
| 340 | OP (B, C, D, A, 22, 0xfd469501); | ||
| 341 | OP (A, B, C, D, 7, 0x698098d8); | ||
| 342 | OP (D, A, B, C, 12, 0x8b44f7af); | ||
| 343 | OP (C, D, A, B, 17, 0xffff5bb1); | ||
| 344 | OP (B, C, D, A, 22, 0x895cd7be); | ||
| 345 | OP (A, B, C, D, 7, 0x6b901122); | ||
| 346 | OP (D, A, B, C, 12, 0xfd987193); | ||
| 347 | OP (C, D, A, B, 17, 0xa679438e); | ||
| 348 | OP (B, C, D, A, 22, 0x49b40821); | ||
| 349 | |||
| 350 | /* For the second to fourth round we have the possibly swapped words | ||
| 351 | in CORRECT_WORDS. Redefine the macro to take an additional first | ||
| 352 | argument specifying the function to use. */ | ||
| 353 | #undef OP | ||
| 354 | #define OP(f, a, b, c, d, k, s, T) \ | ||
| 355 | do \ | ||
| 356 | { \ | ||
| 357 | a += f (b, c, d) + correct_words[k] + T; \ | ||
| 358 | CYCLIC (a, s); \ | ||
| 359 | a += b; \ | ||
| 360 | } \ | ||
| 361 | while (0) | ||
| 362 | |||
| 363 | /* Round 2. */ | ||
| 364 | OP (FG, A, B, C, D, 1, 5, 0xf61e2562); | ||
| 365 | OP (FG, D, A, B, C, 6, 9, 0xc040b340); | ||
| 366 | OP (FG, C, D, A, B, 11, 14, 0x265e5a51); | ||
| 367 | OP (FG, B, C, D, A, 0, 20, 0xe9b6c7aa); | ||
| 368 | OP (FG, A, B, C, D, 5, 5, 0xd62f105d); | ||
| 369 | OP (FG, D, A, B, C, 10, 9, 0x02441453); | ||
| 370 | OP (FG, C, D, A, B, 15, 14, 0xd8a1e681); | ||
| 371 | OP (FG, B, C, D, A, 4, 20, 0xe7d3fbc8); | ||
| 372 | OP (FG, A, B, C, D, 9, 5, 0x21e1cde6); | ||
| 373 | OP (FG, D, A, B, C, 14, 9, 0xc33707d6); | ||
| 374 | OP (FG, C, D, A, B, 3, 14, 0xf4d50d87); | ||
| 375 | OP (FG, B, C, D, A, 8, 20, 0x455a14ed); | ||
| 376 | OP (FG, A, B, C, D, 13, 5, 0xa9e3e905); | ||
| 377 | OP (FG, D, A, B, C, 2, 9, 0xfcefa3f8); | ||
| 378 | OP (FG, C, D, A, B, 7, 14, 0x676f02d9); | ||
| 379 | OP (FG, B, C, D, A, 12, 20, 0x8d2a4c8a); | ||
| 380 | |||
| 381 | /* Round 3. */ | ||
| 382 | OP (FH, A, B, C, D, 5, 4, 0xfffa3942); | ||
| 383 | OP (FH, D, A, B, C, 8, 11, 0x8771f681); | ||
| 384 | OP (FH, C, D, A, B, 11, 16, 0x6d9d6122); | ||
| 385 | OP (FH, B, C, D, A, 14, 23, 0xfde5380c); | ||
| 386 | OP (FH, A, B, C, D, 1, 4, 0xa4beea44); | ||
| 387 | OP (FH, D, A, B, C, 4, 11, 0x4bdecfa9); | ||
| 388 | OP (FH, C, D, A, B, 7, 16, 0xf6bb4b60); | ||
| 389 | OP (FH, B, C, D, A, 10, 23, 0xbebfbc70); | ||
| 390 | OP (FH, A, B, C, D, 13, 4, 0x289b7ec6); | ||
| 391 | OP (FH, D, A, B, C, 0, 11, 0xeaa127fa); | ||
| 392 | OP (FH, C, D, A, B, 3, 16, 0xd4ef3085); | ||
| 393 | OP (FH, B, C, D, A, 6, 23, 0x04881d05); | ||
| 394 | OP (FH, A, B, C, D, 9, 4, 0xd9d4d039); | ||
| 395 | OP (FH, D, A, B, C, 12, 11, 0xe6db99e5); | ||
| 396 | OP (FH, C, D, A, B, 15, 16, 0x1fa27cf8); | ||
| 397 | OP (FH, B, C, D, A, 2, 23, 0xc4ac5665); | ||
| 398 | |||
| 399 | /* Round 4. */ | ||
| 400 | OP (FI, A, B, C, D, 0, 6, 0xf4292244); | ||
| 401 | OP (FI, D, A, B, C, 7, 10, 0x432aff97); | ||
| 402 | OP (FI, C, D, A, B, 14, 15, 0xab9423a7); | ||
| 403 | OP (FI, B, C, D, A, 5, 21, 0xfc93a039); | ||
| 404 | OP (FI, A, B, C, D, 12, 6, 0x655b59c3); | ||
| 405 | OP (FI, D, A, B, C, 3, 10, 0x8f0ccc92); | ||
| 406 | OP (FI, C, D, A, B, 10, 15, 0xffeff47d); | ||
| 407 | OP (FI, B, C, D, A, 1, 21, 0x85845dd1); | ||
| 408 | OP (FI, A, B, C, D, 8, 6, 0x6fa87e4f); | ||
| 409 | OP (FI, D, A, B, C, 15, 10, 0xfe2ce6e0); | ||
| 410 | OP (FI, C, D, A, B, 6, 15, 0xa3014314); | ||
| 411 | OP (FI, B, C, D, A, 13, 21, 0x4e0811a1); | ||
| 412 | OP (FI, A, B, C, D, 4, 6, 0xf7537e82); | ||
| 413 | OP (FI, D, A, B, C, 11, 10, 0xbd3af235); | ||
| 414 | OP (FI, C, D, A, B, 2, 15, 0x2ad7d2bb); | ||
| 415 | OP (FI, B, C, D, A, 9, 21, 0xeb86d391); | ||
| 416 | |||
| 417 | /* Add the starting values of the context. */ | ||
| 418 | A += A_save; | ||
| 419 | B += B_save; | ||
| 420 | C += C_save; | ||
| 421 | D += D_save; | ||
| 422 | } | ||
| 423 | |||
| 424 | /* Put checksum in context given as argument. */ | ||
| 425 | ctx->A = A; | ||
| 426 | ctx->B = B; | ||
| 427 | ctx->C = C; | ||
| 428 | ctx->D = D; | ||
| 429 | } | ||
diff --git a/src/md5.h b/src/md5.h deleted file mode 100644 index 22bcdfd7119..00000000000 --- a/src/md5.h +++ /dev/null | |||
| @@ -1,148 +0,0 @@ | |||
| 1 | /* Declaration of functions and data types used for MD5 sum computing | ||
| 2 | library functions. | ||
| 3 | Copyright (C) 1995, 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2004, | ||
| 4 | 2005, 2006, 2007 Free Software Foundation, Inc. | ||
| 5 | This file is part of GNU Emacs. | ||
| 6 | |||
| 7 | The GNU C Library is free software; you can redistribute it and/or | ||
| 8 | modify it under the terms of the GNU General Public License as | ||
| 9 | published by the Free Software Foundation; either version 2 of the | ||
| 10 | License, or (at your option) any later version. | ||
| 11 | |||
| 12 | The GNU C Library is distributed in the hope that it will be useful, | ||
| 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 15 | General Public License for more details. | ||
| 16 | |||
| 17 | You should have received a copy of the GNU General Public | ||
| 18 | License along with the GNU C Library; see the file COPYING. If not, | ||
| 19 | write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||
| 20 | Boston, MA 02110-1301, USA. */ | ||
| 21 | |||
| 22 | #ifndef _MD5_H | ||
| 23 | #define _MD5_H 1 | ||
| 24 | |||
| 25 | #include <stdio.h> | ||
| 26 | |||
| 27 | #if defined HAVE_LIMITS_H || _LIBC | ||
| 28 | # include <limits.h> | ||
| 29 | #endif | ||
| 30 | |||
| 31 | /* The following contortions are an attempt to use the C preprocessor | ||
| 32 | to determine an unsigned integral type that is 32 bits wide. An | ||
| 33 | alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but | ||
| 34 | doing that would require that the configure script compile and *run* | ||
| 35 | the resulting executable. Locally running cross-compiled executables | ||
| 36 | is usually not possible. */ | ||
| 37 | |||
| 38 | #ifdef _LIBC | ||
| 39 | # include <sys/types.h> | ||
| 40 | typedef u_int32_t md5_uint32; | ||
| 41 | #else | ||
| 42 | # if defined __STDC__ && __STDC__ | ||
| 43 | # define UINT_MAX_32_BITS 4294967295U | ||
| 44 | # else | ||
| 45 | # define UINT_MAX_32_BITS 0xFFFFFFFF | ||
| 46 | # endif | ||
| 47 | |||
| 48 | /* If UINT_MAX isn't defined, assume it's a 32-bit type. | ||
| 49 | This should be valid for all systems GNU cares about because | ||
| 50 | that doesn't include 16-bit systems, and only modern systems | ||
| 51 | (that certainly have <limits.h>) have 64+-bit integral types. */ | ||
| 52 | |||
| 53 | # ifndef UINT_MAX | ||
| 54 | # define UINT_MAX UINT_MAX_32_BITS | ||
| 55 | # endif | ||
| 56 | |||
| 57 | # if UINT_MAX == UINT_MAX_32_BITS | ||
| 58 | typedef unsigned int md5_uint32; | ||
| 59 | # else | ||
| 60 | # if USHRT_MAX == UINT_MAX_32_BITS | ||
| 61 | typedef unsigned short md5_uint32; | ||
| 62 | # else | ||
| 63 | # if ULONG_MAX == UINT_MAX_32_BITS | ||
| 64 | typedef unsigned long md5_uint32; | ||
| 65 | # else | ||
| 66 | /* The following line is intended to evoke an error. | ||
| 67 | Using #error is not portable enough. */ | ||
| 68 | "Cannot determine unsigned 32-bit data type." | ||
| 69 | # endif | ||
| 70 | # endif | ||
| 71 | # endif | ||
| 72 | #endif | ||
| 73 | |||
| 74 | |||
| 75 | #if HAVE_ATTRIBUTE_ALIGNED | ||
| 76 | # define ATTRIBUTE_ALIGNED(N) __attribute__ ((__aligned__ (N))) | ||
| 77 | #else | ||
| 78 | # define ATTRIBUTE_ALIGNED(N) | ||
| 79 | #endif | ||
| 80 | |||
| 81 | /* Structure to save state of computation between the single steps. */ | ||
| 82 | struct md5_ctx | ||
| 83 | { | ||
| 84 | md5_uint32 A; | ||
| 85 | md5_uint32 B; | ||
| 86 | md5_uint32 C; | ||
| 87 | md5_uint32 D; | ||
| 88 | |||
| 89 | md5_uint32 total[2]; | ||
| 90 | md5_uint32 buflen; | ||
| 91 | char buffer[128] ATTRIBUTE_ALIGNED (__alignof__ (md5_uint32)); | ||
| 92 | }; | ||
| 93 | |||
| 94 | /* | ||
| 95 | * The following three functions are build up the low level used in | ||
| 96 | * the functions `md5_stream' and `md5_buffer'. | ||
| 97 | */ | ||
| 98 | |||
| 99 | /* Initialize structure containing state of computation. | ||
| 100 | (RFC 1321, 3.3: Step 3) */ | ||
| 101 | extern void md5_init_ctx (struct md5_ctx *ctx); | ||
| 102 | |||
| 103 | /* Starting with the result of former calls of this function (or the | ||
| 104 | initialization function update the context for the next LEN bytes | ||
| 105 | starting at BUFFER. | ||
| 106 | It is necessary that LEN is a multiple of 64!!! */ | ||
| 107 | extern void md5_process_block (const void *buffer, size_t len, | ||
| 108 | struct md5_ctx *ctx); | ||
| 109 | |||
| 110 | /* Starting with the result of former calls of this function (or the | ||
| 111 | initialization function update the context for the next LEN bytes | ||
| 112 | starting at BUFFER. | ||
| 113 | It is NOT required that LEN is a multiple of 64. */ | ||
| 114 | extern void md5_process_bytes (const void *buffer, size_t len, | ||
| 115 | struct md5_ctx *ctx); | ||
| 116 | |||
| 117 | /* Process the remaining bytes in the buffer and put result from CTX | ||
| 118 | in first 16 bytes following RESBUF. The result is always in little | ||
| 119 | endian byte order, so that a byte-wise output yields to the wanted | ||
| 120 | ASCII representation of the message digest. | ||
| 121 | |||
| 122 | IMPORTANT: On some systems it is required that RESBUF is correctly | ||
| 123 | aligned for a 32 bits value. */ | ||
| 124 | extern void *md5_finish_ctx (struct md5_ctx *ctx, void *resbuf); | ||
| 125 | |||
| 126 | |||
| 127 | /* Put result from CTX in first 16 bytes following RESBUF. The result is | ||
| 128 | always in little endian byte order, so that a byte-wise output yields | ||
| 129 | to the wanted ASCII representation of the message digest. | ||
| 130 | |||
| 131 | IMPORTANT: On some systems it is required that RESBUF is correctly | ||
| 132 | aligned for a 32 bits value. */ | ||
| 133 | extern void *md5_read_ctx (const struct md5_ctx *ctx, void *resbuf); | ||
| 134 | |||
| 135 | |||
| 136 | /* Compute MD5 message digest for bytes read from STREAM. The | ||
| 137 | resulting message digest number will be written into the 16 bytes | ||
| 138 | beginning at RESBLOCK. */ | ||
| 139 | extern int md5_stream (FILE *stream, void *resblock); | ||
| 140 | |||
| 141 | /* Compute MD5 message digest for LEN bytes beginning at BUFFER. The | ||
| 142 | result is always in little endian byte order, so that a byte-wise | ||
| 143 | output yields to the wanted ASCII representation of the message | ||
| 144 | digest. */ | ||
| 145 | extern void *md5_buffer (const char *buffer, size_t len, | ||
| 146 | void *resblock); | ||
| 147 | |||
| 148 | #endif /* md5.h */ | ||