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.4-9-gc161010


From: Peter Rosin
Subject: [SCM] GNU Libtool branch, master, updated. v2.4-9-gc161010
Date: Mon, 04 Oct 2010 19:17:49 +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  c161010e9deec544410a3e91d105d07ed9ec9911 (commit)
       via  79bca27c51e6696e33066e65b9bb672ea1a3d0f8 (commit)
      from  c5bce8258136b2766d349a6451b933efae7b885b (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 c161010e9deec544410a3e91d105d07ed9ec9911
Author: Peter Rosin <address@hidden>
Date:   Mon Oct 4 21:16:26 2010 +0200

    cwrapper: split long lines when dumping the wrapper script.
    
    * libltdl/config/ltmain.m4sh (func_emit_cwrapperexe_src): If
    the wrapper script contains long lines, split them for
    readability and to conform with C standards.
    * tests/cwrapper.at (cwrapper string length): New test, making
    sure we don't regress.
    
    Signed-off-by: Peter Rosin <address@hidden>

commit 79bca27c51e6696e33066e65b9bb672ea1a3d0f8
Author: Peter Rosin <address@hidden>
Date:   Mon Oct 4 16:02:39 2010 +0200

    msvc: handle symbols from different files independently.
    
    * libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS)
    <dumpbin, lt_cv_sys_global_symbol_pipe>: Make all sections
    viable for symbol extraction again when the symbols from a new
    file starts.  Fixes tests/tagdemo-make.test for MSVC 10.
    * tests/dumpbin-symbols.at: New test, making sure we don't
    regress.
    * Makefile.am (TESTSUITE_AT): Update.
    
    Signed-off-by: Peter Rosin <address@hidden>

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

Summary of changes:
 ChangeLog                  |   18 +++++++
 Makefile.am                |    1 +
 libltdl/config/ltmain.m4sh |   12 ++++-
 libltdl/m4/libtool.m4      |    1 +
 tests/cwrapper.at          |   61 ++++++++++++++++++++++++
 tests/dumpbin-symbols.at   |  111 ++++++++++++++++++++++++++++++++++++++++++++
 6 files changed, 201 insertions(+), 3 deletions(-)
 create mode 100644 tests/dumpbin-symbols.at

diff --git a/ChangeLog b/ChangeLog
index a7aa489..c0492fe 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+2010-10-04  Peter Rosin  <address@hidden>
+
+       cwrapper: split long lines when dumping the wrapper script.
+       * libltdl/config/ltmain.m4sh (func_emit_cwrapperexe_src): If
+       the wrapper script contains long lines, split them for
+       readability and to conform with C standards.
+       * tests/cwrapper.at (cwrapper string length): New test, making
+       sure we don't regress.
+
+       msvc: handle symbols from different files independently.
+       * libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS)
+       <dumpbin, lt_cv_sys_global_symbol_pipe>: Make all sections
+       viable for symbol extraction again when the symbols from a new
+       file starts.  Fixes tests/tagdemo-make.test for MSVC 10.
+       * tests/dumpbin-symbols.at: New test, making sure we don't
+       regress.
+       * Makefile.am (TESTSUITE_AT): Update.
+
 2010-09-27  Peter Rosin  <address@hidden>
 
        tests: check if sys_lib_search_path_spec works on MSVC.
diff --git a/Makefile.am b/Makefile.am
index 6e29a29..6c23a5e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -503,6 +503,7 @@ TESTSUITE_AT        = tests/testsuite.at \
                  tests/cmdline_wrap.at \
                  tests/pic_flag.at \
                  tests/darwin.at \
+                 tests/dumpbin-symbols.at \
                  tests/deplibs-mingw.at \
                  tests/sysroot.at
 
diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh
index 0418007..1078e75 100644
--- a/libltdl/config/ltmain.m4sh
+++ b/libltdl/config/ltmain.m4sh
@@ -4268,9 +4268,15 @@ void lt_dump_script (FILE* f)
 {
 EOF
            func_emit_wrapper yes |
-              $SED -e 's/\([\\"]\)/\\\1/g' \
-                  -e 's/^/  fputs ("/' -e 's/$/\\n", f);/'
-
+             $SED -n -e '
+s/^\(.\{79\}\)\(..*\)/\1\
+\2/
+h
+s/\([\\"]\)/\\\1/g
+s/$/\\n/
+s/\([^\n]*\).*/  fputs ("\1", f);/p
+g
+D'
             cat <<"EOF"
 }
 EOF
diff --git a/libltdl/m4/libtool.m4 b/libltdl/m4/libtool.m4
index fd732d0..967dd38 100644
--- a/libltdl/m4/libtool.m4
+++ b/libltdl/m4/libtool.m4
@@ -3645,6 +3645,7 @@ for ac_symprfx in "" "_"; do
     # which start with @ or ?.
     lt_cv_sys_global_symbol_pipe="$AWK ['"\
 "     {last_section=section; section=\$ 3};"\
+"     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
 "     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
 "     \$ 0!~/External *\|/{next};"\
 "     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
diff --git a/tests/cwrapper.at b/tests/cwrapper.at
index 248c0c0..cd618dc 100644
--- a/tests/cwrapper.at
+++ b/tests/cwrapper.at
@@ -134,3 +134,64 @@ done
 
 AT_CLEANUP
 
+
+AT_SETUP([cwrapper string length])
+
+eval "`$LIBTOOL --config | $EGREP '^(objdir)='`"
+
+AT_DATA([liba.c],
+[[int liba_func1 (int arg)
+{
+  return arg + 1;
+}
+]])
+AT_DATA([usea.c],
+[[extern int liba_func1 (int arg);
+int main (void)
+{
+  int a = 2;
+  int b = liba_func1 (a);
+  if (b == 3) return 0;
+  return 1;
+}
+]])
+
+AT_CHECK([$LIBTOOL --mode=compile $CC $CPPFLAGS $CFLAGS -c liba.c],
+        [], [ignore], [ignore])
+AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -no-undefined ]dnl
+        [-o liba.la -rpath /foo liba.lo],
+        [], [ignore], [ignore])
+AT_CHECK([$CC $CPPFLAGS $CFLAGS -c usea.c],
+        [], [ignore], [ignore])
+
+
+# Make sure PATH is at least 250 chars, which should force line breaks
+# in lt-usea.c.
+
+dirpath=
+save_IFS=$IFS
+IFS=$PATH_SEPARATOR
+for dirpath in $PATH; do
+  IFS=$save_IFS
+  break
+done
+IFS=$save_IFS
+
+until $ECHO "PATH=$PATH" | grep 'PATH=.\{250\}'; do
+  PATH="$PATH$PATH_SEPARATOR$dirpath"
+done
+export PATH
+
+AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -no-fast-install ]dnl
+        [-o usea$EXEEXT usea.$OBJEXT liba.la],
+        [], [ignore], [ignore])
+
+# Skip if no cwrapper is generated.
+AT_CHECK([test -f $objdir/lt-usea.c || exit 77])
+
+# Try to make sure the test is relevant.
+AT_CHECK([grep ' *fputs' $objdir/lt-usea.c > /dev/null])
+# Check for no overly long fputs.
+AT_CHECK([grep ' *fputs.\{250\}' $objdir/lt-usea.c], [1])
+
+AT_CLEANUP
diff --git a/tests/dumpbin-symbols.at b/tests/dumpbin-symbols.at
new file mode 100644
index 0000000..19e61ba
--- /dev/null
+++ b/tests/dumpbin-symbols.at
@@ -0,0 +1,111 @@
+# dumpbin-symbols.at -- libtool "dumpbin -symbols" support    -*- Autotest -*-
+
+#   Copyright (C) 2010 Free Software Foundation, Inc.
+#
+#   This file is part of GNU Libtool.
+#
+# GNU Libtool is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# GNU Libtool is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Libtool; see the file COPYING.  If not, a copy
+# can be downloaded from  http://www.gnu.org/licenses/gpl.html,
+# or obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+####
+
+AT_BANNER([Windows tests.])
+AT_SETUP([dumpbin -symbols section hiding])
+
+# I don't know of a stable way to create a pair of objects that
+# exhibits the potential problem, so this test fakes it by
+# testing with output from a case that do have the potential
+# problem.
+
+# First check if the global_symbol_pipe can handle the below
+# test case at all, and skip if $NM is not MS dumpbin.
+
+AT_DATA([variable.c],
+[[
+int some_variable = 0;
+]])
+
+AT_CHECK([$CC $CPPFLAGS $CFLAGS -c variable.c], [], [ignore], [ignore])
+AT_CHECK([$NM variable.$OBJEXT], [], [stdout], [ignore])
+AT_CHECK([grep 'External.*some_variable' stdout || exit 77], [], [ignore])
+
+eval `$LIBTOOL --config | $EGREP '^(global_symbol_pipe)='`
+
+AT_DATA([dumpbin-output],
+[[
+Dump of file foo.obj
+
+File Type: COFF OBJECT
+
+COFF SYMBOL TABLE
+000 00AB766F ABS    notype       Static       | @comp.id
+001 00000001 ABS    notype       Static       | @feat.00
+002 00000000 SECT1  notype       Static       | .drectve
+    Section length   8F, #relocs    0, #linenums    0, checksum        0
+004 00000000 SECT2  notype       Static       | .debug$S
+    Section length 44B4, #relocs   1C, #linenums    0, checksum        0
+006 00000000 SECT3  notype       Static       | .rdata
+    Section length    1, #relocs    0, #linenums    0, checksum        0, 
selection    2 (pick any)
+008 00000000 SECT3  notype       External     | 
address@hidden@_N$0A@@address@hidden@@2_NB (public: static bool const 
std::tr1::integral_constant<bool,0>::value)
+009 00000000 SECT4  notype       Static       | .rdata
+    Section length    1, #relocs    0, #linenums    0, checksum 77073096, 
selection    2 (pick any)
+*snip lots of uninteresting crap*
+12A 00000000 SECT5B notype       Static       | .text
+    Section length   4B, #relocs    2, #linenums    0, checksum 22AE8362, 
selection    2 (pick any)
+12C 00000000 SECT5C notype       Static       | .debug$S
+    Section length  150, #relocs    B, #linenums    0, checksum        0, 
selection    5 (pick associative Section 0x5B)
+12F 00000000 SECT5D notype       Static       | .debug$T
+    Section length   5C, #relocs    0, #linenums    0, checksum        0
+
+String Table Size = 0x15EF bytes
+
+
+Dump of file conv.lib
+
+File Type: LIBRARY
+
+COFF SYMBOL TABLE
+000 00AB766F ABS    notype       Static       | @comp.id
+001 00000001 ABS    notype       Static       | @feat.00
+002 00000000 SECT1  notype       Static       | .drectve
+    Section length   2F, #relocs    0, #linenums    0, checksum        0
+004 00000000 SECT2  notype       Static       | .debug$S
+    Section length  70C, #relocs    5, #linenums    0, checksum        0
+006 00000000 SECT3  notype       Static       | .text
+    Section length    A, #relocs    0, #linenums    0, checksum BAFC81C1
+008 00000000 SECT3  notype ()    External     | _convenience
+009 00000000 SECT4  notype       Static       | .debug$T
+    Section length   5C, #relocs    0, #linenums    0, checksum        0
+
+String Table Size = 0x11 bytes
+
+  Summary
+
+        5B3C .debug$S
+          B8 .debug$T
+          BE .drectve
+         129 .rdata
+           C .sxdata
+         613 .text
+          6C .text$x
+          B8 .xdata$x
+]])
+
+# Check if the _convenience symbol from section SECT3 in conv.lib is
+# present even if section SECT3 in foo.obj is hidden.
+AT_CHECK([< dumpbin-output eval "$global_symbol_pipe"], [], [stdout])
+AT_CHECK([grep convenience stdout], [], [ignore])
+
+AT_CLEANUP


hooks/post-receive
-- 
GNU Libtool



reply via email to

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