diff --git a/Makefile.linux b/Makefile.linux index 1bbaf12ca..13ef0fb05 100644 --- a/Makefile.linux +++ b/Makefile.linux @@ -83,6 +83,10 @@ $(OBJDIR)/%.o: %.nas $(OBJDIR)/nodebuild_classify_sse2.o: nodebuild_classify_sse2.cpp $(CCDV) $(CXX) $(CXXFLAGS) -msse2 -mfpmath=sse -c -o $@ $< +# This file needs special handling because GCC misoptimizes it otherwise. +$(OBJDIR)/fmopl.o: src/oplsynth/fmopl.cpp + $(CCDV) $(CXX) $(CXXFLAGS) -fno-tree-dominator-opts -fno-tree-fre -c -o $@ $< + $(OBJDIR): mkdir $(OBJDIR) diff --git a/Makefile.mingw b/Makefile.mingw index 6d8640892..dd20aea9c 100644 --- a/Makefile.mingw +++ b/Makefile.mingw @@ -83,6 +83,10 @@ all: $(TARGET) $(OBJDIR)/nodebuild_classify_sse2.o: src/nodebuild_classify_sse2.cpp $(CCDV) $(CXX) $(CXXFLAGS) -msse2 -mfpmath=sse -c -o $@ $< +# This file needs special handling because GCC misoptimizes it otherwise. +$(OBJDIR)/fmopl.o: src/oplsynth/fmopl.cpp + $(CCDV) $(CXX) $(CXXFLAGS) -fno-tree-dominator-opts -fno-tree-fre -c -o $@ $< + src/sc_man_scanner.h: src/sc_man_scanner.re $(CCDV) $(RE2C) -s -o $@ $< diff --git a/docs/rh-log.txt b/docs/rh-log.txt index fc5e9376c..f10a6faea 100644 --- a/docs/rh-log.txt +++ b/docs/rh-log.txt @@ -1,4 +1,6 @@ February 5, 2008 +- Updated the GCC-targeted makefiles to turn off two optimizations that cause + fmopl.cpp to compile incorrectly: tree-dominator-opts and tree-fre - Fixed: Morphed pig and chicken players made normal human *usefail sounds. - G_DoSaveGame() now receives the filename and description from its arguments rather than global variables, so autosaves and manual saves can be done