diff options
author | Armin Kuster <akuster808@gmail.com> | 2018-03-21 07:16:12 -0700 |
---|---|---|
committer | Armin Kuster <akuster808@gmail.com> | 2018-03-29 16:52:09 -0700 |
commit | 84ace703b70c79b662042a108a26cc1611350410 (patch) | |
tree | cd0a18cab66209f3b1a71322edb01022580b0f8d /meta-oe/recipes-dbs/leveldb | |
parent | 99d18a6bc1a915ef5f07116e0fe684f56825a165 (diff) | |
download | meta-openembedded-84ace703b70c79b662042a108a26cc1611350410.tar.gz |
leveldb: move to recipes-dbs
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Diffstat (limited to 'meta-oe/recipes-dbs/leveldb')
4 files changed, 151 insertions, 0 deletions
diff --git a/meta-oe/recipes-dbs/leveldb/leveldb/0001-Makefile-Fix-parallel-build.patch b/meta-oe/recipes-dbs/leveldb/leveldb/0001-Makefile-Fix-parallel-build.patch new file mode 100644 index 0000000000..3135d4d5ac --- /dev/null +++ b/meta-oe/recipes-dbs/leveldb/leveldb/0001-Makefile-Fix-parallel-build.patch | |||
@@ -0,0 +1,34 @@ | |||
1 | From c85978e77725ef233543370d24e23f853f449170 Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Thu, 21 Sep 2017 17:47:02 -0700 | ||
4 | Subject: [PATCH] Makefile: Fix parallel build | ||
5 | |||
6 | Sometimes mkdir $(SHARED_OUTDIR)/db races with compiler which is | ||
7 | creating .o file in the same directory $(SHARED_OUTDIR)/db/db_bench.o | ||
8 | |||
9 | Fixes error like | ||
10 | |||
11 | | mkdir out-static | ||
12 | | mkdir out-shared/db | ||
13 | | Assembler messages: | ||
14 | | Fatal error: can't create out-shared/db/db_bench.o: No such file or directory | ||
15 | |||
16 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
17 | --- | ||
18 | Upstream-Status: Submitted | ||
19 | |||
20 | Makefile | 4 ++-- | ||
21 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
22 | |||
23 | diff --git a/Makefile b/Makefile | ||
24 | index f7cc7d7..51a0bcd 100644 | ||
25 | --- a/Makefile | ||
26 | +++ b/Makefile | ||
27 | @@ -386,6 +386,7 @@ $(STATIC_OUTDIR)/write_batch_test:db/write_batch_test.cc $(STATIC_LIBOBJECTS) $( | ||
28 | $(STATIC_OUTDIR)/memenv_test:$(STATIC_OUTDIR)/helpers/memenv/memenv_test.o $(STATIC_OUTDIR)/libmemenv.a $(STATIC_OUTDIR)/libleveldb.a $(TESTHARNESS) | ||
29 | $(XCRUN) $(CXX) $(LDFLAGS) $(STATIC_OUTDIR)/helpers/memenv/memenv_test.o $(STATIC_OUTDIR)/libmemenv.a $(STATIC_OUTDIR)/libleveldb.a $(TESTHARNESS) -o $@ $(LIBS) | ||
30 | |||
31 | +$(SHARED_OUTDIR)/db/db_bench.o: | $(SHARED_OUTDIR)/db | ||
32 | $(SHARED_OUTDIR)/db_bench:$(SHARED_OUTDIR)/db/db_bench.o $(SHARED_LIBS) $(TESTUTIL) | ||
33 | $(XCRUN) $(CXX) $(LDFLAGS) $(CXXFLAGS) $(PLATFORM_SHARED_CFLAGS) $(SHARED_OUTDIR)/db/db_bench.o $(TESTUTIL) $(SHARED_OUTDIR)/$(SHARED_LIB3) -o $@ $(LIBS) | ||
34 | |||
diff --git a/meta-oe/recipes-dbs/leveldb/leveldb/0001-build_detect_platform-Check-for-__SSE4_2__.patch b/meta-oe/recipes-dbs/leveldb/leveldb/0001-build_detect_platform-Check-for-__SSE4_2__.patch new file mode 100644 index 0000000000..8f93cb325b --- /dev/null +++ b/meta-oe/recipes-dbs/leveldb/leveldb/0001-build_detect_platform-Check-for-__SSE4_2__.patch | |||
@@ -0,0 +1,37 @@ | |||
1 | From 5fd0918df2bb30e8f3edb2ee895d178edbf26f40 Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Mon, 4 Sep 2017 22:38:03 -0700 | ||
4 | Subject: [PATCH 1/2] build_detect_platform: Check for __SSE4_2__ | ||
5 | |||
6 | just using -msse4.2 is not enough, especially with clang | ||
7 | where it may accept -msse4.2 even during cross compiling | ||
8 | for say arm, however the difference is that builtin defines | ||
9 | wont be defined. | ||
10 | |||
11 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
12 | --- | ||
13 | Upstream-Status: Pending | ||
14 | |||
15 | build_detect_platform | 4 ++-- | ||
16 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
17 | |||
18 | Index: git/build_detect_platform | ||
19 | =================================================================== | ||
20 | --- git.orig/build_detect_platform | ||
21 | +++ git/build_detect_platform | ||
22 | @@ -224,13 +224,13 @@ EOF | ||
23 | rm -f $CXXOUTPUT 2>/dev/null | ||
24 | |||
25 | # Test if gcc SSE 4.2 is supported | ||
26 | - $CXX $CXXFLAGS -x c++ - -o $CXXOUTPUT -msse4.2 2>/dev/null <<EOF | ||
27 | + $CXX $CXXFLAGS -Werror -x c++ - -o $CXXOUTPUT -msse4.2 -dD -E 2>/dev/null <<EOF | ||
28 | int main() {} | ||
29 | EOF | ||
30 | + eval fgrep __SSE4_2__ $CXXOUTPUT >/dev/null 2>&1 | ||
31 | if [ "$?" = 0 ]; then | ||
32 | PLATFORM_SSEFLAGS="-msse4.2" | ||
33 | fi | ||
34 | - | ||
35 | rm -f $CXXOUTPUT 2>/dev/null | ||
36 | fi | ||
37 | |||
diff --git a/meta-oe/recipes-dbs/leveldb/leveldb/0002-makefile-build-SHARED_MEMENVLIB.patch b/meta-oe/recipes-dbs/leveldb/leveldb/0002-makefile-build-SHARED_MEMENVLIB.patch new file mode 100644 index 0000000000..fc708b23ad --- /dev/null +++ b/meta-oe/recipes-dbs/leveldb/leveldb/0002-makefile-build-SHARED_MEMENVLIB.patch | |||
@@ -0,0 +1,43 @@ | |||
1 | From 1ed8cec1fcf666904bb3ebd29fc85e235b72d122 Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Mon, 4 Sep 2017 22:40:49 -0700 | ||
4 | Subject: [PATCH 2/2] makefile: build SHARED_MEMENVLIB | ||
5 | |||
6 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
7 | --- | ||
8 | Upstream-Status: Pending | ||
9 | |||
10 | Makefile | 6 +++--- | ||
11 | 1 file changed, 3 insertions(+), 3 deletions(-) | ||
12 | |||
13 | diff --git a/Makefile b/Makefile | ||
14 | index f7cc7d7..cb42278 100644 | ||
15 | --- a/Makefile | ||
16 | +++ b/Makefile | ||
17 | @@ -126,12 +126,12 @@ SHARED_VERSION_MINOR = 20 | ||
18 | SHARED_LIB1 = libleveldb.$(PLATFORM_SHARED_EXT) | ||
19 | SHARED_LIB2 = $(SHARED_LIB1).$(SHARED_VERSION_MAJOR) | ||
20 | SHARED_LIB3 = $(SHARED_LIB1).$(SHARED_VERSION_MAJOR).$(SHARED_VERSION_MINOR) | ||
21 | -SHARED_LIBS = $(SHARED_OUTDIR)/$(SHARED_LIB1) $(SHARED_OUTDIR)/$(SHARED_LIB2) $(SHARED_OUTDIR)/$(SHARED_LIB3) | ||
22 | +SHARED_LIBS = $(SHARED_OUTDIR)/$(SHARED_LIB1) $(SHARED_OUTDIR)/$(SHARED_LIB2) $(SHARED_OUTDIR)/$(SHARED_LIB3) $(SHARED_MEMENVLIB) | ||
23 | $(SHARED_OUTDIR)/$(SHARED_LIB1): $(SHARED_OUTDIR)/$(SHARED_LIB3) | ||
24 | ln -fs $(SHARED_LIB3) $(SHARED_OUTDIR)/$(SHARED_LIB1) | ||
25 | $(SHARED_OUTDIR)/$(SHARED_LIB2): $(SHARED_OUTDIR)/$(SHARED_LIB3) | ||
26 | ln -fs $(SHARED_LIB3) $(SHARED_OUTDIR)/$(SHARED_LIB2) | ||
27 | -SHARED_MEMENVLIB = $(SHARED_OUTDIR)/libmemenv.a | ||
28 | +SHARED_MEMENVLIB = $(SHARED_OUTDIR)/libmemenv.$(PLATFORM_SHARED_EXT).$(SHARED_VERSION_MAJOR).$(SHARED_VERSION_MINOR) | ||
29 | endif | ||
30 | |||
31 | $(SHARED_OUTDIR)/$(SHARED_LIB3): $(SHARED_LIBOBJECTS) | ||
32 | @@ -294,7 +294,7 @@ endif | ||
33 | |||
34 | $(SHARED_MEMENVLIB):$(SHARED_MEMENVOBJECTS) | ||
35 | rm -f $@ | ||
36 | - $(AR) -rs $@ $(SHARED_MEMENVOBJECTS) | ||
37 | + $(CXX) $(LDFLAGS) $(PLATFORM_SHARED_LDFLAGS)$(basename $(notdir $(SHARED_MEMENVLIB))) $(SHARED_MEMENVOBJECTS) -o $(SHARED_MEMENVLIB) $(LIBS) | ||
38 | |||
39 | $(STATIC_OUTDIR)/db_bench:db/db_bench.cc $(STATIC_LIBOBJECTS) $(TESTUTIL) | ||
40 | $(CXX) $(LDFLAGS) $(CXXFLAGS) db/db_bench.cc $(STATIC_LIBOBJECTS) $(TESTUTIL) -o $@ $(LIBS) | ||
41 | -- | ||
42 | 2.14.1 | ||
43 | |||
diff --git a/meta-oe/recipes-dbs/leveldb/leveldb_git.bb b/meta-oe/recipes-dbs/leveldb/leveldb_git.bb new file mode 100644 index 0000000000..8fec89c6f1 --- /dev/null +++ b/meta-oe/recipes-dbs/leveldb/leveldb_git.bb | |||
@@ -0,0 +1,37 @@ | |||
1 | SUMMARY = "LevelDB is a fast key-value storage library" | ||
2 | DESCRIPTION = "LevelDB is a fast key-value storage library that provides an ordered mapping from string keys to string values" | ||
3 | HOMEPAGE = "http://leveldb.googlecode.com" | ||
4 | LICENSE = "BSD-3-Clause" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=92d1b128950b11ba8495b64938fc164d" | ||
6 | |||
7 | SRCREV = "a53934a3ae1244679f812d998a4f16f2c7f309a6" | ||
8 | PV = "1.20+git${SRCPV}" | ||
9 | |||
10 | SRC_URI = "git://github.com/google/${BPN}.git \ | ||
11 | file://0001-build_detect_platform-Check-for-__SSE4_2__.patch \ | ||
12 | file://0002-makefile-build-SHARED_MEMENVLIB.patch \ | ||
13 | file://0001-Makefile-Fix-parallel-build.patch \ | ||
14 | " | ||
15 | |||
16 | S = "${WORKDIR}/git" | ||
17 | |||
18 | inherit utils | ||
19 | |||
20 | do_compile() { | ||
21 | # do not use oe_runmake. oe_runmake pass to make compilation arguments and override | ||
22 | # leveldb makefile variable CFLAGS and broke leveldb build. | ||
23 | CFLAGS="${CFLAGS}" make ${PARALLEL_MAKE}|| die | ||
24 | } | ||
25 | |||
26 | do_install() { | ||
27 | install -d ${D}${libdir} ${D}${bindir} ${D}${includedir}/leveldb | ||
28 | oe_libinstall -C ${B}/out-shared libleveldb ${D}${libdir} | ||
29 | oe_libinstall -C ${S}/out-static libleveldb ${D}${libdir} | ||
30 | oe_libinstall -C ${S}/out-static libmemenv ${D}${libdir} | ||
31 | install -m 0755 ${B}/out-shared/db_bench ${D}${bindir} | ||
32 | install -m 0755 ${B}/out-static/*_test ${D}${bindir} | ||
33 | install -m 644 ${S}/include/leveldb/*.h ${D}${includedir}/leveldb/ | ||
34 | } | ||
35 | |||
36 | PACKAGES =+ "${PN}-ptest" | ||
37 | FILES_${PN}-ptest = "${bindir}" | ||