annotate patches/guile-1.9.14-reloc.patch @ 6468:0ea4f16c7d7a

guile: somewhat better relocation patch.
author Jan Nieuwenhuizen <janneke@gnu.org>
date Tue, 01 Feb 2011 15:21:20 +0100
parents d0006ae646bd
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6468
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
1 From d93b5bd21e99cda017e1b2d7b459e453113fbfa6 Mon Sep 17 00:00:00 2001
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
2 From: Jan Nieuwenhuizen <janneke@gnu.org>
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
3 Date: Mon, 31 Jan 2011 21:05:48 +0100
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
4 Subject: [PATCH] Add dynamic relocation support, default off.
6443
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
5
6468
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
6 Set PATH, GUILE_LOAD_PATH, GUILE_LOAD_COMPILED_PATH according to
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
7 location of the guile executable. Using this together with
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
8 -rpath $ORIGIN/../lib and not changing the general installed
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
9 directory layout, this enables relocatable binary packages,
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
10 for use in $HOME or for Windows.
6443
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
11
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
12 2005-06-08 Jan Nieuwenhuizen <janneke@gnu.org>
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
13
6468
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
14 * configure.in: Add --enable-relocation option. Default off.
6443
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
15
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
16 libguile/ ChangeLog
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
17
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
18 2005-06-09 Jan Nieuwenhuizen <janneke@gnu.org>
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
19
6468
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
20 Experimental relocation patch.
6443
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
21
6468
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
22 * load.c (scm_init_argv0_relocation)[ARGV0_RELOCATION]: New
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
23 function.
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
24
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
25 (scm_init_load_path)[ARGV0_RELOCATION]: Use it.
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
26
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
27 * load.c (scm_c_argv0_relocation)[ARGV0_RELOCATION]:
6443
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
28
6468
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
29 * guile.c (main)[ARGV0_RELOCATION]: Use it to append from
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
30 executable location derived scm library directory.
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
31 [__MINGW32__|__CYGWIN__]: Append directory of executable to PATH.
6443
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
32 ---
6468
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
33 configure.ac | 12 +++++++++++
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
34 libguile/guile.c | 3 ++
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
35 libguile/load.c | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
36 libguile/load.h | 5 ++++
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
37 4 files changed, 75 insertions(+), 0 deletions(-)
6443
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
38
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
39 diff --git a/configure.ac b/configure.ac
6468
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
40 index 5c70aa8..5fa6cf4 100644
6443
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
41 --- a/configure.ac
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
42 +++ b/configure.ac
6468
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
43 @@ -1452,6 +1452,18 @@ GUILE_THREAD_LOCAL_STORAGE
6443
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
44 fi # with_threads=pthreads
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
45
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
46
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
47 +## Dynamic relocation, based on argv[0].
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
48 +reloc_p=no
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
49 +AC_ARG_ENABLE(relocation,
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
50 + [ --enable-relocation compile with dynamic relocation. Default: off],
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
51 + [reloc_p=$enableval])
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
52 +
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
53 +if test "$reloc_p" = "yes"; then
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
54 + AC_DEFINE([ARGV0_RELOCATION], [1], [Dynamic relocation])
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
55 + AC_DEFINE_UNQUOTED([PATH_SEPARATOR], "$PATH_SEPARATOR", [Path separator])
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
56 + AC_DEFINE_UNQUOTED([GUILE_EFFECTIVE_VERSION], "$GUILE_EFFECTIVE_VERSION", [GUILE_EFFECTIVE_VERSION])
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
57 +fi # $reloc_b
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
58 +
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
59 ## Cross building
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
60 if test "$cross_compiling" = "yes"; then
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
61 AC_MSG_CHECKING(cc for build)
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
62 diff --git a/libguile/guile.c b/libguile/guile.c
6468
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
63 index 6da547b..896adc4 100644
6443
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
64 --- a/libguile/guile.c
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
65 +++ b/libguile/guile.c
6468
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
66 @@ -67,6 +67,9 @@ inner_main (void *closure SCM_UNUSED, int argc, char **argv)
6443
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
67 int
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
68 main (int argc, char **argv)
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
69 {
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
70 +#if ARGV0_RELOCATION
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
71 + scm_c_argv0_relocation (argv[0]);
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
72 +#endif /* ARGV0_RELOCATION */
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
73 scm_boot_guile (argc, argv, inner_main, 0);
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
74 return 0; /* never reached */
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
75 }
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
76 diff --git a/libguile/load.c b/libguile/load.c
6468
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
77 index cbf9dc0..9ad1008 100644
6443
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
78 --- a/libguile/load.c
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
79 +++ b/libguile/load.c
6468
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
80 @@ -234,6 +234,53 @@ SCM_DEFINE (scm_parse_path, "parse-path", 1, 1, 0,
6443
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
81 }
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
82 #undef FUNC_NAME
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
83
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
84 +#if ARGV0_RELOCATION
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
85 +#include "filesys.h"
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
86 +#if defined (__CYGWIN__) || defined (__MINGW32__)
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
87 +#include "posix.h"
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
88 +#endif
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
89 +
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
90 +char const *global_argv0 = 0;
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
91 +
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
92 +void
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
93 +scm_c_argv0_relocation (char const *argv0)
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
94 +{
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
95 + global_argv0 = argv0;
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
96 +}
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
97 +
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
98 +SCM
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
99 +scm_init_argv0_relocation (char const* argv0)
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
100 +{
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
101 + SCM bindir = scm_dirname (scm_from_locale_string (argv0));
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
102 + SCM prefix = scm_dirname (bindir);
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
103 + SCM datadir = scm_string_append (scm_list_2 (prefix,
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
104 + scm_from_locale_string ("/share/guile/" GUILE_EFFECTIVE_VERSION)));
6468
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
105 + SCM path;
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
106 + char *env = getenv ("PATH");
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
107 + if (env)
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
108 + path = scm_string_append (scm_list_3 (bindir,
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
109 + scm_from_locale_string (PATH_SEPARATOR),
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
110 + scm_from_locale_string (env)));
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
111 + else
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
112 + path = bindir;
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
113 + scm_putenv (scm_string_append (scm_list_2 (scm_from_locale_string ("PATH="), path)));
6443
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
114 +
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
115 + return scm_list_1 (datadir);
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
116 +}
6452
d0006ae646bd guile: mingw and linux fixes. Now also runs on mingw.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6443
diff changeset
117 +
d0006ae646bd guile: mingw and linux fixes. Now also runs on mingw.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6443
diff changeset
118 +SCM
d0006ae646bd guile: mingw and linux fixes. Now also runs on mingw.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6443
diff changeset
119 +scm_init_argv0_compiled_relocation (char const* argv0)
d0006ae646bd guile: mingw and linux fixes. Now also runs on mingw.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6443
diff changeset
120 +{
d0006ae646bd guile: mingw and linux fixes. Now also runs on mingw.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6443
diff changeset
121 + SCM bindir = scm_dirname (scm_from_locale_string (argv0));
d0006ae646bd guile: mingw and linux fixes. Now also runs on mingw.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6443
diff changeset
122 + SCM prefix = scm_dirname (bindir);
d0006ae646bd guile: mingw and linux fixes. Now also runs on mingw.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6443
diff changeset
123 + SCM pkglibdir = scm_string_append (scm_list_2 (prefix,
d0006ae646bd guile: mingw and linux fixes. Now also runs on mingw.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6443
diff changeset
124 + scm_from_locale_string ("/lib/guile")));
d0006ae646bd guile: mingw and linux fixes. Now also runs on mingw.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6443
diff changeset
125 + SCM ccachedir = scm_string_append (scm_list_2 (pkglibdir,
d0006ae646bd guile: mingw and linux fixes. Now also runs on mingw.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6443
diff changeset
126 + scm_from_locale_string ("/" GUILE_EFFECTIVE_VERSION "/ccache")));
d0006ae646bd guile: mingw and linux fixes. Now also runs on mingw.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6443
diff changeset
127 +
d0006ae646bd guile: mingw and linux fixes. Now also runs on mingw.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6443
diff changeset
128 + return scm_list_1 (ccachedir);
d0006ae646bd guile: mingw and linux fixes. Now also runs on mingw.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6443
diff changeset
129 +}
6443
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
130 +#endif /* ARGV0_RELOCATION */
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
131
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
132 /* Initialize the global variable %load-path, given the value of the
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
133 SCM_SITE_DIR and SCM_LIBRARY_DIR preprocessor symbols and the
6468
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
134 @@ -304,6 +351,14 @@ scm_init_load_path ()
6443
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
135 if (env)
6468
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
136 cpath = scm_parse_path (scm_from_locale_string (env), cpath);
6443
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
137
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
138 +#if ARGV0_RELOCATION
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
139 + if (global_argv0)
6452
d0006ae646bd guile: mingw and linux fixes. Now also runs on mingw.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6443
diff changeset
140 + {
6468
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
141 + path = scm_append (scm_list_2 (scm_init_argv0_relocation (global_argv0), path));
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
142 + cpath = scm_append (scm_list_2 (scm_init_argv0_compiled_relocation (global_argv0), cpath));
6452
d0006ae646bd guile: mingw and linux fixes. Now also runs on mingw.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6443
diff changeset
143 + }
6443
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
144 +#endif /* __CYGWIN__ || __MINGW32__ */
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
145 +
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
146 *scm_loc_load_path = path;
6468
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
147 *scm_loc_load_compiled_path = cpath;
6443
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
148 }
6468
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
149 diff --git a/libguile/load.h b/libguile/load.h
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
150 index d1afefb..ea29d3a 100644
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
151 --- a/libguile/load.h
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
152 +++ b/libguile/load.h
6452
d0006ae646bd guile: mingw and linux fixes. Now also runs on mingw.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6443
diff changeset
153 @@ -27,6 +27,11 @@
6443
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
154
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
155
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
156 SCM_API SCM scm_parse_path (SCM path, SCM tail);
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
157 +#if ARGV0_RELOCATION
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
158 +SCM_API void scm_c_argv0_relocation (char const *argv0);
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
159 +SCM_API SCM scm_init_argv0_relocation (char const* argv0);
6452
d0006ae646bd guile: mingw and linux fixes. Now also runs on mingw.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6443
diff changeset
160 +SCM_API SCM scm_init_argv0_compiled_relocation (char const* argv0);
6443
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
161 +#endif
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
162 SCM_API SCM scm_primitive_load (SCM filename);
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
163 SCM_API SCM scm_c_primitive_load (const char *filename);
344d21a6233d guile: bump to 1.9.14.
Jan Nieuwenhuizen <janneke@gnu.org>
parents:
diff changeset
164 SCM_API SCM scm_sys_package_data_dir (void);
6468
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
165 --
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
166 1.7.1
0ea4f16c7d7a guile: somewhat better relocation patch.
Jan Nieuwenhuizen <janneke@gnu.org>
parents: 6452
diff changeset
167