diff options
| author | Paul Eggert | 2011-02-14 22:40:12 -0800 |
|---|---|---|
| committer | Paul Eggert | 2011-02-14 22:40:12 -0800 |
| commit | 9502925a798a3af3d40f67a30f30ced94d814f52 (patch) | |
| tree | 90d1bdd2ea83faa8875d08da1bcc924a0002d218 | |
| parent | fae95934b8edae3f538063e756ac799ed94313b2 (diff) | |
| download | emacs-9502925a798a3af3d40f67a30f30ced94d814f52.tar.gz emacs-9502925a798a3af3d40f67a30f30ced94d814f52.zip | |
Merge from proposed getloadavg simplifications in gnulib.
* configure, lib/Makefile.in, src/config.in: Regenerate.
* lib/getloadavg.c, lib/stdlib.in.h, m4/getloadavg.m4: New
versions from gnulib.
2011-02-15 Paul Eggert <eggert@cs.ucla.edu>
| -rw-r--r-- | ChangeLog | 8 | ||||
| -rwxr-xr-x | configure | 350 | ||||
| -rw-r--r-- | lib/Makefile.in | 2 | ||||
| -rw-r--r-- | lib/getloadavg.c | 46 | ||||
| -rw-r--r-- | lib/stdlib.in.h | 10 | ||||
| -rw-r--r-- | m4/getloadavg.m4 | 143 | ||||
| -rw-r--r-- | src/config.in | 14 |
7 files changed, 210 insertions, 363 deletions
| @@ -1,5 +1,13 @@ | |||
| 1 | 2011-02-15 Paul Eggert <eggert@cs.ucla.edu> | 1 | 2011-02-15 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 2 | ||
| 3 | Merge from proposed getloadavg simplifications in gnulib. | ||
| 4 | |||
| 5 | * configure, lib/Makefile.in, src/config.in: Regenerate. | ||
| 6 | * lib/getloadavg.c, lib/stdlib.in.h, m4/getloadavg.m4: New | ||
| 7 | versions from gnulib. | ||
| 8 | |||
| 9 | 2011-02-15 Paul Eggert <eggert@cs.ucla.edu> | ||
| 10 | |||
| 3 | Merge from gnulib. | 11 | Merge from gnulib. |
| 4 | 12 | ||
| 5 | 2011-02-13 Bruno Haible <bruno@clisp.org> | 13 | 2011-02-13 Bruno Haible <bruno@clisp.org> |
| @@ -816,8 +816,6 @@ GNULIB_DUP2 | |||
| 816 | GNULIB_CLOSE | 816 | GNULIB_CLOSE |
| 817 | GNULIB_CHOWN | 817 | GNULIB_CHOWN |
| 818 | GETLOADAVG_LIBS | 818 | GETLOADAVG_LIBS |
| 819 | KMEM_GROUP | ||
| 820 | NEED_SETGID | ||
| 821 | REPLACE_UNSETENV | 819 | REPLACE_UNSETENV |
| 822 | REPLACE_STRTOD | 820 | REPLACE_STRTOD |
| 823 | REPLACE_SETENV | 821 | REPLACE_SETENV |
| @@ -1105,6 +1103,9 @@ LDFLAGS | |||
| 1105 | LIBS | 1103 | LIBS |
| 1106 | CPPFLAGS | 1104 | CPPFLAGS |
| 1107 | CPP | 1105 | CPP |
| 1106 | CPPFLAGS | ||
| 1107 | CPP | ||
| 1108 | CPPFLAGS | ||
| 1108 | XMKMF' | 1109 | XMKMF' |
| 1109 | 1110 | ||
| 1110 | 1111 | ||
| @@ -14468,44 +14469,31 @@ fi | |||
| 14468 | # Persuade glibc <stdlib.h> to declare getloadavg(). | 14469 | # Persuade glibc <stdlib.h> to declare getloadavg(). |
| 14469 | 14470 | ||
| 14470 | 14471 | ||
| 14471 | gl_have_func=no # yes means we've found a way to get the load average. | ||
| 14472 | |||
| 14473 | # Make sure getloadavg.c is where it belongs, at configure-time. | 14472 | # Make sure getloadavg.c is where it belongs, at configure-time. |
| 14474 | test -f "$srcdir/$gl_source_base/getloadavg.c" || | 14473 | test -f "$srcdir/$gl_source_base/getloadavg.c" || |
| 14475 | as_fn_error $? "$srcdir/$gl_source_base/getloadavg.c is missing" "$LINENO" 5 | 14474 | as_fn_error $? "$srcdir/$gl_source_base/getloadavg.c is missing" "$LINENO" 5 |
| 14476 | 14475 | ||
| 14477 | gl_save_LIBS=$LIBS | 14476 | gl_save_LIBS=$LIBS |
| 14478 | 14477 | ||
| 14479 | # Check for getloadavg, but be sure not to touch the cache variable. | 14478 | ac_fn_c_check_func "$LINENO" "getloadavg" "ac_cv_func_getloadavg" |
| 14480 | (ac_fn_c_check_func "$LINENO" "getloadavg" "ac_cv_func_getloadavg" | ||
| 14481 | if test "x$ac_cv_func_getloadavg" = xyes; then : | 14479 | if test "x$ac_cv_func_getloadavg" = xyes; then : |
| 14482 | exit 0 | ||
| 14483 | else | ||
| 14484 | exit 1 | ||
| 14485 | fi | ||
| 14486 | ) && gl_have_func=yes | ||
| 14487 | |||
| 14488 | # On HPUX9, an unprivileged user can get load averages through this function. | ||
| 14489 | for ac_func in pstat_getdynamic | ||
| 14490 | do : | ||
| 14491 | ac_fn_c_check_func "$LINENO" "pstat_getdynamic" "ac_cv_func_pstat_getdynamic" | ||
| 14492 | if test "x$ac_cv_func_pstat_getdynamic" = xyes; then : | ||
| 14493 | cat >>confdefs.h <<_ACEOF | ||
| 14494 | #define HAVE_PSTAT_GETDYNAMIC 1 | ||
| 14495 | _ACEOF | ||
| 14496 | |||
| 14497 | fi | ||
| 14498 | done | ||
| 14499 | 14480 | ||
| 14481 | else | ||
| 14482 | gl_have_func=no | ||
| 14500 | 14483 | ||
| 14501 | # Solaris has libkstat which does not require root. | 14484 | # Some systems with -lutil have (and need) -lkvm as well, some do not. |
| 14502 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kstat_open in -lkstat" >&5 | 14485 | # On Solaris, -lkvm requires nlist from -lelf, so check that first |
| 14503 | $as_echo_n "checking for kstat_open in -lkstat... " >&6; } | 14486 | # to get the right answer into the cache. |
| 14504 | if ${ac_cv_lib_kstat_kstat_open+:} false; then : | 14487 | # For kstat on solaris, we need to test for libelf and libkvm to force the |
| 14488 | # definition of SVR4 below. | ||
| 14489 | if test $gl_have_func = no; then | ||
| 14490 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for elf_begin in -lelf" >&5 | ||
| 14491 | $as_echo_n "checking for elf_begin in -lelf... " >&6; } | ||
| 14492 | if ${ac_cv_lib_elf_elf_begin+:} false; then : | ||
| 14505 | $as_echo_n "(cached) " >&6 | 14493 | $as_echo_n "(cached) " >&6 |
| 14506 | else | 14494 | else |
| 14507 | ac_check_lib_save_LIBS=$LIBS | 14495 | ac_check_lib_save_LIBS=$LIBS |
| 14508 | LIBS="-lkstat $LIBS" | 14496 | LIBS="-lelf $LIBS" |
| 14509 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | 14497 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
| 14510 | /* end confdefs.h. */ | 14498 | /* end confdefs.h. */ |
| 14511 | 14499 | ||
| @@ -14515,45 +14503,37 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext | |||
| 14515 | #ifdef __cplusplus | 14503 | #ifdef __cplusplus |
| 14516 | extern "C" | 14504 | extern "C" |
| 14517 | #endif | 14505 | #endif |
| 14518 | char kstat_open (); | 14506 | char elf_begin (); |
| 14519 | int | 14507 | int |
| 14520 | main () | 14508 | main () |
| 14521 | { | 14509 | { |
| 14522 | return kstat_open (); | 14510 | return elf_begin (); |
| 14523 | ; | 14511 | ; |
| 14524 | return 0; | 14512 | return 0; |
| 14525 | } | 14513 | } |
| 14526 | _ACEOF | 14514 | _ACEOF |
| 14527 | if ac_fn_c_try_link "$LINENO"; then : | 14515 | if ac_fn_c_try_link "$LINENO"; then : |
| 14528 | ac_cv_lib_kstat_kstat_open=yes | 14516 | ac_cv_lib_elf_elf_begin=yes |
| 14529 | else | 14517 | else |
| 14530 | ac_cv_lib_kstat_kstat_open=no | 14518 | ac_cv_lib_elf_elf_begin=no |
| 14531 | fi | 14519 | fi |
| 14532 | rm -f core conftest.err conftest.$ac_objext \ | 14520 | rm -f core conftest.err conftest.$ac_objext \ |
| 14533 | conftest$ac_exeext conftest.$ac_ext | 14521 | conftest$ac_exeext conftest.$ac_ext |
| 14534 | LIBS=$ac_check_lib_save_LIBS | 14522 | LIBS=$ac_check_lib_save_LIBS |
| 14535 | fi | 14523 | fi |
| 14536 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_kstat_kstat_open" >&5 | 14524 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_elf_elf_begin" >&5 |
| 14537 | $as_echo "$ac_cv_lib_kstat_kstat_open" >&6; } | 14525 | $as_echo "$ac_cv_lib_elf_elf_begin" >&6; } |
| 14538 | if test "x$ac_cv_lib_kstat_kstat_open" = xyes; then : | 14526 | if test "x$ac_cv_lib_elf_elf_begin" = xyes; then : |
| 14539 | cat >>confdefs.h <<_ACEOF | 14527 | LIBS="-lelf $LIBS" |
| 14540 | #define HAVE_LIBKSTAT 1 | ||
| 14541 | _ACEOF | ||
| 14542 | |||
| 14543 | LIBS="-lkstat $LIBS" | ||
| 14544 | |||
| 14545 | fi | 14528 | fi |
| 14546 | 14529 | ||
| 14547 | test $ac_cv_lib_kstat_kstat_open = yes && gl_have_func=yes | 14530 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kvm_open in -lkvm" >&5 |
| 14548 | 14531 | $as_echo_n "checking for kvm_open in -lkvm... " >&6; } | |
| 14549 | # AIX has libperfstat which does not require root | 14532 | if ${ac_cv_lib_kvm_kvm_open+:} false; then : |
| 14550 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for perfstat_cpu_total in -lperfstat" >&5 | ||
| 14551 | $as_echo_n "checking for perfstat_cpu_total in -lperfstat... " >&6; } | ||
| 14552 | if ${ac_cv_lib_perfstat_perfstat_cpu_total+:} false; then : | ||
| 14553 | $as_echo_n "(cached) " >&6 | 14533 | $as_echo_n "(cached) " >&6 |
| 14554 | else | 14534 | else |
| 14555 | ac_check_lib_save_LIBS=$LIBS | 14535 | ac_check_lib_save_LIBS=$LIBS |
| 14556 | LIBS="-lperfstat $LIBS" | 14536 | LIBS="-lkvm $LIBS" |
| 14557 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | 14537 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
| 14558 | /* end confdefs.h. */ | 14538 | /* end confdefs.h. */ |
| 14559 | 14539 | ||
| @@ -14563,50 +14543,38 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext | |||
| 14563 | #ifdef __cplusplus | 14543 | #ifdef __cplusplus |
| 14564 | extern "C" | 14544 | extern "C" |
| 14565 | #endif | 14545 | #endif |
| 14566 | char perfstat_cpu_total (); | 14546 | char kvm_open (); |
| 14567 | int | 14547 | int |
| 14568 | main () | 14548 | main () |
| 14569 | { | 14549 | { |
| 14570 | return perfstat_cpu_total (); | 14550 | return kvm_open (); |
| 14571 | ; | 14551 | ; |
| 14572 | return 0; | 14552 | return 0; |
| 14573 | } | 14553 | } |
| 14574 | _ACEOF | 14554 | _ACEOF |
| 14575 | if ac_fn_c_try_link "$LINENO"; then : | 14555 | if ac_fn_c_try_link "$LINENO"; then : |
| 14576 | ac_cv_lib_perfstat_perfstat_cpu_total=yes | 14556 | ac_cv_lib_kvm_kvm_open=yes |
| 14577 | else | 14557 | else |
| 14578 | ac_cv_lib_perfstat_perfstat_cpu_total=no | 14558 | ac_cv_lib_kvm_kvm_open=no |
| 14579 | fi | 14559 | fi |
| 14580 | rm -f core conftest.err conftest.$ac_objext \ | 14560 | rm -f core conftest.err conftest.$ac_objext \ |
| 14581 | conftest$ac_exeext conftest.$ac_ext | 14561 | conftest$ac_exeext conftest.$ac_ext |
| 14582 | LIBS=$ac_check_lib_save_LIBS | 14562 | LIBS=$ac_check_lib_save_LIBS |
| 14583 | fi | 14563 | fi |
| 14584 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_perfstat_perfstat_cpu_total" >&5 | 14564 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_kvm_kvm_open" >&5 |
| 14585 | $as_echo "$ac_cv_lib_perfstat_perfstat_cpu_total" >&6; } | 14565 | $as_echo "$ac_cv_lib_kvm_kvm_open" >&6; } |
| 14586 | if test "x$ac_cv_lib_perfstat_perfstat_cpu_total" = xyes; then : | 14566 | if test "x$ac_cv_lib_kvm_kvm_open" = xyes; then : |
| 14587 | cat >>confdefs.h <<_ACEOF | 14567 | LIBS="-lkvm $LIBS" |
| 14588 | #define HAVE_LIBPERFSTAT 1 | ||
| 14589 | _ACEOF | ||
| 14590 | |||
| 14591 | LIBS="-lperfstat $LIBS" | ||
| 14592 | |||
| 14593 | fi | 14568 | fi |
| 14594 | 14569 | ||
| 14595 | test $ac_cv_lib_perfstat_perfstat_cpu_total = yes && gl_have_func=yes | 14570 | # Check for the 4.4BSD definition of getloadavg. |
| 14596 | 14571 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getloadavg in -lutil" >&5 | |
| 14597 | # Some systems with -lutil have (and need) -lkvm as well, some do not. | 14572 | $as_echo_n "checking for getloadavg in -lutil... " >&6; } |
| 14598 | # On Solaris, -lkvm requires nlist from -lelf, so check that first | 14573 | if ${ac_cv_lib_util_getloadavg+:} false; then : |
| 14599 | # to get the right answer into the cache. | ||
| 14600 | # For kstat on solaris, we need to test for libelf and libkvm to force the | ||
| 14601 | # definition of SVR4 below. | ||
| 14602 | if test $gl_have_func = no; then | ||
| 14603 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for elf_begin in -lelf" >&5 | ||
| 14604 | $as_echo_n "checking for elf_begin in -lelf... " >&6; } | ||
| 14605 | if ${ac_cv_lib_elf_elf_begin+:} false; then : | ||
| 14606 | $as_echo_n "(cached) " >&6 | 14574 | $as_echo_n "(cached) " >&6 |
| 14607 | else | 14575 | else |
| 14608 | ac_check_lib_save_LIBS=$LIBS | 14576 | ac_check_lib_save_LIBS=$LIBS |
| 14609 | LIBS="-lelf $LIBS" | 14577 | LIBS="-lutil $LIBS" |
| 14610 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | 14578 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
| 14611 | /* end confdefs.h. */ | 14579 | /* end confdefs.h. */ |
| 14612 | 14580 | ||
| @@ -14616,37 +14584,44 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext | |||
| 14616 | #ifdef __cplusplus | 14584 | #ifdef __cplusplus |
| 14617 | extern "C" | 14585 | extern "C" |
| 14618 | #endif | 14586 | #endif |
| 14619 | char elf_begin (); | 14587 | char getloadavg (); |
| 14620 | int | 14588 | int |
| 14621 | main () | 14589 | main () |
| 14622 | { | 14590 | { |
| 14623 | return elf_begin (); | 14591 | return getloadavg (); |
| 14624 | ; | 14592 | ; |
| 14625 | return 0; | 14593 | return 0; |
| 14626 | } | 14594 | } |
| 14627 | _ACEOF | 14595 | _ACEOF |
| 14628 | if ac_fn_c_try_link "$LINENO"; then : | 14596 | if ac_fn_c_try_link "$LINENO"; then : |
| 14629 | ac_cv_lib_elf_elf_begin=yes | 14597 | ac_cv_lib_util_getloadavg=yes |
| 14630 | else | 14598 | else |
| 14631 | ac_cv_lib_elf_elf_begin=no | 14599 | ac_cv_lib_util_getloadavg=no |
| 14632 | fi | 14600 | fi |
| 14633 | rm -f core conftest.err conftest.$ac_objext \ | 14601 | rm -f core conftest.err conftest.$ac_objext \ |
| 14634 | conftest$ac_exeext conftest.$ac_ext | 14602 | conftest$ac_exeext conftest.$ac_ext |
| 14635 | LIBS=$ac_check_lib_save_LIBS | 14603 | LIBS=$ac_check_lib_save_LIBS |
| 14636 | fi | 14604 | fi |
| 14637 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_elf_elf_begin" >&5 | 14605 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_util_getloadavg" >&5 |
| 14638 | $as_echo "$ac_cv_lib_elf_elf_begin" >&6; } | 14606 | $as_echo "$ac_cv_lib_util_getloadavg" >&6; } |
| 14639 | if test "x$ac_cv_lib_elf_elf_begin" = xyes; then : | 14607 | if test "x$ac_cv_lib_util_getloadavg" = xyes; then : |
| 14640 | LIBS="-lelf $LIBS" | 14608 | LIBS="-lutil $LIBS" gl_have_func=yes |
| 14641 | fi | 14609 | fi |
| 14642 | 14610 | ||
| 14643 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kvm_open in -lkvm" >&5 | 14611 | fi |
| 14644 | $as_echo_n "checking for kvm_open in -lkvm... " >&6; } | 14612 | |
| 14645 | if ${ac_cv_lib_kvm_kvm_open+:} false; then : | 14613 | if test $gl_have_func = no; then |
| 14614 | # There is a commonly available library for RS/6000 AIX. | ||
| 14615 | # Since it is not a standard part of AIX, it might be installed locally. | ||
| 14616 | gl_getloadavg_LIBS=$LIBS | ||
| 14617 | LIBS="-L/usr/local/lib $LIBS" | ||
| 14618 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getloadavg in -lgetloadavg" >&5 | ||
| 14619 | $as_echo_n "checking for getloadavg in -lgetloadavg... " >&6; } | ||
| 14620 | if ${ac_cv_lib_getloadavg_getloadavg+:} false; then : | ||
| 14646 | $as_echo_n "(cached) " >&6 | 14621 | $as_echo_n "(cached) " >&6 |
| 14647 | else | 14622 | else |
| 14648 | ac_check_lib_save_LIBS=$LIBS | 14623 | ac_check_lib_save_LIBS=$LIBS |
| 14649 | LIBS="-lkvm $LIBS" | 14624 | LIBS="-lgetloadavg $LIBS" |
| 14650 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | 14625 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
| 14651 | /* end confdefs.h. */ | 14626 | /* end confdefs.h. */ |
| 14652 | 14627 | ||
| @@ -14656,38 +14631,57 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext | |||
| 14656 | #ifdef __cplusplus | 14631 | #ifdef __cplusplus |
| 14657 | extern "C" | 14632 | extern "C" |
| 14658 | #endif | 14633 | #endif |
| 14659 | char kvm_open (); | 14634 | char getloadavg (); |
| 14660 | int | 14635 | int |
| 14661 | main () | 14636 | main () |
| 14662 | { | 14637 | { |
| 14663 | return kvm_open (); | 14638 | return getloadavg (); |
| 14664 | ; | 14639 | ; |
| 14665 | return 0; | 14640 | return 0; |
| 14666 | } | 14641 | } |
| 14667 | _ACEOF | 14642 | _ACEOF |
| 14668 | if ac_fn_c_try_link "$LINENO"; then : | 14643 | if ac_fn_c_try_link "$LINENO"; then : |
| 14669 | ac_cv_lib_kvm_kvm_open=yes | 14644 | ac_cv_lib_getloadavg_getloadavg=yes |
| 14670 | else | 14645 | else |
| 14671 | ac_cv_lib_kvm_kvm_open=no | 14646 | ac_cv_lib_getloadavg_getloadavg=no |
| 14672 | fi | 14647 | fi |
| 14673 | rm -f core conftest.err conftest.$ac_objext \ | 14648 | rm -f core conftest.err conftest.$ac_objext \ |
| 14674 | conftest$ac_exeext conftest.$ac_ext | 14649 | conftest$ac_exeext conftest.$ac_ext |
| 14675 | LIBS=$ac_check_lib_save_LIBS | 14650 | LIBS=$ac_check_lib_save_LIBS |
| 14676 | fi | 14651 | fi |
| 14677 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_kvm_kvm_open" >&5 | 14652 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_getloadavg_getloadavg" >&5 |
| 14678 | $as_echo "$ac_cv_lib_kvm_kvm_open" >&6; } | 14653 | $as_echo "$ac_cv_lib_getloadavg_getloadavg" >&6; } |
| 14679 | if test "x$ac_cv_lib_kvm_kvm_open" = xyes; then : | 14654 | if test "x$ac_cv_lib_getloadavg_getloadavg" = xyes; then : |
| 14680 | LIBS="-lkvm $LIBS" | 14655 | LIBS="-lgetloadavg $LIBS" gl_have_func=yes |
| 14656 | else | ||
| 14657 | LIBS=$gl_getloadavg_LIBS | ||
| 14681 | fi | 14658 | fi |
| 14682 | 14659 | ||
| 14683 | # Check for the 4.4BSD definition of getloadavg. | 14660 | fi |
| 14684 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getloadavg in -lutil" >&5 | 14661 | |
| 14685 | $as_echo_n "checking for getloadavg in -lutil... " >&6; } | 14662 | # Set up the replacement function if necessary. |
| 14686 | if ${ac_cv_lib_util_getloadavg+:} false; then : | 14663 | if test $gl_have_func = no; then |
| 14664 | |||
| 14665 | |||
| 14666 | |||
| 14667 | |||
| 14668 | |||
| 14669 | |||
| 14670 | |||
| 14671 | |||
| 14672 | gl_LIBOBJS="$gl_LIBOBJS getloadavg.$ac_objext" | ||
| 14673 | |||
| 14674 | |||
| 14675 | # Figure out what our getloadavg.c needs. | ||
| 14676 | |||
| 14677 | # Solaris has libkstat which does not require root. | ||
| 14678 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kstat_open in -lkstat" >&5 | ||
| 14679 | $as_echo_n "checking for kstat_open in -lkstat... " >&6; } | ||
| 14680 | if ${ac_cv_lib_kstat_kstat_open+:} false; then : | ||
| 14687 | $as_echo_n "(cached) " >&6 | 14681 | $as_echo_n "(cached) " >&6 |
| 14688 | else | 14682 | else |
| 14689 | ac_check_lib_save_LIBS=$LIBS | 14683 | ac_check_lib_save_LIBS=$LIBS |
| 14690 | LIBS="-lutil $LIBS" | 14684 | LIBS="-lkstat $LIBS" |
| 14691 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | 14685 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
| 14692 | /* end confdefs.h. */ | 14686 | /* end confdefs.h. */ |
| 14693 | 14687 | ||
| @@ -14697,44 +14691,61 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext | |||
| 14697 | #ifdef __cplusplus | 14691 | #ifdef __cplusplus |
| 14698 | extern "C" | 14692 | extern "C" |
| 14699 | #endif | 14693 | #endif |
| 14700 | char getloadavg (); | 14694 | char kstat_open (); |
| 14701 | int | 14695 | int |
| 14702 | main () | 14696 | main () |
| 14703 | { | 14697 | { |
| 14704 | return getloadavg (); | 14698 | return kstat_open (); |
| 14705 | ; | 14699 | ; |
| 14706 | return 0; | 14700 | return 0; |
| 14707 | } | 14701 | } |
| 14708 | _ACEOF | 14702 | _ACEOF |
| 14709 | if ac_fn_c_try_link "$LINENO"; then : | 14703 | if ac_fn_c_try_link "$LINENO"; then : |
| 14710 | ac_cv_lib_util_getloadavg=yes | 14704 | ac_cv_lib_kstat_kstat_open=yes |
| 14711 | else | 14705 | else |
| 14712 | ac_cv_lib_util_getloadavg=no | 14706 | ac_cv_lib_kstat_kstat_open=no |
| 14713 | fi | 14707 | fi |
| 14714 | rm -f core conftest.err conftest.$ac_objext \ | 14708 | rm -f core conftest.err conftest.$ac_objext \ |
| 14715 | conftest$ac_exeext conftest.$ac_ext | 14709 | conftest$ac_exeext conftest.$ac_ext |
| 14716 | LIBS=$ac_check_lib_save_LIBS | 14710 | LIBS=$ac_check_lib_save_LIBS |
| 14717 | fi | 14711 | fi |
| 14718 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_util_getloadavg" >&5 | 14712 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_kstat_kstat_open" >&5 |
| 14719 | $as_echo "$ac_cv_lib_util_getloadavg" >&6; } | 14713 | $as_echo "$ac_cv_lib_kstat_kstat_open" >&6; } |
| 14720 | if test "x$ac_cv_lib_util_getloadavg" = xyes; then : | 14714 | if test "x$ac_cv_lib_kstat_kstat_open" = xyes; then : |
| 14721 | LIBS="-lutil $LIBS" gl_have_func=yes gl_cv_func_getloadavg_setgid=yes | 14715 | cat >>confdefs.h <<_ACEOF |
| 14716 | #define HAVE_LIBKSTAT 1 | ||
| 14717 | _ACEOF | ||
| 14718 | |||
| 14719 | LIBS="-lkstat $LIBS" | ||
| 14720 | |||
| 14722 | fi | 14721 | fi |
| 14723 | 14722 | ||
| 14723 | test $ac_cv_lib_kstat_kstat_open = yes && gl_have_func=yes | ||
| 14724 | |||
| 14725 | # On HPUX9, an unprivileged user can get load averages this way. | ||
| 14726 | if test $gl_have_func = no; then | ||
| 14727 | for ac_func in pstat_getdynamic | ||
| 14728 | do : | ||
| 14729 | ac_fn_c_check_func "$LINENO" "pstat_getdynamic" "ac_cv_func_pstat_getdynamic" | ||
| 14730 | if test "x$ac_cv_func_pstat_getdynamic" = xyes; then : | ||
| 14731 | cat >>confdefs.h <<_ACEOF | ||
| 14732 | #define HAVE_PSTAT_GETDYNAMIC 1 | ||
| 14733 | _ACEOF | ||
| 14734 | gl_have_func=yes | ||
| 14735 | fi | ||
| 14736 | done | ||
| 14737 | |||
| 14724 | fi | 14738 | fi |
| 14725 | 14739 | ||
| 14740 | # AIX has libperfstat which does not require root | ||
| 14726 | if test $gl_have_func = no; then | 14741 | if test $gl_have_func = no; then |
| 14727 | # There is a commonly available library for RS/6000 AIX. | 14742 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for perfstat_cpu_total in -lperfstat" >&5 |
| 14728 | # Since it is not a standard part of AIX, it might be installed locally. | 14743 | $as_echo_n "checking for perfstat_cpu_total in -lperfstat... " >&6; } |
| 14729 | gl_getloadavg_LIBS=$LIBS | 14744 | if ${ac_cv_lib_perfstat_perfstat_cpu_total+:} false; then : |
| 14730 | LIBS="-L/usr/local/lib $LIBS" | ||
| 14731 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getloadavg in -lgetloadavg" >&5 | ||
| 14732 | $as_echo_n "checking for getloadavg in -lgetloadavg... " >&6; } | ||
| 14733 | if ${ac_cv_lib_getloadavg_getloadavg+:} false; then : | ||
| 14734 | $as_echo_n "(cached) " >&6 | 14745 | $as_echo_n "(cached) " >&6 |
| 14735 | else | 14746 | else |
| 14736 | ac_check_lib_save_LIBS=$LIBS | 14747 | ac_check_lib_save_LIBS=$LIBS |
| 14737 | LIBS="-lgetloadavg $LIBS" | 14748 | LIBS="-lperfstat $LIBS" |
| 14738 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | 14749 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
| 14739 | /* end confdefs.h. */ | 14750 | /* end confdefs.h. */ |
| 14740 | 14751 | ||
| @@ -14744,67 +14755,46 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext | |||
| 14744 | #ifdef __cplusplus | 14755 | #ifdef __cplusplus |
| 14745 | extern "C" | 14756 | extern "C" |
| 14746 | #endif | 14757 | #endif |
| 14747 | char getloadavg (); | 14758 | char perfstat_cpu_total (); |
| 14748 | int | 14759 | int |
| 14749 | main () | 14760 | main () |
| 14750 | { | 14761 | { |
| 14751 | return getloadavg (); | 14762 | return perfstat_cpu_total (); |
| 14752 | ; | 14763 | ; |
| 14753 | return 0; | 14764 | return 0; |
| 14754 | } | 14765 | } |
| 14755 | _ACEOF | 14766 | _ACEOF |
| 14756 | if ac_fn_c_try_link "$LINENO"; then : | 14767 | if ac_fn_c_try_link "$LINENO"; then : |
| 14757 | ac_cv_lib_getloadavg_getloadavg=yes | 14768 | ac_cv_lib_perfstat_perfstat_cpu_total=yes |
| 14758 | else | 14769 | else |
| 14759 | ac_cv_lib_getloadavg_getloadavg=no | 14770 | ac_cv_lib_perfstat_perfstat_cpu_total=no |
| 14760 | fi | 14771 | fi |
| 14761 | rm -f core conftest.err conftest.$ac_objext \ | 14772 | rm -f core conftest.err conftest.$ac_objext \ |
| 14762 | conftest$ac_exeext conftest.$ac_ext | 14773 | conftest$ac_exeext conftest.$ac_ext |
| 14763 | LIBS=$ac_check_lib_save_LIBS | 14774 | LIBS=$ac_check_lib_save_LIBS |
| 14764 | fi | 14775 | fi |
| 14765 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_getloadavg_getloadavg" >&5 | 14776 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_perfstat_perfstat_cpu_total" >&5 |
| 14766 | $as_echo "$ac_cv_lib_getloadavg_getloadavg" >&6; } | 14777 | $as_echo "$ac_cv_lib_perfstat_perfstat_cpu_total" >&6; } |
| 14767 | if test "x$ac_cv_lib_getloadavg_getloadavg" = xyes; then : | 14778 | if test "x$ac_cv_lib_perfstat_perfstat_cpu_total" = xyes; then : |
| 14768 | LIBS="-lgetloadavg $LIBS" | ||
| 14769 | else | ||
| 14770 | LIBS=$gl_getloadavg_LIBS | ||
| 14771 | fi | ||
| 14772 | |||
| 14773 | fi | ||
| 14774 | |||
| 14775 | # Make sure it is really in the library, if we think we found it, | ||
| 14776 | # otherwise set up the replacement function. | ||
| 14777 | for ac_func in getloadavg | ||
| 14778 | do : | ||
| 14779 | ac_fn_c_check_func "$LINENO" "getloadavg" "ac_cv_func_getloadavg" | ||
| 14780 | if test "x$ac_cv_func_getloadavg" = xyes; then : | ||
| 14781 | cat >>confdefs.h <<_ACEOF | 14779 | cat >>confdefs.h <<_ACEOF |
| 14782 | #define HAVE_GETLOADAVG 1 | 14780 | #define HAVE_LIBPERFSTAT 1 |
| 14783 | _ACEOF | 14781 | _ACEOF |
| 14784 | 14782 | ||
| 14785 | else | 14783 | LIBS="-lperfstat $LIBS" |
| 14786 | |||
| 14787 | |||
| 14788 | |||
| 14789 | |||
| 14790 | |||
| 14791 | |||
| 14792 | |||
| 14793 | |||
| 14794 | gl_LIBOBJS="$gl_LIBOBJS getloadavg.$ac_objext" | ||
| 14795 | 14784 | ||
| 14785 | fi | ||
| 14796 | 14786 | ||
| 14797 | $as_echo "#define C_GETLOADAVG 1" >>confdefs.h | 14787 | test $ac_cv_lib_perfstat_perfstat_cpu_total = yes && gl_have_func=yes |
| 14788 | fi | ||
| 14798 | 14789 | ||
| 14799 | # Figure out what our getloadavg.c needs. | 14790 | if test $gl_have_func = no; then |
| 14800 | gl_have_func=no | 14791 | ac_fn_c_check_header_mongrel "$LINENO" "sys/dg_sys_info.h" "ac_cv_header_sys_dg_sys_info_h" "$ac_includes_default" |
| 14801 | ac_fn_c_check_header_mongrel "$LINENO" "sys/dg_sys_info.h" "ac_cv_header_sys_dg_sys_info_h" "$ac_includes_default" | ||
| 14802 | if test "x$ac_cv_header_sys_dg_sys_info_h" = xyes; then : | 14792 | if test "x$ac_cv_header_sys_dg_sys_info_h" = xyes; then : |
| 14803 | gl_have_func=yes | 14793 | gl_have_func=yes |
| 14804 | 14794 | ||
| 14805 | $as_echo "#define DGUX 1" >>confdefs.h | 14795 | $as_echo "#define DGUX 1" >>confdefs.h |
| 14806 | 14796 | ||
| 14807 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dg_sys_info in -ldgc" >&5 | 14797 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dg_sys_info in -ldgc" >&5 |
| 14808 | $as_echo_n "checking for dg_sys_info in -ldgc... " >&6; } | 14798 | $as_echo_n "checking for dg_sys_info in -ldgc... " >&6; } |
| 14809 | if ${ac_cv_lib_dgc_dg_sys_info+:} false; then : | 14799 | if ${ac_cv_lib_dgc_dg_sys_info+:} false; then : |
| 14810 | $as_echo_n "(cached) " >&6 | 14800 | $as_echo_n "(cached) " >&6 |
| @@ -14852,6 +14842,7 @@ fi | |||
| 14852 | fi | 14842 | fi |
| 14853 | 14843 | ||
| 14854 | 14844 | ||
| 14845 | fi | ||
| 14855 | 14846 | ||
| 14856 | # We cannot check for <dwarf.h>, because Solaris 2 does not use dwarf (it | 14847 | # We cannot check for <dwarf.h>, because Solaris 2 does not use dwarf (it |
| 14857 | # uses stabs), but it is still SVR4. We cannot check for <elf.h> because | 14848 | # uses stabs), but it is still SVR4. We cannot check for <elf.h> because |
| @@ -14920,8 +14911,6 @@ cat >>confdefs.h <<_ACEOF | |||
| 14920 | _ACEOF | 14911 | _ACEOF |
| 14921 | 14912 | ||
| 14922 | 14913 | ||
| 14923 | $as_echo "#define NLIST_NAME_UNION 1" >>confdefs.h | ||
| 14924 | |||
| 14925 | fi | 14914 | fi |
| 14926 | 14915 | ||
| 14927 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | 14916 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
| @@ -14952,65 +14941,10 @@ fi | |||
| 14952 | 14941 | ||
| 14953 | done | 14942 | done |
| 14954 | 14943 | ||
| 14955 | fi | 14944 | fi |
| 14956 | done | ||
| 14957 | |||
| 14958 | |||
| 14959 | # Some definitions of getloadavg require that the program be installed setgid. | ||
| 14960 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getloadavg requires setgid" >&5 | ||
| 14961 | $as_echo_n "checking whether getloadavg requires setgid... " >&6; } | ||
| 14962 | if ${gl_cv_func_getloadavg_setgid+:} false; then : | ||
| 14963 | $as_echo_n "(cached) " >&6 | ||
| 14964 | else | ||
| 14965 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
| 14966 | /* end confdefs.h. */ | ||
| 14967 | #define CONFIGURING_GETLOADAVG | ||
| 14968 | #include "$srcdir/$gl_source_base/getloadavg.c" | ||
| 14969 | #ifdef LDAV_PRIVILEGED | ||
| 14970 | Yowza Am I SETGID yet | ||
| 14971 | #endif | ||
| 14972 | |||
| 14973 | _ACEOF | ||
| 14974 | if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | | ||
| 14975 | $EGREP "Yowza Am I SETGID yet" >/dev/null 2>&1; then : | ||
| 14976 | gl_cv_func_getloadavg_setgid=yes | ||
| 14977 | else | ||
| 14978 | gl_cv_func_getloadavg_setgid=no | ||
| 14979 | fi | ||
| 14980 | rm -f conftest* | ||
| 14981 | |||
| 14982 | fi | ||
| 14983 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getloadavg_setgid" >&5 | ||
| 14984 | $as_echo "$gl_cv_func_getloadavg_setgid" >&6; } | ||
| 14985 | if test $gl_cv_func_getloadavg_setgid = yes; then | ||
| 14986 | NEED_SETGID=true | ||
| 14987 | |||
| 14988 | $as_echo "#define GETLOADAVG_PRIVILEGED 1" >>confdefs.h | ||
| 14989 | |||
| 14990 | else | ||
| 14991 | NEED_SETGID=false | ||
| 14992 | fi | 14945 | fi |
| 14993 | 14946 | ||
| 14994 | if test $gl_cv_func_getloadavg_setgid = yes; then | ||
| 14995 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking group of /dev/kmem" >&5 | ||
| 14996 | $as_echo_n "checking group of /dev/kmem... " >&6; } | ||
| 14997 | if ${gl_cv_group_kmem+:} false; then : | ||
| 14998 | $as_echo_n "(cached) " >&6 | ||
| 14999 | else | ||
| 15000 | # On Solaris, /dev/kmem is a symlink. Get info on the real file. | ||
| 15001 | ac_ls_output=`ls -lgL /dev/kmem 2>/dev/null` | ||
| 15002 | # If we got an error (system does not support symlinks), try without -L. | ||
| 15003 | test -z "$ac_ls_output" && ac_ls_output=`ls -lg /dev/kmem` | ||
| 15004 | gl_cv_group_kmem=`echo $ac_ls_output \ | ||
| 15005 | | sed -ne 's/[ ][ ]*/ /g | ||
| 15006 | s/^.[sSrwx-]* *[0-9]* *\([^0-9]*\) *.*/\1/ | ||
| 15007 | / /s/.* //;p'` | ||
| 15008 | 14947 | ||
| 15009 | fi | ||
| 15010 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_group_kmem" >&5 | ||
| 15011 | $as_echo "$gl_cv_group_kmem" >&6; } | ||
| 15012 | KMEM_GROUP=$gl_cv_group_kmem | ||
| 15013 | fi | ||
| 15014 | if test "x$gl_save_LIBS" = x; then | 14948 | if test "x$gl_save_LIBS" = x; then |
| 15015 | GETLOADAVG_LIBS=$LIBS | 14949 | GETLOADAVG_LIBS=$LIBS |
| 15016 | else | 14950 | else |
diff --git a/lib/Makefile.in b/lib/Makefile.in index bdc405a505f..82e23967865 100644 --- a/lib/Makefile.in +++ b/lib/Makefile.in | |||
| @@ -296,7 +296,6 @@ INSTALL_INFO = @INSTALL_INFO@ | |||
| 296 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ | 296 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
| 297 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ | 297 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
| 298 | INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ | 298 | INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ |
| 299 | KMEM_GROUP = @KMEM_GROUP@ | ||
| 300 | KRB4LIB = @KRB4LIB@ | 299 | KRB4LIB = @KRB4LIB@ |
| 301 | KRB5LIB = @KRB5LIB@ | 300 | KRB5LIB = @KRB5LIB@ |
| 302 | LDFLAGS = @LDFLAGS@ | 301 | LDFLAGS = @LDFLAGS@ |
| @@ -349,7 +348,6 @@ MKDEPDIR = @MKDEPDIR@ | |||
| 349 | MKDIR_P = @MKDIR_P@ | 348 | MKDIR_P = @MKDIR_P@ |
| 350 | MOUSE_SUPPORT = @MOUSE_SUPPORT@ | 349 | MOUSE_SUPPORT = @MOUSE_SUPPORT@ |
| 351 | M_FILE = @M_FILE@ | 350 | M_FILE = @M_FILE@ |
| 352 | NEED_SETGID = @NEED_SETGID@ | ||
| 353 | NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ | 351 | NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ |
| 354 | NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ | 352 | NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ |
| 355 | NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ | 353 | NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ |
diff --git a/lib/getloadavg.c b/lib/getloadavg.c index 96a6aa4d49c..8e917145c5c 100644 --- a/lib/getloadavg.c +++ b/lib/getloadavg.c | |||
| @@ -94,11 +94,6 @@ | |||
| 94 | #include <errno.h> | 94 | #include <errno.h> |
| 95 | #include <stdio.h> | 95 | #include <stdio.h> |
| 96 | 96 | ||
| 97 | /* Exclude all the code except the test program at the end | ||
| 98 | if the system has its own `getloadavg' function. */ | ||
| 99 | |||
| 100 | #ifndef HAVE_GETLOADAVG | ||
| 101 | |||
| 102 | # include <sys/types.h> | 97 | # include <sys/types.h> |
| 103 | 98 | ||
| 104 | /* Both the Emacs and non-Emacs sections want this. Some | 99 | /* Both the Emacs and non-Emacs sections want this. Some |
| @@ -1032,44 +1027,3 @@ getloadavg (double loadavg[], int nelem) | |||
| 1032 | # endif | 1027 | # endif |
| 1033 | return elem; | 1028 | return elem; |
| 1034 | } | 1029 | } |
| 1035 | |||
| 1036 | #endif /* ! HAVE_GETLOADAVG */ | ||
| 1037 | |||
| 1038 | #ifdef TEST | ||
| 1039 | int | ||
| 1040 | main (int argc, char **argv) | ||
| 1041 | { | ||
| 1042 | int naptime = 0; | ||
| 1043 | |||
| 1044 | if (argc > 1) | ||
| 1045 | naptime = atoi (argv[1]); | ||
| 1046 | |||
| 1047 | while (1) | ||
| 1048 | { | ||
| 1049 | double avg[3]; | ||
| 1050 | int loads; | ||
| 1051 | |||
| 1052 | errno = 0; /* Don't be misled if it doesn't set errno. */ | ||
| 1053 | loads = getloadavg (avg, 3); | ||
| 1054 | if (loads == -1) | ||
| 1055 | { | ||
| 1056 | perror ("Error getting load average"); | ||
| 1057 | return EXIT_FAILURE; | ||
| 1058 | } | ||
| 1059 | if (loads > 0) | ||
| 1060 | printf ("1-minute: %f ", avg[0]); | ||
| 1061 | if (loads > 1) | ||
| 1062 | printf ("5-minute: %f ", avg[1]); | ||
| 1063 | if (loads > 2) | ||
| 1064 | printf ("15-minute: %f ", avg[2]); | ||
| 1065 | if (loads > 0) | ||
| 1066 | putchar ('\n'); | ||
| 1067 | |||
| 1068 | if (naptime == 0) | ||
| 1069 | break; | ||
| 1070 | sleep (naptime); | ||
| 1071 | } | ||
| 1072 | |||
| 1073 | return EXIT_SUCCESS; | ||
| 1074 | } | ||
| 1075 | #endif /* TEST */ | ||
diff --git a/lib/stdlib.in.h b/lib/stdlib.in.h index 6e69a277af0..62d18c62811 100644 --- a/lib/stdlib.in.h +++ b/lib/stdlib.in.h | |||
| @@ -88,10 +88,10 @@ struct random_data | |||
| 88 | # include <unistd.h> | 88 | # include <unistd.h> |
| 89 | #endif | 89 | #endif |
| 90 | 90 | ||
| 91 | #ifndef __attribute__ | 91 | #if 3 <= __GNUC__ || __GNUC__ == 2 && 8 <= __GNUC_MINOR__ |
| 92 | # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) | 92 | # define _GL_ATTRIBUTE_NORETURN __attribute__ ((__noreturn__)) |
| 93 | # define __attribute__(Spec) /* empty */ | 93 | #else |
| 94 | # endif | 94 | # define _GL_ATTRIBUTE_NORETURN |
| 95 | #endif | 95 | #endif |
| 96 | 96 | ||
| 97 | /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ | 97 | /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ |
| @@ -119,7 +119,7 @@ struct random_data | |||
| 119 | /* Terminate the current process with the given return code, without running | 119 | /* Terminate the current process with the given return code, without running |
| 120 | the 'atexit' handlers. */ | 120 | the 'atexit' handlers. */ |
| 121 | # if !@HAVE__EXIT@ | 121 | # if !@HAVE__EXIT@ |
| 122 | _GL_FUNCDECL_SYS (_Exit, void, (int status) __attribute__ ((__noreturn__))); | 122 | _GL_FUNCDECL_SYS (_Exit, void, (int status) _GL_ATTRIBUTE_NORETURN); |
| 123 | # endif | 123 | # endif |
| 124 | _GL_CXXALIAS_SYS (_Exit, void, (int status)); | 124 | _GL_CXXALIAS_SYS (_Exit, void, (int status)); |
| 125 | _GL_CXXALIASWARN (_Exit); | 125 | _GL_CXXALIASWARN (_Exit); |
diff --git a/m4/getloadavg.m4 b/m4/getloadavg.m4 index d25ad345b33..4aae158e963 100644 --- a/m4/getloadavg.m4 +++ b/m4/getloadavg.m4 | |||
| @@ -20,90 +20,44 @@ AC_DEFUN([gl_GETLOADAVG], | |||
| 20 | # Persuade glibc <stdlib.h> to declare getloadavg(). | 20 | # Persuade glibc <stdlib.h> to declare getloadavg(). |
| 21 | AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) | 21 | AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) |
| 22 | 22 | ||
| 23 | gl_have_func=no # yes means we've found a way to get the load average. | ||
| 24 | |||
| 25 | # Make sure getloadavg.c is where it belongs, at configure-time. | 23 | # Make sure getloadavg.c is where it belongs, at configure-time. |
| 26 | test -f "$srcdir/$1/getloadavg.c" || | 24 | test -f "$srcdir/$1/getloadavg.c" || |
| 27 | AC_MSG_ERROR([$srcdir/$1/getloadavg.c is missing]) | 25 | AC_MSG_ERROR([$srcdir/$1/getloadavg.c is missing]) |
| 28 | 26 | ||
| 29 | gl_save_LIBS=$LIBS | 27 | gl_save_LIBS=$LIBS |
| 30 | 28 | ||
| 31 | # Check for getloadavg, but be sure not to touch the cache variable. | 29 | AC_CHECK_FUNC([getloadavg], [], |
| 32 | (AC_CHECK_FUNC([getloadavg], [exit 0], [exit 1])) && gl_have_func=yes | 30 | [gl_have_func=no |
| 33 | 31 | ||
| 34 | # On HPUX9, an unprivileged user can get load averages through this function. | 32 | # Some systems with -lutil have (and need) -lkvm as well, some do not. |
| 35 | AC_CHECK_FUNCS([pstat_getdynamic]) | 33 | # On Solaris, -lkvm requires nlist from -lelf, so check that first |
| 36 | 34 | # to get the right answer into the cache. | |
| 37 | # Solaris has libkstat which does not require root. | 35 | # For kstat on solaris, we need to test for libelf and libkvm to force the |
| 38 | AC_CHECK_LIB([kstat], [kstat_open]) | 36 | # definition of SVR4 below. |
| 39 | test $ac_cv_lib_kstat_kstat_open = yes && gl_have_func=yes | 37 | if test $gl_have_func = no; then |
| 38 | AC_CHECK_LIB([elf], [elf_begin], [LIBS="-lelf $LIBS"]) | ||
| 39 | AC_CHECK_LIB([kvm], [kvm_open], [LIBS="-lkvm $LIBS"]) | ||
| 40 | # Check for the 4.4BSD definition of getloadavg. | ||
| 41 | AC_CHECK_LIB([util], [getloadavg], | ||
| 42 | [LIBS="-lutil $LIBS" gl_have_func=yes]) | ||
| 43 | fi | ||
| 44 | |||
| 45 | if test $gl_have_func = no; then | ||
| 46 | # There is a commonly available library for RS/6000 AIX. | ||
| 47 | # Since it is not a standard part of AIX, it might be installed locally. | ||
| 48 | gl_getloadavg_LIBS=$LIBS | ||
| 49 | LIBS="-L/usr/local/lib $LIBS" | ||
| 50 | AC_CHECK_LIB([getloadavg], [getloadavg], | ||
| 51 | [LIBS="-lgetloadavg $LIBS" gl_have_func=yes], | ||
| 52 | [LIBS=$gl_getloadavg_LIBS]) | ||
| 53 | fi | ||
| 54 | |||
| 55 | # Set up the replacement function if necessary. | ||
| 56 | if test $gl_have_func = no; then | ||
| 57 | AC_LIBOBJ([getloadavg]) | ||
| 58 | gl_PREREQ_GETLOADAVG | ||
| 59 | fi]) | ||
| 40 | 60 | ||
| 41 | # AIX has libperfstat which does not require root | ||
| 42 | AC_CHECK_LIB([perfstat], [perfstat_cpu_total]) | ||
| 43 | test $ac_cv_lib_perfstat_perfstat_cpu_total = yes && gl_have_func=yes | ||
| 44 | |||
| 45 | # Some systems with -lutil have (and need) -lkvm as well, some do not. | ||
| 46 | # On Solaris, -lkvm requires nlist from -lelf, so check that first | ||
| 47 | # to get the right answer into the cache. | ||
| 48 | # For kstat on solaris, we need to test for libelf and libkvm to force the | ||
| 49 | # definition of SVR4 below. | ||
| 50 | if test $gl_have_func = no; then | ||
| 51 | AC_CHECK_LIB([elf], [elf_begin], [LIBS="-lelf $LIBS"]) | ||
| 52 | AC_CHECK_LIB([kvm], [kvm_open], [LIBS="-lkvm $LIBS"]) | ||
| 53 | # Check for the 4.4BSD definition of getloadavg. | ||
| 54 | AC_CHECK_LIB([util], [getloadavg], | ||
| 55 | [LIBS="-lutil $LIBS" gl_have_func=yes gl_cv_func_getloadavg_setgid=yes]) | ||
| 56 | fi | ||
| 57 | |||
| 58 | if test $gl_have_func = no; then | ||
| 59 | # There is a commonly available library for RS/6000 AIX. | ||
| 60 | # Since it is not a standard part of AIX, it might be installed locally. | ||
| 61 | gl_getloadavg_LIBS=$LIBS | ||
| 62 | LIBS="-L/usr/local/lib $LIBS" | ||
| 63 | AC_CHECK_LIB([getloadavg], [getloadavg], | ||
| 64 | [LIBS="-lgetloadavg $LIBS"], [LIBS=$gl_getloadavg_LIBS]) | ||
| 65 | fi | ||
| 66 | |||
| 67 | # Make sure it is really in the library, if we think we found it, | ||
| 68 | # otherwise set up the replacement function. | ||
| 69 | AC_CHECK_FUNCS([getloadavg], [], | ||
| 70 | [gl_PREREQ_GETLOADAVG]) | ||
| 71 | |||
| 72 | # Some definitions of getloadavg require that the program be installed setgid. | ||
| 73 | AC_CACHE_CHECK([whether getloadavg requires setgid], | ||
| 74 | gl_cv_func_getloadavg_setgid, | ||
| 75 | [AC_EGREP_CPP([Yowza Am I SETGID yet], | ||
| 76 | [#define CONFIGURING_GETLOADAVG | ||
| 77 | #include "$srcdir/$1/getloadavg.c" | ||
| 78 | #ifdef LDAV_PRIVILEGED | ||
| 79 | Yowza Am I SETGID yet | ||
| 80 | #endif | ||
| 81 | ], | ||
| 82 | gl_cv_func_getloadavg_setgid=yes, | ||
| 83 | gl_cv_func_getloadavg_setgid=no)]) | ||
| 84 | if test $gl_cv_func_getloadavg_setgid = yes; then | ||
| 85 | NEED_SETGID=true | ||
| 86 | AC_DEFINE([GETLOADAVG_PRIVILEGED], [1], | ||
| 87 | [Define to 1 if the `getloadavg' function needs to be run setuid | ||
| 88 | or setgid.]) | ||
| 89 | else | ||
| 90 | NEED_SETGID=false | ||
| 91 | fi | ||
| 92 | AC_SUBST([NEED_SETGID])dnl | ||
| 93 | |||
| 94 | if test $gl_cv_func_getloadavg_setgid = yes; then | ||
| 95 | AC_CACHE_CHECK([group of /dev/kmem], [gl_cv_group_kmem], | ||
| 96 | [ # On Solaris, /dev/kmem is a symlink. Get info on the real file. | ||
| 97 | ac_ls_output=`ls -lgL /dev/kmem 2>/dev/null` | ||
| 98 | # If we got an error (system does not support symlinks), try without -L. | ||
| 99 | test -z "$ac_ls_output" && ac_ls_output=`ls -lg /dev/kmem` | ||
| 100 | gl_cv_group_kmem=`echo $ac_ls_output \ | ||
| 101 | | sed -ne ['s/[ ][ ]*/ /g | ||
| 102 | s/^.[sSrwx-]* *[0-9]* *\([^0-9]*\) *.*/\1/ | ||
| 103 | / /s/.* //;p']` | ||
| 104 | ]) | ||
| 105 | AC_SUBST([KMEM_GROUP], [$gl_cv_group_kmem])dnl | ||
| 106 | fi | ||
| 107 | if test "x$gl_save_LIBS" = x; then | 61 | if test "x$gl_save_LIBS" = x; then |
| 108 | GETLOADAVG_LIBS=$LIBS | 62 | GETLOADAVG_LIBS=$LIBS |
| 109 | else | 63 | else |
| @@ -133,14 +87,30 @@ AC_CHECK_DECL([getloadavg], [], [HAVE_DECL_GETLOADAVG=0], | |||
| 133 | # -------------------- | 87 | # -------------------- |
| 134 | # Set up the AC_LIBOBJ replacement of `getloadavg'. | 88 | # Set up the AC_LIBOBJ replacement of `getloadavg'. |
| 135 | AC_DEFUN([gl_PREREQ_GETLOADAVG], | 89 | AC_DEFUN([gl_PREREQ_GETLOADAVG], |
| 136 | [AC_LIBOBJ([getloadavg]) | 90 | [ |
| 137 | AC_DEFINE([C_GETLOADAVG], [1], [Define to 1 if using `getloadavg.c'.]) | ||
| 138 | # Figure out what our getloadavg.c needs. | 91 | # Figure out what our getloadavg.c needs. |
| 139 | gl_have_func=no | 92 | |
| 140 | AC_CHECK_HEADER([sys/dg_sys_info.h], | 93 | # Solaris has libkstat which does not require root. |
| 141 | [gl_have_func=yes | 94 | AC_CHECK_LIB([kstat], [kstat_open]) |
| 142 | AC_DEFINE([DGUX], [1], [Define to 1 for DGUX with <sys/dg_sys_info.h>.]) | 95 | test $ac_cv_lib_kstat_kstat_open = yes && gl_have_func=yes |
| 143 | AC_CHECK_LIB([dgc], [dg_sys_info])]) | 96 | |
| 97 | # On HPUX9, an unprivileged user can get load averages this way. | ||
| 98 | if test $gl_have_func = no; then | ||
| 99 | AC_CHECK_FUNCS([pstat_getdynamic], [gl_have_func=yes]) | ||
| 100 | fi | ||
| 101 | |||
| 102 | # AIX has libperfstat which does not require root | ||
| 103 | if test $gl_have_func = no; then | ||
| 104 | AC_CHECK_LIB([perfstat], [perfstat_cpu_total]) | ||
| 105 | test $ac_cv_lib_perfstat_perfstat_cpu_total = yes && gl_have_func=yes | ||
| 106 | fi | ||
| 107 | |||
| 108 | if test $gl_have_func = no; then | ||
| 109 | AC_CHECK_HEADER([sys/dg_sys_info.h], | ||
| 110 | [gl_have_func=yes | ||
| 111 | AC_DEFINE([DGUX], [1], [Define to 1 for DGUX with <sys/dg_sys_info.h>.]) | ||
| 112 | AC_CHECK_LIB([dgc], [dg_sys_info])]) | ||
| 113 | fi | ||
| 144 | 114 | ||
| 145 | # We cannot check for <dwarf.h>, because Solaris 2 does not use dwarf (it | 115 | # We cannot check for <dwarf.h>, because Solaris 2 does not use dwarf (it |
| 146 | # uses stabs), but it is still SVR4. We cannot check for <elf.h> because | 116 | # uses stabs), but it is still SVR4. We cannot check for <elf.h> because |
| @@ -171,10 +141,7 @@ fi | |||
| 171 | 141 | ||
| 172 | AC_CHECK_HEADERS([nlist.h], | 142 | AC_CHECK_HEADERS([nlist.h], |
| 173 | [AC_CHECK_MEMBERS([struct nlist.n_un.n_name], | 143 | [AC_CHECK_MEMBERS([struct nlist.n_un.n_name], |
| 174 | [AC_DEFINE([NLIST_NAME_UNION], [1], | 144 | [], [], |
| 175 | [Define to 1 if your `struct nlist' has an | ||
| 176 | `n_un' member. Obsolete, depend on | ||
| 177 | `HAVE_STRUCT_NLIST_N_UN_N_NAME])], [], | ||
| 178 | [@%:@include <nlist.h>]) | 145 | [@%:@include <nlist.h>]) |
| 179 | AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <nlist.h>]], | 146 | AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <nlist.h>]], |
| 180 | [[struct nlist x; | 147 | [[struct nlist x; |
diff --git a/src/config.in b/src/config.in index 68cd4b39ac0..637287a024c 100644 --- a/src/config.in +++ b/src/config.in | |||
| @@ -42,9 +42,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 42 | /* Define to 1 if using `alloca.c'. */ | 42 | /* Define to 1 if using `alloca.c'. */ |
| 43 | #undef C_ALLOCA | 43 | #undef C_ALLOCA |
| 44 | 44 | ||
| 45 | /* Define to 1 if using `getloadavg.c'. */ | ||
| 46 | #undef C_GETLOADAVG | ||
| 47 | |||
| 48 | /* Define to 1 for DGUX with <sys/dg_sys_info.h>. */ | 45 | /* Define to 1 for DGUX with <sys/dg_sys_info.h>. */ |
| 49 | #undef DGUX | 46 | #undef DGUX |
| 50 | 47 | ||
| @@ -74,10 +71,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 74 | /* Define this to check for short string overrun. */ | 71 | /* Define this to check for short string overrun. */ |
| 75 | #undef GC_CHECK_STRING_OVERRUN | 72 | #undef GC_CHECK_STRING_OVERRUN |
| 76 | 73 | ||
| 77 | /* Define to 1 if the `getloadavg' function needs to be run setuid or setgid. | ||
| 78 | */ | ||
| 79 | #undef GETLOADAVG_PRIVILEGED | ||
| 80 | |||
| 81 | /* Define to 1 if the `getpgrp' function requires zero arguments. */ | 74 | /* Define to 1 if the `getpgrp' function requires zero arguments. */ |
| 82 | #undef GETPGRP_VOID | 75 | #undef GETPGRP_VOID |
| 83 | 76 | ||
| @@ -225,9 +218,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 225 | /* Define to 1 if you have the `getline' function. */ | 218 | /* Define to 1 if you have the `getline' function. */ |
| 226 | #undef HAVE_GETLINE | 219 | #undef HAVE_GETLINE |
| 227 | 220 | ||
| 228 | /* Define to 1 if you have the `getloadavg' function. */ | ||
| 229 | #undef HAVE_GETLOADAVG | ||
| 230 | |||
| 231 | /* Define to 1 if you have the <getopt.h> header file. */ | 221 | /* Define to 1 if you have the <getopt.h> header file. */ |
| 232 | #undef HAVE_GETOPT_H | 222 | #undef HAVE_GETOPT_H |
| 233 | 223 | ||
| @@ -876,10 +866,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 876 | /* Define to support POP mail retrieval. */ | 866 | /* Define to support POP mail retrieval. */ |
| 877 | #undef MAIL_USE_POP | 867 | #undef MAIL_USE_POP |
| 878 | 868 | ||
| 879 | /* Define to 1 if your `struct nlist' has an `n_un' member. Obsolete, depend | ||
| 880 | on `HAVE_STRUCT_NLIST_N_UN_N_NAME */ | ||
| 881 | #undef NLIST_NAME_UNION | ||
| 882 | |||
| 883 | /* Define to 1 if you don't have struct exception in math.h. */ | 869 | /* Define to 1 if you don't have struct exception in math.h. */ |
| 884 | #undef NO_MATHERR | 870 | #undef NO_MATHERR |
| 885 | 871 | ||