mongodb: Fix build on aarch64

Inherit dos2unix since some files patched are in dos format

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
This commit is contained in:
Khem Raj
2017-09-21 21:08:27 -07:00
committed by Martin Jansa
parent db68fbc784
commit 06e8aa6bda
4 changed files with 133 additions and 1 deletions
@@ -0,0 +1,36 @@
From fbfceebce2121831904f2f7115252dd03b413a6d Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 19 Sep 2017 18:52:53 -0700
Subject: [PATCH] IntelRDFPMathLib20U1: Check for __DEFINED_wchar_t
This is defined by musl if wchar_t is already defined
avoids errors like
src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h:46:15: error: typedef redefinition with different types
('int' vs 'unsigned int')
typedef int wchar_t;
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
Upstream-Status: Pending
src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h b/src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h
index 2b3f76db86..cc80305775 100755
--- a/src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h
+++ b/src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h
@@ -42,7 +42,7 @@
#include <ctype.h>
// Fix system header issue on Sun solaris and define required type by ourselves
-#if !defined(_WCHAR_T) && !defined(_WCHAR_T_DEFINED) && !defined(__QNX__)
+#if !defined(_WCHAR_T) && !defined(_WCHAR_T_DEFINED) && !defined(__QNX__) && !defined(__DEFINED_wchar_t)
typedef int wchar_t;
#endif
--
2.14.1
@@ -0,0 +1,43 @@
Add alises for arm64 which is same as aarch64
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Upstream-Status: Pending
Index: git/SConstruct
===================================================================
--- git.orig/SConstruct
+++ git/SConstruct
@@ -990,6 +990,7 @@ elif endian == "big":
processor_macros = {
'arm' : { 'endian': 'little', 'defines': ('__arm__',) },
'aarch64' : { 'endian': 'little', 'defines': ('__arm64__', '__aarch64__')},
+ 'arm64' : { 'endian': 'little', 'defines': ('__arm64__', '__aarch64__')},
'i386' : { 'endian': 'little', 'defines': ('__i386', '_M_IX86')},
'ppc64le' : { 'endian': 'little', 'defines': ('__powerpc64__',)},
's390x' : { 'endian': 'big', 'defines': ('__s390x__',)},
Index: git/src/third_party/IntelRDFPMathLib20U1/SConscript
===================================================================
--- git.orig/src/third_party/IntelRDFPMathLib20U1/SConscript
+++ git/src/third_party/IntelRDFPMathLib20U1/SConscript
@@ -301,7 +301,7 @@ if processor == 'i386':
elif processor == 'arm':
cpp_defines['IA32'] = '1'
cpp_defines['ia32'] = '1'
-elif processor == "aarch64":
+elif processor == "aarch64" or processor == 'arm64':
cpp_defines['efi2'] = '1'
cpp_defines['EFI2'] = '1'
# Using 64 bit little endian
Index: git/src/third_party/wiredtiger/SConscript
===================================================================
--- git.orig/src/third_party/wiredtiger/SConscript
+++ git/src/third_party/wiredtiger/SConscript
@@ -139,7 +139,7 @@ condition_map = {
'POSIX_HOST' : not env.TargetOSIs('windows'),
'WINDOWS_HOST' : env.TargetOSIs('windows'),
- 'ARM64_HOST' : env['TARGET_ARCH'] == 'aarch64',
+ 'ARM64_HOST' : env['TARGET_ARCH'] in ('aarch64', 'arm64'),
'POWERPC_HOST' : env['TARGET_ARCH'] == 'ppc64le',
'X86_HOST' : env['TARGET_ARCH'] == 'x86_64',
'ZSERIES_HOST' : env['TARGET_ARCH'] == 's390x',
@@ -0,0 +1,50 @@
imported from debian
Upstream-Status: Pending
Index: git/src/third_party/wiredtiger/SConscript
===================================================================
--- git.orig/src/third_party/wiredtiger/SConscript
+++ git/src/third_party/wiredtiger/SConscript
@@ -169,7 +169,9 @@ if useSnappy:
# If not available at runtime, we fall back to software in some cases.
#
# On zSeries we may disable because SLES 11 kernel doe not support the instructions.
-if not (env['TARGET_ARCH'] == 's390x' and get_option("use-s390x-crc32") == "off"):
+# Debian: disable hardware-assisted crc32 on s390x and arm64, as at least the
+# buildd's do not support the instructions.
+if env['TARGET_ARCH'] not in ('s390x', 'arm64', 'aarch64'):
env.Append(CPPDEFINES=["HAVE_CRC32_HARDWARE"])
wtlib = env.Library(
Index: git/src/third_party/wiredtiger/dist/filelist
===================================================================
--- git.orig/src/third_party/wiredtiger/dist/filelist
+++ git/src/third_party/wiredtiger/dist/filelist
@@ -54,7 +54,6 @@ src/checksum/power8/crc32_wrapper.c POWE
src/checksum/software/checksum.c
src/checksum/x86/crc32-x86.c X86_HOST
src/checksum/zseries/crc32-s390x.c ZSERIES_HOST
-src/checksum/zseries/crc32le-vx.sx ZSERIES_HOST
src/config/config.c
src/config/config_api.c
src/config/config_check.c
Index: git/src/third_party/wiredtiger/src/checksum/zseries/crc32-s390x.c
===================================================================
--- git.orig/src/third_party/wiredtiger/src/checksum/zseries/crc32-s390x.c
+++ git/src/third_party/wiredtiger/src/checksum/zseries/crc32-s390x.c
@@ -78,6 +78,7 @@ unsigned int __wt_crc32c_le(unsigned int
return crc; \
}
+#if defined(HAVE_CRC32_HARDWARE)
/* Main CRC-32 functions */
DEFINE_CRC32_VX(__wt_crc32c_le_vx, __wt_crc32c_le_vgfm_16, __wt_crc32c_le)
@@ -90,6 +91,7 @@ __wt_checksum_hw(const void *chunk, size
{
return (~__wt_crc32c_le_vx(0xffffffff, chunk, len));
}
+#endif
#endif
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://GNU-AGPL-3.0.txt;md5=73f1eb20517c55bf9493b7dd6e480788
DEPENDS = "openssl libpcre libpcap zlib python boost"
inherit scons
inherit scons dos2unix
PV = "3.4.6+git${SRCPV}"
SRCREV = "c55eb86ef46ee7aede3b1e2a5d184a7df4bfb5b5"
@@ -18,6 +18,9 @@ SRC_URI = "git://github.com/mongodb/mongo.git;branch=v3.4 \
file://0001-Use-strerror_r-only-on-glibc-systems.patch \
file://0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch \
file://0003-Conditionalize-glibc-specific-strerror_r.patch \
file://arm64-support.patch \
file://0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch \
file://disable-hw-crc32-on-arm64-s390x.patch \
"
SRC_URI_append_libc-musl ="\
file://0004-wiredtiger-Disable-strtouq-on-musl.patch \