diff --git CMakeLists.txt CMakeLists.txt
index 04d8f36..3ab997e 100644
--- CMakeLists.txt
+++ CMakeLists.txt
@@ -21,9 +21,10 @@ set(PLATFORM_SPECIFIC_LIBS)
 if (APPLE)
   find_library(LIB_ARGP argp)
 
+  find_library(LIB_POSIX_MACOS_TIME posix-macos-time)
   find_library(LIB_POSIX_MACOS_TIMER posix-macos-timer)
 
-  set(PLATFORM_SPECIFIC_LIBS ${LIB_ARGP} ${LIB_POSIX_MACOS_TIMER})
+  set(PLATFORM_SPECIFIC_LIBS ${LIB_ARGP} ${LIB_POSIX_MACOS_TIME} ${LIB_POSIX_MACOS_TIMER})
 else ()
   set(PLATFORM_SPECIFIC_LIBS rt)
 endif()
diff --git src/io/getdelim.c src/io/getdelim.c
new file mode 100644
index 0000000..c954757
--- /dev/null
+++ src/io/getdelim.c
@@ -0,0 +1,104 @@
+#if __MAC_OS_X_VERSION_MAX_ALLOWED < 101200
+/* Copyright (C) 1991, 1992, 1995, 1996, 1997 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <limits.h>
+#include <errno.h>
+
+/* Read up to (and including) a TERMINATOR from STREAM into *LINEPTR
+   (and null-terminate it). *LINEPTR is a pointer returned from malloc (or
+   NULL), pointing to *N characters of space.  It is realloc'd as
+   necessary.  Returns the number of characters read (not including the
+   null terminator), or -1 on error or EOF.  */
+
+ssize_t
+getdelim (lineptr, n, terminator, stream)
+     char **lineptr;
+     size_t *n;
+     int terminator;
+     FILE *stream;
+{
+  char *line, *p;
+  size_t size, copy;
+
+  if (stream == NULL || lineptr == NULL || n == NULL)
+    {
+      errno = EINVAL;
+      return -1;
+    }
+
+  if (ferror (stream))
+    return -1;
+
+  /* Make sure we have a line buffer to start with.  */
+  if (*lineptr == NULL || *n < 2) /* !seen and no buf yet need 2 chars.  */
+    {
+#ifndef	MAX_CANON
+#define	MAX_CANON	256
+#endif
+      line = realloc (*lineptr, MAX_CANON);
+      if (line == NULL)
+	return -1;
+      *lineptr = line;
+      *n = MAX_CANON;
+    }
+
+  line = *lineptr;
+  size = *n;
+
+  copy = size;
+  p = line;
+
+      while (1)
+	{
+	  size_t len;
+
+	  while (--copy > 0)
+	    {
+	      register int c = getc (stream);
+	      if (c == EOF)
+		goto lose;
+	      else if ((*p++ = c) == terminator)
+		goto win;
+	    }
+
+	  /* Need to enlarge the line buffer.  */
+	  len = p - line;
+	  size *= 2;
+	  line = realloc (line, size);
+	  if (line == NULL)
+	    goto lose;
+	  *lineptr = line;
+	  *n = size;
+	  p = line + len;
+	  copy = size - len;
+	}
+
+ lose:
+  if (p == *lineptr)
+    return -1;
+  /* Return a partial line since we got an error in the middle.  */
+ win:
+  *p = '\0';
+  return p - *lineptr;
+}
+#endif
diff --git src/io/getdelim.h src/io/getdelim.h
new file mode 100644
index 0000000..781a662
--- /dev/null
+++ src/io/getdelim.h
@@ -0,0 +1,32 @@
+#if __MAC_OS_X_VERSION_MAX_ALLOWED < 100700
+#ifndef _GET_DELIM_H_
+#define _GET_DELIM_H_
+/* getdelim.h --- Prototype for replacement getdelim function.
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or
+   modify it under the terms of the GNU General Public License as
+   published by the Free Software Foundation; either version 2, or (at
+   your option) any later version.
+
+   This program is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+   02110-1301, USA.  */
+
+/* Written by Simon Josefsson. */
+
+/* Get size_t, FILE, ssize_t.  And getdelim, if available.  */
+# include <stddef.h>
+# include <stdio.h>
+# include <sys/types.h>
+
+ssize_t getdelim(char **lineptr, size_t *n, int delimiter, FILE *stream);
+
+#endif
+#endif
diff --git src/io/input.c src/io/input.c
index 971ffdf..d71f121 100644
--- src/io/input.c
+++ src/io/input.c
@@ -6,6 +6,7 @@
 
 #include "input.h"
 #include "output.h"
+#include "getdelim.h"
 
 FILE *in;
 int delim;
diff --git src/util/random.c src/util/random.c
index b88bb50..b3e2ebb 100644
--- src/util/random.c
+++ src/util/random.c
@@ -8,6 +8,10 @@
 #include <time.h>
 #include <stdint.h>
 
+#ifdef __APPLE__
+#include <posix-macos-timer.h>
+#endif
+
 void random_reseed(void) {
 	pari_ulong seed = 0;
 	// Try urandom first
