0.8.21.32: improvement for the space reservation mechanism on OS X
[sbcl.git] / src / runtime / Config.ppc-darwin
index 01ec5f6..4f47632 100644 (file)
@@ -2,6 +2,7 @@
 CFLAGS = -Dppc -g -Wall -O2 -no-cpp-precomp
 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
+OS_OBJS = ppc-darwin-rospace.o
 
 CC = gcc
 
@@ -14,32 +15,30 @@ CPP = cpp -no-cpp-precomp
 # 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."
-#
-# FIXME: "-Wl,-segaddr,SBCLRO,0x1000000" is output from
-# ppc-darwin-mkrospace (it depends on READ_ONLY_SPACE I believe) but it
-# is hard-coded here!
-OS_LINK_FLAGS = -dynamic -Wl,-segaddr,SBCLRO,0x1000000 -Wl,-seg1addr,0x5000000 $(if $(AFTER_GROVEL_HEADERS),ppc-darwin-rospace.o)
+# out of this range.
+OS_LINK_FLAGS = -dynamic `cat ppc-darwin-link-flags`
 
 GC_SRC= cheneygc.c
 
-CLEAN_FILES += ppc-darwin-mkrospace
+CLEAN_FILES += ppc-darwin-mkrospace ppc-darwin-fix-rospace ppc-darwin-link-flags
 
 ppc-darwin-mkrospace: ppc-darwin-mkrospace.c
-       $(CC) -o $@ $<
+       $(CC) -g -Wall -pedantic -o $@ $<
 
-ppc-darwin-rospace.o: ppc-darwin-mkrospace
-       ./ppc-darwin-mkrospace
+ppc-darwin-fix-rospace: ppc-darwin-fix-rospace.c
+       $(CC) -g -Wall -pedantic -o $@ $<
+
+ppc-darwin-rospace.o ppc-darwin-link-flags: ppc-darwin-mkrospace
+       ./ppc-darwin-mkrospace > ppc-darwin-link-flags
 
 .PHONY: after-grovel-headers
 
-# Rebuild the sbcl runtime to avoid Panther placing the heap where
+# Fix the sbcl runtime to avoid Panther placing the heap where
 # it wants read only space (in the first 32 megabytes, where it
 # can be absolute-branched to with BA.)  Must be done after 
 # grovel-headers, because Apple's nm is broken.
-after-grovel-headers: ppc-darwin-rospace.o
-       rm -f sbcl
-       $(GNUMAKE) sbcl AFTER_GROVEL_HEADERS=1
+after-grovel-headers: ppc-darwin-fix-rospace
+       ./ppc-darwin-fix-rospace
 
 # Fortunatly make-target-1.sh does a make clean all the time.
 # Otherwise we would have to make sure that sbcl gets rebuilt without