Make it possible to build webrtc for arm64.
- Bump revision of protobuf lib - Remove -Wextra for arm64 gcc targets (warnings in stlport) - Add MemoryBarrier implementation in single_rw_fifo.cc. - [pending 15619004]: Bump revision of /deps/tools/android to get md5sum_bin for arm64. BUG=chromium:354405,chromium:354539 R=andrew@webrtc.org, fischman@webrtc.org Review URL: https://webrtc-codereview.appspot.com/15629004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@6330 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
parent
6f237769b3
commit
c6db88b0cf
4
DEPS
4
DEPS
@ -108,7 +108,7 @@ deps = {
|
|||||||
Var("chromium_trunk") + "/deps/third_party/opus@256783",
|
Var("chromium_trunk") + "/deps/third_party/opus@256783",
|
||||||
|
|
||||||
"third_party/protobuf":
|
"third_party/protobuf":
|
||||||
Var("chromium_trunk") + "/src/third_party/protobuf@251211",
|
Var("chromium_trunk") + "/src/third_party/protobuf@" + Var("chromium_revision"),
|
||||||
|
|
||||||
"third_party/sqlite/":
|
"third_party/sqlite/":
|
||||||
Var("chromium_trunk") + "/src/third_party/sqlite@" + Var("chromium_revision"),
|
Var("chromium_trunk") + "/src/third_party/sqlite@" + Var("chromium_revision"),
|
||||||
@ -205,7 +205,7 @@ deps_os = {
|
|||||||
# Precompiled tools needed for Android test execution. Needed since we can't
|
# Precompiled tools needed for Android test execution. Needed since we can't
|
||||||
# compile them from source in WebRTC since they depend on Chromium's base.
|
# compile them from source in WebRTC since they depend on Chromium's base.
|
||||||
"tools/android":
|
"tools/android":
|
||||||
(Var("googlecode_url") % "webrtc") + "/deps/tools/android@4258",
|
(Var("googlecode_url") % "webrtc") + "/deps/tools/android@6306",
|
||||||
|
|
||||||
"third_party/android_tools":
|
"third_party/android_tools":
|
||||||
From("chromium_deps", "src/third_party/android_tools"),
|
From("chromium_deps", "src/third_party/android_tools"),
|
||||||
|
@ -189,13 +189,23 @@
|
|||||||
}, {
|
}, {
|
||||||
'conditions': [
|
'conditions': [
|
||||||
['os_posix==1', {
|
['os_posix==1', {
|
||||||
'cflags': [
|
'conditions': [
|
||||||
'-Wextra',
|
# -Wextra is currently disabled in Chromium's common.gypi. Enable
|
||||||
# We need to repeat some flags from Chromium's common.gypi here
|
# for targets that can handle it. For Android/arm64 right now
|
||||||
# that get overridden by -Wextra.
|
# there will be an 'enumeral and non-enumeral type in conditional
|
||||||
'-Wno-unused-parameter',
|
# expression' warning in android_tools/ndk_experimental's version
|
||||||
'-Wno-missing-field-initializers',
|
# of stlport.
|
||||||
'-Wno-strict-overflow',
|
# See: https://code.google.com/p/chromium/issues/detail?id=379699
|
||||||
|
['target_arch!="arm64" or OS!="android"', {
|
||||||
|
'cflags': [
|
||||||
|
'-Wextra',
|
||||||
|
# We need to repeat some flags from Chromium's common.gypi
|
||||||
|
# here that get overridden by -Wextra.
|
||||||
|
'-Wno-unused-parameter',
|
||||||
|
'-Wno-missing-field-initializers',
|
||||||
|
'-Wno-strict-overflow',
|
||||||
|
],
|
||||||
|
}],
|
||||||
],
|
],
|
||||||
'cflags_cc': [
|
'cflags_cc': [
|
||||||
'-Wnon-virtual-dtor',
|
'-Wnon-virtual-dtor',
|
||||||
|
@ -20,14 +20,16 @@ namespace webrtc {
|
|||||||
|
|
||||||
namespace subtle {
|
namespace subtle {
|
||||||
|
|
||||||
#if defined(__ARMEL__)
|
#if defined(__aarch64__)
|
||||||
// From http://src.chromium.org/viewvc/chrome/trunk/src/base/atomicops_internals_arm_gcc.h
|
// From http://http://src.chromium.org/viewvc/chrome/trunk/src/base/atomicops_internals_arm64_gcc.h
|
||||||
// Note that it is only the MemoryBarrier function that makes this class arm
|
|
||||||
// specific. Borrowing other MemoryBarrier implementations, this class could
|
|
||||||
// be extended to more platforms.
|
|
||||||
inline void MemoryBarrier() {
|
inline void MemoryBarrier() {
|
||||||
// Note: This is a function call, which is also an implicit compiler
|
__asm__ __volatile__ ("dmb ish" ::: "memory");
|
||||||
// barrier.
|
}
|
||||||
|
|
||||||
|
#elif defined(__ARMEL__)
|
||||||
|
// From http://src.chromium.org/viewvc/chrome/trunk/src/base/atomicops_internals_arm_gcc.h
|
||||||
|
inline void MemoryBarrier() {
|
||||||
|
// Note: This is a function call, which is also an implicit compiler barrier.
|
||||||
typedef void (*KernelMemoryBarrierFunc)();
|
typedef void (*KernelMemoryBarrierFunc)();
|
||||||
((KernelMemoryBarrierFunc)0xffff0fa0)();
|
((KernelMemoryBarrierFunc)0xffff0fa0)();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user