summaryrefslogtreecommitdiff
path: root/file.c
diff options
context:
space:
mode:
authoryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-10-11 02:11:53 +0000
committeryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-10-11 02:11:53 +0000
commit69ac654c90178dce12c3365afbc03447a0fccf78 (patch)
tree390fb7f7cd6f0888e0c321b8049f0471dd2ca205 /file.c
parentf21431e574b1b27e47d19ff40ce2997783d310e3 (diff)
Merges a patch form naclports.
* configure.in (RUBY_NACL and others): Supports PNaCl. * dln.c: replace the old hacky dynamic loading over HTTP with nacl_io. * file.c: tenatively use access(2) instead of eaccess. (rb_file_load_ok): weaken with attribute but not by postprocess. * io.c (socket.h): now NaCl has socket.h (flock): disable here instead of nacl/ioctl.h * nacl/GNUmakefile.in (CC, LD, NM, AR, AS, RANLIB, OBJDUMP, OBJCOPY): respect path to them if they are absolute. This helps naclports to build ruby in their source tree. (PROGRAM_NMF, .SUFFIXES): support .pnexe for PNaCl. (ruby.o, file.o): move the hack to attributes in ruby.c and file.c * nacl/ioctl.h: removed. move the hack to io.c. * nacl/nacl-config.rb: support arm, pnacl and others. * nacl/pepper_main.c: support build in a naclports tree. * ruby.c (rb_load_file): weaken with attribute but not by postprocess. The patch is by sbc@google.com and the Native Client Authors. It is available at: * https://chromium.googlesource.com/external/naclports.git/+/873ca4910a5f9d4206306aacb4ed79c587c6a5f3/ports/ruby/nacl.patch git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47872 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'file.c')
-rw-r--r--file.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/file.c b/file.c
index f6271a3607..3fdfa1444a 100644
--- a/file.c
+++ b/file.c
@@ -1190,6 +1190,14 @@ rb_group_member(GETGROUPS_T gid)
#define USE_GETEUID 1
#endif
+#ifdef __native_client__
+// Although the NaCl toolchain contain eaccess() is it not yet
+// overridden by nacl_io.
+// TODO(sbc): Remove this once eaccess() is wired up correctly
+// in NaCl.
+#define eaccess access
+#endif
+
#ifndef HAVE_EACCESS
int
eaccess(const char *path, int mode)
@@ -5503,7 +5511,7 @@ rb_path_check(const char *path)
#ifndef _WIN32
#ifdef __native_client__
-__attribute__((noinline))
+__attribute__((noinline,weak))
#endif
int
rb_file_load_ok(const char *path)