]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
Ensure cwrapper compiles without warnings under -std=c99.
authorCharles Wilson <libtool@cwilson.fastmail.fm>
Sat, 26 Apr 2008 01:08:04 +0000 (21:08 -0400)
committerCharles Wilson <libtool@cwilson.fastmail.fm>
Sun, 11 May 2008 16:41:14 +0000 (12:41 -0400)
* libltdl/config/ltmain.m4sh (func_emit_wrapper_part1):
new function.
(func_emit_wrapper_part2): new function.
(func_emit_wrapper): delegate to new functions.
(func_emit_cwrapperexe_src) [__CYGWIN__ && __STRICT_ANSI__]:
ensure realpath is declared.
(func_emit_cwrapperexe_src): declare two different strings
to each hold part of the wrapper script content. Initialize
using new func_emit_wrapper_partX functions.
(func_emit_cwrapperexe_src) [main]: when emitting wrapper
script content, use both strings.
Reported by Yaakov Selkowitz.

ChangeLog
libltdl/config/ltmain.m4sh

index 6784cb52eded7fcb6260028a8b4563114900e3c0..81f532e77cbae5a96e7afcef39c4d62da4b1bc39 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+2008-05-11  Charles Wilson  <libtool@cwilson.fastmail.fm>
+
+       Ensure cwrapper compiles without warnings under -std=c99.
+       * libltdl/config/ltmain.m4sh (func_emit_wrapper_part1):
+       new function.
+       (func_emit_wrapper_part2): new function.
+       (func_emit_wrapper): delegate to new functions.
+       (func_emit_cwrapperexe_src) [__CYGWIN__ && __STRICT_ANSI__]:
+       ensure realpath is declared.
+       (func_emit_cwrapperexe_src): declare two different strings
+       to each hold part of the wrapper script content. Initialize
+       using new func_emit_wrapper_partX functions.
+       (func_emit_cwrapperexe_src) [main]: when emitting wrapper
+       script content, use both strings.
+       Reported by Yaakov Selkowitz.
+
 2008-05-06  Charles Wilson  <libtool@cwilson.fastmail.fm>
 
        Ensure $OBJDUMP is defined
index 33689b94b5f7dbdac49065289d3619f8de453e0f..09dc43413fc9a2d42ebc08da9e2ae1105680d87d 100644 (file)
@@ -2249,25 +2249,16 @@ func_extract_archives ()
 
 
 
-# func_emit_wrapper arg
+# func_emit_wrapper_part1 [arg=no]
 #
-# emit a libtool wrapper script on stdout
-# don't directly open a file because we may want to
-# incorporate the script contents within a cygwin/mingw
-# wrapper executable.  Must ONLY be called from within
-# func_mode_link because it depends on a number of variable
-# set therein.
-#
-# arg is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
-# variable will take.  If 'yes', then the emitted script
-# will assume that the directory in which it is stored is
-# the '.lib' directory.  This is a cygwin/mingw-specific
-# behavior.
-func_emit_wrapper ()
+# Emit the first part of a libtool wrapper script on stdout.
+# For more information, see the description associated with
+# func_emit_wrapper(), below.
+func_emit_wrapper_part1 ()
 {
-       func_emit_wrapper_arg1=no
+       func_emit_wrapper_part1_arg1=no
        if test -n "$1" ; then
-         func_emit_wrapper_arg1=$1
+         func_emit_wrapper_part1_arg1=$1
        fi
 
        $ECHO "\
@@ -2352,10 +2343,27 @@ else
     file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
     file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
   done
+"
+}
+# end: func_emit_wrapper_part1
+
+# func_emit_wrapper_part2 [arg=no]
+#
+# Emit the second part of a libtool wrapper script on stdout.
+# For more information, see the description associated with
+# func_emit_wrapper(), below.
+func_emit_wrapper_part2 ()
+{
+       func_emit_wrapper_part2_arg1=no
+       if test -n "$1" ; then
+         func_emit_wrapper_part2_arg1=$1
+       fi
+
+       $ECHO "\
 
   # Usually 'no', except on cygwin/mingw when embedded into
   # the cwrapper.
-  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1
   if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
     # special case for '.'
     if test \"\$thisdir\" = \".\"; then
@@ -2472,7 +2480,36 @@ else
 fi\
 "
 }
-# end: func_emit_wrapper
+# end: func_emit_wrapper_part2
+
+
+# func_emit_wrapper [arg=no]
+#
+# Emit a libtool wrapper script on stdout.
+# Don't directly open a file because we may want to
+# incorporate the script contents within a cygwin/mingw
+# wrapper executable.  Must ONLY be called from within
+# func_mode_link because it depends on a number of variables
+# set therein.
+#
+# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
+# variable will take.  If 'yes', then the emitted script
+# will assume that the directory in which it is stored is
+# the $objdir directory.  This is a cygwin/mingw-specific
+# behavior.
+func_emit_wrapper ()
+{
+       func_emit_wrapper_arg1=no
+       if test -n "$1" ; then
+         func_emit_wrapper_arg1=$1
+       fi
+
+       # split this up so that func_emit_cwrapperexe_src
+       # can call each part independently.
+       func_emit_wrapper_part1 "${func_emit_wrapper_arg1}"
+       func_emit_wrapper_part2 "${func_emit_wrapper_arg1}"
+}
+
 
 # func_emit_cwrapperexe_src
 # emit the source code for a wrapper executable on stdout
@@ -2509,6 +2546,9 @@ EOF
 # include <stdint.h>
 # ifdef __CYGWIN__
 #  include <io.h>
+#  ifdef __STRICT_ANSI__
+char *realpath (const char *, char *);
+#  endif
 # endif
 #endif
 #include <malloc.h>
@@ -2616,10 +2656,18 @@ int check_executable (const char *path);
 char *strendzap (char *str, const char *pat);
 void lt_fatal (const char *message, ...);
 
-static const char *script_text =
+static const char *script_text_part1 =
 EOF
 
-           func_emit_wrapper yes |
+           func_emit_wrapper_part1 yes |
+               $SED -e 's/\([\\"]\)/\\\1/g' \
+                    -e 's/^/  "/' -e 's/$/\\n"/'
+           echo ";"
+           cat <<EOF
+
+static const char *script_text_part2 =
+EOF
+           func_emit_wrapper_part2 yes |
                $SED -e 's/\([\\"]\)/\\\1/g' \
                     -e 's/^/  "/' -e 's/$/\\n"/'
            echo ";"
@@ -2658,7 +2706,8 @@ EOF
              esac
 
            cat <<EOF
-         printf ("%s", script_text);
+         printf ("%s", script_text_part1);
+         printf ("%s", script_text_part2);
          return 0;
        }
     }
@@ -2750,7 +2799,8 @@ EOF
     {
       lt_fatal ("Could not open %s for writing", newargz[1]);
     }
-  fprintf (shwrapper, "%s", script_text);
+  fprintf (shwrapper, "%s", script_text_part1);
+  fprintf (shwrapper, "%s", script_text_part2);
   fclose (shwrapper);
 
   make_executable (newargz[1]);