summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Release for experimental20230125.3-1Gravatar Benjamin Barenblat2023-05-14
|
* Add autopkgtest to ensure ScopedMockLog is presentGravatar Benjamin Barenblat2023-05-09
| | | | | This test ensures Debian’s Abseil doesn’t fall prey to https://github.com/abseil/abseil-cpp/issues/1407.
* Remove -Wno-... from pkg-config filesGravatar Benjamin Barenblat2023-05-09
| | | | | Lintian dislikes -W flags in pkg-config files, even if those flags disable warnings.
* Update Lintian overridesGravatar Benjamin Barenblat2023-05-09
|
* Update shlibs fileGravatar Benjamin Barenblat2023-05-09
|
* Update Standards-VersionGravatar Benjamin Barenblat2023-05-09
|
* Package test-only targets as static librariesGravatar Benjamin Barenblat2023-05-08
| | | | | | | | | | | | | | | | | | | | | Abseil 20230125.3 exposes libraries that were formerly internal (“test-only”) so that other packages’ unit tests can refer to them [1]. Some of the new libraries depend on Google Mock, which Debian only ships as a static library; as a result, the new libraries can only be shipped statically as well. Historically, however, Abseil’s Debian packaging has linked Abseil’s unit tests dynamically to improve build speed. (Google Mock was built as a one-off shared library during this process, but it was only ever used in unit tests and was never shipped to users.) Static Abseil builds were unaware that Google Mock existed, which prevented sbuild from building the new libraries [2]. To rectify the situation, change Abseil’s Debian packaging to link Abseil unit tests statically and to ship the new libraries as static archives. Also make libabsl-dev recommend libgmock-dev, since the new libraries are useless without a corresponding Google Mock build. [1] https://github.com/abseil/abseil-cpp/pull/1442 [2] https://bugs.debian.org/1034908
* Update build dependenciesGravatar Benjamin Barenblat2023-05-08
|
* Update debian/copyrightGravatar Benjamin Barenblat2023-05-08
|
* Update patchesGravatar Benjamin Barenblat2023-05-08
| | | | | Bump SONAME and inline namespace in configuration, and delete a patch that has been applied upstream.
* Begin updating packaging for Abseil 20230125Gravatar Benjamin Barenblat2023-05-08
|
* Merge new upstream LTS 20230125.3Gravatar Benjamin Barenblat2023-05-08
|\
| * CMake: Install TESTONLY libraries and their dependencies (#1442)20230125.3Gravatar Mike Kruskal2023-05-04
| | | | | | | | | | | | | | | | | | This patch cherry-picks 807763a7f57dcf0ba4af7c3b218013e8f525e811 #1407 --------- Co-authored-by: Derek Mauro <dmauro@google.com>
| * Fix the implementation of OnlyLiteralZero (#1420)20230125.2Gravatar Derek Mauro2023-03-27
| | | | | | | | | | | | | | This patch changes the implementation of OnlyLiteralZero to only fail if the second overload is chosen, instead of failing during overload resolution. This patch cherry-picks 2de126cc5826a8d464270ead65a7a9a7b012b741. Fixes #1419
| * Make `SanitizerSafeCopy()` constexpr, and check for constant evaluation (#1399)20230125.1Gravatar Derek Mauro2023-02-18
| | | | | | | | | | | | | | Also update test Docker container so that LTS patches can be tested This patch cherry-picks 2 commits: a0f9b465212aea24d3264b82d315b8ee59e8d7a0 35e8e3f7a2c6972d4c591448e8bbe4f9ed9f815a
| * Apply LTS transformations for 20230125 LTS branch (#1370)20230125.rc320230125.0Gravatar Derek Mauro2023-01-25
| |
| * Separate DLL export/import for test helpers dll, and fix typo.Gravatar Mike Kruskal2023-01-25
| | | | | | | | | | | | | | The DLL export issue isn't a problem currently, since we don't explicitly export any symbols from the test dll. This will be an issue in the future though. Additionally, there was a typo in absl_internal_test_dll_contains that caused abseil_test_dll to be empty (and therefore not create a lib file). PiperOrigin-RevId: 504555797 Change-Id: Ic7b50bcbe704f7c8fd44028071abcf5d6babb2cf
| * Add memory sanitizer to absl::CordGravatar Martijn Vels2023-01-25
| | | | | | | | | | PiperOrigin-RevId: 504555535 Change-Id: Id40484e9f52c87e9d67def2735ee60481ca50526
| * Fix typo in previous AbseilDLL changes, and enable testing.Gravatar Mike Kruskal2023-01-24
| | | | | | | | | | | | | | This broke builds of abseil_test_dll, since CMake can't find the file we incorrectly specified. PiperOrigin-RevId: 504372451 Change-Id: I6cd5a44f12bb2f473fae2ac920e047e782ae9524
| * Work around GCC -Wuninitialized when initializing a span from an ↵Gravatar Andy Getzendanner2023-01-24
| | | | | | | | | | | | | | | | | | uninitialized array in logging. It's uninitialized on purpose; we'll write into it through the span. PiperOrigin-RevId: 504318917 Change-Id: I79835f0190253b8b470b3ca404f3979715f2a718
| * Include Abseil logging in windows dll, and add a test helper dll.Gravatar Mike Kruskal2023-01-24
| | | | | | | | | | | | | | This was tested with https://github.com/protocolbuffers/protobuf/pull/11623 in Protobuf's windows shared library build. PiperOrigin-RevId: 504294227 Change-Id: I9657197e649a334585bffa2c7bc6340cd2354e84
| * Sort CMakeList deps for raw_hash_set and raw_hash_set_test.Gravatar Evan Brown2023-01-23
| | | | | | | | | | PiperOrigin-RevId: 504045295 Change-Id: I110d4573087358e17a719def29e8037adfac6d15
| * Use const references in Standard Library algorithms range adapters where ↵Gravatar Abseil Team2023-01-23
| | | | | | | | | | | | | | | | | | possible. Const references enforce stronger constraints and are consistent with the standard library signature. There should be no performance loss. PiperOrigin-RevId: 504043141 Change-Id: I6c4b017665a462fc04e16f425d330fce2c3da227
| * absl: harden stack bounds checkGravatar Abseil Team2023-01-23
| | | | | | | | | | | | | | | | Ensure that we know both real low and high stack bounds when relying on the stack bounds check. PiperOrigin-RevId: 504003431 Change-Id: I8f6e6b75f5edff233d3cf80285f81b53f9080a0f
| * Fix pkgconfig generation broken by 14abd930c61ef3ad2842f5c6b7ea60693b0d4ff9Gravatar Derek Mauro2023-01-22
| | | | | | | | | | | | | | In the non-dll case, don't set the LNK_LIB variable in the deps loop. PiperOrigin-RevId: 503854597 Change-Id: Ic57711c1ed95b998e6ca4f27a0a7982ee99595e2
| * Update absl::allocator_traits and absl::pointer_traits to alwaysGravatar Derek Mauro2023-01-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | use std::allocator_traits and std::pointer traits. Note that the reason given in the comments for these implementations was incorrect. Both of these exist in C++11, but not all compilers had working implementations, so Abseil backfiled them. All supported compilers now have working implementations. https://en.cppreference.com/w/cpp/memory/allocator_traits https://en.cppreference.com/w/cpp/memory/pointer_traits Documentation has been updated to recommend the std:: spellings. Fixes #1366 PiperOrigin-RevId: 503532746 Change-Id: Ia437f65a4c752581195dc582a41831b479d096c6
| * Add CodegenAbslRawHashSetStringFindNeEnd function, which is useful because ↵Gravatar Evan Brown2023-01-20
| | | | | | | | | | | | | | the find isn't inlined but the iterator comparison is. PiperOrigin-RevId: 503473637 Change-Id: I02b8d95b7a1b738314c4f07a863c7606f822f079
| * Add absl::is_constant_evaluated for pre-c++20 supportGravatar Martijn Vels2023-01-20
| | | | | | | | | | PiperOrigin-RevId: 503437019 Change-Id: I3630fec690f1472130fef21b16dfcd3c5208aa69
| * absl: add a stack unwinding testGravatar Abseil Team2023-01-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | END_PUBLIC absl: relax frame size check in x86 stack unwinding Currently the unwinder stops whenever it sees a frame >100000 bytes. There may be such legitimate frames, the default stack size is O(megabytes). Only do this check if we are not within the thread stack bounds. The thread stack is assumed to be readable, so the worst thing that can happen if the large stack frame is actually bogus is that we will add one/few wrong frames and stop. PiperOrigin-RevId: 503374764 Change-Id: Icabb55d6468b12a42bf026c37c98dbe84977e659
| * Update the Abseil minumum GCC version to GCC 7, which isGravatar Derek Mauro2023-01-19
| | | | | | | | | | | | | | | | the earliest supported GCC version according to https://github.com/google/oss-policies-info/blob/main/foundational-cxx-support-matrix.md PiperOrigin-RevId: 503337021 Change-Id: Ibc7b2453b7aa30779b76e2a4ad918e39d0efcabe
| * Turn off the new GCC 13 warning for -Wself-move in tests sinceGravatar Derek Mauro2023-01-19
| | | | | | | | | | | | | | we intentionally test this behavior PiperOrigin-RevId: 503234578 Change-Id: Ic42c2e55e03843af7a36f99debb5ebcf7baec0fe
| * Add missing include and remove unused includesGravatar Derek Mauro2023-01-19
| | | | | | | | | | PiperOrigin-RevId: 503229681 Change-Id: I72817b43c547bd142144d0887866c4e26ec09fb2
| * Doc fix: state that Base64Escape does in fact produce padding. While at it, ↵Gravatar Abseil Team2023-01-19
| | | | | | | | | | | | | | harmonize Base64Unescape and WebSafeBase64Unescape's documentation of padding. PiperOrigin-RevId: 503178146 Change-Id: Id216044a9f6520653e2fa3a4505ff05eddf55659
| * Only enable cordz on Linux with thread_local supportGravatar Derek Mauro2023-01-19
| | | | | | | | | | | | | | Fixes #1365 PiperOrigin-RevId: 503160321 Change-Id: I210f194373c3e08a75d68298a8482be5f1f2227c
| * Minor formatting: Fix misplaced space.Gravatar Abseil Team2023-01-19
| | | | | | | | | | PiperOrigin-RevId: 503110285 Change-Id: I59c48b1486386e2db8fb62cf8bfa1a691865f704
| * Use absl::string_view by value rather than by const reference while ↵Gravatar Abseil Team2023-01-19
| | | | | | | | | | | | | | iterating over collections. PiperOrigin-RevId: 503088193 Change-Id: Ic1f239f3b0427e0fea1643ec0ce7baff45ad647d
| * Clarify contract of AlphaNum as only a function parameter typeGravatar Tom Manshreck2023-01-18
| | | | | | | | | | PiperOrigin-RevId: 502901875 Change-Id: I1c8c097e5c81a9e413692109ebfe0d0b24f50f2e
| * extern-ify NullGuard's "(null)" strings to save linker input bytes.Gravatar Andy Getzendanner2023-01-17
| | | | | | | | | | PiperOrigin-RevId: 502689876 Change-Id: If75b00e2e257283b60c41411ef7a60dbd7cd8c6d
| * Optimize RemoveCrc32cSuffix.Gravatar Abseil Team2023-01-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The implementation can be optimized to not having to perform an ExtendByZero operation. `RemoveCrc32cSuffix` can simply be implemented as uint32_t result = static_cast<uint32_t>(full_string_crc) ^ static_cast<uint32_t>(suffix_crc); CrcEngine()->UnextendByZeroes(&result, suffix_len); return crc32c_t{result}; Math proof that this change is correct: `ComputeCrc32c` actually computes the following: ConditionedCRC(data) = UnconditionedCRC(data) + StartValue(data) + ~0 with: StartValue(data) = ~0 * x**BitLength(data) mod P (with `+` being a carry-less add, ie an xor). ``UnconditionedCRC` in the context of this description means: no initial or final xor with ~0 and a starting value of zero - ie the result that `CrcEngine()->Extend` would give you with a starting value of 0. Given `full_string_crc` and `suffix_crc` (both conditioned CRCs), xoring them together results in: (1): full_string_crc + suffix_crc = UnconditionedCRC(full_string) + StartValue(full_string) + ~0 + UnconditionedCRC(suffix) + StartValue(suffix) + ~0 Since `+` is carry-less addition (ie an XOR), the two ~0 cancel each other out. (2) full_string_crc + suffix_crc = UnconditionedCRC(full_string) + StartValue(full_string) + UnconditionedCRC(suffix) + StartValue(suffix) We can make use of the fact that: (3) UnconditionedCRC(full_string) + UnConditionedCRC(suffix) = UnconditionedCRC(full_string_with_suffix_replaced_by_zeros). Ie, UnconditionedCRC("AABBB") + UnconditionedCRC("BBB") = UnconditionedCRC("AA\0\0\0") Putting (3) into (2) yields: (4) full_string_crc + suffix_crc = UnconditionedCRC(full_string_with_suffix_replaced_by_zeros) + StartValue(full_string) + StartValue(suffix) Using: (5) UnconditionedCRC(full_string_with_suffix_replaced_by_zeros) = UnconditionedCRC(full_string_without_suffix) * x**Bitlength(suffix) mod P and putting (5) into (4) (6) full_string_crc + suffix_crc = UnconditionedCRC(full_string_without_suffix) * x**Bitlength(suffix) mod P + StartValue(full_string) + StartValue(suffix) Using (7) StartValue(full_string) = ~0 * x ** Bitlength(full_string) mod P and (8) StartValue(suffix) = ~0 * x**BitLength(suffix) mod P Putting (7) and (8) in (6): (9): full_string_crc + suffix_crc = UnconditionedCRC(full_string_without_suffix) * x**(Bitlength(suffix)) mod P + ~0 * x ** Bitlength(full_string) mod P + ~0 * x ** BitLength(suffix) mod P Using: (10) Bitlength(full_string) = Bitlength(full_string_without_suffix) + Bitlength(suffix) And putting (10) in (9): (11) full_string_crc + suffix_crc = UnconditionedCRC(full_string_without_suffix) * x**(Bitlength(suffix)) mod P + ~0 * x ** (Bitlength(full_string_without_suffix) + Bitlength(suffix)) mod P + ~0 * x ** BitLength(suffix) mod P using x**(A+B) = x**A * x**B results in: (12) full_string_crc + suffix_crc = UnconditionedCRC(full_string_without_suffix) * x**(Bitlength(suffix)) mod P + [ ~0 * x ** Bitlength(full_string_without_suffix) * x**Bitlength(suffix)] mod P + ~0 * x ** BitLength(suffix) mod P using A mod P + B mod P + C mod P = (A + B + C) mod P: (this works in carry-less arithmetic) (13) full_string_crc + suffix_crc = [ UnconditionedCRC(full_string_without_suffix) * x**(Bitlength(suffix)) + [ ~0 * x ** Bitlength(full_string_without_suffix) * x**Bitlength(suffix)] + ~0 * x ** BitLength(suffix) ] mod P Factor out x**Bitlength(suffix): (14) full_string_crc + suffix_crc = [ x**(Bitlength(suffix)) * [ UnconditionedCRC(full_string_without_suffix) + ~0 * x ** Bitlength(full_string_without_suffix) + ~0 ] mod P Using: (15) ConditionedCRC(full_string_without_suffix) = [ UnconditionedCRC(full_string_without_suffix) + ~0 * x ** Bitlength(full_string_without_suffix) ] mod P + ~0 = [ UnconditionedCRC(full_string_without_suffix) + ~0 * x ** Bitlength(full_string_without_suffix) + ~0] mod P (~0 is less than x**32, so ~0 mod P = ~0) Putting (15) in (14) results in: full_string_crc + suffix_crc = [ x**(Bitlength(suffix)) * ConditionedCRC(full_string_without_suffix)] mod P Or: (16) ConditionedCRC(full_string_without_suffix) = (full_string_crc + suffix_crc) * x**(-Bitlength(suffix)) mod P A multiplication by x**(-8*bytelength) mod P is implemented by `CrcEngine()->UnextendByZeros`. PiperOrigin-RevId: 502659140 Change-Id: I66b0700d258f948be0885f691370b73d7fad56e3
| * In sanitizer mode, detect when references become invalidated after reserved ↵Gravatar Evan Brown2023-01-17
| | | | | | | | | | | | | | growth runs out. PiperOrigin-RevId: 502625638 Change-Id: I1c06b2162dbdaaa6a36cea503ac6d07cd157b2e2
| * Tweak the compilation condition for IsHashableTest.PoisonHashGravatar Derek Mauro2023-01-17
| | | | | | | | | | | | | | #1359 PiperOrigin-RevId: 502597369 Change-Id: I5d65ed7e2dbe4b51ebce47f282ead89d91d919cd
| * Use NullGuard for signed and unsigned char pointer types, and extend ↵Gravatar Andy Getzendanner2023-01-13
| | | | | | | | | | | | | | volatile pointer type testcase to char pointers. PiperOrigin-RevId: 501781539 Change-Id: I99012cecd960745de8a921b96671cde42e28a3af
| * Replace the tag "no_test_msvc_x64" with "no_test_lexan" in absl.Gravatar Abseil Team2023-01-12
| | | | | | | | | | PiperOrigin-RevId: 501644407 Change-Id: Ie98d22e4983cfbd9cad2176925774d624d4702cf
| * Don't use Arm vector intrinsics when compiling with CUDA in device mode.Gravatar Abseil Team2023-01-11
| | | | | | | | | | PiperOrigin-RevId: 501464530 Change-Id: I5a0929a2b88c1c158b1696634a65ffda9c4b8590
| * Improve BitGen stability documentationGravatar Abseil Team2023-01-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Several problems with the previous documentation: * It said it's stable "within the same binary" but not stable "across multiple binary invocations". Those statements contradict each other. * It said "in the same binary will not produce the same sequence of variates within the same binary", which is repetitive since it says "in the same binary" twice. * The comments about the seed sequence were not all next to each other, they were split apart by a rand.req.urng comment. * It implied that process stability is all you get, whereas generally you also get changelist stability. * It said you can use a seed sequence with SharedBitGen, but you can't. * It said there is more info in std_seed_seq.h , but there isn't. PiperOrigin-RevId: 501389708 Change-Id: I5e3dbc3548cc051265b8d004191c23147eccecc3
| * Import of CCTZ from GitHub.Gravatar Abseil Team2023-01-11
| | | | | | | | | | PiperOrigin-RevId: 501343076 Change-Id: I12e04a87b9a90951f9b52bd9690cce28d03b0f29
| * Update Abseil dependenciesGravatar Derek Mauro2023-01-11
| | | | | | | | | | PiperOrigin-RevId: 501294426 Change-Id: Ic580a2f31b4a98b1dd3eb21f3279fda4cd4a5977
| * Refactor InlineData to allow for memory sanitizer changes step 2Gravatar Martijn Vels2023-01-10
| | | | | | | | | | PiperOrigin-RevId: 501074382 Change-Id: I26a59ee6452855685ffe89469c352e6384060f59
| * Rollback of PR #1349: direct_mmap: Use off_t on linux...Gravatar Abseil Team2023-01-10
| | | | | | | | | | PiperOrigin-RevId: 501014555 Change-Id: Ie204d307a4e537935a04c0f23bb13532e3c84bc8
| * Replace generic 'base64 encoding' terminology with the specific RFCs they match.Gravatar Abseil Team2023-01-09
| | | | | | | | | | | | | | | | | | Remove duplicate documentation for two variants of Base64EscapeInternal(). Clarify role of base64 char array input (controls web-safe or not). PiperOrigin-RevId: 500867221 Change-Id: Ie316a7ddd60794e041c5b9b39e9ab5b66ed565a6