compileall used the ctime of bytecode and source to determine if the bytecode
should be recreated. This created a timing hole. Fixed by just doing what
import does; check the mtime and magic number.
diff --git a/Misc/ACKS b/Misc/ACKS
index 4bed872..48d312e 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -183,7 +183,7 @@
 Andy Dustman
 Gary Duzan
 Eugene Dvurechenski
-Josip Dzolonga 
+Josip Dzolonga
 Maxim Dzumanenko
 Walter Dörwald
 Hans Eckardt
@@ -233,6 +233,7 @@
 Geoff Furnish
 Ulisses Furquim
 Achim Gaedke
+Martin von Gagern
 Lele Gaifax
 Santiago Gala
 Yitzchak Gale
diff --git a/Misc/NEWS b/Misc/NEWS
index 9003037..cc71e83 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -152,6 +152,10 @@
 Library
 -------
 
+- Issue #5128: Make compileall properly inspect bytecode to determine if needs
+  to be recreated. This avoids a timing hole thanks to the old reliance on the
+  ctime of the files involved.
+
 - Issue #5122: Synchronize tk load failure check to prevent a potential
   deadlock.