bpo-39689: Do not use native packing for format "?" with standard size (GH-18969)

(cherry picked from commit 472fc843ca816d65c12f9508ac762ca492165c45)

Co-authored-by: Stefan Krah <skrah@bytereef.org>
diff --git a/Modules/_struct.c b/Modules/_struct.c
index 9281c68..1c917b7 100644
--- a/Modules/_struct.c
+++ b/Modules/_struct.c
@@ -2365,6 +2365,9 @@
                        "unknown" float format */
                     if (ptr->format == 'd' || ptr->format == 'f')
                         break;
+                    /* Skip _Bool, semantics are different for standard size */
+                    if (ptr->format == '?')
+                        break;
                     ptr->pack = native->pack;
                     ptr->unpack = native->unpack;
                     break;