guile-commits
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]