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
|
# bzip2 1.0.8
|
||||||
get_file ftp://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz
|
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
|
# m4 1.4
|
||||||
get_file https://ftp.gnu.org/gnu/m4/m4-1.4.tar.gz
|
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
|
kaem --file ../bzip2-1.0.8.kaem
|
||||||
cd ..
|
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/gunzip m4-1.4.tar.gz
|
||||||
/after/bin/tar xf m4-1.4.tar
|
/after/bin/tar xf m4-1.4.tar
|
||||||
cd m4-1.4
|
cd m4-1.4
|
||||||
kaem --file ../m4-1.4.kaem
|
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