New issue
Advanced search Search tips

Issue 772146 link

Starred by 3 users

Issue metadata

Status: Available
Owner: ----
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocking:
issue 746956



Sign in to add a comment

Compile //net with jumbo

Project Member Reported by brat...@opera.com, Oct 5 2017

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.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Oct 6 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1be36b5808783c7f484b8d3bff73e04f29198509

commit 1be36b5808783c7f484b8d3bff73e04f29198509
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Oct 06 07:50:28 2017

Fix for jumbo base scripts, don't double filter sources

If someone has managed to get a normally filtered file into
sources we need to not accidentally remove it again. This
problem triggered in net where android targets wanted to use
Linux files.

Bug: 772146
Change-Id: Ibca410c78c5a59e9f49c1d0e302204b598df25ca
Reviewed-on: https://chromium-review.googlesource.com/703694
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#507004}
[modify] https://crrev.com/1be36b5808783c7f484b8d3bff73e04f29198509/build/config/jumbo.gni

Comment 2 by b...@chromium.org, 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.

Comment 3 by brat...@opera.com, 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.

Comment 4 by mge...@chromium.org, Oct 12 2017

Components: Internals>Network>Certificate Internals>Network>Cache Internals>Network>QUIC
Status: Available (was: Untriaged)
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.

Comment 5 by rch@google.com, 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.
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.

Comment 7 by brat...@opera.com, 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

Comment 8 by mmenke@chromium.org, Mar 21 2018

Labels: Network-Triaged
Project Member

Comment 9 by bugdroid1@chromium.org, 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

Project Member

Comment 10 by bugdroid1@chromium.org, 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

Project Member

Comment 11 by bugdroid1@chromium.org, 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

Project Member

Comment 12 by bugdroid1@chromium.org, 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

Project Member

Comment 13 by bugdroid1@chromium.org, 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

Project Member

Comment 14 by bugdroid1@chromium.org, 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

Project Member

Comment 15 by bugdroid1@chromium.org, 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

Project Member

Comment 16 by bugdroid1@chromium.org, 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

Project Member

Comment 17 by bugdroid1@chromium.org, 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

Project Member

Comment 18 by bugdroid1@chromium.org, 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

Project Member

Comment 19 by bugdroid1@chromium.org, 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

Project Member

Comment 20 by bugdroid1@chromium.org, 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

Project Member

Comment 21 by bugdroid1@chromium.org, 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