From 69ac654c90178dce12c3365afbc03447a0fccf78 Mon Sep 17 00:00:00 2001 From: yugui Date: Sat, 11 Oct 2014 02:11:53 +0000 Subject: 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 --- dln.c | 15 --------------- 1 file changed, 15 deletions(-) (limited to 'dln.c') diff --git a/dln.c b/dln.c index 2b6a82f063..355cec1090 100644 --- a/dln.c +++ b/dln.c @@ -1325,28 +1325,13 @@ dln_load(const char *file) # define RTLD_GLOBAL 0 #endif -#ifdef __native_client__ - char* p, *orig; - if (file[0] == '.' && file[1] == '/') file+=2; - orig = strdup(file); - for (p = file; *p; ++p) { - if (*p == '/') *p = '_'; - } -#endif /* Load file */ if ((handle = (void*)dlopen(file, RTLD_LAZY|RTLD_GLOBAL)) == NULL) { -#ifdef __native_client__ - free(orig); -#endif error = dln_strerror(); goto failed; } init_fct = (void(*)())(VALUE)dlsym(handle, buf); -#ifdef __native_client__ - strcpy(file, orig); - free(orig); -#endif if (init_fct == NULL) { error = DLN_ERROR(); dlclose(handle); -- cgit v1.2.1