Le 21 déc. 08 à 17:49, Ralf Wildenhues a écrit :

Hi Akim,

Hi Ralf!

* Akim Demaille wrote on Fri, Dec 19, 2008 at 11:41:34AM CET:
Yet I have a slight problem: for some reason the top-level wrapper (lt-
cli.exe in my case) tries to launch .libs/lt-cli.exe, which does not
exist.  What does exist is .libs/cli.exe (and actually it makes more
sense to me).  So I had to change libtool:

Thanks for the report. You can make your bug reports even more perfect by providing './libtool --tag=CC --config', and writing to bug- libtool.

Cc'd.

And, in this case, also providing --mode=link command line and output.
;-)

Sure :)

# Which release of libtool.m4 was used?
macro_version=2.2.7a
macro_revision=1.3046

# What type of objects to build.
pic_mode=default

# Whether or not to build shared libraries.
build_libtool_libs=yes

# Whether or not to build static libraries.
build_old_libs=no

# Assembler program.
AS=as

# DLL creation program.
DLLTOOL=false

# Object dumper program.
OBJDUMP=objdump

# Whether or not to optimize for fast installation.
fast_install=yes

# Shell to use when invoking shell scripts.
SHELL="/bin/sh"

# An echo program that protects backslashes.
ECHO="printf %s\\n"

# The host system.
host_alias=mingw32
host=i386-pc-mingw32
host_os=mingw32

# The build system.
build_alias=
build=i686-pc-linux-gnu
build_os=linux-gnu

# A sed program that does not truncate output.
SED="/bin/sed"

# Sed that helps us avoid accidentally triggering echo(1) options like -n.
Xsed="$SED -e 1s/^X//"

# A grep program that handles long lines.
GREP="/bin/grep"

# An ERE matcher.
EGREP="/bin/grep -E"

# A literal string matcher.
FGREP="/bin/grep -F"

# A BSD- or MS-compatible name lister.
NM="/home/build/.wine/dosdevices/c:/vcxx8/VC/bin/link.exe -dump -symbols"

# Whether we need soft or hard links.
LN_S="ln -s"

# What is the maximum length of a command?
max_cmd_len=98304

# Object file suffix (normally "o").
objext=obj

# Executable file suffix (normally "").
exeext=

# whether the shell understands "unset".
lt_unset=unset

# turn spaces into newlines.
SP2NL="tr \\040 \\012"

# turn newlines into spaces.
NL2SP="tr \\015\\012 \\040\\040"

# How to create reloadable object files.
reload_flag=" -r"
reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs"

# Method to check whether dependent libraries are shared objects.
#deplibs_check_method="file_magic ^x86 archive import|^x86 DLL"
deplibs_check_method=pass_all

# Command to use when deplibs_check_method == "file_magic".
file_magic_cmd="func_win32_libid"

# The archiver.
AR="lib.exe"
AR_FLAGS="cru"

# A symbol stripping program.
STRIP="strip"

# Commands used to install an old-style archive.
RANLIB=":"
old_postinstall_cmds="chmod 644 \$oldlib~\$RANLIB \$oldlib"
old_postuninstall_cmds=""

# A C compiler.
LTCC="cl.exe"

# LTCC compiler flags.
LTCFLAGS="-g -O3"

# Take the output of nm and produce a listing of raw symbols and C names.
global_symbol_pipe="gawk '     {last_section=section; section=\$ 3};     
/Section length .*#relocs.*(pick any)/{hide[last_section]=1};     \$ 
0!~/External *\\|/{next};     / 0+ UNDEF /{next}; / UNDEF \\([^|]\\)*()/{next}; 
    {if(hide[section]) next};     {f=0}; \$ 0~/\\(\\).*\\|/{f=1}; {printf f ? 
\"T \" : \"D \"};     {split(\$ 0, a, /\\||\\r/); split(a[2], s)};     
s[1]~/^...@?]/{print s[1], s[1]; next};     s[1]~prfx {split(s[1],t,\"@\"); 
print t[1], substr(t[1],length(prfx))}     ' prfx=^_"


# Transform the output of nm in a proper C declaration.
global_symbol_to_cdecl="sed -n -e 's/^T .* \\(.*\\)\$/extern int \\1();/p' -e 
's/^[ABCDGISTW]* .* \\(.*\\)\$/extern char \\1;/p'"

# Transform the output of nm in a C name address pair.
global_symbol_to_c_name_address="sed -n -e 's/^: \\([^ ]*\\) \$/  {\\\"\\1\\\", 
(void *) 0},/p' -e 's/^[ABCDGISTW]* \\([^ ]*\\) \\([^ ]*\\)\$/  {\"\\2\", (void 
*) \\&\\2},/p'"

# Transform the output of nm in a C name address pair when lib prefix is needed.
global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \\([^ ]*\\) \$/  
{\\\"\\1\\\", (void *) 0},/p' -e 's/^[ABCDGISTW]* \\([^ ]*\\) \\(lib[^ ]*\\)\$/ 
 {\"\\2\", (void *) \\&\\2},/p' -e 's/^[ABCDGISTW]* \\([^ ]*\\) \\([^ ]*\\)\$/  
{\"lib\\2\", (void *) \\&\\2},/p'"

# The name of the directory that contains temporary libtool files.
objdir=.libs

# Used to examine libraries when file_magic_cmd begins with "file".
MAGIC_CMD=file

# Must we lock files when doing compilation?
need_locks="no"

# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
DSYMUTIL=""

# Tool to change global to local symbols on Mac OS X.
NMEDIT=""

# Tool to manipulate fat objects and archives on Mac OS X.
LIPO=""

# ldd/readelf like tool for Mach-O binaries on Mac OS X.
OTOOL=""

# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
OTOOL64=""

# Old archive suffix (normally "a").
libext=lib

# Shared library suffix (normally ".so").
shrext_cmds=".dll"

# The commands to extract the exported symbol list from a shared archive.
extract_expsyms_cmds=""

# Variables whose values should be saved in libtool wrapper scripts and
# restored at link time.
variables_saved_for_relink="PATH PATH "

# Do we need the "lib" prefix for modules?
need_lib_prefix=no

# Do we need a version for libraries?
need_version=no

# Library versioning type.
version_type=windows

# Shared library runtime path variable.
runpath_var=

# Shared library path variable.
shlibpath_var=PATH

# Is shlibpath searched before the hard-coded library search path?
shlibpath_overrides_runpath=unknown

# Format of library name prefix.
libname_spec="lib\$name"

# List of archive names.  First name is the real one, the rest are links.
# The last name is the one that the linker finds with -lNAME
library_names_spec="\${libname}\`echo \${release} | \$SED -e 
s/[.]/-/g\`\${versuffix}\${shared_ext} \$libname.lib"

# The coded name of the library, if different from the real name.
soname_spec=""

# Permission mode override for installation of shared libraries.
install_override_mode=""

# Command to use after installation of a shared archive.
postinstall_cmds=""

# Command to use after uninstallation of a shared archive.
postuninstall_cmds=""

# Commands used to finish a libtool library installation in a directory.
finish_cmds=""

# As "finish_cmds", except a single script fragment to be evaled but
# not shown.
finish_eval=""

# Whether we should hardcode library paths into libraries.
hardcode_into_libs=no

# Compile-time system search path for libraries.
sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"

# Run-time system search path for libraries.
sys_lib_dlsearch_path_spec="/lib /usr/lib"

# Whether dlopen is supported.
dlopen_support=yes

# Whether dlopen of programs is supported.
dlopen_self=unknown

# Whether dlopen of statically linked programs is supported.
dlopen_self_static=unknown

# Commands to strip libraries.
old_striplib="strip --strip-debug"
striplib="strip --strip-unneeded"


# The linker used to build libraries.
LD="link.exe"

# Commands used to build an old-style archive.
old_archive_cmds="lib -OUT:\$oldlib\$oldobjs\$old_deplibs"

# A language specific compiler.
CC="cl.exe"

# Is the compiler the GNU compiler?
with_gcc=

# Compiler flag to turn off builtin functions.
no_builtin_flag=""

# How to pass a linker flag through the compiler.
wl=""

# Additional compiler flags for building library objects.
pic_flag=" -DDLL_EXPORT -DPIC"

# Compiler flag to prevent dynamic linking.
link_static_flag=""

# Does compiler simultaneously support -c and -o options?
compiler_c_o="yes"

# Whether or not to add -lc for building shared libraries.
build_libtool_need_lc=yes

# Whether or not to disallow shared libs when runtime libs are static.
allow_libtool_libs_with_static_runtimes=yes

# Compiler flag to allow reflexive dlopens.
export_dynamic_flag_spec=""

# Compiler flag to generate shared objects directly from archives.
whole_archive_flag_spec=""

# Whether the compiler copes with passing no objects directly.
compiler_needs_object="no"

# Create an old-style archive from a shared archive.
old_archive_from_new_cmds="true"

# Create a temporary old-style archive to link instead of a shared archive.
old_archive_from_expsyms_cmds=""

# Commands used to build a shared archive.
archive_cmds="\$CC -o \$lib \$libobjs \$compiler_flags \\\`func_echo_all 
\\\"\$deplibs\\\" | \$SED 's/ -lc\$//'\\\` -link -dll~linknames="
archive_expsym_cmds=""

# Commands used to build a loadable module if different from building
# a shared archive.
module_cmds=""
module_expsym_cmds=""

# Whether we are building with GNU ld or not.
with_gnu_ld="no"

# Flag that allows shared libraries with undefined symbols to be built.
allow_undefined_flag="unsupported"

# Flag that enforces no undefined symbols.
no_undefined_flag=""

# Flag to hardcode $libdir into a binary during linking.
# This must work even if $libdir does not exist
hardcode_libdir_flag_spec=" "

# If ld is used when linking, flag to hardcode $libdir into a binary
# during linking.  This must work even if $libdir does not exist.
hardcode_libdir_flag_spec_ld=""

# Whether we need a single "-rpath" flag with a separated argument.
hardcode_libdir_separator=""

# Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
# DIR into the resulting binary.
hardcode_direct=no

# Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
# DIR into the resulting binary and the resulting library dependency is
# "absolute",i.e impossible to change by setting ${shlibpath_var} if the
# library is relocated.
hardcode_direct_absolute=no

# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
# into the resulting binary.
hardcode_minus_L=no

# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
# into the resulting binary.
hardcode_shlibpath_var=unsupported

# Set to "yes" if building a shared library automatically hardcodes DIR
# into the library and all subsequent libraries and executables linked
# against it.
hardcode_automatic=no

# Set to yes if linker adds runtime paths of dependent libraries
# to runtime path list.
inherit_rpath=no

# Whether libtool must link a program against all its dependency libraries.
link_all_deplibs=unknown

# Fix the shell variable $srcfile for the compiler.
fix_srcfile_path="\`cygpath -w \"\$srcfile\"\`"

# Set to "yes" if exported symbols are required.
always_export_symbols=no

# The commands to list exported symbols.
export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | 
\$SED 's/.* //' | sort | uniq > \$export_symbols"

# Symbols that should not be listed in the preloaded symbols.
exclude_expsyms="_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*"

# Symbols that must always be exported.
include_expsyms=""

# Commands necessary for linking programs (against libraries) with templates.
prelink_cmds=""

# Specify filename containing input files.
file_list_spec=""

# How to hardcode a shared library path into an executable.
hardcode_action=immediate

# The directories searched by this compiler when creating a shared library.
compiler_lib_search_dirs=""

# Dependencies to place before and after the objects being linked to
# create a shared library.
predep_objects=""
postdep_objects=""
predeps=""
postdeps=""

# The library search path used internally by the compiler when linking
# a shared library.
compiler_lib_search_path=""

 
bu...@bf-linux-3   
~/kernel-2_x86_windows_vcxx2005_release_dynamic/work/build/sdk-remote/src/rm 
urbi-launch.exe                                                                 
                                                   [15:56]
bu...@bf-linux-3   
~/kernel-2_x86_windows_vcxx2005_release_dynamic/work/build/sdk-remote/src/make 
urbi-launch.exe                                                                 
                                                 [15:56]
/bin/sh ../libtool --tag=CXX   --mode=link cl.exe /EHsc   -Wall /wd4061 /wd4099 
/wd4121 /wd4127 /wd4347 /wd4512 /wd4571 /wd4619 /wd4625 /wd4626 /wd4668 /wd4710 
/wd4711 /wd4800 /wd4820 -g -fvisibility=hidden -fvisibility-inlines-hidden -O3  
-L/home/build/local_wine/winroot/opt/lib -o urbi-launch.exe 
urbi_launch-urbi-launch.obj liburbi/liburbi.la ../jpeg-6b/libjpeg.la  
../lib/libport/libport.la ../libltdl/libltdlc.la liburbi/liburbi.la 
libtool: link: cl.exe /EHsc -Wall /wd4061 /wd4099 /wd4121 /wd4127 /wd4347 
/wd4512 /wd4571 /wd4619 /wd4625 /wd4626 /wd4668 /wd4710 /wd4711 /wd4800 /wd4820 
-g -fvisibility=hidden -fvisibility-inlines-hidden -O3 -o .libs/urbi-launch.exe 
urbi_launch-urbi-launch.obj  
/home/build/kernel-2_x86_windows_vcxx2005_release_dynamic/work/build/sdk-remote/libltdl/.libs/loadlibrary.lib
 -L/home/build/local_wine/winroot/opt/lib ../jpeg-6b/.libs/libjpeg.lib 
../lib/libport/.libs/libport.dll ../libltdl/.libs/libltdlc.lib 
liburbi/.libs/liburbi.dll -lws2_32 
/home/build/kernel-2_x86_windows_vcxx2005_release_dynamic/work/build/sdk-remote/lib/libport/.libs/libport.dll
 -L/usr/local/gostai/lib
   Creating library .libs/urbi-launch.lib and object .libs/urbi-launch.exp
LINK : warning LNK4068: /MACHINE not specified; defaulting to X86
   Creating library .libs/urbi-launch.lib and object .libs/urbi-launch.exp
lt-urbi-launch.c
lt-urbi-launch.c
LINK : warning LNK4068: /MACHINE not specified; defaulting to X86


so that _spawnv be given newargz[0] (== .libs/cl.exe) as first argument
instead of lt_argv_zero (== .libs/lt-cl.exe).

I don't understand exactly what the code is expected to do: is the
problem the value of lt_argv_zero (which is what I suspect), or rather
the fact that there is no .libs/lt-cli.exe (which I doubt).  This is
what I get without this change:

Both .libs/foo$EXEEXT and .libs/lt-foo$EXEEXT are needed on some systems
but I haven't checked whether that is still the case for w32 after the
recent-ish changes.

OK.

Also, I have enabled the DEBUGWRAPPER traces by changing libtool by
hand, is there a better way?  Read the code I see that the wrappers
support options, but I found no documentation about them, and there is
no --lt-help: is this for Libtool developers only?

Well, adding options to the wrapper is problematic: it should be
transparent to the user program it wraps. Thus options are bad bad bad.

Well, these options start by --lt-. Would you prefer an envvar? That might make things harder on hostile enwinronments.

You can './configure CFLAGS=-DDEBUGWRAPPER' I guess; but good thing we
didn't document that because it's bad bad bad again that we didn't stick
to LT_ namespace here.  Will fix.

:)

I also need the following patch to avoid tens of warnings when compiling the wrappers:

./.libs/lt-liburbi.c(394) : warning C4996: 'strcpy' was declared deprecated
        Message: 'This function or variable may be unsafe. Consider using 
strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See 
online help for details.'
./.libs/lt-liburbi.c(395) : warning C4996: 'strcat' was declared deprecated
        Message: 'This function or variable may be unsafe. Consider using 
strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See 
online help for details.'
./.libs/lt-liburbi.c(396) : warning C4996: 'strcat' was declared deprecated
        Message: 'This function or variable may be unsafe. Consider using 
strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See 
online help for details.'
./.libs/lt-liburbi.c(401) : warning C4996: 'strcat' was declared deprecated
        Message: 'This function or variable may be unsafe. Consider using 
strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See 
online help for details.'
./.libs/lt-liburbi.c(529) : warning C4996: 'strcpy' was declared deprecated
        Message: 'This function or variable may be unsafe. Consider using 
strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See 
online help for details.'
./.libs/lt-liburbi.c(580) : warning C4996: 'chmod' was declared deprecated
        C:\\vcxx8\\VC\\INCLUDE\io.h(316) : see declaration of 'chmod'
        Message: 'The POSIX name for this item is deprecated. Instead, use the 
ISO C++ conformant name: _chmod. See online help for details.'
./.libs/lt-liburbi.c(638) : warning C4996: 'getenv' was declared deprecated
        C:\\vcxx8\\VC\\INCLUDE\stdlib.h(483) : see declaration of 'getenv'
        Message: 'This function or variable may be unsafe. Consider using 
_dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See 
online help for details.'
./.libs/lt-liburbi.c(653) : warning C4996: 'getcwd' was declared deprecated
        C:\\vcxx8\\VC\\INCLUDE\direct.h(121) : see declaration of 'getcwd'
        Message: 'The POSIX name for this item is deprecated. Instead, use the 
ISO C++ conformant name: _getcwd. See online help for details.'
./.libs/lt-liburbi.c(660) : warning C4996: 'strcpy' was declared deprecated
        Message: 'This function or variable may be unsafe. Consider using 
strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See 
online help for details.'
./.libs/lt-liburbi.c(668) : warning C4996: 'strcpy' was declared deprecated
        Message: 'This function or variable may be unsafe. Consider using 
strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See 
online help for details.'
./.libs/lt-liburbi.c(678) : warning C4996: 'getcwd' was declared deprecated
        C:\\vcxx8\\VC\\INCLUDE\direct.h(121) : see declaration of 'getcwd'
        Message: 'The POSIX name for this item is deprecated. Instead, use the 
ISO C++ conformant name: _getcwd. See online help for details.'
./.libs/lt-liburbi.c(684) : warning C4996: 'strcpy' was declared deprecated
        Message: 'This function or variable may be unsafe. Consider using 
strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See 
online help for details.'
./.libs/lt-liburbi.c(807) : warning C4996: 'sprintf' was declared deprecated
        C:\\vcxx8\\VC\\INCLUDE\stdio.h(345) : see declaration of 'sprintf'
        Message: 'This function or variable may be unsafe. Consider using 
sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See 
online help for details.'
./.libs/lt-liburbi.c(808) : warning C4996: 'putenv' was declared deprecated
        C:\\vcxx8\\VC\\INCLUDE\stdlib.h(822) : see declaration of 'putenv'
        Message: 'The POSIX name for this item is deprecated. Instead, use the 
ISO C++ conformant name: _putenv. See online help for details.'
./.libs/lt-liburbi.c(827) : warning C4996: 'strcpy' was declared deprecated
        Message: 'This function or variable may be unsafe. Consider using 
strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See 
online help for details.'
./.libs/lt-liburbi.c(828) : warning C4996: 'strcpy' was declared deprecated
        Message: 'This function or variable may be unsafe. Consider using 
strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See 
online help for details.'
./.libs/lt-liburbi.c(832) : warning C4996: 'strcpy' was declared deprecated
        Message: 'This function or variable may be unsafe. Consider using 
strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See 
online help for details.'
./.libs/lt-liburbi.c(833) : warning C4996: 'strcpy' was declared deprecated
        Message: 'This function or variable may be unsafe. Consider using 
strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See 
online help for details.'
./.libs/lt-liburbi.c(860) : warning C4996: 'strncpy' was declared deprecated
        C:\\vcxx8\\VC\\INCLUDE\string.h(156) : see declaration of 'strncpy'
        Message: 'This function or variable may be unsafe. Consider using 
strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See 
online help for details.'
./.libs/lt-liburbi.c(898) : warning C4996: 'getenv' was declared deprecated
        C:\\vcxx8\\VC\\INCLUDE\stdlib.h(483) : see declaration of 'getenv'
        Message: 'This function or variable may be unsafe. Consider using 
_dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See 
online help for details.'
./.libs/lt-liburbi.c(919) : warning C4996: 'getenv' was declared deprecated
        C:\\vcxx8\\VC\\INCLUDE\stdlib.h(483) : see declaration of 'getenv'
        Message: 'This function or variable may be unsafe. Consider using 
_dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See 
online help for details.'
./.libs/lt-liburbi.c(935) : warning C4996: 'getenv' was declared deprecated
        C:\\vcxx8\\VC\\INCLUDE\stdlib.h(483) : see declaration of 'getenv'
        Message: 'This function or variable may be unsafe. Consider using 
_dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See 
online help for details.'
./.libs/lt-liburbi.c(956) : warning C4996: 'getenv' was declared deprecated
        C:\\vcxx8\\VC\\INCLUDE\stdlib.h(483) : see declaration of 'getenv'
        Message: 'This function or variable may be unsafe. Consider using 
_dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See 
online help for details.'
 
From fc98e2da2b6718a3fc202da694e433fc10455332 Mon Sep 17 00:00:00 2001
From: Akim Demaille <[email protected]>
Date: Mon, 22 Dec 2008 15:59:52 +0100
Subject: [PATCH] Fix wrapper warnings from MSVC 2005.

        * libltdl/config/ltmain.m4sh (func_emit_cwrapperexe_src): Define
        _CRT_SECURE_NO_DEPRECATE, _chmod, _getcwd, and _putenv.
---
 libltdl/config/ltmain.m4sh |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh
index 334a9f7..2da1a47 100644
--- a/libltdl/config/ltmain.m4sh
+++ b/libltdl/config/ltmain.m4sh
@@ -2724,7 +2724,6 @@ func_to_host_pathlist ()
 func_emit_cwrapperexe_src ()
 {
        cat <<EOF
-
 /* $cwrappersource - temporary wrapper executable for $objdir/$outputname
    Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
 
@@ -2740,6 +2739,9 @@ func_emit_cwrapperexe_src ()
 */
 EOF
            cat <<"EOF"
+#ifdef _MSC_VER
+# define _CRT_SECURE_NO_DEPRECATE 1
+#endif
 #include <stdio.h>
 #include <stdlib.h>
 #ifdef _MSC_VER
@@ -2747,6 +2749,12 @@ EOF
 # include <process.h>
 # include <io.h>
 # define setmode _setmode
+  // Deprecations starting with MSVC 2005.
+# if 1100 <= _MSC_VER
+#  define chmod  _chmod
+#  define getcwd _getcwd
+#  define putenv _putenv
+# endif
 #else
 # include <unistd.h>
 # include <stdint.h>
-- 
1.6.0.4.790.gaa14a

_______________________________________________
http://lists.gnu.org/mailman/listinfo/libtool

Reply via email to