)]}'
{
  "commit": "8abcb6fb41cbb29e93ed82048bb3d59bc8e6717f",
  "tree": "e2eed5c6fd674c1a14d69b800139e6054ac98da6",
  "parents": [
    "74a75b39596757546c1070f3dc5184bbab44397b"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Fri May 19 15:55:18 2023 -0400"
  },
  "committer": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Fri May 19 20:22:42 2023 +0000"
  },
  "message": "Don\u0027t include \u003cstdatomic.h\u003e in C++\n\nOPENSSL_C11_ATOMIC is both computed in crypto/internal.h and also\ndefined externally. This is a remnant of C11 atomics were an opt-in\nfeature.\n\nIf defined externally, this means OPENSSL_C11_ATOMIC might be defined\nwhen built as C++. That, in turn, causes \u003cstdatomic.h\u003e to be included in\nC++ mode. At least one of our users toolchains has a \u003cstdatomic.h\u003e that\nis incompatible with C++.  We don\u0027t get anything out of including it, so\njust gate the include on !defined(__cplusplus) for now.\n\nThings to look into as follow-up:\n\n- Fix build files to stop defining OPENSSL_C11_ATOMIC. Prior to\n  https://boringssl-review.googlesource.com/c/boringssl/+/59847, it was\n  still serving a purpose: in server builds, if autodetection fails, we\n  would rather fail to build than accidentally fallback to locks.\n  There is no lock fallback anymore.\n\n- Fix that toolchain so their \u003cstdatomic.h\u003e is C++-compatible. It\u0027s\n  certainly not C++23-conformant. I suspect it\u0027s also not\n  C++11-conformant, but I\u0027m not positive.\n\nChange-Id: I13bcd8380efeb87b9f9cc439fe24a743e48aec60\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/59985\nAuto-Submit: David Benjamin \u003cdavidben@google.com\u003e\nReviewed-by: Bob Beck \u003cbbe@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9edfd0e2d5e859575fef5ac71af70f44248997cd",
      "old_mode": 33188,
      "old_path": "crypto/internal.h",
      "new_id": "4b7d82c04d47411e09820c7b7da5aeabddc31edd",
      "new_mode": 33188,
      "new_path": "crypto/internal.h"
    }
  ]
}
