diff --git a/gfan-shared.patch b/gfan-shared.patch new file mode 100644 index 0000000..e5ff486 --- /dev/null +++ b/gfan-shared.patch @@ -0,0 +1,114 @@ +--- Makefile.orig 2017-09-28 07:44:12.000000000 -0600 ++++ Makefile 2018-04-12 21:33:16.347207853 -0600 +@@ -125,7 +125,7 @@ OPTFLAGS = -DGMPRATIONAL -Wuninitial + #OPTFLAGS = -DGMPRATIONAL -Wuninitialized -fno-omit-frame-pointer -O3 -msse2 -ftree-vectorizer-verbose=2 -ffast-math #-DNDEBUG + #OPTFLAGS = -DGMPRATIONAL -Wuninitialized -fno-omit-frame-pointer -O3 -mavx -msse2 -ftree-vectorizer-verbose=2 -ffast-math #-DNDEBUG + +-CFLAGS = $(OPTFLAGS) $(GPROFFLAG) $(STACTDUMP_OPTIONS) $(ADDITIONALINCLUDEOPTIONS) -std=c++0x -g $(CDDDEFINE_PREFIX) #-pedantic ++CFLAGS = $(OPTFLAGS) $(GPROFFLAG) $(STACTDUMP_OPTIONS) $(ADDITIONALINCLUDEOPTIONS) -std=c++11 -g $(CDDDEFINE_PREFIX) #-pedantic + #CFLAGS = $(OPTFLAGS) $(GPROFFLAG) $(STACTDUMP_OPTIONS) $(ADDITIONALINCLUDEOPTIONS) -D_GLIBCXX_DEBUG -std=c++0x -g $(CDDDEFINE_PREFIX) #-pedantic + CCFLAGS = $(CFLAGS) + FFLAGS = $(OPTFLAGS) +@@ -211,15 +211,6 @@ CATSOBJECTS = lp_cdd.o \ + tropicaldeterminant.o \ + determinantpoly.o \ + traverser_sphere.o \ +- gfanlib_zcone.o \ +- gfanlib_symmetry.o \ +- gfanlib_symmetriccomplex.o \ +- gfanlib_polyhedralfan.o \ +- gfanlib_zfan.o \ +- gfanlib_polymakefile.o \ +- gfanlib_mixedvolume.o \ +- gfanlib_circuittableint.o \ +- gfanlib_paralleltraverser.o \ + padic.o \ + integergb.o \ + traverser_resultantfan.o \ +@@ -227,7 +218,6 @@ CATSOBJECTS = lp_cdd.o \ + traverser_resultantfanspecialization.o \ + myassert.o \ + traverser_bsptree.o \ +- gfanlib_traversal.o \ + tropicalcurve.o \ + packedmonomial.o \ + gmpallocator.o \ +@@ -387,14 +377,24 @@ GFANLIBFILES= gfanlib.h \ + gfanlib_tropicalhomotopy.h \ + # gfanlib_tableau.h \ we do not yet support this one + ++GFANLIBOBJECTS = gfanlib_polyhedralfan.o \ ++ gfanlib_zcone.o \ ++ gfanlib_symmetriccomplex.o \ ++ gfanlib_polymakefile.o \ ++ gfanlib_zfan.o \ ++ gfanlib_symmetry.o \ ++ gfanlib_circuittableint.o \ ++ gfanlib_mixedvolume.o \ ++ gfanlib_paralleltraverser.o \ ++ gfanlib_traversal.o + + EXECS = $(MAIN) + + # When compiling symmetrictraversal.cpp as any other file, it causes the program to crash in certain situations. + # (compiling with gcc version 4.7.2 and running gfan _tropicaltraverse on a starting cone for Grassmann3_7) + # Either this is a bug in the code or in the compiler. The bug disappears by compiling with -fno-guess-branch-probability +-src/symmetrictraversal.o: src/symmetrictraversal.cpp +- $(CXX) $(CFLAGS) -fno-guess-branch-probability -c src/symmetrictraversal.cpp -o src/symmetrictraversal.o ++#src/symmetrictraversal.o: src/symmetrictraversal.cpp ++# $(CXX) $(CFLAGS) -fno-guess-branch-probability -c src/symmetrictraversal.cpp -o src/symmetrictraversal.o + # If compiling with clang, use the line below instead: + # $(CXX) $(CFLAGS) -c src/symmetrictraversal.cpp -o src/symmetrictraversal.o + +@@ -406,6 +406,7 @@ OBJECTS = $(addprefix src/,$(SOPLEX_OBJ + $(SAGE_OBJECTS) \ + $(addprefix src/,$(CATSOBJECTS)) \ + $(addprefix src/,$(APPOBJECTS)) \ ++ src/libgfan.so \ + src/symmetrictraversal.o + + all: $(MAIN) +@@ -420,7 +421,42 @@ default: $(OBJECTS) $(ADDITIONALOBJECTS) + + $(MAIN): $(OBJECTS) + # $(CCLINKER) $(OBJECTS) $(ADDITIONALLINKOPTIONS) $(GPROFFLAG) -lpthread -o $(MAIN) +- $(CCLINKER) $(OBJECTS) $(ADDITIONALLINKOPTIONS) $(GPROFFLAG) -lpthread -rdynamic -o $(MAIN) ++ $(CCLINKER) $(OBJECTS) $(ADDITIONALLINKOPTIONS) $(GPROFFLAG) -L src -lgfan -lpthread -o $(MAIN) ++ ++src/libgfan.so: $(addprefix src/,$(GFANLIBOBJECTS)) ++ $(CCLINKER) $(CCFLAGS) $(ADDITIONALLINKOPTIONS) -shared -Wl,-h,libgfan.so.0 -o src/libgfan.so.0.0.0 $^ -lgmp -lpthread ++ ln -s libgfan.so.0.0.0 src/libgfan.so.0 ++ ln -s libgfan.so.0 src/libgfan.so ++ ++src/gfanlib_polyhedralfan.o: src/gfanlib_polyhedralfan.cpp ++ $(CXX) $(CCFLAGS) -fPIC -c $< -o $@ ++ ++src/gfanlib_zcone.o: src/gfanlib_zcone.cpp ++ $(CXX) $(CCFLAGS) -fPIC -c $< -o $@ ++ ++src/gfanlib_symmetriccomplex.o: src/gfanlib_symmetriccomplex.cpp ++ $(CXX) $(CCFLAGS) -fPIC -c $< -o $@ ++ ++src/gfanlib_polymakefile.o: src/gfanlib_polymakefile.cpp ++ $(CXX) $(CCFLAGS) -fPIC -c $< -o $@ ++ ++src/gfanlib_zfan.o: src/gfanlib_zfan.cpp ++ $(CXX) $(CCFLAGS) -fPIC -c $< -o $@ ++ ++src/gfanlib_symmetry.o: src/gfanlib_symmetry.cpp ++ $(CXX) $(CCFLAGS) -fPIC -c $< -o $@ ++ ++src/gfanlib_circuittableint.o: src/gfanlib_circuittableint.cpp ++ $(CXX) $(CCFLAGS) -fPIC -c $< -o $@ ++ ++src/gfanlib_mixedvolume.o: src/gfanlib_mixedvolume.cpp ++ $(CXX) $(CCFLAGS) -fPIC -c $< -o $@ ++ ++src/gfanlib_paralleltraverser.o: src/gfanlib_paralleltraverser.cpp ++ $(CXX) $(CCFLAGS) -fPIC -c $< -o $@ ++ ++src/gfanlib_traversal.o: src/gfanlib_traversal.cpp ++ $(CXX) $(CCFLAGS) -fPIC -c $< -o $@ + + release: + rm -f -r $(RELEASEDIR)/* diff --git a/gfan-warning.patch b/gfan-warning.patch index 00230da..406a1e8 100644 --- a/gfan-warning.patch +++ b/gfan-warning.patch @@ -176,16 +176,26 @@ --- src/gfanlib_tropicalhomotopy.h.orig 2017-06-20 08:47:37.000000000 -0600 -+++ src/gfanlib_tropicalhomotopy.h 2017-08-19 20:27:59.920417245 -0600 -@@ -454,7 +454,7 @@ template,' $fil + touch -r $fil.orig $fil + rm $fil.orig +done + +# Install the binaries +export LD_LIBRARY_PATH=%{buildroot}%{_libdir} make install PREFIX=%{buildroot}%{_prefix} pushd %{buildroot}%{_bindir} ./%{name} installlinks popd + %check +# Some tests depend on US English collation order +export LC_ALL=en_US.UTF-8 + # The xfig test output varies slightly by architecture, and is non-critical, # so we skip that test. rm -fr testsuite/0009RenderStairCase +export LD_LIBRARY_PATH=%{buildroot}%{_libdir} ./gfan _test +%ldconfig_scriptlets -n libgfan + + %files %doc README doc/manual.pdf %license COPYING LICENSE @@ -105,7 +151,19 @@ rm -fr testsuite/0009RenderStairCase %doc examples %doc homepage +%files -n libgfan +%doc gfanlib/README.txt +%{_libdir}/*.so.* + +%files -n libgfan-devel +%{_includedir}/gfanlib/ +%{_libdir}/*.so + + %changelog +* Sat Jun 2 2018 Jerry James - 0.6.2-3 +- Build and link with libgfan.so + * Wed Feb 07 2018 Fedora Release Engineering - 0.6.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild