Revert "Merge cpu_features build targets into //system_wrappers."
This reverts commit 2b242d8fba59ccf67e4c5bcf5a1ea80917a23e1c. Reason for revert: Breaks downstream project. Original change's description: > Merge cpu_features build targets into //system_wrappers. > > Before this CL, functions declared in cpu_features_wrapper.h where > not defined in the same build target, causing brittle builds that > might fail at link time if the binary was not depending on > //system_wrappers (the target with the definitions), violating [1]. > > This CL moves everything into //system_wrappers and also moves > cpu_features_wrapper.h definitions from C to C++ (in order to be able > to add the definitions to a C++ build target like //system_wrappers). > > [1] - https://webrtc.googlesource.com/src/+/refs/heads/master/style-guide.md#h-cc-pairs > > Bug: None > Change-Id: I5a0009cddb17206b19f2a71eeba722faacc4bcae > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/183380 > Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> > Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#32039} TBR=mbonadei@webrtc.org,kwiberg@webrtc.org Change-Id: I4daa7582e55a0343eef72f08ed023c73e0b6456b No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: None Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/183443 Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Cr-Commit-Position: refs/heads/master@{#32040}
This commit is contained in:
committed by
Commit Bot
parent
2b242d8fba
commit
d156a0d061
@ -16,7 +16,6 @@ rtc_library("system_wrappers") {
|
||||
visibility = [ "*" ]
|
||||
sources = [
|
||||
"include/clock.h",
|
||||
"include/cpu_features_wrapper.h",
|
||||
"include/cpu_info.h",
|
||||
"include/ntp_time.h",
|
||||
"include/rtp_to_ntp_estimator.h",
|
||||
@ -31,6 +30,7 @@ rtc_library("system_wrappers") {
|
||||
defines = []
|
||||
libs = []
|
||||
deps = [
|
||||
":cpu_features_api",
|
||||
"../api:array_view",
|
||||
"../api/units:timestamp",
|
||||
"../modules:module_api_public",
|
||||
@ -50,8 +50,7 @@ rtc_library("system_wrappers") {
|
||||
"/nsprpub/pr/include",
|
||||
]
|
||||
} else {
|
||||
sources += [ "source/cpu_features_android.cc" ]
|
||||
deps += [ "//third_party/android_sdk:cpu_features" ]
|
||||
deps += [ ":cpu_features_android" ]
|
||||
}
|
||||
|
||||
libs += [ "log" ]
|
||||
@ -59,7 +58,7 @@ rtc_library("system_wrappers") {
|
||||
|
||||
if (is_linux) {
|
||||
if (!build_with_chromium) {
|
||||
sources += [ "source/cpu_features_linux.cc" ]
|
||||
deps += [ ":cpu_features_linux" ]
|
||||
}
|
||||
|
||||
libs += [ "rt" ]
|
||||
@ -79,6 +78,10 @@ rtc_library("system_wrappers") {
|
||||
]
|
||||
}
|
||||
|
||||
rtc_source_set("cpu_features_api") {
|
||||
sources = [ "include/cpu_features_wrapper.h" ]
|
||||
}
|
||||
|
||||
rtc_library("field_trial") {
|
||||
visibility = [ "*" ]
|
||||
public = [ "include/field_trial.h" ]
|
||||
@ -108,6 +111,24 @@ rtc_library("metrics") {
|
||||
]
|
||||
}
|
||||
|
||||
if (is_android && !build_with_mozilla) {
|
||||
rtc_library("cpu_features_android") {
|
||||
sources = [ "source/cpu_features_android.c" ]
|
||||
|
||||
deps = [ "//third_party/android_sdk:cpu_features" ]
|
||||
}
|
||||
}
|
||||
|
||||
if (is_linux) {
|
||||
rtc_library("cpu_features_linux") {
|
||||
sources = [ "source/cpu_features_linux.c" ]
|
||||
deps = [
|
||||
":cpu_features_api",
|
||||
"../rtc_base/system:arch",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
if (rtc_include_tests) {
|
||||
rtc_test("system_wrappers_unittests") {
|
||||
testonly = true
|
||||
|
||||
@ -13,6 +13,10 @@
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#if defined(__cplusplus) || defined(c_plusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// List of features in x86.
|
||||
typedef enum { kSSE2, kSSE3, kAVX2 } CPUFeature;
|
||||
|
||||
@ -37,4 +41,8 @@ extern WebRtc_CPUInfo WebRtc_GetCPUInfoNoASM;
|
||||
// values in the above enum definition as a bitmask.
|
||||
extern uint64_t WebRtc_GetCPUFeaturesARM(void);
|
||||
|
||||
#if defined(__cplusplus) || defined(c_plusplus)
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
#endif // SYSTEM_WRAPPERS_INCLUDE_CPU_FEATURES_WRAPPER_H_
|
||||
|
||||
@ -8,9 +8,9 @@
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#include <features.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <features.h>
|
||||
|
||||
#ifdef __GLIBC_PREREQ
|
||||
#define WEBRTC_GLIBC_PREREQ(a, b) __GLIBC_PREREQ(a, b)
|
||||
@ -21,10 +21,10 @@
|
||||
#if WEBRTC_GLIBC_PREREQ(2, 16)
|
||||
#include <sys/auxv.h>
|
||||
#else
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <link.h>
|
||||
#include <unistd.h>
|
||||
#include <errno.h>
|
||||
#include <link.h>
|
||||
#endif
|
||||
|
||||
#include "rtc_base/system/arch.h"
|
||||
@ -36,7 +36,7 @@
|
||||
uint64_t WebRtc_GetCPUFeaturesARM(void) {
|
||||
uint64_t result = 0;
|
||||
int architecture = 0;
|
||||
uint64_t hwcap = 0;
|
||||
unsigned long hwcap = 0;
|
||||
const char* platform = NULL;
|
||||
#if WEBRTC_GLIBC_PREREQ(2, 16)
|
||||
hwcap = getauxval(AT_HWCAP);
|
||||
Reference in New Issue
Block a user