< roconnor> I managed to rebuild my desktop with gcc 8. elichai2 let me know how it goes with clang. I'm worried a lot of packages won't build.
< roconnor> luke-jr: real_or_random showed me a link to https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/builtins.c;h=eb662112b32e5ad377d2a865d9977c64dc12cc93;hb=eb662112b32e5ad377d2a865d9977c64dc12cc93#l539 earlier which looked horrifying because it looks like the bug might have affected it.
< roconnor> and it is used in string_length, which is used in c_strlen, which is something that is possibly related to the bug itself.
< roconnor> that all said, sipa seems to have noticed that memcmp being compared with 0 doesn't seem to tickle this bug.
< roconnor> which explains to me how it is possible that not every single piece of software is broken.
< roconnor> I expect memcmp is very often compared with 0.
< sipa> having read the code: that's exactly it
< roconnor> oh you understand the gcc code and the bug?
< sipa> not the bug
< sipa> but there is a flag passed to expand_builtin_memcmp for the case where the sign of the return value of memcmp doesn't matter (for == and != cases)
< luke-jr> roconnor: why wouldn't anything build? O.o
< sipa> which has a separate code path
< luke-jr> sipa: is the fix then "fixing" things that aren't broken?
< sipa> luke-jr: no?
< roconnor> luke-jr: you mean with clang? I sort of expect a handful of packages to use gcc specfic features.
< roconnor> But what do I know.
< roconnor> I'll give building everything with clang a try and see how it goes.
< luke-jr> oh, I meant GCC 8
< roconnor> luke-jr: appstreamer-qt added a -Wno-error=deprecated-copy flag which doesn't exist on GCC 8.
< roconnor> luke-jr: and nix3.0pre seems to have gone all in on C++20 features.
< luke-jr> surprised Nix lets you change the compiler just like that in the first place :o
< roconnor> what do you mean?
< luke-jr> well, Guix was refusing to let me use my existing system compiler to bootstrap
< sipa> does the linux kernel use any memcmp?
< roconnor> also llvm 9.0.1 seems to have a test case that fails when built with gcc 8. that ones seems weird.
< luke-jr> sipa: yes, even __builtin_memcmp :/
< luke-jr> sipa: I'm afraid to build with my hacked GCC 9.3
< luke-jr> (in case it depends on the builtin for cases where there's no libc)
< roconnor> luke-jr: https://gist.github.com/roconnor/2b8e22e829ed80088ed6690cc3c7f3a8 is my nix overlay that is sufficent to purge gcc 9 from my system.
< fanquake> MarcoFalke: FYI the bot seems to have run out of disk: https://github.com/bitcoin/bitcoin/pull/19868#issuecomment-698680164
< roconnor> But I think I want to try again with a bug patched version of gcc 10.
< roconnor> luke-jr: in an ideal world the overly would just be gcc = self.gcc8. But unfortunately it isn't quite as easy as it should be. I need to switch gfortan which openblas uses, and this weird gccFun thing seems to be requires to build nix itself with gcc 8, etc.
< bitcoin-git> [bitcoin] MarcoFalke opened pull request #20012: rpc: Remove duplicate name and argNames from CRPCCommand (master...2009-rpcCheckMapping) https://github.com/bitcoin/bitcoin/pull/20012
< bitcoin-git> [bitcoin] kallewoof opened pull request #20013: rpc: normalize parameter names (master...202009-rpc-normalize) https://github.com/bitcoin/bitcoin/pull/20013
< bitcoin-git> [bitcoin] kallewoof closed pull request #19957: rpc: alias helper (master...202009-rpc-alias) https://github.com/bitcoin/bitcoin/pull/19957
< hebasto> jonasschnelli: fanquake: begging review for https://github.com/bitcoin-core/gui/pull/46
< elichai2> roconnor: what distribution do you use? I'm with archlinux and I don't know how to even start with "rebuilding" almost everything is prebuilt, and the kernel itself is prebuilt+signed (for the whole EFI security stuff)
< elichai2> roconnor: god that link looks terrifying
< bitcoin-git> [bitcoin] MarcoFalke pushed 5 commits to master: https://github.com/bitcoin/bitcoin/compare/1b313cacc99a...78f912c9010f
< bitcoin-git> bitcoin/master 784f757 gzhao408: [refactor] clarify tests by referencing p2p objects directly
< bitcoin-git> bitcoin/master 7a0de46 gzhao408: [doc] sample code for test framework p2p objects
< bitcoin-git> bitcoin/master 549d30f gzhao408: scripted-diff: replace p2p with p2ps[0] in p2p_invalid_tx
< bitcoin-git> [bitcoin] MarcoFalke merged pull request #19804: test/refactor: reference p2p objects explicitly and remove confusing Test_Node.p2p property (master...test-p2p-property) https://github.com/bitcoin/bitcoin/pull/19804
< bitcoin-git> [bitcoin] hebasto opened pull request #20014: doc: Mention signet in -help output (master...200925-signet) https://github.com/bitcoin/bitcoin/pull/20014
< bitcoin-git> [bitcoin] gr0kchain opened pull request #20015: doc: Added default signet config for linearize script (master...master) https://github.com/bitcoin/bitcoin/pull/20015
< luke-jr> elichai2: he uses Nix
< roconnor> elichai2: what looks terrifying?
< elichai2> https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/builtins.c;h=eb662112b32e5ad377d2a865d9977c64dc12cc93;hb=eb662112b32e5ad377d2a865d9977c64dc12cc93#l539
< roconnor> well, turns out it is effectively comparing the memcpy result with 0, so it sould be unaffected by the bug I guess.
< bitcoin-git> [bitcoin] ajtowns opened pull request #20016: uint256: 1 is a constant (master...202009-uint256_1) https://github.com/bitcoin/bitcoin/pull/20016
< bitcoin-git> [bitcoin] promag opened pull request #20017: rpc: Add RPCContext (master...2020-09-rpcontext) https://github.com/bitcoin/bitcoin/pull/20017
< achow101> anyone around for the wallet meeting have something to discuss?
< fjahr> Sort of but no topics and on the go
< achow101> all i've got is that i'd like to shill for #19077
< gribble> https://github.com/bitcoin/bitcoin/issues/19077 | wallet: Add sqlite as an alternative wallet database and use it for new descriptor wallets by achow101 · Pull Request #19077 · bitcoin/bitcoin · GitHub
< achow101> i'll trade for reviews on that
< jonatack> hi
< fjahr> Yeah, already working on that :)
< jonatack> Sorry, I missed the start. What would be the biggest wallet prios to try for before Oct 15 FF.
< jonatack> #16546?
< gribble> https://github.com/bitcoin/bitcoin/issues/16546 | External signer support - Wallet Box edition by Sjors · Pull Request #16546 · bitcoin/bitcoin · GitHub
< jonatack> Sqlite3?
< achow101> sqlite is one I'd like
< achow101> I think external signer support should wait one release to let descriptor wallets get a release first
< achow101> #18836 too, but that could also be considered a bug fix
< gribble> https://github.com/bitcoin/bitcoin/issues/18836 | wallet: upgradewallet fixes and additional tests by achow101 · Pull Request #18836 · bitcoin/bitcoin · GitHub
< jonatack> ty achow101. WDYT, can we try for fjahr and sipa's coinstats work (unsure if this counts as wallet)?
< achow101> jonatack: not wallet, but I can take a look
< luke-jr> achow101: have you looked any into the PSBT side of the GCC bug?
< achow101> luke-jr: nope
< achow101> should I
< luke-jr> not sure
< luke-jr> it's only within deserialisation
< sipa> luke-jr: my current thinking is that it is not affected
< luke-jr> sipa: well, the fixed GCC is definitely producing different code
< sipa> the code may have changed as a result of the bug fix, but that doesn't mean that in this case the old code was wrong
< sipa> i'll look in more detail today
< achow101> i would guess that std::map uses std::lexicographic_compare and that might be why it shows up
< luke-jr> hmm
< achow101> for std::vector<unsigned char> as the key
< achow101> but that would only effect how things are stored by std::map internally, so I think that would be fine?
< sipa> it could in theory mean things can't be found or so
< sipa> actually, the keys never have a 0 byte in them, right?
< achow101> they can
< sipa> and those that do aren't from constants
< sipa> e.g. a prefix + hash could have a 0 byte in the hash, but the hash is not a constant
< achow101> there's a 0 type but i don't know if they would end up in the memcmp
< achow101> I would expect no
< luke-jr> could it ever have any security implications though?
< sipa> achow101: the problem is that in some cases the memcmp "stops" at the first zero byte
< sipa> so the null key in PSBT which is just a zero byte and nothing else would be unaffected
< achow101> right
< bitcoin-git> [bitcoin] dhruv opened pull request #20018: p2p: ProcessAddrFetch(-seednode) is unnecessary if -connect is specified (master...seednode-not-needed-with-connect) https://github.com/bitcoin/bitcoin/pull/20018
< bitcoin-git> [bitcoin] dongcarl opened pull request #20019: depends: Properly pass $PATH to configure and pin (master...2020-09-resolve-PATH-prepending-madness) https://github.com/bitcoin/bitcoin/pull/20019