diff --git a/srcpkgs/aalib/patches/gcc14.patch b/srcpkgs/aalib/patches/gcc14.patch
new file mode 100644
index 00000000000..984fda06ef0
--- /dev/null
+++ b/srcpkgs/aalib/patches/gcc14.patch
@@ -0,0 +1,124 @@
+Source: https://src.fedoraproject.org/rpms/aalib/blob/f42/f/aalib-c99.patch
+
+Add additional system header #include directives for more
+function prototypes. This avoids implicit function declarations
+and build failures with future compilers.
+
+Submitted upstream:
+
+diff --git a/src/aafire.c b/src/aafire.c
+index 4f36149aa84fba57..a59b5c5fa58e085b 100644
+--- a/src/aafire.c
++++ b/src/aafire.c
+@@ -1,4 +1,5 @@
+ #include
++#include
+ #include "aalib.h"
+
+ #define XSIZ aa_imgwidth(context)
+diff --git a/src/aainfo.c b/src/aainfo.c
+index d3f6d50f34590638..f4250ee37ae46134 100644
+--- a/src/aainfo.c
++++ b/src/aainfo.c
+@@ -1,3 +1,4 @@
++#include
+
+ #include "aalib.h"
+ #include "aaint.h"
+diff --git a/src/aakbdreg.c b/src/aakbdreg.c
+index def65fe25646d75a..682616313c1b6ebd 100644
+--- a/src/aakbdreg.c
++++ b/src/aakbdreg.c
+@@ -1,4 +1,5 @@
+ #include
++#include
+ #include "config.h"
+ #include "aalib.h"
+ #include "aaint.h"
+diff --git a/src/aalib.c b/src/aalib.c
+index 11fecc8fe8ef6b59..1ef12c0dfa9026a4 100644
+--- a/src/aalib.c
++++ b/src/aalib.c
+@@ -1,4 +1,5 @@
+ #include
++#include
+ #include
+ #include
+ #include "aalib.h"
+diff --git a/src/aalinuxkbd.c b/src/aalinuxkbd.c
+index c7f388abfe9e8c7f..ea988154518dfc8e 100644
+--- a/src/aalinuxkbd.c
++++ b/src/aalinuxkbd.c
+@@ -8,6 +8,7 @@
+ */
+
+ #include "config.h"
++#include
+ #ifdef LINUX_DRIVER
+ #include
+ #include
+diff --git a/src/aamoureg.c b/src/aamoureg.c
+index 03808289eb59b928..6d807416ae0d3dc2 100644
+--- a/src/aamoureg.c
++++ b/src/aamoureg.c
+@@ -1,4 +1,5 @@
+ #include
++#include
+ #include "config.h"
+ #include "aalib.h"
+ #include "aaint.h"
+diff --git a/src/aaregist.c b/src/aaregist.c
+index 54abec0b9797533a..768b8ce29e286b00 100644
+--- a/src/aaregist.c
++++ b/src/aaregist.c
+@@ -1,4 +1,5 @@
+ #include
++#include
+ #include "config.h"
+ #include "aalib.h"
+ #include "aaint.h"
+diff --git a/src/aasavefont.c b/src/aasavefont.c
+index b00e1e6d7f181952..864ba225d5ef626c 100644
+--- a/src/aasavefont.c
++++ b/src/aasavefont.c
+@@ -1,3 +1,4 @@
++#include
+ #include "aalib.h"
+ int main(int argc, char **argv)
+ {
+diff --git a/src/aatest.c b/src/aatest.c
+index 9816f5d855134894..89933cfba6344270 100644
+--- a/src/aatest.c
++++ b/src/aatest.c
+@@ -1,3 +1,5 @@
++#include
++#include
+ #include "aalib.h"
+ int main(int argc, char **argv)
+ {
+diff --git a/src/aaxkbd.c b/src/aaxkbd.c
+index f16afc63bb565512..44b91458b4bef3bc 100644
+--- a/src/aaxkbd.c
++++ b/src/aaxkbd.c
+@@ -7,6 +7,7 @@
+ #include
+ #include
+ #include
++#include
+ #include "aalib.h"
+ #include "aaint.h"
+ #include "aaxint.h"
+
+diff -Nur aalib-1.4.0-orig/src/aalinuxkbd.c aalib-1.4.0/src/aalinuxkbd.c
+--- aalib-1.4.0-orig/src/aalinuxkbd.c 2001-04-26 16:37:31.000000000 +0200
++++ aalib-1.4.0/src/aalinuxkbd.c 2005-07-01 22:57:59.000000000 +0200
+@@ -200,7 +200,7 @@
+ static int rawmode_init(void)
+ {
+ if (!closed)
+- return;
++ return 1;
+ mypid = getpid();
+ if (tty_fd == -1) {
+ tty_fd = fileno(stdin);
+
diff --git a/srcpkgs/aalib/template b/srcpkgs/aalib/template
index febbc1a4c32..851219e3045 100644
--- a/srcpkgs/aalib/template
+++ b/srcpkgs/aalib/template
@@ -1,7 +1,7 @@
# Template file for 'aalib'
pkgname=aalib
version=1.4rc5
-revision=2
+revision=3
build_style=gnu-configure
hostmakedepends="automake libtool"
short_desc="Portable ASCII art GFX library"