--- ./plugin/auth_socket/auth_socket.c.orig	2019-10-08 16:31:04.000000000 +0200
+++ ./plugin/auth_socket/auth_socket.c	2019-10-08 16:31:04.000000000 +0200
@@ -47,6 +47,12 @@
 #define uid cr_uid
 #define ucred xucred
 
+#elif defined HAVE_PEERCRED_STRUCT
+#define level SOL_SOCKET
+#define SO_PEERCRED SO_PEERID
+#define uid euid
+#define ucred peercred_struct
+ 
 #else
 #error impossible
 #endif
--- ./plugin/auth_socket/CMakeLists.txt.orig	2022-03-31 02:36:02 +0000
+++ ./plugin/auth_socket/CMakeLists.txt	2022-03-31 02:39:05 +0000
@@ -57,6 +57,19 @@
   SET(ok 1)
 ELSE()
 
+# AIX also!
+CHECK_CXX_SOURCE_COMPILES(
+"#include <sys/socket.h>
+int main() {
+  struct peercred_struct cred;
+  getsockopt(0, SOL_SOCKET, SO_PEERID, &cred, 0);
+  }" HAVE_PEERCRED_STRUCT)
+
+IF (HAVE_PEERCRED_STRUCT)
+  ADD_DEFINITIONS(-DHAVE_PEERCRED_STRUCT)
+  SET(ok 1)
+ELSE()
+
 # Who else? Anyone?
 # C'mon, show your creativity, be different! ifdef's are fun, aren't they?
 
--- ./plugin/auth_socket/CMakeLists.txt.orig	2022-03-31 02:40:22 +0000
+++ ./plugin/auth_socket/CMakeLists.txt	2022-03-31 02:40:43 +0000
@@ -76,6 +76,7 @@
 ENDIF()
 ENDIF()
 ENDIF()
+ENDIF()
 
 IF(ok)
   MYSQL_ADD_PLUGIN(auth_socket auth_socket.c DEFAULT)
