1 |
blueness 13/12/01 15:18:35 |
2 |
|
3 |
Added: primecoin-sys_leveldb.patch |
4 |
Log: |
5 |
Initial commit |
6 |
|
7 |
(Portage version: 2.2.7/cvs/Linux x86_64, signed Manifest commit with key 0xF52D4BBA) |
8 |
|
9 |
Revision Changes Path |
10 |
1.1 net-p2p/primecoin-qt/files/primecoin-sys_leveldb.patch |
11 |
|
12 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-p2p/primecoin-qt/files/primecoin-sys_leveldb.patch?rev=1.1&view=markup |
13 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-p2p/primecoin-qt/files/primecoin-sys_leveldb.patch?rev=1.1&content-type=text/plain |
14 |
|
15 |
Index: primecoin-sys_leveldb.patch |
16 |
=================================================================== |
17 |
diff -Naur primecoin-0.1.2-linux.orig/src/bitcoin-qt.pro primecoin-0.1.2-linux/src/bitcoin-qt.pro |
18 |
--- primecoin-0.1.2-linux.orig/src/bitcoin-qt.pro 2013-08-05 08:37:14.000000000 -0400 |
19 |
+++ primecoin-0.1.2-linux/src/bitcoin-qt.pro 2013-11-30 16:39:48.464770389 -0500 |
20 |
@@ -4,7 +4,7 @@ |
21 |
VERSION = 0.8.3 |
22 |
INCLUDEPATH += src src/json src/qt |
23 |
QT += network |
24 |
-DEFINES += QT_GUI BOOST_THREAD_USE_LIB BOOST_SPIRIT_THREADSAFE |
25 |
+DEFINES += QT_GUI BOOST_THREAD_USE_LIB BOOST_SPIRIT_THREADSAFE LEVELDB_WITHOUT_MEMENV |
26 |
CONFIG += no_include_pwd |
27 |
CONFIG += thread |
28 |
|
29 |
@@ -98,25 +98,29 @@ |
30 |
QTPLUGIN += qcncodecs qjpcodecs qtwcodecs qkrcodecs qtaccessiblewidgets |
31 |
} |
32 |
|
33 |
+contains(USE_SYSTEM_LEVELDB, 1) { |
34 |
+ LIBS += -lleveldb |
35 |
+} else { |
36 |
INCLUDEPATH += src/leveldb/include src/leveldb/helpers |
37 |
-LIBS += $$PWD/src/leveldb/libleveldb.a $$PWD/src/leveldb/libmemenv.a |
38 |
+LIBS += $$PWD/src/leveldb/libleveldb.a |
39 |
!win32 { |
40 |
# we use QMAKE_CXXFLAGS_RELEASE even without RELEASE=1 because we use RELEASE to indicate linking preferences not -O preferences |
41 |
- genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX $(MAKE) OPT=\"$$QMAKE_CXXFLAGS $$QMAKE_CXXFLAGS_RELEASE\" libleveldb.a libmemenv.a |
42 |
+ genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX $(MAKE) OPT=\"$$QMAKE_CXXFLAGS $$QMAKE_CXXFLAGS_RELEASE\" libleveldb.a |
43 |
} else { |
44 |
# make an educated guess about what the ranlib command is called |
45 |
isEmpty(QMAKE_RANLIB) { |
46 |
QMAKE_RANLIB = $$replace(QMAKE_STRIP, strip, ranlib) |
47 |
} |
48 |
LIBS += -lshlwapi |
49 |
- genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX TARGET_OS=OS_WINDOWS_CROSSCOMPILE $(MAKE) OPT=\"$$QMAKE_CXXFLAGS $$QMAKE_CXXFLAGS_RELEASE\" libleveldb.a libmemenv.a && $$QMAKE_RANLIB $$PWD/src/leveldb/libleveldb.a && $$QMAKE_RANLIB $$PWD/src/leveldb/libmemenv.a |
50 |
+ genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX TARGET_OS=OS_WINDOWS_CROSSCOMPILE $(MAKE) OPT=\"$$QMAKE_CXXFLAGS $$QMAKE_CXXFLAGS_RELEASE\" libleveldb.a && $$QMAKE_RANLIB $$PWD/src/leveldb/libleveldb.a |
51 |
} |
52 |
genleveldb.target = $$PWD/src/leveldb/libleveldb.a |
53 |
genleveldb.depends = FORCE |
54 |
PRE_TARGETDEPS += $$PWD/src/leveldb/libleveldb.a |
55 |
QMAKE_EXTRA_TARGETS += genleveldb |
56 |
+} |
57 |
# Gross ugly hack that depends on qmake internals, unfortunately there is no other way to do it. |
58 |
-QMAKE_CLEAN += $$PWD/src/leveldb/libleveldb.a; cd $$PWD/src/leveldb ; $(MAKE) clean |
59 |
+QMAKE_CLEAN += $$PWD/src/leveldb/libleveldb.a; cd $$PWD/src/leveldb && $(MAKE) clean || true |
60 |
|
61 |
# regenerate src/build.h |
62 |
!win32|contains(USE_BUILD_INFO, 1) { |
63 |
diff -Naur primecoin-0.1.2-linux.orig/src/src/leveldb.cpp primecoin-0.1.2-linux/src/src/leveldb.cpp |
64 |
--- primecoin-0.1.2-linux.orig/src/src/leveldb.cpp 2013-08-05 08:37:20.000000000 -0400 |
65 |
+++ primecoin-0.1.2-linux/src/src/leveldb.cpp 2013-11-30 16:41:25.632773774 -0500 |
66 |
@@ -8,7 +8,9 @@ |
67 |
#include <leveldb/env.h> |
68 |
#include <leveldb/cache.h> |
69 |
#include <leveldb/filter_policy.h> |
70 |
-#include <memenv/memenv.h> |
71 |
+#ifndef LEVELDB_WITHOUT_MEMENV |
72 |
+#include <memenv.h> |
73 |
+#endif |
74 |
|
75 |
#include <boost/filesystem.hpp> |
76 |
|
77 |
@@ -43,8 +45,12 @@ |
78 |
options = GetOptions(nCacheSize); |
79 |
options.create_if_missing = true; |
80 |
if (fMemory) { |
81 |
+#ifndef LEVELDB_WITHOUT_MEMENV |
82 |
penv = leveldb::NewMemEnv(leveldb::Env::Default()); |
83 |
options.env = penv; |
84 |
+#else |
85 |
+ throw std::runtime_error("CLevelDB(): compiled without memenv support"); |
86 |
+#endif |
87 |
} else { |
88 |
if (fWipe) { |
89 |
printf("Wiping LevelDB in %s\n", path.string().c_str()); |
90 |
diff -Naur primecoin-0.1.2-linux.orig/src/src/makefile.unix primecoin-0.1.2-linux/src/src/makefile.unix |
91 |
--- primecoin-0.1.2-linux.orig/src/src/makefile.unix 2013-08-05 08:37:21.000000000 -0400 |
92 |
+++ primecoin-0.1.2-linux/src/src/makefile.unix 2013-11-30 17:20:06.545854617 -0500 |
93 |
@@ -111,8 +111,7 @@ |
94 |
# adds some defaults in front. Unfortunately, LDFLAGS=... $(LDFLAGS) does not work. |
95 |
xLDFLAGS=$(LDHARDENING) $(LDFLAGS) |
96 |
|
97 |
-OBJS= \ |
98 |
- leveldb/libleveldb.a \ |
99 |
+BASEOBJS := \ |
100 |
obj/alert.o \ |
101 |
obj/version.o \ |
102 |
obj/checkpoints.o \ |
103 |
@@ -121,7 +120,6 @@ |
104 |
obj/crypter.o \ |
105 |
obj/key.o \ |
106 |
obj/db.o \ |
107 |
- obj/init.o \ |
108 |
obj/keystore.o \ |
109 |
obj/main.o \ |
110 |
obj/net.o \ |
111 |
@@ -141,25 +139,44 @@ |
112 |
obj/hash.o \ |
113 |
obj/bloom.o \ |
114 |
obj/noui.o \ |
115 |
- obj/leveldb.o \ |
116 |
obj/txdb.o \ |
117 |
obj/prime.o \ |
118 |
obj/checkpointsync.o |
119 |
|
120 |
+OBJS := \ |
121 |
+ obj/leveldb.o \ |
122 |
+ obj/init.o \ |
123 |
+ $(BASEOBJS) |
124 |
+ |
125 |
+TESTOBJS := \ |
126 |
+ obj-test/leveldb.o \ |
127 |
+ $(patsubst test/%.cpp,obj-test/%.o,$(wildcard test/*.cpp)) \ |
128 |
+ $(BASEOBJS) |
129 |
+ |
130 |
all: primecoind |
131 |
|
132 |
test check: test_primecoin FORCE |
133 |
./test_primecoin |
134 |
|
135 |
+ifdef USE_SYSTEM_LEVELDB |
136 |
+ LIBS += -lleveldb |
137 |
+ TESTLIBS += -lmemenv |
138 |
+else |
139 |
# |
140 |
# LevelDB support |
141 |
# |
142 |
MAKEOVERRIDES = |
143 |
-LIBS += $(CURDIR)/leveldb/libleveldb.a $(CURDIR)/leveldb/libmemenv.a |
144 |
+LIBS += $(CURDIR)/leveldb/libleveldb.a |
145 |
+TESTLIBS += $(CURDIR)/leveldb/libmemenv.a |
146 |
DEFS += $(addprefix -I,$(CURDIR)/leveldb/include) |
147 |
DEFS += $(addprefix -I,$(CURDIR)/leveldb/helpers) |
148 |
leveldb/libleveldb.a: |
149 |
- @echo "Building LevelDB ..." && cd leveldb && $(MAKE) CC=$(CC) CXX=$(CXX) OPT="$(xCXXFLAGS)" libleveldb.a libmemenv.a && cd .. |
150 |
+ @echo "Building LevelDB ..." && cd leveldb && $(MAKE) CC=$(CC) CXX=$(CXX) OPT="$(xCXXFLAGS)" libleveldb.a && cd .. |
151 |
+leveldb/libmemenv.a: |
152 |
+ @echo "Building LevelDB memenv ..." && cd leveldb && $(MAKE) CC=$(CC) CXX=$(CXX) OPT="$(xCXXFLAGS)" libmemenv.a && cd .. |
153 |
+OBJS += leveldb/libleveldb.a |
154 |
+TESTOBJS += leveldb/libmemenv.a |
155 |
+endif |
156 |
|
157 |
# auto-generated dependencies: |
158 |
-include obj/*.P |
159 |
@@ -170,24 +187,22 @@ |
160 |
version.cpp: obj/build.h |
161 |
DEFS += -DHAVE_BUILD_INFO |
162 |
|
163 |
-obj/%.o: %.cpp |
164 |
- $(CXX) -c $(xCXXFLAGS) -MMD -MF $(@:%.o=%.d) -o $@ $< |
165 |
+P_TO_D = \ |
166 |
@cp $(@:%.o=%.d) $(@:%.o=%.P); \ |
167 |
- sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \ |
168 |
+ sed -e 's/\#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \ |
169 |
-e '/^$$/ d' -e 's/$$/ :/' < $(@:%.o=%.d) >> $(@:%.o=%.P); \ |
170 |
rm -f $(@:%.o=%.d) |
171 |
|
172 |
-primecoind: $(OBJS:obj/%=obj/%) |
173 |
- $(LINK) $(xCXXFLAGS) -o $@ $^ $(xLDFLAGS) $(LIBS) |
174 |
+obj/%.o: %.cpp |
175 |
+ $(CXX) -c $(xCXXFLAGS) -DLEVELDB_WITHOUT_MEMENV -MMD -MF $(@:%.o=%.d) -o $@ $< |
176 |
+ $(P_TO_D) |
177 |
|
178 |
-TESTOBJS := $(patsubst test/%.cpp,obj-test/%.o,$(wildcard test/*.cpp)) |
179 |
+primecoind: $(OBJS) |
180 |
+ $(LINK) $(xCXXFLAGS) -o $@ $^ $(xLDFLAGS) $(LIBS) |
181 |
|
182 |
obj-test/%.o: test/%.cpp |
183 |
- $(CXX) -c $(TESTDEFS) $(xCXXFLAGS) -MMD -MF $(@:%.o=%.d) -o $@ $< |
184 |
- @cp $(@:%.o=%.d) $(@:%.o=%.P); \ |
185 |
- sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \ |
186 |
- -e '/^$$/ d' -e 's/$$/ :/' < $(@:%.o=%.d) >> $(@:%.o=%.P); \ |
187 |
- rm -f $(@:%.o=%.d) |
188 |
+ $(CXX) -c $(xCXXFLAGS) -DLEVELDB_WITHOUT_MEMENV -MMD -MF $(@:%.o=%.d) -o $@ $< |
189 |
+ $(P_TO_D) |
190 |
|
191 |
test_primecoin: $(TESTOBJS) $(filter-out obj/init.o,$(OBJS:obj/%=obj/%)) |
192 |
$(LINK) $(xCXXFLAGS) -o $@ $(LIBPATHS) $^ $(TESTLIBS) $(xLDFLAGS) $(LIBS) |