setup-ubuntu.sh: We actually don't need nasm
[termux-packages] / ndk_patches / stdio.h.patch
index b7cb7fc..f3d871e 100644 (file)
@@ -6,8 +6,8 @@ diff -u -r /home/fornwall/lib/android-ndk/platforms/android-21/arch-arm/usr/incl
  #include <stddef.h>
  
 +#include <string.h>           /* For strcpy(3) used by ctermid() */
-+#include <fcntl.h>             /* For O_RDWR and other O_* constants */
-+#include <stdlib.h>            /* For random() */
++#include <asm/fcntl.h>         /* For O_RDWR and other O_* constants */
++#include <stdlib.h>            /* For arc4random() */
 +
  #define __need_NULL
  #include <stddef.h>
@@ -37,8 +37,8 @@ diff -u -r /home/fornwall/lib/android-ndk/platforms/android-21/arch-arm/usr/incl
 +#define __sferror(p)    (((p)->_flags & __SERR) != 0)
 +
 +/* Used by perl, fish, and others */
-+static char* ctermid(char* s) {
-+    if (s == 0) return "/dev/tty";
++static __inline__ char* ctermid(char* s) {
++    if (s == 0) return (char*) "/dev/tty";
 +    strcpy(s, "/dev/tty");
 +    return s;
 +}
@@ -46,20 +46,23 @@ diff -u -r /home/fornwall/lib/android-ndk/platforms/android-21/arch-arm/usr/incl
  #if defined(__BIONIC_FORTIFY)
  
  __BEGIN_DECLS
-@@ -462,4 +474,26 @@
+@@ -462,4 +474,29 @@
  
  #endif /* defined(__BIONIC_FORTIFY) */
  
 +__BEGIN_DECLS
 +
-+static FILE* tmpfile() {
++extern int open(const char*, int, ...);
++extern pid_t getpid();
++extern int unlink(const char*);
++static __inline__ FILE* tmpfile() {
 +      int p = getpid();
 +      char* path;
 +      int i;
 +      for (i = 0; i < 100; i++) {
-+              long int r = random();
-+              if (asprintf(&path, "@TERMUX_PREFIX@/tmp/tmpfile.%d-%l", p, r) == -1) return NULL;
-+              int fd = open(path, O_RDWR | O_CREAT | O_EXCL | O_LARGEFILE);
++              unsigned int r = arc4random();
++              if (asprintf(&path, "@TERMUX_PREFIX@/tmp/tmpfile.%d-%u", p, r) == -1) return NULL;
++              int fd = open(path, O_RDWR | O_CREAT | O_EXCL | O_LARGEFILE, 0600);
 +              free(path);
 +              if (fd >= 0) {
 +                      FILE* result = fdopen(fd, "w+");