diff -ur a/Makefile.linux b/Makefile.linux --- a/Makefile.linux 2015-09-07 08:20:02.000000000 +0000 +++ b/Makefile.linux 2020-02-17 06:48:46.000000000 +0000 @@ -1,7 +1,7 @@ RM=rm -f CC=gcc $(CCOPT) OSTYPE=Linux -CPUTYPE=i386 +CPUTYPE=$(shell uname -m) HVOPT=-DHV CFLAGS=-D$(OSTYPE) -D$(CPUTYPE) $(HVOPT) -Wall -I. -DTAP diff -ur a/mk.sh b/mk.sh --- a/mk.sh 2015-09-07 08:20:02.000000000 +0000 +++ b/mk.sh 2020-02-17 10:35:17.030545910 +0000 @@ -59,7 +59,12 @@ fi if [ $arch = "amd64" -o $arch = "x86_64" -o $arch = "64" ]; then - CCOPT=$CCOPT" -m64" + archtype=$(uname -m) + if [ $archtype = "aarch64" ]; then + CCOPT=$CCOPT"" + else + CCOPT=$CCOPT" -m64" + fi fi if [ $os = "Darwin" ]; then diff -ur a/readline.c b/readline.c --- a/readline.c 2015-09-07 08:20:02.000000000 +0000 +++ b/readline.c 2020-02-17 06:50:14.000000000 +0000 @@ -150,7 +150,7 @@ memset(p, 0, (histnum + 2) * buflen); rls->kbuffer = p; - rls->history = malloc(histnum * sizeof(char *)); + rls->history = malloc((histnum + 1) * sizeof(char *)); if (rls->history == NULL) break; for (i = 0; i <= histnum; i++)