summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjacksonmj <mj-pt@jacksonmj.co.uk>2012-01-07 12:34:27 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-01-14 22:26:26 (GMT)
commitdcac550ef406a24493ac3c6a24804997e2f1bef2 (patch)
tree080418942a06d844be69f523c35c886e634acaec
parent7f850ad0497f7e9880578522d0b0a1a7ecdefa15 (diff)
downloadpowder-dcac550ef406a24493ac3c6a24804997e2f1bef2.zip
powder-dcac550ef406a24493ac3c6a24804997e2f1bef2.tar.gz
Compiler flag for gravity.c, to fix FFTW crash due to misaligned stack on Windows
-rw-r--r--Makefile9
1 files changed, 9 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index ec50a3d..b2d4570 100644
--- a/Makefile
+++ b/Makefile
@@ -121,6 +121,11 @@ build/powder-sse3.exe: $(patsubst build/obj/%.o,build/obj/%.powder-sse3.exe.o,$(
chmod 0644 $@
build/obj/%.powder-sse3.exe.o: src/%.c $(HEADERS)
$(CC) -c $(CFLAGS) -o $@ $<
+# Extra compiler flag to fix stack alignment
+# When Windows creates the gravity calculation thread, it has 4 byte stack alignment
+# But we need 16 byte alignment so that SSE instructions in FFTW work without crashing
+build/obj/gravity.powder-sse3.exe.o: src/gravity.c $(HEADERS)
+ $(CC) -c $(CFLAGS) -mincoming-stack-boundary=2 -o $@ $<
build/powder-sse2.exe: $(patsubst build/obj/%.o,build/obj/%.powder-sse2.exe.o,$(OBJS))
$(CC) $(CFLAGS) $(LDFLAGS) $(EXTRA_OBJS) $(patsubst build/obj/%.o,build/obj/%.powder-sse2.exe.o,$(OBJS)) $(LIBS) -o $@
@@ -128,6 +133,8 @@ build/powder-sse2.exe: $(patsubst build/obj/%.o,build/obj/%.powder-sse2.exe.o,$(
chmod 0644 $@
build/obj/%.powder-sse2.exe.o: src/%.c $(HEADERS)
$(CC) -c $(CFLAGS) -o $@ $<
+build/obj/gravity.powder-sse2.exe.o: src/gravity.c $(HEADERS)
+ $(CC) -c $(CFLAGS) -mincoming-stack-boundary=2 -o $@ $<
build/powder-sse.exe: $(patsubst build/obj/%.o,build/obj/%.powder-sse.exe.o,$(OBJS))
$(CC) $(CFLAGS) $(LDFLAGS) $(EXTRA_OBJS) $(patsubst build/obj/%.o,build/obj/%.powder-sse.exe.o,$(OBJS)) $(LIBS) -o $@
@@ -135,6 +142,8 @@ build/powder-sse.exe: $(patsubst build/obj/%.o,build/obj/%.powder-sse.exe.o,$(OB
chmod 0644 $@
build/obj/%.powder-sse.exe.o: src/%.c $(HEADERS)
$(CC) -c $(CFLAGS) -o $@ $<
+build/obj/gravity.powder-sse.exe.o: src/gravity.c $(HEADERS)
+ $(CC) -c $(CFLAGS) -mincoming-stack-boundary=2 -o $@ $<