Bash make error

Gerard Beekmans gerard at linuxfromscratch.org
Wed Mar 7 06:52:02 PST 2001


> *******************************************************Making
> Bash-2.04.0-release for a i686 running linux-gnu
> *******************************************************
> rm -f shell.o
> gcc  -DPROGRAM='"bash"' -DCONF_HOSTTYPE='"i686"'
> -DCONF_OSTYPE='"linux-gnu"'
> -DCONF_MACHTYPE='"i686-pc-linux-gnu"'
> -DCONF_VENDOR='"pc"' -DSHELL -DHAVE_CONFIG_H
> -D_FILE_OFFSET_BITS=64  -I.  -I. -I./include -I./lib
> -I/mnt/lfs/usr/include -g -O2 -c shell.c
> In file included from shell.h:26,
>                  from shell.c:45:
> general.h:190: parse error before `string_to_rlimtype'
> general.h:190: warning: data definition has no type or
> storage class
> general.h:191: parse error before `int'
> make: *** [shell.o] Error 1
> <end output>

Per request I received his bash tarball and tried to compile it on my system. 
And it didn't work, it failed with the same error. So I unpacked bash myself, 
ran configure and compared the two build directories and here are some 
relevant lines from the output:

The lines starting with a - are from Jason's bash version. The lines with a + 
are from my own (which result in a proper bash compilation):

-ac_cv_header_sys_resource_h=${ac_cv_header_sys_resource_h=no}
+ac_cv_header_sys_resource_h=${ac_cv_header_sys_resource_h=yes}

-ac_cv_header_termcap_h=${ac_cv_header_termcap_h=no}
+ac_cv_header_termcap_h=${ac_cv_header_termcap_h=yes}

-ac_cv_lib_termcap_tgetent=${ac_cv_lib_termcap_tgetent=yes}
+ac_cv_lib_termcap_tgetent=${ac_cv_lib_termcap_tgetent=no}

-bash_cv_termcap_lib=${bash_cv_termcap_lib=libtermcap}
+bash_cv_termcap_lib=${bash_cv_termcap_lib=libcurses}

 /* Define if you have the <sys/resource.h> header file.  */
-/* #undef HAVE_SYS_RESOURCE_H */
+#define HAVE_SYS_RESOURCE_H 1

@@ -333,14 +323,6 @@
 configure:3709: gcc -E -D_FILE_OFFSET_BITS=64  conftest.c >/dev/null 
2>conftest
.out
 configure:3699: checking for sys/resource.h
 configure:3709: gcc -E -D_FILE_OFFSET_BITS=64  conftest.c >/dev/null 
2>conftest
.out
-In file included from /usr/include/sys/resource.h:25,
-                 from configure:3705:
-/usr/include/bits/resource.h:111: warning: `RLIM_INFINITY' redefined
-/usr/include/asm/resource.h:26: warning: this is the location of the 
previous d
efinition
-configure: failed program was:
-#line 3704 "configure"
-#include "confdefs.h"
-#include <sys/resource.h>


And it goes on with more errors regarding ncurses/termcap.

What happens is this: bash tries to find ncurses. It doesn't find it. It then 
tries to find termcap. It doesn't find it either but then defaults to 
termcap. It will try to compile bash using termcap header files and 
definitions but as termcap isn't there this won't work.

Also, my /usr/include/sys/resource.h has no RLIM_INFINITY defined. So this is 
probably something from your Glibc version (i use 2.2.1, you probably use 
2.1.x on your host system).

Ok how are we going to fix this. Let's start with you checking if you have 
libncurses installed which you probably don't. If not, please install that 
package, remove the bash source tree, unpack it again, configure again with 
the commands from the book and try to build it again. If it doesn't work 
again repeat the same: post a message here, state that it didn't work and 
send me (not this list) a tarball of your current build. I don't know if the 
RLIM problems are in any way shape or form related to ncurses. 



-- 
Gerard Beekmans
www.linuxfromscratch.org

-*- If Linux doesn't have the solution, you have the wrong problem -*-

-- 
Unsubscribe: send email to lfs-discuss-request at linuxfromscratch.org
and put unsubscribe in the subject header of the message




More information about the lfs-dev mailing list