Fixed shared windows builds of test targets#1445
Fixed shared windows builds of test targets#1445h-vetinari wants to merge 3 commits intoabseil:masterfrom
Conversation
|
How was this tested? It doesn't appear to work. I'm guessing it is a simple fix to add |
There's your answer. 😅 I didn't build with (the equivalent of) Without this PR. compilation fails hard. So we can say the patches here are necessary but not sufficient. |
Adding Further adding The second warning is actually interesting here because it talks about a struct, whereas the definition is: I presume the |
|
I have a different fix for this that I am testing. It involves not exposing some things in headers to avoid the need for |
That's great news, thanks a lot! Could you let us know here once that happens please? :) |
This is a heavily modified version of #1445, which adds some missing test libraries to the test DLL. Unlike #1445, this change moves several global variables out of headers that did not need to be in headers. For instance, cord_btree_exhaustive_validation was a global defined/declared in cord_internal, but only used in cord_rep_btree and its test. cordz_handle defined a queue in its header even though it wasn't needed, which also led to ODR problems. The Spinlock used in CordzHandle is replaced with a Mutex. This was originally a Mutex, but Chromium asked us to change it to a Spinlock to avoid a static initializer. After this change, the static initializer is no longer an issue. #1407 PiperOrigin-RevId: 531516991 Change-Id: I0e431a193698b20ba03fac6e414c26f153f330a7
|
Please give 3aa3377 a try. I think either fixes your issue or gets us closer to a fix. It's possible some some |
Thanks! Giving this a shot in conda-forge/abseil-cpp-feedstock#60. |
Back to failing with the missing vftable, which I had been battling in conda-forge/abseil-cpp-feedstock#58 as well, and which ended up being "solved" by adding |
|
I pulled in #1115 with the missing |
Thanks! The build based on your commit did already include (the equivalent of) #1115, so I'm pretty sure it's still not working properly. Though I admit I don't understand what might be the pertinent differences between our respective build setups. |
This is a heavily modified version of abseil#1445, which adds some missing test libraries to the test DLL. Unlike abseil#1445, this change moves several global variables out of headers that did not need to be in headers. For instance, cord_btree_exhaustive_validation was a global defined/declared in cord_internal, but only used in cord_rep_btree and its test. cordz_handle defined a queue in its header even though it wasn't needed, which also led to ODR problems. The Spinlock used in CordzHandle is replaced with a Mutex. This was originally a Mutex, but Chromium asked us to change it to a Spinlock to avoid a static initializer. After this change, the static initializer is no longer an issue. abseil#1407 PiperOrigin-RevId: 531516991 Change-Id: I0e431a193698b20ba03fac6e414c26f153f330a7
This is a heavily modified version of abseil/abseil-cpp#1445, which adds some missing test libraries to the test DLL. Unlike #1445, this change moves several global variables out of headers that did not need to be in headers. For instance, cord_btree_exhaustive_validation was a global defined/declared in cord_internal, but only used in cord_rep_btree and its test. cordz_handle defined a queue in its header even though it wasn't needed, which also led to ODR problems. The Spinlock used in CordzHandle is replaced with a Mutex. This was originally a Mutex, but Chromium asked us to change it to a Spinlock to avoid a static initializer. After this change, the static initializer is no longer an issue. #1407 PiperOrigin-RevId: 531516991 Change-Id: I0e431a193698b20ba03fac6e414c26f153f330a7
This is a heavily modified version of abseil/abseil-cpp#1445, which adds some missing test libraries to the test DLL. Unlike #1445, this change moves several global variables out of headers that did not need to be in headers. For instance, cord_btree_exhaustive_validation was a global defined/declared in cord_internal, but only used in cord_rep_btree and its test. cordz_handle defined a queue in its header even though it wasn't needed, which also led to ODR problems. The Spinlock used in CordzHandle is replaced with a Mutex. This was originally a Mutex, but Chromium asked us to change it to a Spinlock to avoid a static initializer. After this change, the static initializer is no longer an issue. #1407 PiperOrigin-RevId: 531516991 Change-Id: I0e431a193698b20ba03fac6e414c26f153f330a7
Regarding #1407