diff options
Diffstat (limited to 'poky/meta/recipes-support/db')
6 files changed, 340 insertions, 0 deletions
diff --git a/poky/meta/recipes-support/db/db/0001-atomic-Rename-local-__atomic_compare_exchange-to-avo.patch b/poky/meta/recipes-support/db/db/0001-atomic-Rename-local-__atomic_compare_exchange-to-avo.patch new file mode 100644 index 000000000..571708e03 --- /dev/null +++ b/poky/meta/recipes-support/db/db/0001-atomic-Rename-local-__atomic_compare_exchange-to-avo.patch @@ -0,0 +1,45 @@ +From 29621d637e30982489693f2e207ce6a1790e3337 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 22 Mar 2017 15:32:26 +0000 +Subject: [PATCH] atomic: Rename local __atomic_compare_exchange to avoid clash + with builtins + +Helps building with clang + +Fixes + +../db-5.3.28/src/dbinc/atomic.h:179:19: error: definition of builtin function '__atomic_compare_exchange' +static inline int __atomic_compare_exchange( + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/dbinc/atomic.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/dbinc/atomic.h b/src/dbinc/atomic.h +index 6a858f7..1b49de5 100644 +--- a/src/dbinc/atomic.h ++++ b/src/dbinc/atomic.h +@@ -144,7 +144,7 @@ typedef LONG volatile *interlocked_val; + #define atomic_inc(env, p) __atomic_inc(p) + #define atomic_dec(env, p) __atomic_dec(p) + #define atomic_compare_exchange(env, p, o, n) \ +- __atomic_compare_exchange((p), (o), (n)) ++ __db_atomic_compare_exchange((p), (o), (n)) + static inline int __atomic_inc(db_atomic_t *p) + { + int temp; +@@ -176,7 +176,7 @@ static inline int __atomic_dec(db_atomic_t *p) + * http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html + * which configure could be changed to use. + */ +-static inline int __atomic_compare_exchange( ++static inline int __db_atomic_compare_exchange( + db_atomic_t *p, atomic_value_t oldval, atomic_value_t newval) + { + atomic_value_t was; +-- +1.8.3.1 + diff --git a/poky/meta/recipes-support/db/db/0001-configure-Add-explicit-tag-options-to-libtool-invoca.patch b/poky/meta/recipes-support/db/db/0001-configure-Add-explicit-tag-options-to-libtool-invoca.patch new file mode 100644 index 000000000..cb28db134 --- /dev/null +++ b/poky/meta/recipes-support/db/db/0001-configure-Add-explicit-tag-options-to-libtool-invoca.patch @@ -0,0 +1,42 @@ +From 32e5943a3c4637d39e4d65b544dcb99e280210e3 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 23 Jul 2017 10:54:26 -0700 +Subject: [PATCH] configure: Add explicit tag options to libtool invocation + +This helps cross compile when tag inference via heuristics +fail because CC variable is having -fPIE -pie and libtool +smartly removes it when building libraries + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + dist/configure.ac | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/dist/configure.ac b/dist/configure.ac +index 689f3b8..9c14bdb 100644 +--- a/dist/configure.ac ++++ b/dist/configure.ac +@@ -366,12 +366,12 @@ LIBTOOL="./libtool" + + INSTALLER="\$(LIBTOOL) --mode=install cp -p" + +-MAKEFILE_CC="\$(LIBTOOL) --mode=compile ${MAKEFILE_CC}" +-MAKEFILE_SOLINK="\$(LIBTOOL) --mode=link ${MAKEFILE_CCLINK} -avoid-version" +-MAKEFILE_CCLINK="\$(LIBTOOL) --mode=link ${MAKEFILE_CCLINK}" +-MAKEFILE_CXX="\$(LIBTOOL) --mode=compile ${MAKEFILE_CXX}" +-MAKEFILE_XSOLINK="\$(LIBTOOL) --mode=link ${MAKEFILE_CXXLINK} -avoid-version" +-MAKEFILE_CXXLINK="\$(LIBTOOL) --mode=link ${MAKEFILE_CXXLINK}" ++MAKEFILE_CC="\$(LIBTOOL) --tag=CC --mode=compile ${MAKEFILE_CC}" ++MAKEFILE_SOLINK="\$(LIBTOOL) --tag=CC --mode=link ${MAKEFILE_CCLINK} -avoid-version" ++MAKEFILE_CCLINK="\$(LIBTOOL) --tag=CC --mode=link ${MAKEFILE_CCLINK}" ++MAKEFILE_CXX="\$(LIBTOOL) --tag=CXX --mode=compile ${MAKEFILE_CXX}" ++MAKEFILE_XSOLINK="\$(LIBTOOL) --tag=CXX --mode=link ${MAKEFILE_CXXLINK} -avoid-version" ++MAKEFILE_CXXLINK="\$(LIBTOOL) --tag=CXX --mode=link ${MAKEFILE_CXXLINK}" + + + case "$host_os" in +-- +2.13.3 + diff --git a/poky/meta/recipes-support/db/db/arm-thumb-mutex_db5.patch b/poky/meta/recipes-support/db/db/arm-thumb-mutex_db5.patch new file mode 100644 index 000000000..6a8eada60 --- /dev/null +++ b/poky/meta/recipes-support/db/db/arm-thumb-mutex_db5.patch @@ -0,0 +1,50 @@ +Original patch submitted by jbowler@nslu2-linux.org on 2005-11-17: + +db: fix thumb uclibc operation in 4.3.29 + - uclibc thumb builds were using libpthread to implement mutexes, the + - uclibc version seems to be a stub (at least on thumb). This commit + - fixes the ARM/gcc-assembly mutex implementation so that it has thumb + - support and the resultant db4 works (tested on LE Thumb uclibc) + +Upstream-Status: Inappropriate [embedded specific] + +Author: jbowler@nslu2-linux.org + +Index: db-6.0.30/src/dbinc/mutex_int.h +=================================================================== +--- db-6.0.30.orig/src/dbinc/mutex_int.h ++++ db-6.0.30/src/dbinc/mutex_int.h +@@ -474,6 +474,25 @@ typedef unsigned char tsl_t; + + #ifdef LOAD_ACTUAL_MUTEX_CODE + /* gcc/arm: 0 is clear, 1 is set. */ ++#if defined __thumb__ ++#define MUTEX_SET(tsl) ({ \ ++ int __r, __p; \ ++ __asm__ volatile( \ ++ ".align 2\n\t" \ ++ "bx pc\n\t" \ ++ "nop\n\t" \ ++ ".arm\n\t" \ ++ "swpb %0, %2, [%3]\n\t" \ ++ "eor %0, %0, #1\n\t" \ ++ "orr %1, pc, #1\n\t" \ ++ "bx %1\n\t" \ ++ ".force_thumb" \ ++ : "=&r" (__r), "=r" (__p) \ ++ : "r" (1), "r" (tsl) \ ++ ); \ ++ __r & 1; \ ++}) ++#else + #define MUTEX_SET(tsl) ({ \ + int __r; \ + __asm__ volatile( \ +@@ -484,6 +503,7 @@ typedef unsigned char tsl_t; + ); \ + __r & 1; \ + }) ++#endif + + #define MUTEX_UNSET(tsl) (*(volatile tsl_t *)(tsl) = 0) + #define MUTEX_INIT(tsl) (MUTEX_UNSET(tsl), 0) diff --git a/poky/meta/recipes-support/db/db/fix-parallel-build.patch b/poky/meta/recipes-support/db/db/fix-parallel-build.patch new file mode 100644 index 000000000..27632e1dd --- /dev/null +++ b/poky/meta/recipes-support/db/db/fix-parallel-build.patch @@ -0,0 +1,21 @@ +With higher paralelism it sometimes fails with: +libtool: link: `util_log.lo' is not a valid libtool object +make: *** [db_replicate] Error 1 + +Upstream-Status: Pending + +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> + +Index: db-6.0.30/dist/Makefile.in +=================================================================== +--- db-6.0.30.orig/dist/Makefile.in ++++ db-6.0.30/dist/Makefile.in +@@ -1041,7 +1041,7 @@ db_recover: db_recover@o@ util_sig@o@ $( + db_recover@o@ util_sig@o@ $(DEF_LIB) $(LIBS) + $(POSTLINK) $@ + +-db_replicate: db_replicate@o@ util_sig@o@ $(DEF_LIB) ++db_replicate: db_replicate@o@ util_log@o@ util_sig@o@ $(DEF_LIB) + $(CCLINK) -o $@ $(LDFLAGS) \ + db_replicate@o@ util_log@o@ util_sig@o@ $(DEF_LIB) $(LIBS) + $(POSTLINK) $@ diff --git a/poky/meta/recipes-support/db/db/sequence-type.patch b/poky/meta/recipes-support/db/db/sequence-type.patch new file mode 100644 index 000000000..a6fe3d62a --- /dev/null +++ b/poky/meta/recipes-support/db/db/sequence-type.patch @@ -0,0 +1,59 @@ +configure wants to use host-specific types to get a 64-bit integer in db.h +instead of using an alias such as int64_t. This means that the header differs +in multilib environments for no good reason, so replace the type with the alias +in stdint.h. + +This then breaks the overly complicated type check but as we know that int64_t +exists and works, we can just delete that. + +Upstream-Status: Pending +Signed-off-by: Ross Burton <ross.burton@intel.com> + +--- a/dist/aclocal/sequence.m4~ 2013-09-09 16:35:02.000000000 +0100 ++++ b/dist/aclocal/sequence.m4 2017-11-01 13:21:45.472295971 +0000 +@@ -24 +24 @@ +- db_cv_seq_type="long" ++ db_cv_seq_type="int64_t" +@@ -31 +31 @@ +- db_cv_seq_type="long long" ++ db_cv_seq_type="int64_t" +@@ -41,38 +41 @@ +- # Test to see if we can declare variables of the appropriate size +- # and format them. If we're cross-compiling, all we get is a link +- # test, which won't test for the appropriate printf format strings. +- if test "$db_cv_build_sequence" = "yes"; then +- AC_TRY_RUN([ +- main() { +- $db_cv_seq_type l; +- unsigned $db_cv_seq_type u; +- char buf@<:@100@:>@; +- +- buf@<:@0@:>@ = 'a'; +- l = 9223372036854775807LL; +- (void)snprintf(buf, sizeof(buf), $db_cv_seq_fmt, l); +- if (strcmp(buf, "9223372036854775807")) +- return (1); +- u = 18446744073709551615ULL; +- (void)snprintf(buf, sizeof(buf), $db_cv_seq_ufmt, u); +- if (strcmp(buf, "18446744073709551615")) +- return (1); +- return (0); +- }],, [db_cv_build_sequence="no"], +- AC_TRY_LINK(,[ +- $db_cv_seq_type l; +- unsigned $db_cv_seq_type u; +- char buf@<:@100@:>@; +- +- buf@<:@0@:>@ = 'a'; +- l = 9223372036854775807LL; +- (void)snprintf(buf, sizeof(buf), $db_cv_seq_fmt, l); +- if (strcmp(buf, "9223372036854775807")) +- return (1); +- u = 18446744073709551615ULL; +- (void)snprintf(buf, sizeof(buf), $db_cv_seq_ufmt, u); +- if (strcmp(buf, "18446744073709551615")) +- return (1); +- return (0); +- ],, [db_cv_build_sequence="no"])) +- fi ++ db_cv_build_sequence="yes" diff --git a/poky/meta/recipes-support/db/db_5.3.28.bb b/poky/meta/recipes-support/db/db_5.3.28.bb new file mode 100644 index 000000000..093ee4490 --- /dev/null +++ b/poky/meta/recipes-support/db/db_5.3.28.bb @@ -0,0 +1,123 @@ +# Version 5 of the Berkeley DB from Sleepycat +# +# At present this package only installs the DB code +# itself (shared libraries, .a in the dev package), +# documentation and headers. +# +# The headers have the same names as those as v3 +# of the DB, only one version can be used *for dev* +# at once - DB3 and DB5 can both be installed on the +# same system at the same time if really necessary. +SECTION = "libs" +SUMMARY = "Berkeley Database v5" +HOMEPAGE = "http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html" +LICENSE = "Sleepycat" +RCONFLICTS_${PN} = "db3" + +CVE_PRODUCT = "oracle_berkeley_db" +CVE_VERSION = "11.2.${PV}" + +PR = "r1" +PE = "1" + +SRC_URI = "http://download.oracle.com/berkeley-db/db-${PV}.tar.gz" +SRC_URI += "file://arm-thumb-mutex_db5.patch \ + file://fix-parallel-build.patch \ + file://0001-atomic-Rename-local-__atomic_compare_exchange-to-avo.patch \ + file://0001-configure-Add-explicit-tag-options-to-libtool-invoca.patch \ + file://sequence-type.patch \ + " +# We are not interested in official latest 6.x versions; +# let's track what debian is using. +UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/d/db5.3/" +UPSTREAM_CHECK_REGEX = "db5\.3_(?P<pver>.+)\.orig" + +SRC_URI[md5sum] = "b99454564d5b4479750567031d66fe24" +SRC_URI[sha256sum] = "e0a992d740709892e81f9d93f06daf305cf73fb81b545afe72478043172c3628" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=ed1158e31437f4f87cdd4ab2b8613955" + +inherit autotools + +# The executables go in a separate package - typically there +# is no need to install these unless doing real database +# management on the system. +inherit lib_package + +PACKAGES =+ "${PN}-cxx" +FILES_${PN}-cxx = "${libdir}/*cxx*so" + + +# The dev package has the .so link (as in db3) and the .a's - +# it is therefore incompatible (cannot be installed at the +# same time) as the db3 package +# sort out the .so since they do version prior to the .so +SOLIBS = "-5*.so" +FILES_SOLIBSDEV = "${libdir}/libdb.so ${libdir}/libdb_cxx.so" + +#configuration - set in local.conf to override +# All the --disable-* options replace --enable-smallbuild, which breaks a bunch of stuff (eg. postfix) +DB5_CONFIG ?= "--enable-o_direct --disable-cryptography --disable-queue --disable-replication --disable-verify --disable-compat185 --disable-sql" + +EXTRA_OECONF = "${DB5_CONFIG} --enable-shared --enable-cxx --with-sysroot" + +# Override the MUTEX setting here, the POSIX library is +# the default - "POSIX/pthreads/library". +# Don't ignore the nice SWP instruction on the ARM: +# These enable the ARM assembler mutex code, this won't +# work with thumb compilation... +ARM_MUTEX = "--with-mutex=ARM/gcc-assembly" +MUTEX = "" +MUTEX_arm = "${ARM_MUTEX}" +MUTEX_armeb = "${ARM_MUTEX}" +EXTRA_OECONF += "${MUTEX} STRIP=true" +EXTRA_OEMAKE += "LIBTOOL='./${HOST_SYS}-libtool'" + +EXTRA_AUTORECONF += "--exclude=autoheader -I ${S}/dist/aclocal -I${S}/dist/aclocal_java" +AUTOTOOLS_SCRIPT_PATH = "${S}/dist" + +# Cancel the site stuff - it's set for db3 and destroys the +# configure. +CONFIG_SITE = "" + +oe_runconf_prepend() { + . ${S}/dist/RELEASE + # Edit version information we couldn't pre-compute. + sed -i -e "s/__EDIT_DB_VERSION_FAMILY__/$DB_VERSION_FAMILY/g" \ + -e "s/__EDIT_DB_VERSION_RELEASE__/$DB_VERSION_RELEASE/g" \ + -e "s/__EDIT_DB_VERSION_MAJOR__/$DB_VERSION_MAJOR/g" \ + -e "s/__EDIT_DB_VERSION_MINOR__/$DB_VERSION_MINOR/g" \ + -e "s/__EDIT_DB_VERSION_PATCH__/$DB_VERSION_PATCH/g" \ + -e "s/__EDIT_DB_VERSION_STRING__/$DB_VERSION_STRING/g" \ + -e "s/__EDIT_DB_VERSION_FULL_STRING__/$DB_VERSION_FULL_STRING/g" \ + -e "s/__EDIT_DB_VERSION_UNIQUE_NAME__/$DB_VERSION_UNIQUE_NAME/g" \ + -e "s/__EDIT_DB_VERSION__/$DB_VERSION/g" ${S}/dist/configure +} + +do_compile_prepend() { + # Stop libtool adding RPATHs + sed -i -e 's|hardcode_into_libs=yes|hardcode_into_libs=no|' ${B}/${HOST_SYS}-libtool +} + +do_install_append() { + mkdir -p ${D}/${includedir}/db51 + mv ${D}/${includedir}/db.h ${D}/${includedir}/db51/. + mv ${D}/${includedir}/db_cxx.h ${D}/${includedir}/db51/. + ln -s db51/db.h ${D}/${includedir}/db.h + ln -s db51/db_cxx.h ${D}/${includedir}/db_cxx.h + + # The docs end up in /usr/docs - not right. + if test -d "${D}/${prefix}/docs" + then + mkdir -p "${D}/${datadir}" + test ! -d "${D}/${docdir}" || rm -rf "${D}/${docdir}" + mv "${D}/${prefix}/docs" "${D}/${docdir}" + fi + + chown -R root:root ${D} +} + +INSANE_SKIP_${PN} = "dev-so" +INSANE_SKIP_${PN}-cxx = "dev-so" + +BBCLASSEXTEND = "native nativesdk" |