Add bash 2.05b
This commit is contained in:
parent
e0d72a85b2
commit
c1454a5db6
|
@ -133,6 +133,9 @@ get_file https://ftp.gnu.org/gnu/make/make-3.80.tar.gz
|
|||
# bzip2 1.0.8
|
||||
get_file ftp://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz
|
||||
|
||||
# bash 2.05b
|
||||
get_file https://ftp.gnu.org/pub/gnu/bash/bash-2.05b.tar.gz
|
||||
|
||||
# m4 1.4
|
||||
get_file https://ftp.gnu.org/gnu/m4/m4-1.4.tar.gz
|
||||
|
||||
|
|
|
@ -97,9 +97,15 @@ cd bzip2-1.0.8
|
|||
kaem --file ../bzip2-1.0.8.kaem
|
||||
cd ..
|
||||
|
||||
# Part 15: m4
|
||||
# Part 15: bash
|
||||
/after/bin/gunzip bash-2.05b.tar.gz
|
||||
/after/bin/tar xf bash-2.05b.tar
|
||||
cd bash-2.05b
|
||||
kaem --file ../bash-2.05b.kaem
|
||||
cd ..
|
||||
|
||||
# Part 16: m4
|
||||
/after/bin/gunzip m4-1.4.tar.gz
|
||||
/after/bin/tar xf m4-1.4.tar
|
||||
cd m4-1.4
|
||||
kaem --file ../m4-1.4.kaem
|
||||
cd ..
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
.SUFFIXES = .def
|
||||
|
||||
include ../common.mk
|
||||
|
||||
CFLAGS = \
|
||||
-I. \
|
||||
-I.. \
|
||||
-I../include \
|
||||
-I../lib \
|
||||
$(COMMON_CFLAGS)
|
||||
|
||||
BUILTINS_DEFS = $(addsuffix .def, $(BUILTINS_DEF_FILES))
|
||||
BUILTINS_DEF_OBJS = $(addsuffix .o, $(BUILTINS_DEF_FILES))
|
||||
BUILTINS_STATIC_FILES = common evalstring evalfile getopt bashgetopt
|
||||
BUILTINS_STATIC_OBJS = $(addsuffix .o, $(BUILTINS_STATIC_FILES))
|
||||
BUILTINS_OBJS = $(BUILTINS_DEF_OBJS) $(BUILTINS_STATIC_OBJS)
|
||||
|
||||
%.o: %.def
|
||||
../mkbuiltins $<
|
||||
$(CC) -c $(CFLAGS) -o $@ $*.c
|
||||
|
||||
libbuiltins.a: $(BUILTINS_OBJS) builtins.o
|
||||
$(AR) cr $@ $(BUILTINS_OBJS) builtins.o
|
|
@ -0,0 +1,53 @@
|
|||
CC = tcc
|
||||
LD = tcc
|
||||
AR = tcc -ar
|
||||
|
||||
COMMON_CFLAGS = \
|
||||
-DHAVE_DIRENT_H \
|
||||
-DSTRUCT_DIRENT_HAS_D_INO \
|
||||
-DHAVE_STDINT_H \
|
||||
-DHAVE_LIMITS_H \
|
||||
-DHAVE_STRING_H \
|
||||
-DHAVE_INTTYPES_H \
|
||||
-DRETSIGTYPE=void \
|
||||
-DHUGE_VAL=10000000000.0 \
|
||||
-DTERMIO_TTY_DRIVER \
|
||||
-DPREFER_STDARG \
|
||||
-DHAVE_DECL_STRTOL \
|
||||
-DHAVE_DECL_STRTOLL \
|
||||
-DHAVE_DECL_STRTOUL \
|
||||
-DHAVE_DECL_STRTOULL \
|
||||
-DHAVE_TZNAME \
|
||||
-DPIPESIZE=4096 \
|
||||
-DDEFAULT_PATH_VALUE=\"/after/bin\" \
|
||||
-DSTANDARD_UTILS_PATH=\"/after/bin\" \
|
||||
-DPPROMPT=\"$ \" \
|
||||
-DSPROMPT=\"$ \" \
|
||||
-DCONF_MACHTYPE=\"bootstrap\" \
|
||||
-DGETGROUPS_T=int \
|
||||
-DCOND_COMMAND \
|
||||
-DCONF_HOSTTYPE=\"i386\" \
|
||||
-DCONF_OSTYPE=\"linux\" \
|
||||
-DDEFAULT_MAIL_DIRECTORY=\"/fake-mail\" \
|
||||
-DVOID_SIGHANDLER \
|
||||
-DDISTVERSION=\"2.05b\" \
|
||||
-DBUILDVERSION=\"0\" \
|
||||
-DSCCSVERSION=\"2.05b\" \
|
||||
-DLC_ALL=\"C\" \
|
||||
-DHAVE_STRERROR \
|
||||
-DHAVE_MEMSET \
|
||||
-DHAVE_DUP2 \
|
||||
-DHAVE_STRTOUL \
|
||||
-DHAVE_STRTOULL \
|
||||
-DHAVE_STRCHR \
|
||||
-DHAVE_BCOPY \
|
||||
-DHAVE_BZERO \
|
||||
-DHAVE_POSIX_SIGNALS \
|
||||
-DHAVE_GETCWD \
|
||||
-Dendpwent\(x\)=0 \
|
||||
-Denable_hostname_completion\(on_or_off\)=0
|
||||
|
||||
BUILTINS_DEF_FILES = alias bind break builtin cd colon command complete declare \
|
||||
echo enable eval exec exit fc fg_bg hash history jobs kill let read return \
|
||||
set setattr shift source suspend test times trap type ulimit umask wait \
|
||||
getopts pushd shopt printf
|
|
@ -0,0 +1,31 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -ex
|
||||
|
||||
# Variables
|
||||
bindir=/after/bin
|
||||
|
||||
catm config.h
|
||||
catm include/version.h
|
||||
catm include/pipesize.h
|
||||
|
||||
# Patch
|
||||
patch -Np0 -i ../patches/bash-2.05b/mes-libc.patch
|
||||
patch -Np0 -i ../patches/bash-2.05b/tinycc.patch
|
||||
patch -Np0 -i ../patches/bash-2.05b/missing-defines.patch
|
||||
patch -Np0 -i ../patches/bash-2.05b/locale.patch
|
||||
patch -Np0 -i ../patches/bash-2.05b/dev-tty.patch
|
||||
|
||||
# Compile
|
||||
cp ../bash-2.05b.mk Makefile
|
||||
cp ../bash-2.05b-builtins.mk builtins/Makefile
|
||||
cp ../bash-2.05b-common.mk common.mk
|
||||
make mkbuiltins
|
||||
cd builtins
|
||||
make libbuiltins.a
|
||||
cd ..
|
||||
make
|
||||
|
||||
# Install
|
||||
cp bash /after/bin/
|
||||
chmod 755 /after/bin/bash
|
|
@ -0,0 +1,84 @@
|
|||
include common.mk
|
||||
|
||||
CFLAGS = \
|
||||
-I. \
|
||||
-Iinclude \
|
||||
-Ilib \
|
||||
-Ilib/sh \
|
||||
-Ibuiltins \
|
||||
$(COMMON_CFLAGS)
|
||||
|
||||
LDFLAGS = -L. -Lbuiltins
|
||||
LIBRARIES = libsh.a builtins/libbuiltins.a libglob.a libtilde.a
|
||||
|
||||
SHLIB_FILES = clktck getcwd getenv oslib setlinebuf strcasecmp strerror strtod \
|
||||
vprint itos rename zread zwrite shtty inet_aton netopen \
|
||||
strpbrk timeval clock makepath pathcanon pathphys stringlist stringvec \
|
||||
tmpfile spell strtrans strindex shquote snprintf mailstat fmtulong \
|
||||
fmtullong strtoll strtoull strtoimax strtoumax fmtumax netconn mktime \
|
||||
strftime xstrchr zcatfd
|
||||
# FIXME: for some reason these don't get picked up correctly in the
|
||||
# final linking cmd
|
||||
SHLIB_ODD_FILES = zcatfd strtoumax spell pathphys
|
||||
SHLIB_OBJS = $(addprefix lib/sh/, $(addsuffix .o, $(SHLIB_FILES)))
|
||||
SHLIB_ODD_OBJS = $(addprefix lib/sh/, $(addsuffix .o, $(SHLIB_ODD_FILES)))
|
||||
|
||||
MKBUILTINS_OBJS = builtins/mkbuiltins.o
|
||||
BUILTINS_DEFS = $(addprefix builtins/, $(addsuffix .def, $(BUILTINS_DEF_FILES)))
|
||||
|
||||
GLOB_FILES = glob strmatch smatch xmbsrtowcs
|
||||
GLOB_OBJS = $(addprefix lib/glob/, $(addsuffix .o, $(GLOB_FILES)))
|
||||
|
||||
TILDE_OBJS = lib/tilde/tilde.o
|
||||
|
||||
MKSYNTAX_OBJS = mksyntax.o
|
||||
MKSIGNAMES_OBJS = support/mksignames.o
|
||||
|
||||
FILES = shell eval y.tab general make_cmd print_cmd dispose_cmd execute_cmd \
|
||||
variables copy_cmd error expr flags nojobs subst hashcmd hashlib mailcheck \
|
||||
trap input unwind_prot pathexp sig test version alias array arrayfunc \
|
||||
braces bracecomp bashhist bashline list stringlib locale findcmd redir \
|
||||
pcomplete pcomplib syntax xmalloc siglist
|
||||
OBJS = $(addsuffix .o, $(FILES))
|
||||
|
||||
all: bash
|
||||
|
||||
# Builtins
|
||||
|
||||
mkbuiltins: $(MKBUILTINS_OBJS)
|
||||
$(CC) $(CFLAGS) $(MKBUILTINS_OBJS) $(LDFLAGS) -o $@
|
||||
./mkbuiltins -externfile builtins/builtext.h -structfile builtins/builtins.c -noproduction $(BUILTINS_DEFS)
|
||||
|
||||
# libsh
|
||||
|
||||
libsh.a: $(SHLIB_OBJS)
|
||||
$(AR) cr $@ $(SHLIB_OBJS)
|
||||
|
||||
# libglob
|
||||
|
||||
libglob.a: $(GLOB_OBJS)
|
||||
$(AR) cr $@ $(GLOB_OBJS)
|
||||
|
||||
# libtilde
|
||||
|
||||
libtilde.a: $(TILDE_OBJS)
|
||||
$(AR) cr $@ $(TILDE_OBJS)
|
||||
|
||||
# The actual program
|
||||
|
||||
mksyntax: $(MKSYNTAX_OBJS)
|
||||
$(CC) $(MKSYNTAX_OBJS) $(LDFLAGS) -o $@ -lgetopt
|
||||
|
||||
syntax.c: mksyntax
|
||||
./mksyntax -o $@
|
||||
|
||||
mksignames: $(MKSIGNAMES_OBJS)
|
||||
$(CC) $(MKSIGNAMES_OBJS) $(LDFLAGS) -o $@ -lgetopt
|
||||
|
||||
signames.h: mksignames
|
||||
./mksignames $@
|
||||
|
||||
trap.c: signames.h
|
||||
|
||||
bash: libsh.a libglob.a libtilde.a $(OBJS)
|
||||
$(CC) -o bash $(LIBRARIES) $(OBJS) $(SHLIB_ODD_OBJS) $(LDFLAGS) -lsh -lbuiltins -lglob -ltilde
|
|
@ -0,0 +1,11 @@
|
|||
diff --color -ru shell.c
|
||||
--- shell.c 2002-07-02 01:27:11.000000000 +1000
|
||||
+++ shell.c 2021-01-16 11:23:36.407287955 +1100
|
||||
@@ -342,8 +342,6 @@
|
||||
# endif
|
||||
#endif
|
||||
|
||||
- check_dev_tty ();
|
||||
-
|
||||
#ifdef __CYGWIN__
|
||||
_cygwin32_check_tmp ();
|
|
@ -0,0 +1,12 @@
|
|||
--- builtins/common.c.bak 2021-01-15 21:32:56.938683418 +1100
|
||||
+++ builtins/common.c 2021-01-15 21:34:09.102153806 +1100
|
||||
@@ -46,6 +46,9 @@
|
||||
#include "../flags.h"
|
||||
#include "../jobs.h"
|
||||
#include "../builtins.h"
|
||||
+int num_shell_builtins;
|
||||
+struct builtin *shell_builtins;
|
||||
+struct builtin *current_builtin;
|
||||
#include "../input.h"
|
||||
#include "../execute_cmd.h"
|
||||
#include "../trap.h"
|
|
@ -0,0 +1,11 @@
|
|||
--- locale.c 2021-01-15 09:38:55.729307629 +1100
|
||||
+++ locale.c 2021-01-15 11:19:01.929391346 +1100
|
||||
@@ -190,7 +190,7 @@
|
||||
set_lang (var, value)
|
||||
char *var, *value;
|
||||
{
|
||||
- return ((lc_all == 0 || *lc_all == 0) ? setlocale (LC_ALL, value?value:"") != NULL : 0);
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
/* Get the value of one of the locale variables (LC_MESSAGES, LC_CTYPE) */
|
|
@ -0,0 +1,13 @@
|
|||
diff --git lib/sh/snprintf.c lib/sh/snprintf.c
|
||||
index 7669576..747aeba 100644
|
||||
--- lib/sh/snprintf.c
|
||||
+++ lib/sh/snprintf.c
|
||||
@@ -376,7 +376,7 @@ static void xfree __P((void *));
|
||||
if ((p)->flags & PF_STAR_P) \
|
||||
(p)->precision = GETARG (int)
|
||||
|
||||
-#if defined (HAVE_LOCALE_H)
|
||||
+#if 0
|
||||
# define GETLOCALEDATA(d, t, g) \
|
||||
do \
|
||||
{ \
|
|
@ -0,0 +1,21 @@
|
|||
--- ../bash-2.05b.bak/execute_cmd.c 2021-01-15 09:38:55.730307635 +1100
|
||||
+++ execute_cmd.c 2021-01-15 09:43:41.046896754 +1100
|
||||
@@ -286,12 +286,18 @@
|
||||
{
|
||||
if (currently_executing_command->type == cm_simple)
|
||||
return currently_executing_command->value.Simple->line;
|
||||
+#ifdef COND_COMMAND
|
||||
else if (currently_executing_command->type == cm_cond)
|
||||
return currently_executing_command->value.Cond->line;
|
||||
+#endif
|
||||
+#ifdef DPAREN_ARITHMETIC
|
||||
else if (currently_executing_command->type == cm_arith)
|
||||
return currently_executing_command->value.Arith->line;
|
||||
+#endif
|
||||
+#ifdef ARITH_FOR_COMMAND
|
||||
else if (currently_executing_command->type == cm_arith_for)
|
||||
return currently_executing_command->value.ArithFor->line;
|
||||
+#endif
|
||||
else
|
||||
return line_number;
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
diff --git lib/sh/oslib.c lib/sh/oslib.c
|
||||
index 90d7be9..37fdf2a 100644
|
||||
--- lib/sh/oslib.c
|
||||
+++ lib/sh/oslib.c
|
||||
@@ -192,8 +192,7 @@ bzero (s, n)
|
||||
# include <sys/utsname.h>
|
||||
int
|
||||
gethostname (name, namelen)
|
||||
- char *name;
|
||||
- int namelen;
|
||||
+ char *name; int namelen;
|
||||
{
|
||||
int i;
|
||||
struct utsname ut;
|
||||
@@ -209,7 +208,7 @@ gethostname (name, namelen)
|
||||
# else /* !HAVE_UNAME */
|
||||
int
|
||||
gethostname (name, namelen)
|
||||
- int name, namelen;
|
||||
+ char* name; int namelen;
|
||||
{
|
||||
strncpy (name, "unknown", namelen);
|
||||
name[namelen] = '\0';
|
Loading…
Reference in New Issue