From 4075a9b074f6f1e2de9763fd92e12d06475f6981 Mon Sep 17 00:00:00 2001 From: Hein Htat Date: Sat, 13 Jun 2020 16:11:06 -0500 Subject: [PATCH] Fix build on 64-bit Linux --- etc/linux.c | 12 ++++++++---- makefile | 9 +++++++-- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/etc/linux.c b/etc/linux.c index 5df60595..aac387c5 100755 --- a/etc/linux.c +++ b/etc/linux.c @@ -8,6 +8,10 @@ static char rcsid[] = "$Id$"; #define LCCDIR "/usr/local/lib/lcc/" #endif +#ifndef USRLIBDIR +#define USRLIBDIR "/usr/lib/" +#endif + char *suffixes[] = { ".c", ".i", ".s", ".o", ".out", 0 }; char inputs[256] = ""; char *cpp[] = { LCCDIR "gcc/cpp", @@ -17,18 +21,18 @@ char *cpp[] = { LCCDIR "gcc/cpp", "$1", "$2", "$3", 0 }; char *include[] = {"-I" LCCDIR "include", "-I" LCCDIR "gcc/include", "-I/usr/include", 0 }; char *com[] = {LCCDIR "rcc", "-target=x86/linux", "$1", "$2", "$3", 0 }; -char *as[] = { "/usr/bin/as", "-o", "$3", "$1", "$2", 0 }; +char *as[] = { "/usr/bin/as", "-32", "-o", "$3", "$1", "$2", 0 }; char *ld[] = { /* 0 */ "/usr/bin/ld", "-m", "elf_i386", "-dynamic-linker", /* 4 */ "/lib/ld-linux.so.2", "-o", "$3", - /* 7 */ "/usr/lib/crt1.o", "/usr/lib/crti.o", + /* 7 */ USRLIBDIR "crt1.o", USRLIBDIR "crti.o", /* 9 */ LCCDIR "/gcc/crtbegin.o", "$1", "$2", /* 12 */ "-L" LCCDIR, /* 13 */ "-llcc", /* 14 */ "-L" LCCDIR "/gcc", "-lgcc", "-lc", "-lm", /* 18 */ "", - /* 19 */ LCCDIR "/gcc/crtend.o", "/usr/lib/crtn.o", + /* 19 */ LCCDIR "/gcc/crtend.o", USRLIBDIR "crtn.o", 0 }; extern char *concat(char *, char *); @@ -45,7 +49,7 @@ int option(char *arg) { ld[19] = concat(&arg[8], "/gcc/crtend.o"); com[0] = concat(&arg[8], "/rcc"); } else if (strcmp(arg, "-p") == 0 || strcmp(arg, "-pg") == 0) { - ld[7] = "/usr/lib/gcrt1.o"; + ld[7] = USRLIBDIR "gcrt1.o"; ld[18] = "-lgmon"; } else if (strcmp(arg, "-b") == 0) ; diff --git a/makefile b/makefile index c96afff7..a3fa1ff0 100755 --- a/makefile +++ b/makefile @@ -1,10 +1,15 @@ # $Id$ +ARCH=$(shell getconf LONG_BIT) A=.a O=.o E= CC=cc -CFLAGS=-g -LDFLAGS=-g +CFLAGS_32= +CFLAGS_64=-m32 -DUSRLIBDIR='"/usr/lib32/"' +CFLAGS=-g $(CFLAGS_$(ARCH)) +LDFLAGS_32= +LDFLAGS_64=-m32 +LDFLAGS=-g $(LDFLAGS_$(ARCH)) LD=$(CC) AR=ar ruv RANLIB=ranlib