From b1150c0fd4792d9d0c9407bb3da5d8e1943514d0 Mon Sep 17 00:00:00 2001 From: Christophe Rhodes Date: Wed, 1 Jun 2005 10:07:39 +0000 Subject: [PATCH] 0.9.1.10: MORE DIFFSTAT ... merge Thiemo Seufer "Makefile improvements for the C runtime" sbcl-devel 2005-05-29 ... better dependency chasing by gcc; ... s/arch/LISP_FEATURE_ARCH/, hooray. Add stuff to .cvsignores until it mostly stops emitting ?s Untested on anything not x86-64. Shout if broken. --- doc/manual/.cvsignore | 21 +++++++-- doc/manual/Makefile | 8 ++-- src/runtime/.cvsignore | 1 + src/runtime/Config.alpha-linux | 14 +++--- src/runtime/Config.alpha-osf1 | 15 ++++--- src/runtime/Config.hppa-linux | 15 +++---- src/runtime/Config.mips-linux | 12 +++--- src/runtime/Config.ppc-darwin | 26 +++++++---- src/runtime/Config.ppc-linux | 16 +++---- src/runtime/Config.sparc-linux | 23 +++++----- src/runtime/Config.sparc-sunos | 25 +++++------ src/runtime/Config.x86-bsd | 5 ++- src/runtime/Config.x86-freebsd | 16 +++++-- src/runtime/Config.x86-linux | 8 +++- src/runtime/Config.x86-netbsd | 14 +++++- src/runtime/Config.x86-openbsd | 13 +++++- src/runtime/Config.x86_64-linux | 12 ++++-- src/runtime/GNUmakefile | 90 +++++++++++++++++++++++---------------- src/runtime/backtrace.c | 12 +++--- src/runtime/breakpoint.c | 2 +- src/runtime/core.h | 2 +- src/runtime/coreparse.c | 2 +- src/runtime/os.h | 2 +- src/runtime/print.c | 8 ++-- src/runtime/purify.c | 10 ++--- version.lisp-expr | 2 +- 26 files changed, 226 insertions(+), 148 deletions(-) diff --git a/doc/manual/.cvsignore b/doc/manual/.cvsignore index 3e98371..658f6b8 100644 --- a/doc/manual/.cvsignore +++ b/doc/manual/.cvsignore @@ -2,10 +2,23 @@ contrib-doc-list.texi-temp docstrings variables.texinfo *-stamp +asdf sbcl -sbcl.cp +*.aux +*.cp +*.cps *.dvi -sbcl.fn -sbcl.tp -sbcl.vr +*.fn +*.fns +*.info +*.ky +*.log +*.pg *.texi-temp +*.toc +*.tp +*.tps +*.ps +*.pdf +*.vr +*.vrs diff --git a/doc/manual/Makefile b/doc/manual/Makefile index f1bbce0..02ea7c4 100644 --- a/doc/manual/Makefile +++ b/doc/manual/Makefile @@ -1,7 +1,7 @@ SBCLTEXI:=sbcl.texinfo ASDFTEXI:=asdf.texinfo DOCFILES:=*.texinfo $(ASDFTEXI) -TMPTYPES:=aux cps fns ky log pg toc tps vrs +TMPTYPES:=aux cp cps fn fns ky log pg toc tp tps vr vrs TMPFILES:=$(foreach target,asdf sbcl,$(foreach type,$(TMPTYPES),$(target).$(type))) PSFILES=sbcl.ps asdf.ps PDFFILES=sbcl.pdf asdf.pdf @@ -96,9 +96,9 @@ clean: rm -rf $(HTMLDIRS) $(DOCSTRINGDIR) rm -f contrib-docs.texi-temp rm -f package-locks.texi-temp - rm -f $(PSFILE) $(PDFFILE) $(DVIFILE) html-stamp tempfiles-stamp - rm -f $(TMPFILES) - rm -f sbcl.info sbcl.info-* + rm -f $(PSFILES) $(PDFFILES) html-stamp tempfiles-stamp + rm -f $(TMPFILES) $(INDEXFILES) + rm -f sbcl.info sbcl.info-* asdf.info .PHONY: distclean distclean: clean diff --git a/src/runtime/.cvsignore b/src/runtime/.cvsignore index 1452412..4c7c2f5 100644 --- a/src/runtime/.cvsignore +++ b/src/runtime/.cvsignore @@ -1,3 +1,4 @@ +*.d depend genesis ldso-stubs.S diff --git a/src/runtime/Config.alpha-linux b/src/runtime/Config.alpha-linux index 55a5022..a72b7f1 100644 --- a/src/runtime/Config.alpha-linux +++ b/src/runtime/Config.alpha-linux @@ -1,3 +1,5 @@ +# -*- makefile -*- for the C-level run-time support for SBCL + # This software is part of the SBCL system. See the README file for # more information. # @@ -7,16 +9,14 @@ # provided with absolutely no warranty. See the COPYING and CREDITS # files for more information. -CFLAGS += -Dalpha LD = ld -taso -LINKFLAGS = -dynamic -v -g -Wl,-T -Wl,ld-script.alpha-linux -NM = nm -p +LINKFLAGS += -dynamic -v -Wl,-T -Wl,ld-script.alpha-linux -rdynamic +NM = ./linux-nm ASSEM_SRC = alpha-assem.S ldso-stubs.S ARCH_SRC = alpha-arch.c -OS_SRC = linux-os.c alpha-linux-os.c os-common.c -LINKFLAGS+=-rdynamic # -static -OS_LIBS= -ldl +OS_SRC = linux-os.c alpha-linux-os.c +OS_LIBS = -ldl -GC_SRC= cheneygc.c +GC_SRC = cheneygc.c diff --git a/src/runtime/Config.alpha-osf1 b/src/runtime/Config.alpha-osf1 index bacf12d..7ad95d6 100644 --- a/src/runtime/Config.alpha-osf1 +++ b/src/runtime/Config.alpha-osf1 @@ -1,3 +1,5 @@ +# -*- makefile -*- for the C-level run-time support for SBCL + # This software is part of the SBCL system. See the README file for # more information. # @@ -7,9 +9,9 @@ # provided with absolutely no warranty. See the COPYING and CREDITS # files for more information. -CFLAGS += -Dalpha -Dosf1 -O0 -g -D_XOPEN_SOURCE=500 -D_OSF_SOURCE=500 +CFLAGS += -Dosf1 -O0 -g -D_XOPEN_SOURCE=500 -D_OSF_SOURCE=500 CFLAGS += -msg_disable newlocale -ASFLAGS += -Dalpha -Dosf1 #-ULANGUAGE_ASSEMBLY +ASFLAGS += -Dosf1 #-ULANGUAGE_ASSEMBLY LD = ld -xtaso LINKFLAGS = -non_shared # dynamic -v -g -Wl,-T -Wl,ld-script.alpha-linux # Digital^WCompaq^WHP's cc declares `static inline' functions to exist @@ -30,7 +32,10 @@ ARCH_SRC = alpha-arch.c undefineds.c %.s:%.S cp $^ $@ -OS_SRC = osf1-os.c alpha-osf1-os.c os-common.c -OS_LIBS= #-ldl +# ... and let the main makefile clean the .s properly. +OS_CLEAN_FILES += $(ASSEM_SRC) + +OS_SRC = osf1-os.c alpha-osf1-os.c +OS_LIBS = #-ldl -GC_SRC= cheneygc.c +GC_SRC = cheneygc.c diff --git a/src/runtime/Config.hppa-linux b/src/runtime/Config.hppa-linux index 2b2b731..23adcd4 100644 --- a/src/runtime/Config.hppa-linux +++ b/src/runtime/Config.hppa-linux @@ -1,3 +1,5 @@ +# -*- makefile -*- for the C-level run-time support for SBCL + # This software is part of the SBCL system. See the README file for # more information. # @@ -7,16 +9,13 @@ # provided with absolutely no warranty. See the COPYING and CREDITS # files for more information. -CFLAGS += -g -Dhppa -LD = ld -LINKFLAGS = -v -g -NM = nm -p +LINKFLAGS += -v -static +NM = ./linux-nm ASSEM_SRC = hppa-assem.S #hppa-linux-stubs.S ARCH_SRC = hppa-arch.c undefineds.c -OS_SRC = linux-os.c hppa-linux-os.c os-common.c -LINKFLAGS+=-static -OS_LIBS= -ldl +OS_SRC = linux-os.c hppa-linux-os.c +OS_LIBS = -ldl -GC_SRC= cheneygc.c +GC_SRC = cheneygc.c diff --git a/src/runtime/Config.mips-linux b/src/runtime/Config.mips-linux index 3f2abb5..3f1c112 100644 --- a/src/runtime/Config.mips-linux +++ b/src/runtime/Config.mips-linux @@ -1,3 +1,5 @@ +# -*- makefile -*- for the C-level run-time support for SBCL + # This software is part of the SBCL system. See the README file for # more information. # @@ -7,15 +9,13 @@ # provided with absolutely no warranty. See the COPYING and CREDITS # files for more information. -CFLAGS += -Dmips -g -LD = ld -LINKFLAGS = -v -g -O2 +LINKFLAGS += -v -O2 NM = ./linux-nm ASSEM_SRC = mips-assem.S ldso-stubs.S ARCH_SRC = mips-arch.c -OS_SRC = linux-os.c mips-linux-os.c os-common.c -OS_LIBS= -ldl +OS_SRC = linux-os.c mips-linux-os.c +OS_LIBS = -ldl -GC_SRC= cheneygc.c +GC_SRC = cheneygc.c diff --git a/src/runtime/Config.ppc-darwin b/src/runtime/Config.ppc-darwin index 88b8624..2dfdbc9 100644 --- a/src/runtime/Config.ppc-darwin +++ b/src/runtime/Config.ppc-darwin @@ -1,7 +1,17 @@ -# -*- makefile -*- -CFLAGS = -Dppc -g -Wall -O2 -no-cpp-precomp -fdollars-in-identifiers -OS_SRC = bsd-os.c os-common.c ppc-darwin-os.c ppc-darwin-dlshim.c ppc-darwin-langinfo.c -OS_LIBS = -lSystem -lc -lm +# -*- makefile -*- for the C-level run-time support for SBCL + +# This software is part of the SBCL system. See the README file for +# more information. +# +# This software is derived from the CMU CL system, which was +# written at Carnegie Mellon University and released into the +# public domain. The software is in the public domain and is +# provided with absolutely no warranty. See the COPYING and CREDITS +# files for more information. + +CFLAGS = -g -Wall -O2 -fdollars-in-identifiers +OS_SRC = bsd-os.c ppc-darwin-os.c ppc-darwin-dlshim.c ppc-darwin-langinfo.c +OS_LIBS = -lSystem -lc OS_OBJS = ppc-darwin-rospace.o CC = gcc @@ -9,18 +19,18 @@ CC = gcc ASSEM_SRC = ppc-assem.S ldso-stubs.S ARCH_SRC = ppc-arch.c -CPP = cpp -no-cpp-precomp +CPPFLAGS += -no-cpp-precomp # KLUDGE: in OS X 10.3, Apple started putting the heap right where we # expect our read-only space mapped. This hack causes the linker to # place a zero-fill-on-demand segment in the same place and size as # read-only-space, which is the only thing capable of keeping malloc # out of this range. -OS_LINK_FLAGS = -dynamic `cat ppc-darwin-link-flags` -twolevel_namespace -bind_at_load +LINKFLAGS += -dynamic `cat ppc-darwin-link-flags` -twolevel_namespace -bind_at_load -GC_SRC= cheneygc.c +GC_SRC = cheneygc.c -CLEAN_FILES += ppc-darwin-mkrospace ppc-darwin-fix-rospace ppc-darwin-link-flags +OS_CLEAN_FILES += ppc-darwin-mkrospace ppc-darwin-fix-rospace ppc-darwin-link-flags ppc-darwin-mkrospace: ppc-darwin-mkrospace.c $(CC) -g -Wall -pedantic -o $@ $< diff --git a/src/runtime/Config.ppc-linux b/src/runtime/Config.ppc-linux index 312a10a..97fc869 100644 --- a/src/runtime/Config.ppc-linux +++ b/src/runtime/Config.ppc-linux @@ -1,3 +1,5 @@ +# -*- makefile -*- for the C-level run-time support for SBCL + # This software is part of the SBCL system. See the README file for # more information. # @@ -7,16 +9,14 @@ # provided with absolutely no warranty. See the COPYING and CREDITS # files for more information. -CFLAGS = -g -Dppc -LD = ld -LINKFLAGS = -v -g -NM = nm -p +CFLAGS = -g +LINKFLAGS += -v -rdynamic +NM = ./linux-nm ASSEM_SRC = ppc-assem.S ldso-stubs.S ARCH_SRC = ppc-arch.c -OS_SRC = linux-os.c ppc-linux-os.c os-common.c -LINKFLAGS+=-rdynamic -OS_LIBS= -ldl +OS_SRC = linux-os.c ppc-linux-os.c +OS_LIBS = -ldl -GC_SRC= cheneygc.c +GC_SRC = cheneygc.c diff --git a/src/runtime/Config.sparc-linux b/src/runtime/Config.sparc-linux index a62e359..2a2c075 100644 --- a/src/runtime/Config.sparc-linux +++ b/src/runtime/Config.sparc-linux @@ -1,3 +1,5 @@ +# -*- makefile -*- for the C-level run-time support for SBCL + # This software is part of the SBCL system. See the README file for # more information. # @@ -7,19 +9,14 @@ # provided with absolutely no warranty. See the COPYING and CREDITS # files for more information. -CFLAGS = -g -O3 -Wall -Dsparc -ASFLAGS = -g -Wall -Dsparc -LD = ld -LINKFLAGS = -v -g -NM = nm -p +ASFLAGS = -g -Wall +LINKFLAGS += -v -rdynamic +NM = ./linux-nm -ASSEM_SRC = sparc-assem.S -#ARCH_SRC = sparc-arch.c undefineds.c -ARCH_SRC = sparc-arch.c ldso-stubs.S +ASSEM_SRC = sparc-assem.S ldso-stubs.S +ARCH_SRC = sparc-arch.c #undefineds.c -OS_SRC = linux-os.c sparc-linux-os.c os-common.c -#LINKFLAGS+=-static -LINKFLAGS+=-rdynamic -OS_LIBS= -ldl +OS_SRC = linux-os.c sparc-linux-os.c +OS_LIBS = -ldl -GC_SRC= cheneygc.c +GC_SRC = cheneygc.c diff --git a/src/runtime/Config.sparc-sunos b/src/runtime/Config.sparc-sunos index ffe4ec5..62a00df 100644 --- a/src/runtime/Config.sparc-sunos +++ b/src/runtime/Config.sparc-sunos @@ -1,3 +1,5 @@ +# -*- makefile -*- for the C-level run-time support for SBCL + # This software is part of the SBCL system. See the README file for # more information. # @@ -7,21 +9,16 @@ # provided with absolutely no warranty. See the COPYING and CREDITS # files for more information. - -CC=gcc -CFLAGS = -g -O3 -Wall -Dsparc -DSVR4 -ASFLAGS = -g -Wall -Dsparc -DSVR4 -LD = ld -LINKFLAGS = -v -g +CC = gcc +CFLAGS += -DSVR4 +ASFLAGS = -g -Wall -DSVR4 +LINKFLAGS += -v NM = nm -t x -p -ASSEM_SRC = sparc-assem.S -#ARCH_SRC = sparc-arch.c undefineds.c -ARCH_SRC = sparc-arch.c ldso-stubs.S +ASSEM_SRC = sparc-assem.S ldso-stubs.S +ARCH_SRC = sparc-arch.c #undefineds.c -OS_SRC = sunos-os.c sparc-sunos-os.c os-common.c -#LINKFLAGS+=-static -LINKFLAGS+= -OS_LIBS= -ldl -lsocket -lnsl -lrt +OS_SRC = sunos-os.c sparc-sunos-os.c +OS_LIBS = -ldl -lsocket -lnsl -lrt -GC_SRC= cheneygc.c +GC_SRC = cheneygc.c diff --git a/src/runtime/Config.x86-bsd b/src/runtime/Config.x86-bsd index f066acd..a8f20c0 100644 --- a/src/runtime/Config.x86-bsd +++ b/src/runtime/Config.x86-bsd @@ -1,3 +1,4 @@ +# -*- makefile -*- for the C-level run-time support for SBCL # configuration stuff shared between various *BSD OSes # This software is part of the SBCL system. See the README file for @@ -12,7 +13,7 @@ ASSEM_SRC = x86-assem.S ARCH_SRC = x86-arch.c -OS_SRC = bsd-os.c os-common.c undefineds.c x86-bsd-os.c -OS_LIBS = -lm # -ldl +OS_SRC = bsd-os.c undefineds.c x86-bsd-os.c +OS_LIBS = # -ldl GC_SRC = gencgc.c diff --git a/src/runtime/Config.x86-freebsd b/src/runtime/Config.x86-freebsd index 7a41879..65d2be5 100644 --- a/src/runtime/Config.x86-freebsd +++ b/src/runtime/Config.x86-freebsd @@ -1,10 +1,20 @@ -# -*- makefile -*- +# -*- makefile -*- for the C-level run-time support for SBCL + +# This software is part of the SBCL system. See the README file for +# more information. +# +# This software is derived from the CMU CL system, which was +# written at Carnegie Mellon University and released into the +# public domain. The software is in the public domain and is +# provided with absolutely no warranty. See the COPYING and CREDITS +# files for more information. + include Config.x86-bsd ASSEM_SRC += ldso-stubs.S -# Until sbcl-0.6.7.3, we used "OS_LINK_FLAGS=-static" here, which +# Until sbcl-0.6.7.3, we used "LINKFLAGS+=-static" here, which # worked fine for most things, but LOAD-FOREIGN & friends require # dlopen() etc., which in turn depend on dynamic linking of the # runtime. -OS_LINK_FLAGS = -dynamic -export-dynamic +LINKFLAGS += -dynamic -export-dynamic diff --git a/src/runtime/Config.x86-linux b/src/runtime/Config.x86-linux index b83f2b0..e4a1f74 100644 --- a/src/runtime/Config.x86-linux +++ b/src/runtime/Config.x86-linux @@ -1,3 +1,5 @@ +# -*- makefile -*- for the C-level run-time support for SBCL + # This software is part of the SBCL system. See the README file for # more information. # @@ -7,10 +9,12 @@ # provided with absolutely no warranty. See the COPYING and CREDITS # files for more information. +NM = ./linux-nm + ASSEM_SRC = x86-assem.S ldso-stubs.S ARCH_SRC = x86-arch.c +OS_SRC = linux-os.c x86-linux-os.c -OS_SRC = linux-os.c x86-linux-os.c os-common.c # The "--Wl,--export-dynamic" flags are here to help people # experimenting with callbacks from C to SBCL, by allowing linkage to # SBCL src/runtime/*.c symbols from C. Work on this is good, but it's @@ -23,7 +27,7 @@ OS_SRC = linux-os.c x86-linux-os.c os-common.c # (You *are* encouraged to design and implement a coherent stable # interface, though.:-| As far as I (WHN 2002-05-19) know, no one is # working on one and it would be a nice thing to have.) -OS_LINK_FLAGS = -Wl,--export-dynamic +LINKFLAGS += -Wl,--export-dynamic OS_LIBS = -ldl GC_SRC = gencgc.c diff --git a/src/runtime/Config.x86-netbsd b/src/runtime/Config.x86-netbsd index d761d4c..b478d3d 100644 --- a/src/runtime/Config.x86-netbsd +++ b/src/runtime/Config.x86-netbsd @@ -1,7 +1,17 @@ -# -*- makefile -*- +# -*- makefile -*- for the C-level run-time support for SBCL + +# This software is part of the SBCL system. See the README file for +# more information. +# +# This software is derived from the CMU CL system, which was +# written at Carnegie Mellon University and released into the +# public domain. The software is in the public domain and is +# provided with absolutely no warranty. See the COPYING and CREDITS +# files for more information. + include Config.x86-bsd ASSEM_SRC += ldso-stubs.S -OS_LINK_FLAGS = -dynamic -export-dynamic +LINKFLAGS += -dynamic -export-dynamic CFLAGS = -g -Wall -O2 diff --git a/src/runtime/Config.x86-openbsd b/src/runtime/Config.x86-openbsd index 98384cd..1cf879d 100644 --- a/src/runtime/Config.x86-openbsd +++ b/src/runtime/Config.x86-openbsd @@ -1,3 +1,14 @@ +# -*- makefile -*- for the C-level run-time support for SBCL + +# This software is part of the SBCL system. See the README file for +# more information. +# +# This software is derived from the CMU CL system, which was +# written at Carnegie Mellon University and released into the +# public domain. The software is in the public domain and is +# provided with absolutely no warranty. See the COPYING and CREDITS +# files for more information. + include Config.x86-bsd # KLUDGE: It might seem as though dynamic libraries should work the @@ -7,4 +18,4 @@ include Config.x86-bsd # have never found documentation for the "-export-dynamic" option), # so I've just punted and left link flags for OpenBSD in their # pre-dynamic-library-support state. -- WHN 2000-10-02 -OS_LINK_FLAGS = -static +LINKFLAGS += -static diff --git a/src/runtime/Config.x86_64-linux b/src/runtime/Config.x86_64-linux index f78a14d..d3d49f1 100644 --- a/src/runtime/Config.x86_64-linux +++ b/src/runtime/Config.x86_64-linux @@ -1,3 +1,5 @@ +# -*- makefile -*- for the C-level run-time support for SBCL + # This software is part of the SBCL system. See the README file for # more information. # @@ -7,10 +9,12 @@ # provided with absolutely no warranty. See the COPYING and CREDITS # files for more information. +NM = ./linux-nm + ASSEM_SRC = x86-64-assem.S ldso-stubs.S ARCH_SRC = x86-64-arch.c +OS_SRC = linux-os.c x86-64-linux-os.c -OS_SRC = linux-os.c x86-64-linux-os.c os-common.c # The "--Wl,--export-dynamic" flags are here to help people # experimenting with callbacks from C to SBCL, by allowing linkage to # SBCL src/runtime/*.c symbols from C. Work on this is good, but it's @@ -23,9 +27,9 @@ OS_SRC = linux-os.c x86-64-linux-os.c os-common.c # (You *are* encouraged to design and implement a coherent stable # interface, though.:-| As far as I (WHN 2002-05-19) know, no one is # working on one and it would be a nice thing to have.) -OS_LINK_FLAGS = -Wl,--export-dynamic +LINKFLAGS += -Wl,--export-dynamic OS_LIBS = -ldl -CFLAGS = -g -Wall -O3 -fno-omit-frame-pointer -GC_SRC = gencgc.c +CFLAGS += -fno-omit-frame-pointer +GC_SRC = gencgc.c diff --git a/src/runtime/GNUmakefile b/src/runtime/GNUmakefile index bc0ef3a..64acd3c 100644 --- a/src/runtime/GNUmakefile +++ b/src/runtime/GNUmakefile @@ -1,4 +1,4 @@ -# makefile for the C-level run-time support for SBCL +# -*- makefile -*- for the C-level run-time support for SBCL # This software is part of the SBCL system. See the README file for # more information. @@ -9,64 +9,80 @@ # provided with absolutely no warranty. See the COPYING and CREDITS # files for more information. -all: sbcl sbcl.nm -.PHONY: all +.PHONY: all clean TAGS tags -# defaults which might be overridden or modified by values in the -# Config file -CFLAGS = -g -Wall -O3 -ASFLAGS = $(CFLAGS) -CPPFLAGS = -I. +all: sbcl sbcl.nm -# Some of these things might be Config-dependent in future versions, -# but they're the same on most systems right now. If you need to -# override one of these, do it in Config -CPP = cpp +# Defaults which might be overridden or modified by values in the +# Config file. Most of them are same on most systems right now. +# If you need to override one of these, do it in Config. LD = ld LINKFLAGS = -g NM = nm -gp -DEPEND_FLAGS=-M +DEPEND_FLAGS = -MM + +CFLAGS = -g -Wall -O3 +ASFLAGS = $(CFLAGS) +CPPFLAGS = -I. # The Config file is the preferred place for tweaking options which -# are appropriate for particular setups (OS, CPU, whatever). Make a +# are appropriate for particular setups (OS, ARCH, whatever). Make a # Config-foo file for setup foo, then arrange for Config to be a # symlink to Config-foo. +# Commonly used variables in Config are: ARCH_SRC, ASSEM_SRC, GC_SRC, +# OS_SRC, OS_LIBS, OS_OBJS, OS_CLEAN_FILES include Config -C_SRCS = alloc.c backtrace.c breakpoint.c coreparse.c \ +COMMON_SRC = alloc.c backtrace.c breakpoint.c coreparse.c \ dynbind.c gc-common.c globals.c interr.c interrupt.c \ - monitor.c parse.c print.c purify.c \ + monitor.c os-common.c parse.c print.c purify.c \ regnames.c run-program.c runtime.c save.c search.c \ - thread.c time.c util.c validate.c vars.c wrap.c + thread.c time.c util.c validate.c vars.c wrap.c -SRCS = $(C_SRCS) ${ARCH_SRC} ${ASSEM_SRC} ${OS_SRC} ${GC_SRC} +C_SRC = $(COMMON_SRC) ${ARCH_SRC} ${OS_SRC} ${GC_SRC} -OBJS = $(patsubst %.c,%.o,$(patsubst %.S,%.o,$(patsubst %.s,%.o,$(SRCS)))) ${OS_OBJS} - -sbcl.nm: sbcl - $(NM) sbcl | grep -v " F \| U " > ,$@ - mv -f ,$@ $@ +SRCS = $(C_SRC) ${ASSEM_SRC} -sbcl: ${OBJS} - $(CC) ${LINKFLAGS} ${OS_LINK_FLAGS} -o $@ ${OBJS} ${OS_OBJS} ${OS_LIBS} -lm +OBJS = $(C_SRC:.c=.o) $(ASSEM_SRC:.S=.o) ${OS_OBJS} +LIBS = ${OS_LIBS} -lm -.PHONY: clean -clean: - -rm -f depend *.o sbcl sbcl.nm core *.tmp $(CLEAN_FILES) +sbcl: $(OBJS) $(LIBS) + $(CC) ${LINKFLAGS} -o $@ $^ -TAGS: $(SRCS) - etags $(SRCS) +sbcl.nm: sbcl + $(NM) sbcl | grep -v " F \| U " > ,$@ + mv -f ,$@ $@ -sbcl.h: genesis/*.h +sbcl.h: $(wildcard genesis/*.h) echo '#include "genesis/config.h"' >sbcl.h echo '#include "genesis/constants.h"' >>sbcl.h -depend: ${C_SRCS} sbcl.h - $(CC) ${DEPEND_FLAGS} ${CFLAGS} ${CPPFLAGS} ${C_SRCS} > depend.tmp - mv -f depend.tmp depend +TAGS tags: $(SRCS) + etags $(SRCS) -# By including this file, we cause GNU make to automatically "make depend" -# if it can't find it or it is out of date. -include depend +clean: + -rm -f *.[do] sbcl sbcl.nm sbcl.h core *.tmp $(OS_CLEAN_FILES) + # the depend file is obsolete + -rm -f depend + +# depend target for backward compatibility +.PHONY: depend +depend: + +%.d: %.c sbcl.h + @$(CC) $(DEPEND_FLAGS) $(CPPFLAGS) $< > $@.tmp; \ + sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.tmp > $@; \ + rm -f $@.tmp + +%.d: %.S sbcl.h + @$(CC) $(DEPEND_FLAGS) $(CPPFLAGS) $< > $@.tmp; \ + sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.tmp > $@; \ + rm -f $@.tmp + +# By including those files, we cause GNU make to automatically re-make +# all dependencies of the .c file if necessary. +ifneq ($(MAKECMDGOALS),clean) +-include $(C_SRC:.c=.d) $(ASSEM_SRC:.S=.d) +endif diff --git a/src/runtime/backtrace.c b/src/runtime/backtrace.c index 429807f..f03e84f 100644 --- a/src/runtime/backtrace.c +++ b/src/runtime/backtrace.c @@ -34,7 +34,7 @@ * better not change. */ struct call_frame { -#ifndef alpha +#ifndef LISP_FEATURE_ALPHA struct call_frame *old_cont; #else u32 old_cont; @@ -45,13 +45,13 @@ struct call_frame { }; struct call_info { -#ifndef alpha +#ifndef LISP_FEATURE_ALPHA struct call_frame *frame; #else u32 frame; #endif int interrupted; -#ifndef alpha +#ifndef LISP_FEATURE_ALPHA struct code *code; #else u32 code; @@ -139,7 +139,7 @@ call_info_from_context(struct call_info *info, os_context_t *context) } if (info->code != NULL) info->pc = pc - (unsigned long) info->code - -#ifndef alpha +#ifndef LISP_FEATURE_ALPHA (HEADER_LENGTH(info->code->header) * sizeof(lispobj)); #else (HEADER_LENGTH(((struct code *)info->code)->header) * sizeof(lispobj)); @@ -187,7 +187,7 @@ previous_info(struct call_info *info) if (info->code != NULL) info->pc = (unsigned long)native_pointer(info->lra) - (unsigned long)info->code - -#ifndef alpha +#ifndef LISP_FEATURE_ALPHA (HEADER_LENGTH(info->code->header) * sizeof(lispobj)); #else (HEADER_LENGTH(((struct code *)info->code)->header) * sizeof(lispobj)); @@ -215,7 +215,7 @@ backtrace(int nframes) printf("CODE: 0x%08lX, ", (unsigned long) info.code | OTHER_POINTER_LOWTAG); -#ifndef alpha +#ifndef LISP_FEATURE_ALPHA function = info.code->entry_points; #else function = ((struct code *)info.code)->entry_points; diff --git a/src/runtime/breakpoint.c b/src/runtime/breakpoint.c index 70e5117..ebe6ac6 100644 --- a/src/runtime/breakpoint.c +++ b/src/runtime/breakpoint.c @@ -65,7 +65,7 @@ void breakpoint_do_displaced_inst(os_context_t* context, * * -dan 2001.08.09 */ -#if (defined(sparc) && defined (solaris)) +#if (defined(LISP_FEATURE_SPARC) && defined (solaris)) undo_fake_foreign_function_call(context); #endif arch_do_displaced_inst(context, orig_inst); diff --git a/src/runtime/core.h b/src/runtime/core.h index efda49b..e7484c3 100644 --- a/src/runtime/core.h +++ b/src/runtime/core.h @@ -16,7 +16,7 @@ #include "runtime.h" struct ndir_entry { -#ifndef alpha +#ifndef LISP_FEATURE_ALPHA long identifier; long nwords; long data_page; diff --git a/src/runtime/coreparse.c b/src/runtime/coreparse.c index a84bc6c..887b889 100644 --- a/src/runtime/coreparse.c +++ b/src/runtime/coreparse.c @@ -209,7 +209,7 @@ load_core_file(char *file) SHOW("NEW_DIRECTORY_CORE_ENTRY_TYPE_CODE case"); process_directory(fd, ptr, -#ifndef alpha +#ifndef LISP_FEATURE_ALPHA remaining_len / (sizeof(struct ndir_entry) / sizeof(long)) #else diff --git a/src/runtime/os.h b/src/runtime/os.h index 584af23..54c950c 100644 --- a/src/runtime/os.h +++ b/src/runtime/os.h @@ -112,7 +112,7 @@ os_context_register_addr(os_context_t *context, int offset); * turns out that the alpha truly requires this, it can change to * ARCH_HAS_FLOAT_REGISTERS (currently #defined in alpha-arch.h -- CSR * 2002-02-04 */ -#ifdef alpha +#ifdef LISP_FEATURE_ALPHA os_context_register_t * os_context_float_register_addr(os_context_t *context, int offset); #endif diff --git a/src/runtime/print.c b/src/runtime/print.c index 46f2b2f..0ea62f0 100644 --- a/src/runtime/print.c +++ b/src/runtime/print.c @@ -195,7 +195,7 @@ static void newline(char *label) static void brief_fixnum(lispobj obj) { -#ifndef alpha +#ifndef LISP_FEATURE_ALPHA printf("%ld", ((long)obj)>>2); #else printf("%d", ((s32)obj)>>2); @@ -204,7 +204,7 @@ static void brief_fixnum(lispobj obj) static void print_fixnum(lispobj obj) { -#ifndef alpha +#ifndef LISP_FEATURE_ALPHA printf(": %ld", ((long)obj)>>2); #else printf(": %d", ((s32)obj)>>2); @@ -439,7 +439,7 @@ static void print_otherptr(lispobj obj) if (!is_valid_lisp_addr((os_vm_address_t)obj)) { printf("(invalid address)"); } else { -#ifndef alpha +#ifndef LISP_FEATURE_ALPHA lispobj *ptr; unsigned long header; unsigned long length; @@ -638,7 +638,7 @@ static void print_otherptr(lispobj obj) case SAP_WIDETAG: NEWLINE_OR_RETURN; -#ifndef alpha +#ifndef LISP_FEATURE_ALPHA printf("0x%08lx", (unsigned long) *ptr); #else printf("0x%016lx", *(lispobj*)(ptr+1)); diff --git a/src/runtime/purify.c b/src/runtime/purify.c index 1c92c0a..8a95542 100644 --- a/src/runtime/purify.c +++ b/src/runtime/purify.c @@ -90,7 +90,7 @@ static long later_count = 0; /* FIXME: Shouldn't this be defined in sbcl.h? See also notes in * cheneygc.c */ -#ifdef sparc +#ifdef LISP_FEATURE_SPARC #define FUN_RAW_ADDR_OFFSET 0 #else #define FUN_RAW_ADDR_OFFSET (6*sizeof(lispobj) - FUN_POINTER_LOWTAG) @@ -1054,7 +1054,7 @@ ptrans_otherptr(lispobj thing, lispobj header, boolean constant) #ifdef LISP_FEATURE_X86 return ptrans_vector(thing, 96, 0, 0, constant); #endif -#ifdef sparc +#ifdef LISP_FEATURE_SPARC return ptrans_vector(thing, 128, 0, 0, constant); #endif #endif @@ -1074,7 +1074,7 @@ ptrans_otherptr(lispobj thing, lispobj header, boolean constant) #ifdef LISP_FEATURE_X86 return ptrans_vector(thing, 192, 0, 0, constant); #endif -#ifdef sparc +#ifdef LISP_FEATURE_SPARC return ptrans_vector(thing, 256, 0, 0, constant); #endif #endif @@ -1323,7 +1323,7 @@ pscav(lispobj *addr, long nwords, boolean constant) #ifdef LISP_FEATURE_X86 count = fixnum_value(vector->length)*3+2; #endif -#ifdef sparc +#ifdef LISP_FEATURE_SPARC count = fixnum_value(vector->length)*4+2; #endif break; @@ -1343,7 +1343,7 @@ pscav(lispobj *addr, long nwords, boolean constant) #ifdef LISP_FEATURE_X86 count = fixnum_value(vector->length)*6+2; #endif -#ifdef sparc +#ifdef LISP_FEATURE_SPARC count = fixnum_value(vector->length)*8+2; #endif break; diff --git a/version.lisp-expr b/version.lisp-expr index ca36793..42af7d1 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.9.1.9" +"0.9.1.10" -- 1.7.10.4