{"thread":{"id":"46273","subject":"[PATCH v2 1/3] sha1dc: correct endian detection for Solaris (and others?)","startedAt":"2017-06-27T20:34:09Z","lastAt":"2017-06-28T22:02:09Z","messageCount":9,"participants":["Ævar Arnfjörð Bjarmason","Junio C Hamano"],"isPatch":true,"patchVersion":2,"patchTotal":3},"messages":[{"id":"323383","messageId":"20170627203348.19827-2-avarab@gmail.com","threadId":"46273","inReplyTo":"20170627203348.19827-1-avarab@gmail.com","subject":"[PATCH v2 1/3] sha1dc: correct endian detection for Solaris (and others?)","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2017-06-27T20:33:46Z","receivedAt":"2017-06-27T20:34:09Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"Update sha1dc from my PR #36[1] which'll hopefully be integrated by\nupstream soon.\n\nThis solves the Big Endian detection on Solaris reported against\nv2.13.2[2], hopefully without any regressions.\n\nSee commit a0103914c2 (\"sha1dc: update from upstream\", 2017-05-20) and\n6b851e536b (\"sha1dc: update from upstream\", 2017-06-06) for previous\nattempts in the 2.13 series to address various compile-time feature\ndetection in this library.\n\n1. https://github.com/cr-marcstevens/sha1collisiondetection/pull/36\n   https://github.com/avar/sha1collisiondetection/commit/56ab30c4c998e1e7f3075705087a2f0c4c4202d7\n2. <CAKKM46tHq13XiW5C8sux3=PZ1VHSu_npG8ExfWwcPD7rkZkyRQ@mail.gmail.com>\n   (https://public-inbox.org/git/CAKKM46tHq13XiW5C8sux3=PZ1VHSu_npG8ExfWwcPD7rkZkyRQ@mail.gmail.com/)\n\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n---\n sha1dc/sha1.c | 73 +++++++++++++++++++++++++++++++++++++++++++----------------\n 1 file changed, 54 insertions(+), 19 deletions(-)\n\ndiff --git a/sha1dc/sha1.c b/sha1dc/sha1.c\nindex facea1bb56..1e7e30763e 100644\n--- a/sha1dc/sha1.c\n+++ b/sha1dc/sha1.c\n@@ -23,6 +23,13 @@\n #include \"sha1.h\"\n #include \"ubc_check.h\"\n \n+#if (defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64) || \\\n+     defined(i386) || defined(__i386) || defined(__i386__) || defined(__i486__)  || \\\n+     defined(__i586__) || defined(__i686__) || defined(_M_IX86) || defined(__X86__) || \\\n+     defined(_X86_) || defined(__THW_INTEL__) || defined(__I86__) || defined(__INTEL__) || \\\n+     defined(__386) || defined(_M_X64) || defined(_M_AMD64))\n+#define SHA1DC_ON_INTEL_LIKE_PROCESSOR\n+#endif\n \n /*\n    Because Little-Endian architectures are most common,\n@@ -32,28 +39,63 @@\n    If you are compiling on a big endian platform and your compiler does not define one of these,\n    you will have to add whatever macros your tool chain defines to indicate Big-Endianness.\n  */\n-#ifdef SHA1DC_BIGENDIAN\n-#undef SHA1DC_BIGENDIAN\n+\n+#if defined(__BYTE_ORDER__) && defined(__ORDER_BIG_ENDIAN__)\n+/*\n+ * Should detect Big Endian under GCC since at least 4.6.0 (gcc svn\n+ * rev #165881). See\n+ * https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html\n+ *\n+ * This also works under clang since 3.2, it copied the GCC-ism. See\n+ * clang.git's 3b198a97d2 (\"Preprocessor: add __BYTE_ORDER__\n+ * predefined macro\", 2012-07-27)\n+ */\n+#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__\n+#define SHA1DC_BIGENDIAN\n #endif\n \n-#if (defined(_BYTE_ORDER) || defined(__BYTE_ORDER) || defined(__BYTE_ORDER__))\n+#else /* Not under GCC-alike */\n \n-#if ((defined(_BYTE_ORDER) && (_BYTE_ORDER == _BIG_ENDIAN)) || \\\n-     (defined(__BYTE_ORDER) && (__BYTE_ORDER == __BIG_ENDIAN)) || \\\n-     (defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __BIG_ENDIAN__)) )\n+#if defined(__BYTE_ORDER) && defined(__BIG_ENDIAN)\n+/*\n+ * Should detect Big Endian under glibc.git since 14245eb70e (\"entered\n+ * into RCS\", 1992-11-25). Defined in <endian.h> which will have been\n+ * brought in by standard headers. See glibc.git and\n+ * https://sourceforge.net/p/predef/wiki/Endianness/\n+ */\n+#if __BYTE_ORDER == __BIG_ENDIAN\n #define SHA1DC_BIGENDIAN\n #endif\n \n-#else\n+#else /* Not under GCC-alike or glibc */\n \n-#if (defined(_BIG_ENDIAN) || defined(__BIG_ENDIAN) || defined(__BIG_ENDIAN__) || \\\n-     defined(__ARMEB__) || defined(__THUMBEB__) || defined(__AARCH64EB__) || \\\n+#if (defined(__ARMEB__) || defined(__THUMBEB__) || defined(__AARCH64EB__) || \\\n      defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || \\\n      defined(__sparc))\n+/*\n+ * Should define Big Endian for a whitelist of known processors. See\n+ * https://sourceforge.net/p/predef/wiki/Endianness/ and\n+ * http://www.oracle.com/technetwork/server-storage/solaris/portingtosolaris-138514.html\n+ */\n #define SHA1DC_BIGENDIAN\n-#endif\n \n-#endif\n+#else /* Not under GCC-alike or glibc or <processor whitelist> */\n+\n+#if defined(SHA1DC_ON_INTEL_LIKE_PROCESSOR)\n+/*\n+ * As a last resort before we do anything else we're not 100% sure\n+ * about below, we blacklist specific processors here. We could add\n+ * more, see e.g. https://wiki.debian.org/ArchitectureSpecificsMemo\n+ */\n+#else /* Not under GCC-alike or glibc or <processor whitelist>  or <processor blacklist> */\n+\n+/* We do nothing more here for now */\n+/*#error \"Uncomment this to see if you fall through all the detection\"*/\n+\n+#endif /* !SHA1DC_ON_INTEL_LIKE_PROCESSOR */\n+#endif /* Big Endian under whitelist of processors */\n+#endif /* Big Endian under glibc */\n+#endif /* Big Endian under GCC-alike */\n \n #if (defined(SHA1DC_FORCE_LITTLEENDIAN) && defined(SHA1DC_BIGENDIAN))\n #undef SHA1DC_BIGENDIAN\n@@ -63,15 +105,8 @@\n #endif\n /*ENDIANNESS SELECTION*/\n \n-#if (defined SHA1DC_FORCE_UNALIGNED_ACCESS || \\\n-     defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64) || \\\n-     defined(i386) || defined(__i386) || defined(__i386__) || defined(__i486__)  || \\\n-     defined(__i586__) || defined(__i686__) || defined(_M_IX86) || defined(__X86__) || \\\n-     defined(_X86_) || defined(__THW_INTEL__) || defined(__I86__) || defined(__INTEL__) || \\\n-     defined(__386) || defined(_M_X64) || defined(_M_AMD64))\n-\n+#if defined(SHA1DC_FORCE_UNALIGNED_ACCESS) || defined(SHA1DC_ON_INTEL_LIKE_PROCESSOR)\n #define SHA1DC_ALLOW_UNALIGNED_ACCESS\n-\n #endif /*UNALIGNMENT DETECTION*/\n \n \n-- \n2.13.1.611.g7e3b11ae1\n\n"},{"id":"323384","messageId":"20170627203348.19827-3-avarab@gmail.com","threadId":"46273","inReplyTo":"20170627203348.19827-1-avarab@gmail.com","subject":"[PATCH v2 2/3] sha1dc: optionally use sha1collisiondetection as a submodule","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2017-06-27T20:33:47Z","receivedAt":"2017-06-27T20:34:11Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"Add an option to use the sha1collisiondetection library from the\nsubmodule in sha1collisiondetection/ instead of in the copy in the\nsha1dc/ directory.\n\nThis allows us to try out the submodule in sha1collisiondetection\nwithout breaking the build for anyone who's not expecting them as we\nwork out any kinks.\n\nThis uses my own fork which integrates PR #36. See the preceding\ncommit (\"sha1dc: update from my PR #36\", 2017-06-27) for details.\n\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>\n---\n .gitmodules            |  4 ++++\n Makefile               | 12 ++++++++++++\n hash.h                 |  4 ++++\n sha1collisiondetection |  1 +\n 4 files changed, 21 insertions(+)\n create mode 100644 .gitmodules\n create mode 160000 sha1collisiondetection\n\ndiff --git a/.gitmodules b/.gitmodules\nnew file mode 100644\nindex 0000000000..2fea9996e9\n--- /dev/null\n+++ b/.gitmodules\n@@ -0,0 +1,4 @@\n+[submodule \"sha1collisiondetection\"]\n+\tpath = sha1collisiondetection\n+\turl = https://github.com/avar/sha1collisiondetection.git\n+\tbranch = bigend-detect-solaris-again\ndiff --git a/Makefile b/Makefile\nindex b94cd5633c..f0cac1f246 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -162,6 +162,12 @@ all::\n # algorithm. This is slower, but may detect attempted collision attacks.\n # Takes priority over other *_SHA1 knobs.\n #\n+# Define DC_SHA1_SUBMODULE in addition to DC_SHA1 to use the\n+# sha1collisiondetection shipped as a submodule instead of the\n+# non-submodule copy in sha1dc/. This is an experimental option used\n+# by the git project to migrate to using sha1collisiondetection as a\n+# submodule.\n+#\n # Define OPENSSL_SHA1 environment variable when running make to link\n # with the SHA1 routine from openssl library.\n #\n@@ -1448,8 +1454,14 @@ ifdef APPLE_COMMON_CRYPTO\n \tBASIC_CFLAGS += -DSHA1_APPLE\n else\n \tDC_SHA1 := YesPlease\n+ifdef DC_SHA1_SUBMODULE\n+\tLIB_OBJS += sha1collisiondetection/lib/sha1.o\n+\tLIB_OBJS += sha1collisiondetection/lib/ubc_check.o\n+\tBASIC_CFLAGS += -DDC_SHA1_SUBMODULE\n+else\n \tLIB_OBJS += sha1dc/sha1.o\n \tLIB_OBJS += sha1dc/ubc_check.o\n+endif\n \tBASIC_CFLAGS += \\\n \t\t-DSHA1_DC \\\n \t\t-DSHA1DC_NO_STANDARD_INCLUDES \\\ndiff --git a/hash.h b/hash.h\nindex a11fc9233f..bef3e630a0 100644\n--- a/hash.h\n+++ b/hash.h\n@@ -8,7 +8,11 @@\n #elif defined(SHA1_OPENSSL)\n #include <openssl/sha.h>\n #elif defined(SHA1_DC)\n+#ifdef DC_SHA1_SUBMODULE\n+#include \"sha1collisiondetection/lib/sha1.h\"\n+#else\n #include \"sha1dc/sha1.h\"\n+#endif\n #else /* SHA1_BLK */\n #include \"block-sha1/sha1.h\"\n #endif\ndiff --git a/sha1collisiondetection b/sha1collisiondetection\nnew file mode 160000\nindex 0000000000..9d3a0b3783\n--- /dev/null\n+++ b/sha1collisiondetection\n@@ -0,0 +1 @@\n+Subproject commit 9d3a0b3783afab335a1819543d039cf2980577bb\n-- \n2.13.1.611.g7e3b11ae1\n\n"},{"id":"323385","messageId":"20170627203348.19827-4-avarab@gmail.com","threadId":"46273","inReplyTo":"20170627203348.19827-1-avarab@gmail.com","subject":"[PATCH v2 3/3] sha1collisiondetection: automatically enable when submodule is populated","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2017-06-27T20:33:48Z","receivedAt":"2017-06-27T20:34:18Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"From: Junio C Hamano <gitster@pobox.com>\n\nIf a user wants to experiment with the version of collision\ndetecting sha1 from the submodule, the user needed to not just\npopulate the submodule but also needed to turn the knob.\n\nA Makefile trick is easy enough to do so, so let's do this.  When\nsomebody with a copy of the submodule populated wants not to use it,\nthat can be done by overriding it in config.mak or from the command\nline.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>\nSigned-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>\n---\n Makefile | 4 ++++\n 1 file changed, 4 insertions(+)\n\ndiff --git a/Makefile b/Makefile\nindex f0cac1f246..3baa1eac0b 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -1009,6 +1009,10 @@ EXTLIBS =\n \n GIT_USER_AGENT = git/$(GIT_VERSION)\n \n+ifeq ($(wildcard sha1collisiondetection/lib/sha1.h),sha1collisiondetection/lib/sha1.h)\n+DC_SHA1_SUBMODULE = auto\n+endif\n+\n include config.mak.uname\n -include config.mak.autogen\n -include config.mak\n-- \n2.13.1.611.g7e3b11ae1\n\n"},{"id":"323386","messageId":"20170627203348.19827-1-avarab@gmail.com","threadId":"46273","inReplyTo":"20170627121718.12078-1-avarab@gmail.com","subject":"[PATCH v2 0/3] update sha1dc from PR #36","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2017-06-27T20:33:45Z","receivedAt":"2017-06-27T20:34:21Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"A v2 addressing comments to the v1, tbdiff below. Just fixes the\nsubject line on 1/3 & gets rid of the redundant _BIG_ENDIAN detection\nfor Solaris, we can just use __sparc (and indeed we did before this).\n\nJunio C Hamano (1):\n  sha1collisiondetection: automatically enable when submodule is\n    populated\n\nÆvar Arnfjörð Bjarmason (2):\n  sha1dc: correct endian detection for Solaris (and others?)\n  sha1dc: optionally use sha1collisiondetection as a submodule\n\n .gitmodules            |  4 +++\n Makefile               | 16 +++++++++++\n hash.h                 |  4 +++\n sha1collisiondetection |  1 +\n sha1dc/sha1.c          | 73 +++++++++++++++++++++++++++++++++++++-------------\n 5 files changed, 79 insertions(+), 19 deletions(-)\n create mode 100644 .gitmodules\n create mode 160000 sha1collisiondetection\n\n    @@ -1,6 +1,6 @@\n     Author: Ævar Arnfjörð Bjarmason <avarab@gmail.com>\n\n    -    sha1dc: update from my PR #36\n    +    sha1dc: correct endian detection for Solaris (and others?)\n\n         Update sha1dc from my PR #36[1] which'll hopefully be integrated by\n         upstream soon.\n    @@ -96,22 +96,15 @@\n     +\n     +#if defined(SHA1DC_ON_INTEL_LIKE_PROCESSOR)\n     +/*\n    -+ * As a last resort before we fall back on _BIG_ENDIAN or whatever\n    -+ * else we're not 100% sure about below, we blacklist specific\n    -+ * processors here. We could add more, see\n    -+ * e.g. https://wiki.debian.org/ArchitectureSpecificsMemo\n    ++ * As a last resort before we do anything else we're not 100% sure\n    ++ * about below, we blacklist specific processors here. We could add\n    ++ * more, see e.g. https://wiki.debian.org/ArchitectureSpecificsMemo\n     + */\n     +#else /* Not under GCC-alike or glibc or <processor whitelist>  or <processor blacklist> */\n     +\n    -+#ifdef _BIG_ENDIAN\n    -+/*\n    -+ * Solaris / illumos defines either _LITTLE_ENDIAN or _BIG_ENDIAN in\n    -+ * <sys/isa_defs.h>.\n    -+ */\n    -+#define SHA1DC_BIGENDIAN\n    -+#else\n    ++/* We do nothing more here for now */\n     +/*#error \"Uncomment this to see if you fall through all the detection\"*/\n    -+#endif /* Big Endian because of _BIG_ENDIAN (Solaris)*/\n    ++\n     +#endif /* !SHA1DC_ON_INTEL_LIKE_PROCESSOR */\n     +#endif /* Big Endian under whitelist of processors */\n     +#endif /* Big Endian under glibc */\n2: 63a5d0cb2a ! 2: 28750d3c24 sha1dc: optionally use sha1collisiondetection as a submodule\n    @@ -79,4 +79,4 @@\n     --- /dev/null\n     +++ b/sha1collisiondetection\n     @@\n    -+Subproject commit 56ab30c4c998e1e7f3075705087a2f0c4c4202d7\n    ++Subproject commit 9d3a0b3783afab335a1819543d039cf2980577bb\n\n\n-- \n2.13.1.611.g7e3b11ae1\n\n"},{"id":"323395","messageId":"xmqqh8z1yuve.fsf@gitster.mtv.corp.google.com","threadId":"46273","inReplyTo":"20170627203348.19827-1-avarab@gmail.com","subject":"Re: [PATCH v2 0/3] update sha1dc from PR #36","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2017-06-27T21:37:57Z","receivedAt":"2017-06-27T21:38:04Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Ævar Arnfjörð Bjarmason  <avarab@gmail.com> writes:\n\n> A v2 addressing comments to the v1, tbdiff below. Just fixes the\n> subject line on 1/3 & gets rid of the redundant _BIG_ENDIAN detection\n> for Solaris, we can just use __sparc (and indeed we did before this).\n\nThanks.  Let's have this tested by minority platform folks to help\nthe upstream digest your pull request ;-)\n"},{"id":"323396","messageId":"xmqqfuelyuuu.fsf@gitster.mtv.corp.google.com","threadId":"46273","inReplyTo":"20170627203348.19827-1-avarab@gmail.com","subject":"Re: [PATCH v2 0/3] update sha1dc from PR #36","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2017-06-27T21:38:17Z","receivedAt":"2017-06-27T21:38:23Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Ævar Arnfjörð Bjarmason  <avarab@gmail.com> writes:\n\n> A v2 addressing comments to the v1, tbdiff below. Just fixes the\n> subject line on 1/3 & gets rid of the redundant _BIG_ENDIAN detection\n> for Solaris, we can just use __sparc (and indeed we did before this).\n\nThanks.  Let's have this tested by minority platform folks to help\nthe upstream digest your pull request.  The change since the last\nround makes perfect sense to me.\n\nThanks.\n\n"},{"id":"323400","messageId":"87mv8tjchi.fsf@gmail.com","threadId":"46273","inReplyTo":"xmqqfuelyuuu.fsf@gitster.mtv.corp.google.com","subject":"Re: [PATCH v2 0/3] update sha1dc from PR #36","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2017-06-27T22:24:09Z","receivedAt":"2017-06-27T22:24:44Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"\nOn Tue, Jun 27 2017, Junio C. Hamano jotted:\n\n> Ævar Arnfjörð Bjarmason  <avarab@gmail.com> writes:\n>\n>> A v2 addressing comments to the v1, tbdiff below. Just fixes the\n>> subject line on 1/3 & gets rid of the redundant _BIG_ENDIAN detection\n>> for Solaris, we can just use __sparc (and indeed we did before this).\n>\n> Thanks.  Let's have this tested by minority platform folks to help\n> the upstream digest your pull request.  The change since the last\n> round makes perfect sense to me.\n\nI got someone on #cygwin on Freenode to test this for me (compile git +\nt0013-sha1dc.sh), it passed, ditto for 2x people testing on Solaris\nSPARC.\n\nUpdated a comment on the PR with that:\nhttps://github.com/cr-marcstevens/sha1collisiondetection/pull/36#issuecomment-311502713\n\nI'm pretty sure this un-breaks everything & doesn't regress on cases\nwhere we fixed things earlier.\n"},{"id":"323454","messageId":"87h8yzkcv5.fsf@gmail.com","threadId":"46273","inReplyTo":"xmqqfuelyuuu.fsf@gitster.mtv.corp.google.com","subject":"Re: [PATCH v2 0/3] update sha1dc from PR #36","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2017-06-28T21:42:54Z","receivedAt":"2017-06-28T21:43:08Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"\nOn Tue, Jun 27 2017, Junio C. Hamano jotted:\n\n> Ævar Arnfjörð Bjarmason  <avarab@gmail.com> writes:\n>\n>> A v2 addressing comments to the v1, tbdiff below. Just fixes the\n>> subject line on 1/3 & gets rid of the redundant _BIG_ENDIAN detection\n>> for Solaris, we can just use __sparc (and indeed we did before this).\n>\n> Thanks.  Let's have this tested by minority platform folks to help\n> the upstream digest your pull request.  The change since the last\n> round makes perfect sense to me.\n\nJust a brief update. This has been found not to work on some BSDs (with\nolder GCC), but there's a patch being discussed at\nhttps://github.com/cr-marcstevens/sha1collisiondetection/pull/34\n\nThe discussion is sorted out, just waiting on n-soda to submit a patch\n(or to tell me he'd like me to), then the known issues will be fixed &\nit should be merged quickly, then I'll submit a v3.\n"},{"id":"323462","messageId":"xmqqh8yzvkis.fsf@gitster.mtv.corp.google.com","threadId":"46273","inReplyTo":"87h8yzkcv5.fsf@gmail.com","subject":"Re: [PATCH v2 0/3] update sha1dc from PR #36","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2017-06-28T22:02:03Z","receivedAt":"2017-06-28T22:02:09Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:\n\n> On Tue, Jun 27 2017, Junio C. Hamano jotted:\n>\n>> Ævar Arnfjörð Bjarmason  <avarab@gmail.com> writes:\n>>\n>>> A v2 addressing comments to the v1, tbdiff below. Just fixes the\n>>> subject line on 1/3 & gets rid of the redundant _BIG_ENDIAN detection\n>>> for Solaris, we can just use __sparc (and indeed we did before this).\n>>\n>> Thanks.  Let's have this tested by minority platform folks to help\n>> the upstream digest your pull request.  The change since the last\n>> round makes perfect sense to me.\n>\n> Just a brief update. This has been found not to work on some BSDs (with\n> older GCC), but there's a patch being discussed at\n> https://github.com/cr-marcstevens/sha1collisiondetection/pull/34\n>\n> The discussion is sorted out, just waiting on n-soda to submit a patch\n> (or to tell me he'd like me to), then the known issues will be fixed &\n> it should be merged quickly, then I'll submit a v3.\n\nThanks.  \n\nIt's good that I learned to pretend that I didn't hear anything like\n\n    I'm pretty sure this un-breaks everything & doesn't regress on cases\n    where we fixed things earlier.\n\nfrom anybody, and instead wait a bit longer ;-)\n"}]}