libtool-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] GNU Libtool branch, master, updated. v2.2.10-53-gb28132e


From: Peter Rosin
Subject: [SCM] GNU Libtool branch, master, updated. v2.2.10-53-gb28132e
Date: Mon, 05 Jul 2010 11:03:58 +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 Libtool".

The branch, master has been updated
       via  b28132eabade54dbb9ff18a5761be445d916e148 (commit)
       via  0b56641c0323833e9603deeeb6c778e8c34780ef (commit)
      from  1e7ce72416cad66b1f82cd503d37f92ecdbe4b8a (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 b28132eabade54dbb9ff18a5761be445d916e148
Author: Peter Rosin <address@hidden>
Date:   Mon Jul 5 13:02:54 2010 +0200

    * tests/export.at [MSVC]: dllimport all imported variables.
    
    Signed-off-by: Ralf Wildenhues <address@hidden>
    Signed-off-by: Peter Rosin <address@hidden>

commit 0b56641c0323833e9603deeeb6c778e8c34780ef
Author: Peter Rosin <address@hidden>
Date:   Thu Jul 1 11:36:05 2010 +0200

    Support for response files with $NM.
    
    * libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS)
    <nm_file_list_spec>: New tag variable. Set it to '@' if input
    files can be passed to $NM in a file named with the '@' option.
    * libltdl/config/ltmain.m4sh (func_mode_link): When
    nm_file_list_spec is nonempty, use it to avoid skipped_export.
    * doc/libtool.texi (libtool script contents): Document
    new variable.

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                  |   16 ++++++++++++++++
 doc/libtool.texi           |    4 ++++
 libltdl/config/ltmain.m4sh |   20 ++++++++++++++++++--
 libltdl/m4/libtool.m4      |    9 +++++++++
 tests/export.at            |   30 +++++++++++++++++++++++-------
 5 files changed, 70 insertions(+), 9 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index f9bb7dc..f5fa68f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+2010-07-05  Peter Rosin  <address@hidden>
+
+       * tests/export.at [MSVC]: dllimport all imported variables.
+
+2010-07-01  Ralf Wildenhues  <address@hidden>
+           Peter Rosin  <address@hidden>
+
+       Support for response files with $NM.
+       * libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS)
+       <nm_file_list_spec>: New tag variable. Set it to '@' if input
+       files can be passed to $NM in a file named with the '@' option.
+       * libltdl/config/ltmain.m4sh (func_mode_link): When
+       nm_file_list_spec is nonempty, use it to avoid skipped_export.
+       * doc/libtool.texi (libtool script contents): Document
+       new variable.
+
 2010-07-04  Ralf Wildenhues  <address@hidden>
 
        Fix ccache test for MSVC.
diff --git a/doc/libtool.texi b/doc/libtool.texi
index af6e13d..914bd1d 100644
--- a/doc/libtool.texi
+++ b/doc/libtool.texi
@@ -6171,6 +6171,10 @@ Whether files must be locked to prevent conflicts when 
compiling
 simultaneously.  Set to @samp{yes} or @samp{no}.
 @end defvar
 
address@hidden nm_file_list_spec
+Specify filename containing input files for @code{NM}.
address@hidden defvar
+
 @defvar no_builtin_flag
 Compiler flag to disable builtin functions that conflict with declaring
 external global symbols as @code{char}.
diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh
index d2676f9..8cb8285 100644
--- a/libltdl/config/ltmain.m4sh
+++ b/libltdl/config/ltmain.m4sh
@@ -6719,14 +6719,30 @@ EOF
            $opt_dry_run || $RM $export_symbols
            cmds=$export_symbols_cmds
            save_ifs="$IFS"; IFS='~'
-           for cmd in $cmds; do
+           for cmd1 in $cmds; do
              IFS="$save_ifs"
-             eval cmd=\"$cmd\"
+             eval cmd=\"$cmd1\"
              func_len " $cmd"
              len=$func_len_result
              if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; 
then
                func_show_eval "$cmd" 'exit $?'
                skipped_export=false
+             elif test -n "$nm_file_list_spec"; then
+               output_la=`$ECHO "X$output" | $Xsed -e "$basename"`
+               save_libobjs=$libobjs
+               save_output=$output
+               output=${output_objdir}/${output_la}.nm
+               libobjs=$nm_file_list_spec$output
+               func_append delfiles " $output"
+               func_verbose "creating $NM input file list: $output"
+               for obj in $save_libobjs; do
+                 $ECHO "$obj"
+               done > "$output"
+               eval cmd=\"$cmd1\"
+               func_show_eval "$cmd" 'exit $?'
+               output=$save_output
+               libobjs=$save_libobjs
+               skipped_export=false
              else
                # The command line is too long to execute in one step.
                func_verbose "using reloadable object file for export list..."
diff --git a/libltdl/m4/libtool.m4 b/libltdl/m4/libtool.m4
index 8475d4b..bb6957e 100644
--- a/libltdl/m4/libtool.m4
+++ b/libltdl/m4/libtool.m4
@@ -3615,6 +3615,13 @@ else
   AC_MSG_RESULT(ok)
 fi
 
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+  nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep 'address@hidden' >/dev/null; then
+  nm_file_list_spec='@'
+fi
+
 _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
     [Take the output of nm and produce a listing of raw symbols and C names])
 _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
@@ -3625,6 +3632,8 @@ _LT_DECL([global_symbol_to_c_name_address],
 _LT_DECL([global_symbol_to_c_name_address_lib_prefix],
     [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
     [Transform the output of nm in a C name address pair when lib prefix is 
needed])
+_LT_DECL([], [nm_file_list_spec], [1],
+    [Specify filename containing input files for $NM])
 ]) # _LT_CMD_GLOBAL_SYMBOLS
 
 
diff --git a/tests/export.at b/tests/export.at
index a330d40..39adfbc 100644
--- a/tests/export.at
+++ b/tests/export.at
@@ -93,32 +93,48 @@ v15
 
 AT_DATA(main.c,
 [[
+/* w32 fun.  With GCC, you can have auto-import, which will work for
+ * functions and non-const variables.  With MSVC, you have to explicitly
+ * import all variables.  Depending on the amount of portability, you
+ * need these annotations: LIBA_SCOPE for GCC, and also LIBA_SCOPE_VAR
+ * for MSVC.  Of course you can merge both to one, this test only avoids
+ * that in order to expose the auto-import feature on Cygwin.
+ *
+ * For users, it's best to realize that they should not provide any
+ * non-function API at all.
+ */
 #if defined(LIBA_DLL_IMPORT)
 #  if defined(_WIN32) || defined(WIN32) || defined(__CYGWIN__)
 #    define LIBA_SCOPE extern __declspec(dllimport)
+#    if defined(_MSC_VER)
+#      define LIBA_SCOPE_VAR LIBA_SCOPE
+#    endif
 #  endif
 #endif
 #if !defined(LIBA_SCOPE)
 #  define LIBA_SCOPE extern
 #endif
+#if !defined(LIBA_SCOPE_VAR)
+#  define LIBA_SCOPE_VAR extern
+#endif
 #ifdef __cplusplus
 extern "C" {
 #endif
-extern int v1;
-extern int v3, v4;
+LIBA_SCOPE_VAR int v1;
+LIBA_SCOPE_VAR int v3, v4;
 LIBA_SCOPE const int v5, v6;
-extern const char* v7;
-extern const char v8[];
+LIBA_SCOPE_VAR const char* v7;
+LIBA_SCOPE_VAR const char v8[];
 extern int v9(void);
-extern int (*v10) (void);
-extern int (*v11) (void);
+LIBA_SCOPE_VAR int (*v10) (void);
+LIBA_SCOPE_VAR int (*v11) (void);
 LIBA_SCOPE int (*const v12) (void);
 #ifdef __cplusplus
 }
 #endif
 
 typedef struct { int arr[1000]; } large;
-extern large v13, v14, v15;
+LIBA_SCOPE_VAR large v13, v14, v15;
 
 int main (void)
 {


hooks/post-receive
-- 
GNU Libtool



reply via email to

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