-
Notifications
You must be signed in to change notification settings - Fork 37.7k
build: Solve SmartOS FD_ZERO build issue #15146
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
333ede2
to
effb4fd
Compare
Concept ACK |
@theuni can you take a look please |
effb4fd
to
68a8df0
Compare
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. ConflictsNo conflicts as of last run. |
Concept ACK |
68a8df0
to
fd3e6e3
Compare
bd0bfed
to
fa364d5
Compare
Made an effort to pare this down significantly. Now only one new file, and the necessity of the cstring include is determined in configure. |
0afb772
to
5a37824
Compare
5a37824
to
b86bb6f
Compare
SmartOS FD_ZERO is implemented in a way that requires an external declaration of memcpy. We can not simply include cstring in the existing file because sanity_test_memcpy is attempting to replace memcpy, but we can do so here, now that the fdelt test is split out.
b86bb6f
to
b4fd0ca
Compare
@MarcoFalke realized that in attempting to rebase earlier I unintentionally overwrote my later implementation (#15146 (comment)) with the earlier. Restored the earlier implementation - would need gitian again. |
Code review an lightly tested (but not on SmartOS) ACK b4fd0ca |
b4fd0ca Include cstring for sanity_test_fdelt if required (Ben Woosley) 7fb886b [moveonly] Split glibc sanity_test_fdelt out (Ben Woosley) Pull request description: SmartOS FD_ZERO is implemented in a way that requires an external declaration of memcpy. We can not simply include cstring in the existing file because sanity_test_memcpy is attempting to replace memcpy. Instead split glibc_sanity into fdelt and memcpy files, and include <cstring> in glibc_sanity/fdelt.cpp. Fixes #13581, see also #13619 ACKs for top commit: laanwj: Code review an lightly tested (but not on SmartOS) ACK b4fd0ca Tree-SHA512: 231306da291ad9eca8ba91bea1e9c27b6c2e96e484d1602e1c2cf27761202f9287ce0bc19fefd000943d2b449d0e5929cd39e2f7e09cf930d89fa520228ccbec
b4fd0ca Include cstring for sanity_test_fdelt if required (Ben Woosley) 7fb886b [moveonly] Split glibc sanity_test_fdelt out (Ben Woosley) Pull request description: SmartOS FD_ZERO is implemented in a way that requires an external declaration of memcpy. We can not simply include cstring in the existing file because sanity_test_memcpy is attempting to replace memcpy. Instead split glibc_sanity into fdelt and memcpy files, and include <cstring> in glibc_sanity/fdelt.cpp. Fixes bitcoin#13581, see also bitcoin#13619 ACKs for top commit: laanwj: Code review an lightly tested (but not on SmartOS) ACK b4fd0ca Tree-SHA512: 231306da291ad9eca8ba91bea1e9c27b6c2e96e484d1602e1c2cf27761202f9287ce0bc19fefd000943d2b449d0e5929cd39e2f7e09cf930d89fa520228ccbec
Summary: ```The return type of fdelt_chk changed from unsigned long int to long int in glibc 2.16. See this commit. Now that we require glibc >=2.17 we can remove our back-compat code. [...] ``` Note: we require glibc >= 2.19 so this also applies to us. Backport of core [[bitcoin/bitcoin#15146 | PR15146]] and [[bitcoin/bitcoin#18862 | PR18862]]. [[bitcoin/bitcoin#15146 | PR15146]] fix an edge case from the sanity check which is totally removed by the second commit of [[bitcoin/bitcoin#18862 | PR18862]]. The diff is then mostly a backport of the first commit from [[bitcoin/bitcoin#18862 | PR18862]]: bitcoin/bitcoin@8bf1540 Test Plan: Run the gitian builds. Reviewers: #bitcoin_abc, deadalnix Reviewed By: #bitcoin_abc, deadalnix Differential Revision: https://reviews.bitcoinabc.org/D6342
SmartOS FD_ZERO is implemented in a way that requires
an external declaration of memcpy. We can not simply
include cstring in the existing file because
sanity_test_memcpy is attempting to replace memcpy.
Instead split glibc_sanity into fdelt and memcpy files,
and include in glibc_sanity/fdelt.cpp.
Fixes #13581, see also #13619