diff --git a/base/files/file_posix.cc b/base/files/file_posix.cc
index 977eb1b..4faf77b 100644
--- a/base/files/file_posix.cc
+++ b/base/files/file_posix.cc
@@ -100,6 +100,13 @@
   int64_t last_accessed_nsec = stat_info.st_atimespec.tv_nsec;
   time_t creation_time_sec = stat_info.st_ctimespec.tv_sec;
   int64_t creation_time_nsec = stat_info.st_ctimespec.tv_nsec;
+#elif defined(OS_AIX)
+  time_t last_modified_sec = stat_info.st_mtime;
+  int64_t last_modified_nsec = 0;
+  time_t last_accessed_sec = stat_info.st_atime;
+  int64_t last_accessed_nsec = 0;
+  time_t creation_time_sec = stat_info.st_ctime;
+  int64_t creation_time_nsec = 0;
 #else
 #error
 #endif
diff --git a/base/files/file_util_posix.cc b/base/files/file_util_posix.cc
index 9415735..23c7cb4 100644
--- a/base/files/file_util_posix.cc
+++ b/base/files/file_util_posix.cc
@@ -47,6 +47,12 @@
 #include <grp.h>
 #endif
 
+// We need to do this on AIX due to some inconsistencies in how AIX
+// handles XOPEN_SOURCE and ALL_SOURCE.
+#if defined(OS_AIX)
+extern "C" char* mkdtemp(char* path);
+#endif
+
 namespace base {
 
 namespace {
diff --git a/build/build_aix.ninja.template b/build/build_aix.ninja.template
new file mode 100644
index 0000000..f393e18
--- /dev/null
+++ b/build/build_aix.ninja.template
@@ -0,0 +1,16 @@
+rule cc
+  command = $cc -MMD -MF $out.d $defines $includes $cflags $cflags_c -c $in -o $out
+  description = CC $out
+  depfile = $out.d
+  deps = gcc
+rule cxx
+  command = $cxx -MMD -MF $out.d $defines $includes $cflags $cflags_cc -c $in -o $out
+  description = CXX $out
+  depfile = $out.d
+  deps = gcc
+rule alink_thin
+  command = rm -f $out && $ar rcsT $out $in
+  description = AR $out
+rule link
+  command = $ld $ldflags -o $out $in $libs $solibs
+  description = LINK $out
diff --git a/build/gen.py b/build/gen.py
index 9007277..454d49d 100755
--- a/build/gen.py
+++ b/build/gen.py
@@ -24,7 +24,8 @@
 is_win = sys.platform.startswith('win')
 is_linux = sys.platform.startswith('linux')
 is_mac = sys.platform.startswith('darwin')
-is_posix = is_linux or is_mac
+is_aix = sys.platform.startswith('aix')
+is_posix = is_linux or is_mac or is_aix
 
 
 def main(argv):
@@ -159,7 +160,8 @@
   template_filename = os.path.join(SCRIPT_DIR, {
       'win32': 'build_win.ninja.template',
       'darwin': 'build_mac.ninja.template',
-      'linux2': 'build_linux.ninja.template'
+      'linux2': 'build_linux.ninja.template',
+      'aix6': 'build_aix.ninja.template'
   }[sys.platform])
 
   with open(template_filename) as f:
@@ -243,6 +245,11 @@
     cxx = os.environ.get('CXX', 'cl.exe')
     ld = os.environ.get('LD', 'link.exe')
     ar = os.environ.get('AR', 'lib.exe')
+  elif is_aix:
+    cc = os.environ.get('CC', 'gcc')
+    cxx = os.environ.get('CXX', 'g++')
+    ld = os.environ.get('LD', 'g++')
+    ar = os.environ.get('AR', 'ar -X64')
   else:
     cc = os.environ.get('CC', 'clang')
     cxx = os.environ.get('CXX', 'clang++')
@@ -268,9 +275,20 @@
       # unused functions and data items.
       cflags.extend(['-fdata-sections', '-ffunction-sections'])
       ldflags.extend(['-fdata-sections', '-ffunction-sections'])
-      ldflags.append('-Wl,-dead_strip' if is_mac else '-Wl,--gc-sections')
+      if is_mac:
+        ldflags.append('-Wl,-dead_strip')
+      elif not is_aix:
+        # Garbage collection is done by default on aix.
+        ldflags.append('-Wl,--gc-sections')
+
       # Omit all symbol information from the output file.
-      ldflags.append('-Wl,-S' if is_mac else '-Wl,-strip-all')
+      if is_mac:
+        ldflags.append('-Wl,-S')
+      elif is_aix:
+        ldflags.append('-Wl,-s')
+      else:
+        ldflags.append('-Wl,-strip-all')
+
       # Enable identical code-folding.
       if options.use_icf:
         ldflags.append('-Wl,--icf=all')
@@ -306,6 +324,9 @@
       min_mac_version_flag = '-mmacosx-version-min=10.9'
       cflags.append(min_mac_version_flag)
       ldflags.append(min_mac_version_flag)
+    elif is_aix:
+      cflags_cc.append('-maix64')
+      ldflags.extend(['-maix64', '-pthread'])
 
     if options.use_lto:
       cflags.extend(['-flto', '-fwhole-program-vtables'])
@@ -594,7 +615,7 @@
         'base/strings/string16.cc',
     ])
 
-  if is_linux:
+  if is_linux or is_aix:
     static_libraries['base']['sources'].extend([
         'base/strings/sys_string_conversions_posix.cc',
     ])
diff --git a/tools/gn/args.cc b/tools/gn/args.cc
index 3003d9f..aa42ff3 100644
--- a/tools/gn/args.cc
+++ b/tools/gn/args.cc
@@ -294,6 +294,8 @@
   os = "mac";
 #elif defined(OS_LINUX)
   os = "linux";
+#elif defined(OS_AIX)
+  os = "aix";
 #else
 #error Unknown OS type.
 #endif
diff --git a/tools/gn/function_write_file_unittest.cc b/tools/gn/function_write_file_unittest.cc
index 8b64a29..035faba 100644
--- a/tools/gn/function_write_file_unittest.cc
+++ b/tools/gn/function_write_file_unittest.cc
@@ -85,6 +85,9 @@
   FILETIME last_modified_filetime = {};
   ASSERT_TRUE(::SetFileTime(foo_file.GetPlatformFile(), nullptr,
                             &last_access_filetime, &last_modified_filetime));
+#elif defined(OS_AIX)
+  struct timeval times[2] = {};
+  ASSERT_EQ(utimes(foo_name.AsUTF8Unsafe().c_str(), times), 0);
 #else
   struct timeval times[2] = {};
   ASSERT_EQ(futimes(foo_file.GetPlatformFile(), times), 0);
diff --git a/util/semaphore.cc b/util/semaphore.cc
index a1fa779..2ae7b7b 100644
--- a/util/semaphore.cc
+++ b/util/semaphore.cc
@@ -36,7 +36,7 @@
   }
 }
 
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_AIX)
 
 Semaphore::Semaphore(int count) {
   DCHECK_GE(count, 0);
diff --git a/util/semaphore.h b/util/semaphore.h
index 84d8b60..2de2759 100644
--- a/util/semaphore.h
+++ b/util/semaphore.h
@@ -15,7 +15,7 @@
 #include <windows.h>
 #elif defined(OS_MACOSX)
 #include <mach/mach.h>
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_AIX)
 #include <semaphore.h>
 #else
 #error Port.
@@ -35,7 +35,7 @@
 
 #if defined(OS_MACOSX)
   typedef semaphore_t NativeHandle;
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_AIX)
   typedef sem_t NativeHandle;
 #elif defined(OS_WIN)
   typedef HANDLE NativeHandle;
diff --git a/util/ticks.cc b/util/ticks.cc
index df35375..2a90c90 100644
--- a/util/ticks.cc
+++ b/util/ticks.cc
@@ -11,7 +11,7 @@
 #include <windows.h>
 #elif defined(OS_MACOSX)
 #include <mach/mach_time.h>
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_AIX)
 #include <time.h>
 #else
 #error Port.
@@ -27,7 +27,7 @@
 #elif defined(OS_MACOSX)
 mach_timebase_info_data_t g_timebase;
 uint64_t g_start;
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_AIX)
 uint64_t g_start;
 #else
 #error Port.
@@ -44,7 +44,7 @@
 #elif defined(OS_MACOSX)
   mach_timebase_info(&g_timebase);
   g_start = (mach_absolute_time() * g_timebase.numer) / g_timebase.denom;
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_AIX)
   struct timespec ts;
   clock_gettime(CLOCK_MONOTONIC, &ts);
   g_start = static_cast<uint64_t>(ts.tv_sec) * kNano +
@@ -74,7 +74,7 @@
 #elif defined(OS_MACOSX)
   now =
       ((mach_absolute_time() * g_timebase.numer) / g_timebase.denom) - g_start;
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_AIX)
   struct timespec ts;
   clock_gettime(CLOCK_MONOTONIC, &ts);
   now = (static_cast<uint64_t>(ts.tv_sec) * kNano +
