[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [SCM] GNU Libtool branch, master, updated. v2.4-9-gc161010,
Peter Rosin <=