Compile //net with jumbo |
|||
Issue description//net is one of the top 10 most time consuming modules to compile with 30 CPU minutes so it would benefit from being jumbo compiled. Net is a little bit less trivial than much other code because of the multiple versions of certain code. Specifically certificates is a problem. Still, maybe the code can be cleaned up at the same time. A quick hack (jumbo_excluded_sources on a lot of colliding code) changed the time consumption from 30 CPU minutes to 9. That is a smaller improvement than other code, but still 3x faster. 30 CPU minutes is about 5% of the total compilation time of chrome+content_shell+blink_tests, with a lot of the other code jumbified. It's about 3% of the compilation time on master with use_jumbo_build=true, and it's about 1.5% of the compilation on master with use_jumbo_build=false.
,
Oct 9 2017
Can you provide an example config with the jumbo_excluded_sources value that you are using? This sounds like an incremental task to me, where each file removed from jumbo_excluded_sources due to fixing collisions (like by renaming stuff in anonymous namespace etc.) leads to some incremental improvement.
,
Oct 9 2017
I put the "WIP" (not really WIP, more like a hack to proceed) in https://chromium-review.googlesource.com/c/chromium/src/+/707242 Extract: jumbo_excluded_sources = [] if (!is_nacl) { jumbo_excluded_sources += [ # Something with templates and Entry classes. "disk_cache/net_log_parameters.cc", # Too many WriteResult enums. "disk_cache/simple/simple_entry_impl.cc", # Too many RecordWriteResult. "disk_cache/simple/simple_synchronous_entry.cc", # Same UMA macro CACHE_UMA_BACKEND_IMPL_OBJ in both entry_impl.cc # and backend_impl.cc "disk_cache/blockfile/entry_impl.cc", "disk_cache/blockfile/backend_impl.cc", "disk_cache/blockfile/eviction.cc", # cubic_bytes.cc, cubic.cc, tcp_cubic_sender_base.cc, # tcp_cubic_sender_packets.cc and tcp_cubic_sender_bytes.cc use # the same constants (many) "quic/core/congestion_control/cubic_bytes.cc", "quic/core/congestion_control/cubic.cc", "quic/core/congestion_control/tcp_cubic_sender_packets.cc", "quic/core/congestion_control/tcp_cubic_sender_bytes.cc", # Using the same functions, same constants. "quic/core/crypto/aes_128_gcm_12_decrypter.cc", "quic/core/crypto/aes_128_gcm_12_encrypter.cc", # Using the same constants. "quic/core/crypto/chacha20_poly1305_decrypter.cc", "quic/core/crypto/chacha20_poly1305_encrypter.cc", # Same RETURN_STRING_LITERAL as quic/core/crypto/crypto_utils.cc "quic/core/quic_error_codes.cc", "quic/core/quic_utils.cc", # Too many kReadBufferSize "quic/core/quic_spdy_session.cc", "spdy/chromium/spdy_session.cc", # Not C++ "http2/hpack/hpack_static_table_entries.inc", # Too many (identical) ScopedBoolSaver classes. # Also in quic_chromium_client_stream.cc. "quic/chromium/bidirectional_stream_quic_impl.cc", # Too many kExpirationKey and NetLogCallback. "http/http_server_properties_manager.cc", # HttpBasicState::read_buf() mising. "http/http_basic_state.cc", # Too many kValueSeparator. "cookies/parsed_cookie.cc", ] jumbo_excluded_sources += [ # Symbols (GetSequenceValue) "cert/x509_certificate_bytes.cc", ] if (use_nss_certs) { jumbo_excluded_sources += [ # NSS and BoringSSL share header defines "ssl/client_cert_store_nss.cc", "ssl/ssl_platform_key_nss.cc", "third_party/nss/ssl/cmpcert.cc", "third_party/mozilla_security_manager/nsNSSCertificateDB.cpp", "third_party/mozilla_security_manager/nsPKCS12Blob.cpp", "cert/cert_verify_proc.cc", "cert/cert_verify_proc_nss.cc", "cert/ev_root_ca_metadata.cc", "cert/internal/system_trust_store.cc", "cert/internal/trust_store_nss.cc", "cert/known_roots_nss.cc", "cert/nss_cert_database.cc", "cert/test_root_certs.cc", "cert/test_root_certs_nss.cc", "cert/x509_certificate_nss.cc", "cert/x509_util_nss.cc", ] } if (is_posix) { jumbo_excluded_sources += [ # Uses <linux/if.h> which has the same defines as <net/if.h> "base/network_interfaces_posix.cc", "base/network_interfaces_linux.cc", # IFF_LOWER_UP or IF_OPER_UP? "base/address_tracker_linux.cc", ] } } Then there are a number of files where I did a hack in the source instead of adding to jumbo_excluded_sources. I don't do that anymore but it's needed to figure out the final potential. For an outsider, //net is probably the most complicated code part I've encountered. Multiple alternative variants of similar code (certificates, protocols) makes it quite common with similar names and only someone that knows the code can probably make the correct solution quickly.
,
Oct 12 2017
I'm marking this Available since it sounds like we generally understand what needs to happen, and also adding the components that have a lot of files listed here.
,
Oct 12 2017
I don't think I understand the requirements of jumbo. Are they specified somewhere? I guess it sounds like two different .cc files can have the same constants, even if defined in different anonymous namespaces? If there's any context, I'd appreciate it.
,
Oct 12 2017
re: Comment 5: jumbo copies the multiple .cc files into a single .cc file - meaning yes, anonymous namespace conflicts become Jumbo issues. I'm not sure how I feel about this, given what it means for the pattern of using anonymous namespaces, but that's the tradeoff for jumbo.
,
Oct 13 2017
Jumbo is a Chromium implementation of a unity build system where multiple cc files are merged before compilation to overcome the overhead of normal C++ compilation. This project started because compilation times had reached unsustainable levels. It takes 3 hours on a normal good computer to compile Chrome. For people working inside Google this is fixed by goma and brute force, but the rest of the world is not so blessed. This is fully supported in blink (13x faster compilation) and v8 (4x faster compilation) but is not enabled in CQ so it still breaks some time every week but someone fixes that within a few hours. The work necessary to make jumbo work is to ensure that symbols don't clash when files merge. Depending on circumstances the change could be very different. The most common options: * Deduplicate code. * Rename things. * Wrap in custom namespaces (useful for tests which don't export any symbols). * Exclude files from jumbo. From my perspective //net is not the easiest module by far, but then I really am not familiar with the code. Way higher frequency of symbol clashes and some of them look distinctly non-trivial. I filed this bug to have something to refer to for a necessary jumbo fix (see #1 above) but don't consider it urgent since there are much more low-hanging fruit. We'll get to //net eventually. Docs: High level official doc: https://chromium.googlesource.com/chromium/src/+/master/docs/jumbo.md More thorough "every corner" doc: https://docs.google.com/document/d/19jGsZxh7DX8jkAKbL1nYBa5rcByUL2EeidnYsoXfsYQ/edit#heading=h.vj8fwwypadkk BlinkOn lightning talk presentation: https://docs.google.com/presentation/d/1zc7pJmvjwoXH5j5JezjLLrTd8hIFMPVDGSKvHw8iHl8/edit#slide=id.p
,
Mar 21 2018
,
Jun 28 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f90a0855264592f514c1dd8529460f01f5e93bf0 commit f90a0855264592f514c1dd8529460f01f5e93bf0 Author: Oscar Johansson <oscarj@opera.com> Date: Thu Jun 28 07:38:11 2018 Resolve issues with WRITE_RESULT constants (net/) When building using jumbo the WRITE_RESULT constants defined in net/disk_cache/memory/mem_entry_impl.cc and in net/disk_cache/simple/simple_entry_impl.cc conflict with each other. This commit solves the issue by renaming the constants to something more file specific. Bug: 772146 Change-Id: I118bea2e4943983975640ce178a48adb597f25f3 Reviewed-on: https://chromium-review.googlesource.com/1117066 Reviewed-by: Josh Karlin <jkarlin@chromium.org> Commit-Queue: Oscar Johansson <oscarj@opera.com> Cr-Commit-Position: refs/heads/master@{#571042} [modify] https://crrev.com/f90a0855264592f514c1dd8529460f01f5e93bf0/net/disk_cache/memory/mem_entry_impl.cc [modify] https://crrev.com/f90a0855264592f514c1dd8529460f01f5e93bf0/net/disk_cache/simple/simple_entry_impl.cc
,
Jun 29 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/dc3775fa95e83952acf8e2eb51072579be5694dc commit dc3775fa95e83952acf8e2eb51072579be5694dc Author: Oscar Johansson <oscarj@opera.com> Date: Fri Jun 29 07:23:41 2018 Resolve ENDPOINT macro conflict (net/) The macro ENDPOINT is defined inside namespaces in: net/third_party/quic/core/quic_connection.cc net/third_party/quic/core/quic_crypto_handshaker.cc net/third_party/quic/core/quic_crypto_stream.cc net/third_party/quic/core/quic_data_reader.cc net/third_party/quic/core/quic_framer.cc net/third_party/quic/core/quic_packet_creator.cc net/third_party/quic/core/quic_sent_packet_manager.cc net/third_party/quic/core/quic_session.cc net/third_party/quic/core/quic_spdy_stream.cc When building using jumbo these end up in the same namspace and conflict. This commit solves the issue by undefining the macro inside the namespace. Bug: 772146 Change-Id: Ie85920ac632dd90402afc2276ed30fff8609d9be Reviewed-on: https://chromium-review.googlesource.com/1118220 Reviewed-by: Josh Karlin <jkarlin@chromium.org> Commit-Queue: Oscar Johansson <oscarj@opera.com> Cr-Commit-Position: refs/heads/master@{#571418} [modify] https://crrev.com/dc3775fa95e83952acf8e2eb51072579be5694dc/net/third_party/quic/core/quic_connection.cc [modify] https://crrev.com/dc3775fa95e83952acf8e2eb51072579be5694dc/net/third_party/quic/core/quic_crypto_handshaker.cc [modify] https://crrev.com/dc3775fa95e83952acf8e2eb51072579be5694dc/net/third_party/quic/core/quic_crypto_stream.cc [modify] https://crrev.com/dc3775fa95e83952acf8e2eb51072579be5694dc/net/third_party/quic/core/quic_data_reader.cc [modify] https://crrev.com/dc3775fa95e83952acf8e2eb51072579be5694dc/net/third_party/quic/core/quic_framer.cc [modify] https://crrev.com/dc3775fa95e83952acf8e2eb51072579be5694dc/net/third_party/quic/core/quic_packet_creator.cc [modify] https://crrev.com/dc3775fa95e83952acf8e2eb51072579be5694dc/net/third_party/quic/core/quic_sent_packet_manager.cc [modify] https://crrev.com/dc3775fa95e83952acf8e2eb51072579be5694dc/net/third_party/quic/core/quic_session.cc [modify] https://crrev.com/dc3775fa95e83952acf8e2eb51072579be5694dc/net/third_party/quic/core/quic_spdy_stream.cc
,
Jun 29 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4437633bdfd4f28769a401afafc96a158c0ce6f2 commit 4437633bdfd4f28769a401afafc96a158c0ce6f2 Author: Oscar Johansson <oscarj@opera.com> Date: Fri Jun 29 12:59:04 2018 Resolve RETURN_STRING_LITERAL macro conflict (net) The macro RETURN_STRING_LITERAL is defined in namespaces in: net/third_party/quic/core/crypto/crypto_utils.cc net/third_party/quic/core/quic_error_codes.cc net/third_party/quic/core/quic_utils.cc net/third_party/quic/core/quic_versions.cc When building using jumbo these end up in the same namspace and conflict. This commit solves the issue by undefining the macro inside the namespace. Bug: 772146 Change-Id: Ibb07acd829f8ad2867748d1db8aba5aa59a39e47 Reviewed-on: https://chromium-review.googlesource.com/1118222 Reviewed-by: Josh Karlin <jkarlin@chromium.org> Commit-Queue: Oscar Johansson <oscarj@opera.com> Cr-Commit-Position: refs/heads/master@{#571450} [modify] https://crrev.com/4437633bdfd4f28769a401afafc96a158c0ce6f2/net/third_party/quic/core/crypto/crypto_utils.cc [modify] https://crrev.com/4437633bdfd4f28769a401afafc96a158c0ce6f2/net/third_party/quic/core/quic_error_codes.cc [modify] https://crrev.com/4437633bdfd4f28769a401afafc96a158c0ce6f2/net/third_party/quic/core/quic_utils.cc [modify] https://crrev.com/4437633bdfd4f28769a401afafc96a158c0ce6f2/net/third_party/quic/core/quic_versions.cc
,
Jun 29 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/254200e3f859b17fa61256cae36bc650d9788a56 commit 254200e3f859b17fa61256cae36bc650d9788a56 Author: Oscar Johansson <oscarj@opera.com> Date: Fri Jun 29 13:20:45 2018 Rename kBeta to be unique (net/) When building using Jumbo unnamed namespaces gets merged and variables with the same name conflict. This happens for the variables kBeta in: net/third_party/quic/core/congestion_control/cubic_bytes.cc net/third_party/quic/core/congestion_control/rtt_stats.cc This commit solves the issue by renaming kBeta in net/third_party/quic/core/congestion_control/cubic_bytes.cc to kDefaultCubicBackoffFactor to avoid the conflict and to give the variable a more descriptive name. Bug: 772146 Change-Id: Ibc2e6732d2c5fa70672a73e7b6669d8b71f581d1 Reviewed-on: https://chromium-review.googlesource.com/1119691 Reviewed-by: Josh Karlin <jkarlin@chromium.org> Commit-Queue: Oscar Johansson <oscarj@opera.com> Cr-Commit-Position: refs/heads/master@{#571452} [modify] https://crrev.com/254200e3f859b17fa61256cae36bc650d9788a56/net/third_party/quic/core/congestion_control/cubic_bytes.cc
,
Jun 29 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/eafa82dbcb12502a4adb3edf98784147ca16ce16 commit eafa82dbcb12502a4adb3edf98784147ca16ce16 Author: Oscar Johansson <oscarj@opera.com> Date: Fri Jun 29 13:22:14 2018 Resolve macro CACHE_UMA_BACKEND_IMPL_OBJ (net/) The macro CACHE_UMA_BACKEND_IMP_OBJ is defined in: net/disk_cache/blockfile/backend_impl.cc net/disk_cache/blockfile/entry_impl.cc When building using jumbo these end up in the same scope and conflict. This commit solves the issue by undefining the macro at the end of the file. Bug: 772146 Change-Id: Ib888216156c3054616f6e906e6c23a648154d2d9 Reviewed-on: https://chromium-review.googlesource.com/1118273 Reviewed-by: Josh Karlin <jkarlin@chromium.org> Commit-Queue: Oscar Johansson <oscarj@opera.com> Cr-Commit-Position: refs/heads/master@{#571453} [modify] https://crrev.com/eafa82dbcb12502a4adb3edf98784147ca16ce16/net/disk_cache/blockfile/backend_impl.cc [modify] https://crrev.com/eafa82dbcb12502a4adb3edf98784147ca16ce16/net/disk_cache/blockfile/entry_impl.cc
,
Jul 2
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/73ca25e7fcfff0e668732c4e948447f886a9555c commit 73ca25e7fcfff0e668732c4e948447f886a9555c Author: Oscar Johansson <oscarj@opera.com> Date: Mon Jul 02 04:17:15 2018 Move kMaxSegmentSize to constant file (net/) When building using Jumbo unnamed namespaces gets merged and variables with the same name conflict. This happens for the variables kMaxSegmentsSize in: net/third_party/quic/core/congestion_control/bbr_sender.cc net/third_party/quic/core/congestion_control/prr_sender.cc This commit solves the issue by moving the constant to net/third_party/quic/core/quic_constants.h. Bug: 772146 Change-Id: I07da21c2bc8c96f6ed5cc83e2724ae948d80a9be Reviewed-on: https://chromium-review.googlesource.com/1119689 Commit-Queue: Ryan Hamilton <rch@chromium.org> Reviewed-by: Ryan Hamilton <rch@chromium.org> Cr-Commit-Position: refs/heads/master@{#571814} [modify] https://crrev.com/73ca25e7fcfff0e668732c4e948447f886a9555c/net/third_party/quic/core/congestion_control/bbr_sender.cc [modify] https://crrev.com/73ca25e7fcfff0e668732c4e948447f886a9555c/net/third_party/quic/core/congestion_control/prr_sender.cc [modify] https://crrev.com/73ca25e7fcfff0e668732c4e948447f886a9555c/net/third_party/quic/core/quic_constants.h
,
Jul 2
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/63e83cf358324161569b74629553effae178c9c2 commit 63e83cf358324161569b74629553effae178c9c2 Author: Oscar Johansson <oscarj@opera.com> Date: Mon Jul 02 08:47:26 2018 Move kVlog constants to util file (net/) When building using jumbo unnamed namespaces gets merged and variables with the same name conflict. This happens for the variable kVlogSetCookies in net/cookies/canonical_cookie.cc and net/cookies/cookie_monster.cc. This commit solves the issue by moving the variable definition to net/cookies/cookie_util.h. Other kVlog variables defined in net/cookies/cookie_monster.cc are also moved. Bug: 772146 Change-Id: I850c27406f687dfffcf682b0957a41ecbeaca291 Reviewed-on: https://chromium-review.googlesource.com/1118382 Reviewed-by: Maks Orlovich <morlovich@chromium.org> Commit-Queue: Oscar Johansson <oscarj@opera.com> Cr-Commit-Position: refs/heads/master@{#571842} [modify] https://crrev.com/63e83cf358324161569b74629553effae178c9c2/net/cookies/canonical_cookie.cc [modify] https://crrev.com/63e83cf358324161569b74629553effae178c9c2/net/cookies/cookie_monster.cc [modify] https://crrev.com/63e83cf358324161569b74629553effae178c9c2/net/cookies/cookie_util.h
,
Jul 2
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6fdf89d459260449b6de4c942d1999f27b27302c commit 6fdf89d459260449b6de4c942d1999f27b27302c Author: Oscar Johansson <oscarj@opera.com> Date: Mon Jul 02 09:14:04 2018 Rename function ParseCertificate to be unique (net/) When building using Jumbo unnamed namespaces gets merged and functions with the same name conflict. This happens for the function kParseCertificate defined in: net/cert/internal/ocsp.cc net/cert/internal/parse_certificate.cc This commit solves the issue by renaming the function in net/cert/internal/ocsp.cc. Bug: 772146 Change-Id: I071682c8f330183f637a7985061980b6aa34c93a Reviewed-on: https://chromium-review.googlesource.com/1119911 Reviewed-by: Josh Karlin <jkarlin@chromium.org> Commit-Queue: Oscar Johansson <oscarj@opera.com> Cr-Commit-Position: refs/heads/master@{#571848} [modify] https://crrev.com/6fdf89d459260449b6de4c942d1999f27b27302c/net/cert/internal/ocsp.cc
,
Jul 2
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d49464ef68b1836e18b61ce27d9beeddbb3a69b8 commit d49464ef68b1836e18b61ce27d9beeddbb3a69b8 Author: Oscar Johansson <oscarj@opera.com> Date: Mon Jul 02 09:35:45 2018 Rename kNoPendingResult to be unique (net/) When building using Jumbo unnamed namespaces gets merged and variables with the same name conflict. This happens for the variables kNoPendingResult in: net/socket/ssl_client_socket_impl.cc net/socket/ssl_server_socket_impl.cc This commit solves the issue by renaming the constants to something more file specific. Bug: 772146 Change-Id: I918d551970e249fbb5e0bfadf0ebaeae99ffebcb Reviewed-on: https://chromium-review.googlesource.com/1119916 Reviewed-by: Josh Karlin <jkarlin@chromium.org> Commit-Queue: Oscar Johansson <oscarj@opera.com> Cr-Commit-Position: refs/heads/master@{#571852} [modify] https://crrev.com/d49464ef68b1836e18b61ce27d9beeddbb3a69b8/net/socket/ssl_client_socket_impl.cc [modify] https://crrev.com/d49464ef68b1836e18b61ce27d9beeddbb3a69b8/net/socket/ssl_server_socket_impl.cc
,
Jul 2
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/20e724dd153bae2b4656435513bfc609e63299e5 commit 20e724dd153bae2b4656435513bfc609e63299e5 Author: Oscar Johansson <oscarj@opera.com> Date: Mon Jul 02 13:50:03 2018 Remove "using base::File" to avoid conflict (net/) When building using Jumbo namespace aliases with the same name may end up in the same unit, causing a conflict at compilation. This happens for base::File and disk_cache::File in: net/disk_cache/simple/simple_index_file.cc net/disk_cache/simple/simple_synchronous_entry.cc This commit removes "using base::File" and instead call the namespace by its full name. Bug: 772146 Change-Id: I7385edf04bc23d519ee8800bc4941807a85340ad Reviewed-on: https://chromium-review.googlesource.com/1120252 Reviewed-by: Josh Karlin <jkarlin@chromium.org> Commit-Queue: Oscar Johansson <oscarj@opera.com> Cr-Commit-Position: refs/heads/master@{#571880} [modify] https://crrev.com/20e724dd153bae2b4656435513bfc609e63299e5/net/disk_cache/simple/simple_index_file.cc [modify] https://crrev.com/20e724dd153bae2b4656435513bfc609e63299e5/net/disk_cache/simple/simple_synchronous_entry.cc
,
Jul 2
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b052f3915c65971b4277ac792b1fc0cdc5a165f1 commit b052f3915c65971b4277ac792b1fc0cdc5a165f1 Author: Oscar Johansson <oscarj@opera.com> Date: Mon Jul 02 13:50:07 2018 Rename function NetLogEntryCreationCallback (net/) When building using Jumbo namespaces with the same name gets merged and functions with the same name conflict. This happens for the function NetLogEntryCreationCallback in: net/disk_cache/net_log_parameters.h net/disk_cache/memory/mem_entry_impl.cc This commit solves the issue by renaming the function in net/disk_cache/net_log_parameters. Also renames CreateNetLogEntryCreationCallback to keep names consistent. Bug: 772146 Change-Id: Ice0a53054dbf2ded14728d48a7fd7b33bfe0d5a5 Reviewed-on: https://chromium-review.googlesource.com/1120180 Reviewed-by: Josh Karlin <jkarlin@chromium.org> Commit-Queue: Oscar Johansson <oscarj@opera.com> Cr-Commit-Position: refs/heads/master@{#571881} [modify] https://crrev.com/b052f3915c65971b4277ac792b1fc0cdc5a165f1/net/disk_cache/blockfile/entry_impl.cc [modify] https://crrev.com/b052f3915c65971b4277ac792b1fc0cdc5a165f1/net/disk_cache/net_log_parameters.cc [modify] https://crrev.com/b052f3915c65971b4277ac792b1fc0cdc5a165f1/net/disk_cache/net_log_parameters.h
,
Jul 3
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/553b8a9f7e0c2db809d379a41b02946d51dfba9d commit 553b8a9f7e0c2db809d379a41b02946d51dfba9d Author: Oscar Johansson <oscarj@opera.com> Date: Tue Jul 03 06:14:10 2018 Move kDefaultNumConnections (net/) When building using jumbo unnamed namespaces gets merged and variables with the same name conflict. This happens for the variable kDefaultNumConnections in: net/third_party/quic/core/congestion_control/cubic_bytes.cc net/third_party/quic/core/congestion_control/tcp_cubic_sender_bytes.cc This commit solves the issue by moving the variable definition to net/third_party/quic/core/quic_constants.h. Bug: 772146 Change-Id: Ib7c961511823a8ecbc996775485a5fe23649e65e Reviewed-on: https://chromium-review.googlesource.com/1120169 Reviewed-by: Ryan Hamilton <rch@chromium.org> Commit-Queue: Oscar Johansson <oscarj@opera.com> Cr-Commit-Position: refs/heads/master@{#572123} [modify] https://crrev.com/553b8a9f7e0c2db809d379a41b02946d51dfba9d/net/third_party/quic/core/congestion_control/cubic_bytes.cc [modify] https://crrev.com/553b8a9f7e0c2db809d379a41b02946d51dfba9d/net/third_party/quic/core/congestion_control/tcp_cubic_sender_bytes.cc [modify] https://crrev.com/553b8a9f7e0c2db809d379a41b02946d51dfba9d/net/third_party/quic/core/quic_constants.h
,
Jul 10
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/19c11a985f40bf71723e6809fe4bb0ec56418034 commit 19c11a985f40bf71723e6809fe4bb0ec56418034 Author: Oscar Johansson <oscarj@opera.com> Date: Tue Jul 10 08:40:34 2018 Resolve multiple definitions of GetSequenceValue When building using jumbo unnamed namespaces gets merged and functions with the same name conflict. This happens for the function GetSequenceValue in net/cert/internal/parsed_certificate.cc and net/cert/x509_certificate.cc. This commit solves the issue by renaming the function to something more file specific. Bug: 772146 Change-Id: Ic8609a3c5a75b8187a58d3891eb3d8d32650fa76 Reviewed-on: https://chromium-review.googlesource.com/1118276 Commit-Queue: Oscar Johansson <oscarj@opera.com> Reviewed-by: Ryan Sleevi <rsleevi@chromium.org> Cr-Commit-Position: refs/heads/master@{#573651} [modify] https://crrev.com/19c11a985f40bf71723e6809fe4bb0ec56418034/net/cert/x509_certificate.cc |
|||
►
Sign in to add a comment |
|||
Comment 1 by bugdroid1@chromium.org
, Oct 6 2017