1 |
blueness 13/12/01 13:18:01 |
2 |
|
3 |
Added: litecoin-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/litecoin-qt/files/litecoin-sys_leveldb.patch |
11 |
|
12 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-p2p/litecoin-qt/files/litecoin-sys_leveldb.patch?rev=1.1&view=markup |
13 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-p2p/litecoin-qt/files/litecoin-sys_leveldb.patch?rev=1.1&content-type=text/plain |
14 |
|
15 |
Index: litecoin-sys_leveldb.patch |
16 |
=================================================================== |
17 |
diff -Naur litecoin-0.8.5.3-rc3.orig/bitcoin-qt.pro litecoin-0.8.5.3-rc3/bitcoin-qt.pro |
18 |
--- litecoin-0.8.5.3-rc3.orig/bitcoin-qt.pro 2013-11-28 21:17:05.000000000 -0500 |
19 |
+++ litecoin-0.8.5.3-rc3/bitcoin-qt.pro 2013-11-29 14:53:00.960537685 -0500 |
20 |
@@ -5,7 +5,7 @@ |
21 |
INCLUDEPATH += src src/json src/qt |
22 |
QT += core gui network |
23 |
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets |
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 |
@@ -101,25 +101,30 @@ |
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 |
|
62 |
# regenerate src/build.h |
63 |
!win32|contains(USE_BUILD_INFO, 1) { |
64 |
diff -Naur litecoin-0.8.5.3-rc3.orig/src/leveldb.cpp litecoin-0.8.5.3-rc3/src/leveldb.cpp |
65 |
--- litecoin-0.8.5.3-rc3.orig/src/leveldb.cpp 2013-11-28 21:17:05.000000000 -0500 |
66 |
+++ litecoin-0.8.5.3-rc3/src/leveldb.cpp 2013-11-29 14:55:33.760543008 -0500 |
67 |
@@ -8,7 +8,9 @@ |
68 |
#include <leveldb/env.h> |
69 |
#include <leveldb/cache.h> |
70 |
#include <leveldb/filter_policy.h> |
71 |
-#include <memenv/memenv.h> |
72 |
+#ifndef LEVELDB_WITHOUT_MEMENV |
73 |
+#include <memenv.h> |
74 |
+#endif |
75 |
|
76 |
#include <boost/filesystem.hpp> |
77 |
|
78 |
@@ -43,8 +45,12 @@ |
79 |
options = GetOptions(nCacheSize); |
80 |
options.create_if_missing = true; |
81 |
if (fMemory) { |
82 |
+#ifndef LEVELDB_WITHOUT_MEMENV |
83 |
penv = leveldb::NewMemEnv(leveldb::Env::Default()); |
84 |
options.env = penv; |
85 |
+#else |
86 |
+ throw std::runtime_error("CLevelDB(): compiled without memenv support"); |
87 |
+#endif |
88 |
} else { |
89 |
if (fWipe) { |
90 |
printf("Wiping LevelDB in %s\n", path.string().c_str()); |
91 |
diff -Naur litecoin-0.8.5.3-rc3.orig/src/makefile.unix litecoin-0.8.5.3-rc3/src/makefile.unix |
92 |
--- litecoin-0.8.5.3-rc3.orig/src/makefile.unix 2013-11-28 21:17:05.000000000 -0500 |
93 |
+++ litecoin-0.8.5.3-rc3/src/makefile.unix 2013-11-29 15:08:58.337571033 -0500 |
94 |
@@ -110,8 +110,7 @@ |
95 |
# adds some defaults in front. Unfortunately, LDFLAGS=... $(LDFLAGS) does not work. |
96 |
xLDFLAGS=$(LDHARDENING) $(LDFLAGS) |
97 |
|
98 |
-OBJS= \ |
99 |
- leveldb/libleveldb.a \ |
100 |
+BASEOBJS := \ |
101 |
obj/alert.o \ |
102 |
obj/version.o \ |
103 |
obj/checkpoints.o \ |
104 |
@@ -120,7 +119,6 @@ |
105 |
obj/crypter.o \ |
106 |
obj/key.o \ |
107 |
obj/db.o \ |
108 |
- obj/init.o \ |
109 |
obj/keystore.o \ |
110 |
obj/main.o \ |
111 |
obj/net.o \ |
112 |
@@ -141,9 +139,17 @@ |
113 |
obj/hash.o \ |
114 |
obj/bloom.o \ |
115 |
obj/noui.o \ |
116 |
- obj/leveldb.o \ |
117 |
obj/txdb.o |
118 |
|
119 |
+OBJS := \ |
120 |
+ obj/leveldb.o \ |
121 |
+ obj/init.o \ |
122 |
+ $(BASEOBJS) |
123 |
+ |
124 |
+TESTOBJS := \ |
125 |
+ obj-test/leveldb.o \ |
126 |
+ $(patsubst test/%.cpp,obj-test/%.o,$(wildcard test/*.cpp)) \ |
127 |
+ $(BASEOBJS) |
128 |
|
129 |
ifdef USE_SSE2 |
130 |
DEFS += -DUSE_SSE2 |
131 |
@@ -156,15 +162,25 @@ |
132 |
test check: test_litecoin FORCE |
133 |
./test_litecoin |
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 |
@@ -175,33 +191,34 @@ |
160 |
version.cpp: obj/build.h |
161 |
DEFS += -DHAVE_BUILD_INFO |
162 |
|
163 |
-obj/%-sse2.o: %-sse2.cpp |
164 |
- $(CXX) -c $(xCXXFLAGS) -msse2 -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 |
+obj/%-sse2.o: %-sse2.cpp |
173 |
+ $(CXX) -c $(xCXXFLAGS) -msse2 -MMD -MF $(@:%.o=%.d) -o $@ $< |
174 |
+ $(P_TO_D) |
175 |
+ |
176 |
obj/%.o: %.cpp |
177 |
- $(CXX) -c $(xCXXFLAGS) -MMD -MF $(@:%.o=%.d) -o $@ $< |
178 |
- @cp $(@:%.o=%.d) $(@:%.o=%.P); \ |
179 |
- sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \ |
180 |
- -e '/^$$/ d' -e 's/$$/ :/' < $(@:%.o=%.d) >> $(@:%.o=%.P); \ |
181 |
- rm -f $(@:%.o=%.d) |
182 |
+ $(CXX) -c $(xCXXFLAGS) -DLEVELDB_WITHOUT_MEMENV -MMD -MF $(@:%.o=%.d) -o $@ $< |
183 |
+ $(P_TO_D) |
184 |
|
185 |
-litecoind: $(OBJS:obj/%=obj/%) |
186 |
+litecoind: $(OBJS) |
187 |
$(LINK) $(xCXXFLAGS) -o $@ $^ $(xLDFLAGS) $(LIBS) |
188 |
|
189 |
-TESTOBJS := $(patsubst test/%.cpp,obj-test/%.o,$(wildcard test/*.cpp)) |
190 |
- |
191 |
obj-test/%.o: test/%.cpp |
192 |
$(CXX) -c $(TESTDEFS) $(xCXXFLAGS) -MMD -MF $(@:%.o=%.d) -o $@ $< |
193 |
- @cp $(@:%.o=%.d) $(@:%.o=%.P); \ |
194 |
- sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \ |
195 |
- -e '/^$$/ d' -e 's/$$/ :/' < $(@:%.o=%.d) >> $(@:%.o=%.P); \ |
196 |
- rm -f $(@:%.o=%.d) |
197 |
+ $(P_TO_D) |
198 |
+ |
199 |
+obj-test/leveldb.o: leveldb.cpp |
200 |
+ $(CXX) -c $(TESTDEFS) $(xCXXFLAGS) -MMD -MF $(@:%.o=%.d) -o $@ $< |
201 |
+ $(P_TO_D) |
202 |
+ |
203 |
+TESTOBJS := $(patsubst test/%.cpp,obj-test/%.o,$(wildcard test/*.cpp)) |
204 |
|
205 |
-test_litecoin: $(TESTOBJS) $(filter-out obj/init.o,$(OBJS:obj/%=obj/%)) |
206 |
+test_litecoin: $(TESTOBJS) |
207 |
$(LINK) $(xCXXFLAGS) -o $@ $(LIBPATHS) $^ $(TESTLIBS) $(xLDFLAGS) $(LIBS) |
208 |
|
209 |
clean: |