[前][次][番号順一覧][スレッド一覧]

ruby-changes:15994

From: nobu <ko1@a...>
Date: Fri, 21 May 2010 13:36:15 +0900 (JST)
Subject: [ruby-changes:15994] Ruby:r27939 (trunk): * ruby.c (ruby_init_loadpath_safe): use real path for non-shared

nobu	2010-05-21 13:35:58 +0900 (Fri, 21 May 2010)

  New Revision: 27939

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=27939

  Log:
    * ruby.c (ruby_init_loadpath_safe): use real path for non-shared
      build.

  Modified files:
    trunk/ChangeLog
    trunk/configure.in
    trunk/ruby.c

Index: configure.in
===================================================================
--- configure.in	(revision 27938)
+++ configure.in	(revision 27939)
@@ -2049,6 +2049,7 @@
        AS_HELP_STRING([--enable-shared], [build a shared library for Ruby]),
        [enable_shared=$enableval])
 LIBRUBYARG_SHARED='-l$(RUBY_SO_NAME)'
+libprefix='$(libdir)'
 if test "$enable_shared" = 'yes'; then
   LIBRUBY='$(LIBRUBY_SO)'
   LIBRUBYARG='$(LIBRUBYARG_SHARED)'
@@ -2117,8 +2118,6 @@
 	LIBRUBY_LDSHARED='$(CC) -dynamiclib'
 	if test "$load_relative" = yes; then
 	    libprefix='@executable_path/../lib'
-	else
-	    libprefix='$(libdir)'
 	fi
 	LIBRUBY_DLDFLAGS="$LIBRUBY_DLDFLAGS "'-install_name '${libprefix}'/$(LIBRUBY_SO)'
 	LIBRUBY_DLDFLAGS="$LIBRUBY_DLDFLAGS "'-current_version $(MAJOR).$(MINOR).$(TEENY)'
@@ -2134,7 +2133,7 @@
 	])
 fi
 if test "$enable_rpath" = yes; then
-    LIBRUBY_RPATHFLAGS="${linker_flag}-R ${linker_flag}\$(libdir) -L\$(libdir)"
+    LIBRUBY_RPATHFLAGS="${linker_flag}-R ${linker_flag}${libprefix} -L\$(libdir)"
     LIBRUBYARG_SHARED="$LIBRUBY_RPATHFLAGS $LIBRUBYARG_SHARED"
     LIBRUBYARG_STATIC="$LIBRUBY_RPATHFLAGS $LIBRUBYARG_STATIC"
 fi
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 27938)
+++ ChangeLog	(revision 27939)
@@ -1,3 +1,8 @@
+Fri May 21 13:35:55 2010  Nobuyoshi Nakada  <nobu@r...>
+
+	* ruby.c (ruby_init_loadpath_safe): use real path for non-shared
+	  build.
+
 Fri May 21 12:25:58 2010  Nobuyoshi Nakada  <nobu@r...>
 
 	* marshal.c (w_float): use dtoa directly instead of stripping
Index: ruby.c
===================================================================
--- ruby.c	(revision 27938)
+++ ruby.c	(revision 27939)
@@ -370,9 +370,12 @@
 #elif defined(HAVE_DLADDR)
     Dl_info dli;
     if (dladdr(expand_include_path, &dli)) {
-	VALUE fname = rb_str_new_cstr(dli.dli_fname);
-	sopath = rb_file_absolute_path(fname, Qnil);
-	rb_str_resize(fname, 0);
+	VALUE rb_realpath_internal(VALUE basedir, VALUE path, int strict);
+	char fbuf[MAXPATHLEN];
+	char *f = dln_find_file_r(dli.dli_fname, getenv(PATH_ENV), fbuf, sizeof(fbuf));
+	VALUE fname = rb_str_new_cstr(f);
+	rb_str_freeze(fname);
+	sopath = rb_realpath_internal(Qnil, fname, 1);
     }
     else {
 	sopath = rb_str_new(0, 0);

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]