[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] GNU Guile branch, wip-1-8-mingw-build, updated. release_
From: |
Neil Jerram |
Subject: |
[Guile-commits] GNU Guile branch, wip-1-8-mingw-build, updated. release_1-8-7-19-g0d473e0 |
Date: |
Fri, 05 Mar 2010 23:15:12 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Guile".
http://git.savannah.gnu.org/cgit/guile.git/commit/?id=0d473e03c05402bf50e973199ca2970e0c408c3b
The branch, wip-1-8-mingw-build has been updated
via 0d473e03c05402bf50e973199ca2970e0c408c3b (commit)
via 402a6712de0a0a277348b5a2fce4ac474ba4b431 (commit)
from bf49096fffef5742893bcdb5610b03055ff689dd (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 0d473e03c05402bf50e973199ca2970e0c408c3b
Author: Neil Jerram <address@hidden>
Date: Fri Mar 5 22:55:14 2010 +0000
Patch ltmain.sh to handle args correctly when invoking a Windows executable
(From
http://git.savannah.gnu.org/cgit/libtool.git/commit/?id=101ad44541c6d303cf465937a212042885f4338e)
* ltmain.sh.patch: New file.
* autogen.sh: Apply patch to build-aux/ltmain.sh.
commit 402a6712de0a0a277348b5a2fce4ac474ba4b431
Author: Neil Jerram <address@hidden>
Date: Tue Mar 2 23:23:52 2010 +0000
Add @EXEEXT@ to Guile executable paths
Fixes this MinGW build error:
cat alist.doc arbiters.doc async.doc backtrace.doc boolean.doc chars.doc
continuations.doc debug.doc deprecation.doc deprecated.doc discouraged.doc
dynl.doc dynwind.doc environments.doc eq.doc error.doc eval.doc evalext.doc
extensions.doc feature.doc fluids.doc fports.doc futures.doc gc.doc goops.doc
gsubr.doc gc-mark.doc gc-segment.doc gc-malloc.doc gc-card.doc guardians.doc
hash.doc hashtab.doc hooks.doc i18n.doc init.doc ioext.doc keywords.doc
lang.doc list.doc load.doc macros.doc mallocs.doc modules.doc numbers.doc
objects.doc objprop.doc options.doc pairs.doc ports.doc print.doc procprop.doc
procs.doc properties.doc random.doc rdelim.doc read.doc root.doc rw.doc
scmsigs.doc script.doc simpos.doc smob.doc sort.doc srcprop.doc stackchk.doc
stacks.doc stime.doc strings.doc srfi-4.doc srfi-13.doc srfi-14.doc
strorder.doc strports.doc struct.doc symbols.doc threads.doc throw.doc
values.doc variable.doc vectors.doc version.doc vports.doc weaks.doc ramap.doc
unif.doc dynl.doc filesys.doc posix.doc net_db.doc socket.doc win32-uname.doc
win32-dirent.doc win32-socket.doc inet_aton.doc mkstemp.doc |
GUILE="/home/neil/SW/Guile/branch_release-1-8/pre-inst-guile"
../scripts/snarf-check-and-output-texi > guile-procedures.texi || { rm
guile-procedures.texi; false; }
/home/neil/SW/Guile/branch_release-1-8/pre-inst-guile: line 94:
/home/neil/SW/Guile/branch_release-1-8/libguile/guile: No such file or directory
/home/neil/SW/Guile/branch_release-1-8/pre-inst-guile: line 94: exec:
/home/neil/SW/Guile/branch_release-1-8/libguile/guile: cannot execute: No such
file or directory
* pre-inst-guile-env.in, pre-inst-guile.in: Add @EXEEXT@
-----------------------------------------------------------------------
Summary of changes:
autogen.sh | 6 ++
ltmain.sh.patch | 143 +++++++++++++++++++++++++++++++++++++++++++++++++
pre-inst-guile-env.in | 4 ++
pre-inst-guile.in | 2 +-
4 files changed, 154 insertions(+), 1 deletions(-)
create mode 100644 ltmain.sh.patch
diff --git a/autogen.sh b/autogen.sh
index fa34047..0f46df3 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -13,4 +13,10 @@ set -e
autoreconf -i --force --verbose
+# Patch build-aux/ltmain.sh to apply fix for handling arguments
+# correctly when invoking Windows executables. This patch comes from
+# libtool's Git repository:
+#
http://git.savannah.gnu.org/cgit/libtool.git/commit/?id=101ad44541c6d303cf465937a212042885f4338e
+patch -p1 < ltmain.sh.patch
+
echo "Now run configure and make."
diff --git a/ltmain.sh.patch b/ltmain.sh.patch
new file mode 100644
index 0000000..5b4d270
--- /dev/null
+++ b/ltmain.sh.patch
@@ -0,0 +1,143 @@
+--- a/build-aux/ltmain.sh 2010-03-04 20:49:32.000000000 +0000
++++ b/build-aux/ltmain.sh 2010-03-02 23:04:58.000000000 +0000
+@@ -3280,6 +3280,7 @@
+ int lt_split_name_value (const char *arg, char** name, char** value);
+ void lt_update_exe_path (const char *name, const char *value);
+ void lt_update_lib_path (const char *name, const char *value);
++char **prepare_spawn (char **argv);
+
+ static const char *script_text_part1 =
+ EOF
+@@ -3560,6 +3561,7 @@
+ mingw*)
+ cat <<"EOF"
+ /* execv doesn't actually work on mingw as expected on unix */
++ newargz = prepare_spawn (newargz);
+ rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
+ if (rval == -1)
+ {
+@@ -4023,8 +4025,125 @@
+ }
+ }
+
++EOF
++ case $host_os in
++ mingw*)
++ cat <<"EOF"
++
++/* Prepares an argument vector before calling spawn().
++ Note that spawn() does not by itself call the command interpreter
++ (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
++ ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
++ GetVersionEx(&v);
++ v.dwPlatformId == VER_PLATFORM_WIN32_NT;
++ }) ? "cmd.exe" : "command.com").
++ Instead it simply concatenates the arguments, separated by ' ', and calls
++ CreateProcess(). We must quote the arguments since Win32 CreateProcess()
++ interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
++ special way:
++ - Space and tab are interpreted as delimiters. They are not treated as
++ delimiters if they are surrounded by double quotes: "...".
++ - Unescaped double quotes are removed from the input. Their only effect is
++ that within double quotes, space and tab are treated like normal
++ characters.
++ - Backslashes not followed by double quotes are not special.
++ - But 2*n+1 backslashes followed by a double quote become
++ n backslashes followed by a double quote (n >= 0):
++ \" -> "
++ \\\" -> \"
++ \\\\\" -> \\"
++ */
++#define SHELL_SPECIAL_CHARS "\"\\
\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
++#define SHELL_SPACE_CHARS "
\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
++char **
++prepare_spawn (char **argv)
++{
++ size_t argc;
++ char **new_argv;
++ size_t i;
++
++ /* Count number of arguments. */
++ for (argc = 0; argv[argc] != NULL; argc++)
++ ;
++
++ /* Allocate new argument vector. */
++ new_argv = XMALLOC (char *, argc + 1);
++
++ /* Put quoted arguments into the new argument vector. */
++ for (i = 0; i < argc; i++)
++ {
++ const char *string = argv[i];
++
++ if (string[0] == '\0')
++ new_argv[i] = xstrdup ("\"\"");
++ else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
++ {
++ int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
++ size_t length;
++ unsigned int backslashes;
++ const char *s;
++ char *quoted_string;
++ char *p;
++
++ length = 0;
++ backslashes = 0;
++ if (quote_around)
++ length++;
++ for (s = string; *s != '\0'; s++)
++ {
++ char c = *s;
++ if (c == '"')
++ length += backslashes + 1;
++ length++;
++ if (c == '\\')
++ backslashes++;
++ else
++ backslashes = 0;
++ }
++ if (quote_around)
++ length += backslashes + 1;
+
++ quoted_string = XMALLOC (char, length + 1);
++ p = quoted_string;
++ backslashes = 0;
++ if (quote_around)
++ *p++ = '"';
++ for (s = string; *s != '\0'; s++)
++ {
++ char c = *s;
++ if (c == '"')
++ {
++ unsigned int j;
++ for (j = backslashes + 1; j > 0; j--)
++ *p++ = '\\';
++ }
++ *p++ = c;
++ if (c == '\\')
++ backslashes++;
++ else
++ backslashes = 0;
++ }
++ if (quote_around)
++ {
++ unsigned int j;
++ for (j = backslashes; j > 0; j--)
++ *p++ = '\\';
++ *p++ = '"';
++ }
++ *p = '\0';
++
++ new_argv[i] = quoted_string;
++ }
++ else
++ new_argv[i] = (char *) string;
++ }
++ new_argv[argc] = NULL;
++
++ return new_argv;
++}
+ EOF
++ ;;
++ esac
+ }
+ # end: func_emit_cwrapperexe_src
diff --git a/pre-inst-guile-env.in b/pre-inst-guile-env.in
index 5bf1e13..671376f 100644
--- a/pre-inst-guile-env.in
+++ b/pre-inst-guile-env.in
@@ -78,4 +78,8 @@ PATH="${top_builddir}/guile-config:${PATH}"
PATH="${top_builddir}/libguile:${PATH}"
export PATH
+# set GUILE (clobber)
+GUILE=${top_builddir}/libguile/address@hidden@
+export GUILE
+
exec "$@"
diff --git a/pre-inst-guile.in b/pre-inst-guile.in
index 01f4f25..d67f261 100644
--- a/pre-inst-guile.in
+++ b/pre-inst-guile.in
@@ -87,7 +87,7 @@
DYLD_LIBRARY_PATH="${dyld_prefix}${top_builddir}/libguile/.libs:$DYLD_LIBRARY_PA
export DYLD_LIBRARY_PATH
# set GUILE (clobber)
-GUILE=${top_builddir}/libguile/guile
+GUILE=${top_builddir}/libguile/address@hidden@
export GUILE
# do it
hooks/post-receive
--
GNU Guile
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Guile-commits] GNU Guile branch, wip-1-8-mingw-build, updated. release_1-8-7-19-g0d473e0,
Neil Jerram <=