diff --git a/community/openjdk9/APKBUILD b/community/openjdk9/APKBUILD
index c0b2aecf4fa989131f05883ec8beecc228902a1b..47dd51c6ac9831132d95d93ed6912d8ddca1f55b 100644
--- a/community/openjdk9/APKBUILD
+++ b/community/openjdk9/APKBUILD
@@ -65,6 +65,7 @@ source="jdk-$_pkgver-root.tar.bz2::https://hg.openjdk.java.net/jdk-updates/jdk9u
 	TestECDSA.java
 	TestCryptoLevel.java
 	Alpine_Bug_10126.java
+	gcc11.patch
 "
 builddir="$srcdir/jdk9u-jdk-$_pkgver"
 
@@ -321,7 +322,8 @@ _jdk() {
 	mv "$_fromroot/include" "$_toroot"
 }
 
-sha512sums="cef3655ae7db657e6c81aa86587e451e58896bb6ee786495f6d757096334435b6a4de26ec3ec927da2487e135f09ce26414f8d6b9b9c508a28d3087be286b1ec  jdk-9.0.4+12-root.tar.bz2
+sha512sums="
+cef3655ae7db657e6c81aa86587e451e58896bb6ee786495f6d757096334435b6a4de26ec3ec927da2487e135f09ce26414f8d6b9b9c508a28d3087be286b1ec  jdk-9.0.4+12-root.tar.bz2
 455998437a9e3ff538b921025d57e19e6fb5148b3f124c9c427c3604689884d81b3ce5c9dbd93d88de26bf1b43ce76d75f75afd95e473a94973a668575e41748  jdk-9.0.4+12-corba.tar.bz2
 49d93764b13085a5626bec1c3d4e790f8748c24577a4e990e76bd1006721a5b8b9a256c40bf6419df4dda6f6390e457485f90c1b1101c010476a04d9056e9f16  jdk-9.0.4+12-hotspot.tar.bz2
 82f28586fd576cc01062e2ff37a917987775838910e4a5ecdfd096abec1c8d23028b77bfc87a38ada53bc30d71d89bde7408c1ae572a43c87a71ced64fd08d3a  jdk-9.0.4+12-jaxp.tar.bz2
@@ -341,4 +343,6 @@ c2cba2987030924afabb4a8fd56cb6173ce3719b67c8374cadedb4b8f4da4efb33ef5df38106101c
 d1767dddd8e0956e25c0f77ed45c6fc86a1191bae1704a6dc33be490fd20eaa50461fe5c2a3349512059d555651e2eb41437dd3c1096c351e8ee68b4534a2579  HelloWorld.java
 27e91edef89d26c0c5b9a813e2045f8d2b348745a506ae37b34b660fa7093da9a4e0e676ea41dc4a5c901bce02e5304d95e90f68d6c99cbf461b2da40a7a9853  TestECDSA.java
 b02dff8d549f88317bb4c741a9e269e8d59eef990197d085388fc49c7423a4eb9367dbe1e02bffb10e7862f5980301eb58d4494e177d0e8f60af6b05c7fbbe60  TestCryptoLevel.java
-cc466f64fcc8762cf6e3c1f5739be6425209b27aa58acff4e7eb126003d61fa18266f0e79e57e9d84224654010185ab45dc0a8043543dea227258458a00a1eb1  Alpine_Bug_10126.java"
+cc466f64fcc8762cf6e3c1f5739be6425209b27aa58acff4e7eb126003d61fa18266f0e79e57e9d84224654010185ab45dc0a8043543dea227258458a00a1eb1  Alpine_Bug_10126.java
+ad95500622e21115283c02957849f06c0382a5eff53cb44c2a7e93538258f16000036ed554e5ced3b61c2c64974ee34f3d8e75ceae689b605a0d4dad22a01b86  gcc11.patch
+"
diff --git a/community/openjdk9/gcc11.patch b/community/openjdk9/gcc11.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a8cf29342285b48e2d37035b5116d63d17999ed5
--- /dev/null
+++ b/community/openjdk9/gcc11.patch
@@ -0,0 +1,11 @@
+--- a/hotspot/src/share/vm/opto/lcm.cpp
++++ b/hotspot/src/share/vm/opto/lcm.cpp
+@@ -39,7 +39,7 @@
+ // Check whether val is not-null-decoded compressed oop,
+ // i.e. will grab into the base of the heap if it represents NULL.
+ static bool accesses_heap_base_zone(Node *val) {
+-  if (Universe::narrow_oop_base() > 0) { // Implies UseCompressedOops.
++  if (Universe::narrow_oop_base() != 0) { // Implies UseCompressedOops.
+     if (val && val->is_Mach()) {
+       if (val->as_Mach()->ideal_Opcode() == Op_DecodeN) {
+         // This assumes all Decodes with TypePtr::NotNull are matched to nodes that