bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bash 4.3.42 configure script needs to test sys/resource.h different on S


From: Klaus Ziegler - owner of sunfreeware.de
Subject: bash 4.3.42 configure script needs to test sys/resource.h different on SunOS4
Date: Tue, 13 Oct 2015 22:10:34 +0200
User-agent: Mozilla/5.0 (X11; SunOS i86pc; rv:31.0) Gecko/20100101 Thunderbird/31.0


Configuration Information [Automatically generated, do not change]:
Machine: m68k
OS: sunos4.1.1_U1
Compiler: gcc
Compilation CFLAGS: -DPROGRAM='bash' -DCONF_HOSTTYPE='m68k' -DCONF_OSTYPE='sunos4.1.1_U1' -DCONF_MACHTYPE='m68k-sun-sunos4.1.1_U1' -DCONF_VENDOR='sun' -DLOCALEDIR='/usr/share/locale' -DPACKAGE='bash' -DSHELL -DHAVE_CONFIG_H -DSunOS4 -I. -I. -I./include -I./lib -I./lib/intl -I/export/home/klausz/src/bash-4.3.30/lib/intl -O2
uname output: SunOS suntools 4.1.1_U1 1 sun3x
Machine Type: m68k-sun-sunos4.1.1_U1

Bash Version: 4.3
Patch Level: 42
Release Status: release

Description:
if running the configure script on SunOS4 the following WARNING occurs:

./configure `cat /export/home/klausz/src/conf_bash-4.3.30`
checking build system type... m68k-sun-sunos4.1.1_U1
checking host system type... m68k-sun-sunos4.1.1_U1

Beginning configuration for bash-4.3-release for m68k-sun-sunos4.1.1_U1

checking for gcc... gcc
...
checking sys/resource.h usability... no
checking sys/resource.h presence... yes
configure: WARNING: sys/resource.h: present but cannot be compiled
configure: WARNING: sys/resource.h: check for missing prerequisite headers?
configure: WARNING: sys/resource.h: see the Autoconf documentation
configure: WARNING: sys/resource.h: section "Present But Cannot Be Compiled"
configure: WARNING: sys/resource.h: proceeding with the compiler's result
configure: WARNING:     ## ------------------------------- ##
configure: WARNING:     ## Report this to bug-bash@gnu.org ##
configure: WARNING:     ## ------------------------------- ##
checking for sys/resource.h... no
...
checking for snprintf... no <---- no warning here - but!
...

this leads to the following compilation errors later on:
gcc -DPROGRAM='"bash"' -DCONF_HOSTTYPE='"m68k"' -DCONF_OSTYPE='"sunos4.1.1_U1"' -DCONF_MACHTYPE='"m68k-sun-sunos4.1.1_U1"' -DCONF_VENDOR='"sun"' -DLOCALEDIR='"/usr/share/locale"' -DPACKAGE='"bash"' -DSHELL -DHAVE_CONFIG_H -DSunOS4 -I. -I. -I./include -I./lib -I./lib/intl -I/export/home/klausz/src/bash-4.3.30/lib/intl -O2 -O2 -O2 -o bashversion ./support/bashversion.c buildversion.o
ld: Undefined symbol
   _snprintf
collect2: ld returned 2 exit status
gmake: *** [bashversion] Error 1
...
gcc -DPROGRAM='"bash"' -DCONF_HOSTTYPE='"m68k"' -DCONF_OSTYPE='"sunos4.1.1_U1"' -DCONF_MACHTYPE='"m68k-sun-sunos4.1.1_U1"' -DCONF_VENDOR='"sun"' -DLOCALEDIR='"/usr/share/locale"' -DPACKAGE='"bash"' -DSHELL -DHAVE_CONFIG_H -DSunOS4 -I. -I. -I./include -I./lib -I./lib/intl -I/export/home/klausz/src/bash-4.3.30/lib/intl -O2 -c execute_cmd.c
execute_cmd.c: In function `time_command':
execute_cmd.c:1268: storage size of `selfb' isn't known
execute_cmd.c:1268: storage size of `selfa' isn't known
execute_cmd.c:1268: storage size of `kidsb' isn't known
execute_cmd.c:1268: storage size of `kidsa' isn't known
execute_cmd.c:1282: `RUSAGE_SELF' undeclared (first use in this function)
execute_cmd.c:1282: (Each undeclared identifier is reported only once
execute_cmd.c:1282: for each function it appears in.)
execute_cmd.c:1283: `RUSAGE_CHILDREN' undeclared (first use in this function)
gmake: *** [execute_cmd.o] Error 1

Hi Chet,

I have no clue how to fix the bashversion linking error in the configure script, besides modifying config.h after configure has done it's work. However, the compile error in execute_cmd.c, is directly related to the failed autoconf test for <sys/resource.h> from above. On SunOS4 a test for /usr/include/sys/resource.h needs to
include /usr/include/sys/time.h to be successful.

from config.log:
configure:9287: checking sys/resource.h usability
configure:9287: gcc -c -O2  conftest.c >&5
In file included from conftest.c:147:
/usr/include/sys/resource.h:24: field `ru_utime' has incomplete type
/usr/include/sys/resource.h:25: field `ru_stime' has incomplete type
configure:9287: $? = 1

from /usr/include/sys/resource.h:
    23  struct  rusage {
    24          struct timeval ru_utime;        /* user time used */
    25          struct timeval ru_stime;        /* system time used */
from /usr/include/sys/time.h:
    16  struct timeval {
    17          long    tv_sec;         /* seconds */
    18          long    tv_usec;        /* and microseconds */
    19  };
including <sys/time.h> before checking <sys/resource.h> works.

Other useful information:
configure options used:
--enable-help-builtin --enable-history --enable-job-control --enable-multibyte --enable-process-substitution --enable-progcomp --enable-prompt-string-decoding --enable-readline --enable-select --enable-xpg-echo-default --enable-alias --enable-arith-for-command --enable-array-variables --enable-bang-history --enable-brace-expansion --enable-casemod-attributes --enable-casemod-expansions --enable-command-timing --enable-cond-command --enable-cond-regexp --enable-coprocesses --enable-direxpand-default --enable-directory-stack --enable-dparen-arithmetic --enable-extended-glob --enable-extended-glob-default --enable-glob-asciiranges-default --prefix=/usr
GCC used:
gcc (GCC) 3.2.3
Copyright (C) 2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
sorry it's the newest one I could find for this platform.

Repeat-By:
tried 4.1 series - also happens there.


Fix:
quick fix: change config.h after configure is run:

diff config.h.orig config.h
782c782
< #define HAVE_SNPRINTF 0
---
> /* #undef HAVE_SNPRINTF */
1000c1000
< /* #undef HAVE_SYS_RESOURCE_H */
---
> #define HAVE_SYS_RESOURCE_H 1

fix for autoconf test <sys/resource.h> in configure:
--- configure.orig      2014-02-11 16:38:00.000000000 +0100
+++ configure   2015-10-13 18:12:00.000000000 +0200
@@ -1806,11 +1806,32 @@
   # Is the header compilable?
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
 $as_echo_n "checking $2 usability... " >&6; }
+
+case "${host_os}" in
+sunos4*)
+if test "$2" = "sys/resource.h"; then
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $4
+#include <sys/time.h>
 #include <$2>
 _ACEOF
+else
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
+_ACEOF
+fi
+;;
+*)
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
+_ACEOF
+;;
+esac
 if ac_fn_c_try_compile "$LINENO"; then :
   ac_header_compiler=yes
 else

I don't have the whole autoconf stuff running on this old Sun 3/80, therefore only the
configure patch, not a configure.ac patch, sorry about that.

Much Regards
Klaus






reply via email to

[Prev in Thread] Current Thread [Next in Thread]