Use __fcntl() exclusively within glibc (XCC)
authorBarret Rhoden <brho@cs.berkeley.edu>
Tue, 21 Jul 2015 20:11:30 +0000 (16:11 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Fri, 24 Jul 2015 07:05:14 +0000 (03:05 -0400)
In an upcoming commit, I'll need to have two versions of fcntl, one used
internally in glibc, and one used outside.  This makes it such that
glibc only uses __fcntl.

I needed to bring in some sysdeps.  In future versions of glibc, some
files may use fcntl(), and some of these sysdeps may start using
__fcntl.  We just need to be on the lookout.

Rebuild glibc.

tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/check_fds.c
tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/dup.c [new file with mode: 0644]
tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/dup2.c [new file with mode: 0644]
tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/fsync.c
tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/posix_fadvise.c
tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/posix_fadvise64.c
tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/shm_open.c [new file with mode: 0644]
tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/sotruss-lib.c [new file with mode: 0644]

index ff81640..3f2a784 100644 (file)
@@ -5,7 +5,7 @@
 void    
 __libc_check_standard_fds (void)
 {
-  #define check_one_fd(fd) assert(fcntl((fd),F_GETFD) != -1)
+  #define check_one_fd(fd) assert(__fcntl((fd), F_GETFD) != -1)
   check_one_fd(STDIN_FILENO);
   check_one_fd(STDOUT_FILENO);
   check_one_fd(STDERR_FILENO);
diff --git a/tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/dup.c b/tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/dup.c
new file mode 100644 (file)
index 0000000..87e8f89
--- /dev/null
@@ -0,0 +1,2 @@
+#define fcntl __fcntl
+#include <sysdeps/posix/dup.c>
diff --git a/tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/dup2.c b/tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/dup2.c
new file mode 100644 (file)
index 0000000..f772905
--- /dev/null
@@ -0,0 +1,2 @@
+#define fcntl __fcntl
+#include <sysdeps/posix/dup2.c>
index e7b48d8..2915647 100644 (file)
@@ -23,5 +23,5 @@
 int
 posix_fadvise (int fd, __off_t offset, __off_t len, int advise)
 {
-  return fcntl(fd, F_ADVISE, (__off64_t)offset, (__off64_t)len, advise);
+  return __fcntl(fd, F_ADVISE, (__off64_t)offset, (__off64_t)len, advise);
 }
index 2bb8741..c26d9cb 100644 (file)
@@ -23,5 +23,5 @@
 int
 posix_fadvise64 (int fd, __off64_t offset, __off64_t len, int advise)
 {
-  return fcntl(fd, F_ADVISE, offset, len, advise);
+  return __fcntl(fd, F_ADVISE, offset, len, advise);
 }
diff --git a/tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/shm_open.c b/tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/shm_open.c
new file mode 100644 (file)
index 0000000..61043b4
--- /dev/null
@@ -0,0 +1,2 @@
+#define fcntl __fcntl
+#include <sysdeps/posix/shm_open.c>
diff --git a/tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/sotruss-lib.c b/tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/sotruss-lib.c
new file mode 100644 (file)
index 0000000..549a364
--- /dev/null
@@ -0,0 +1,2 @@
+#define fcntl __fcntl
+#include <elf/sotruss-lib.c>