From daf21e6a62a009e49d425ea9322a1c7bfbc3e1bd Mon Sep 17 00:00:00 2001 From: klzgrad Date: Thu, 25 Jan 2018 07:50:56 -0500 Subject: [PATCH] build: Trim libevent usage Use system libevent on Linux. Remove extra libs on other platforms. --- base/BUILD.gn | 10 +++++++++- base/message_loop/message_pump_libevent.cc | 7 ++++++- tools/gn/bootstrap/bootstrap.py | 13 ++----------- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/base/BUILD.gn b/base/BUILD.gn index 28ebd2cd45..51976627aa 100644 --- a/base/BUILD.gn +++ b/base/BUILD.gn @@ -1126,6 +1126,7 @@ jumbo_component("base") { all_dependent_configs = [] defines = [] data = [] + libs = [] configs += [ ":base_flags", @@ -1512,6 +1513,8 @@ jumbo_component("base") { ":base_win_linker_flags", "//tools/win/DebugVisualizers:chrome", ] + } else if (is_linux) { + libs += [ "event_core" ] } else if ((!is_nacl && !is_fuchsia) || is_nacl_nonsfi) { # Non-Windows. deps += [ "//base/third_party/libevent" ] @@ -2327,6 +2330,7 @@ test("base_unittests") { ] defines = [] + libs = [] deps = [ ":base", @@ -2440,7 +2444,11 @@ test("base_unittests") { if (is_posix && !is_ios && !is_fuchsia) { sources += [ "message_loop/message_pump_libevent_unittest.cc" ] - deps += [ "//base/third_party/libevent" ] + if (is_linux) { + libs += [ "event_core" ] + } else { + deps += [ "//base/third_party/libevent" ] + } } if (is_fuchsia) { diff --git a/base/message_loop/message_pump_libevent.cc b/base/message_loop/message_pump_libevent.cc index dc5efc6921..bbc91f0a7e 100644 --- a/base/message_loop/message_pump_libevent.cc +++ b/base/message_loop/message_pump_libevent.cc @@ -14,7 +14,6 @@ #include "base/files/file_util.h" #include "base/logging.h" #include "base/posix/eintr_wrapper.h" -#include "base/third_party/libevent/event.h" #include "base/time/time.h" #include "base/trace_event/trace_event.h" #include "build/build_config.h" @@ -23,6 +22,12 @@ #include "base/mac/scoped_nsautorelease_pool.h" #endif +#if defined(OS_LINUX) +#include +#else +#include "base/third_party/libevent/event.h" +#endif + // Lifecycle of struct event // Libevent uses two main data structures: // struct event_base (of which there is one per message pump), and diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py index c4dd5d2d3d..ecc0b8b4a0 100755 --- a/tools/gn/bootstrap/bootstrap.py +++ b/tools/gn/bootstrap/bootstrap.py @@ -626,16 +626,13 @@ def write_gn_ninja(path, root_gen_dir, options): 'base/time/time_conversion_posix.cc', 'base/trace_event/heap_profiler_allocation_register_posix.cc', ]) + if not is_linux: static_libraries['libevent'] = { 'sources': [ 'base/third_party/libevent/buffer.c', 'base/third_party/libevent/evbuffer.c', - 'base/third_party/libevent/evdns.c', 'base/third_party/libevent/event.c', - 'base/third_party/libevent/event_tagging.c', - 'base/third_party/libevent/evrpc.c', 'base/third_party/libevent/evutil.c', - 'base/third_party/libevent/http.c', 'base/third_party/libevent/log.c', 'base/third_party/libevent/poll.c', 'base/third_party/libevent/select.c', @@ -679,13 +676,7 @@ def write_gn_ninja(path, root_gen_dir, options): 'base/allocator/allocator_shim.cc', 'base/allocator/allocator_shim_default_dispatch_to_glibc.cc', ]) - libs.extend(['-lrt', '-latomic']) - static_libraries['libevent']['include_dirs'].extend([ - os.path.join(SRC_ROOT, 'base', 'third_party', 'libevent', 'linux') - ]) - static_libraries['libevent']['sources'].extend([ - 'base/third_party/libevent/epoll.c', - ]) + libs.extend(['-lrt', '-latomic', '-levent_core']) else: libs.extend(['-lrt']) static_libraries['base']['sources'].extend([