This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
[PATCH] Re: Testsuite failures due to Makefile issue
- From: "Ulrich Weigand" <weigand at i1 dot informatik dot uni-erlangen dot de>
- To: zack at codesourcery dot com (Zack Weinberg)
- Cc: libstdc++ at gcc dot gnu dot org, gcc at gcc dot gnu dot org, gcc-patches at gcc dot gnu dot org
- Date: Wed, 24 Sep 2003 15:16:12 +0200 (CEST)
- Subject: [PATCH] Re: Testsuite failures due to Makefile issue
Zack Weinberg wrote:
> This will work. More consistent with the usual idiom would be to
> arrange (in the same place that sets GLIBCXX_BUILD_VERSIONED_SHLIB)
> for $(libstdc___symbol_ver) to expand to libstdc++-symbol.ver if
> GLIBCXX_BUILD_VERSIONED_SHLIB, and to the empty string otherwise; then
> set
>
> libstdc___la_DEPENDENCIES = $(libstdc___symbol_ver) $(libstdc___la_LIBADD)
What about the patch below that uses a local variable to handle
the dependency, just like the existing version_arg variable?
> > (B.t.w. is GLIBCXX_BUILD_VERSIONED_SHLIB supposed to be set
> > on a Linux build or not?)
>
> I believe it is.
As I've now found out configure checks a minimum binutils requirement of
version 2.14; that's why it was not set on my system which uses 2.13.90.0.18.
The following patch fixes the spurious g++ failures; bootstrapped
and regtested on s390-ibm-linux and s390x-ibm-linux. OK?
Bye,
Ulrich
ChangeLog:
* src/Makefile.am (version_dep): New variable.
(libstdc___la_DEPENDENCIES): Use it to add dependency on
libstdc++-symbol.ver only when using symbol versioning.
* src/Makefile.in: Regenerate.
Index: libstdc++-v3/src/Makefile.am
===================================================================
RCS file: /cvs/gcc/gcc/libstdc++-v3/src/Makefile.am,v
retrieving revision 1.133
diff -c -p -r1.133 Makefile.am
*** libstdc++-v3/src/Makefile.am 27 Aug 2003 21:29:43 -0000 1.133
--- libstdc++-v3/src/Makefile.am 23 Sep 2003 22:52:11 -0000
*************** toolexeclib_LTLIBRARIES = libstdc++.la
*** 30,35 ****
--- 30,36 ----
# Symbol versioning for shared libraries.
if GLIBCXX_BUILD_VERSIONED_SHLIB
version_arg = -Wl,--version-script=libstdc++-symbol.ver
+ version_dep = libstdc++-symbol.ver
libstdc++-symbol.ver: ${glibcxx_srcdir}/$(SYMVER_MAP)
cp ${glibcxx_srcdir}/$(SYMVER_MAP) ./libstdc++-symbol.ver
if test "x$(port_specific_symbol_files)" != x; then \
*************** libstdc++-symbol.ver: ${glibcxx_srcdir}
*** 40,46 ****
fi
else
version_arg =
! libstdc++-symbol.ver:
endif
--- 41,47 ----
fi
else
version_arg =
! version_dep =
endif
*************** libstdc___la_LIBADD = \
*** 128,134 ****
$(top_builddir)/libmath/libmath.la \
$(top_builddir)/libsupc++/libsupc++convenience.la
! libstdc___la_DEPENDENCIES = libstdc++-symbol.ver $(libstdc___la_LIBADD)
libstdc___la_LDFLAGS = \
-version-info $(libtool_VERSION) ${version_arg} \
--- 129,135 ----
$(top_builddir)/libmath/libmath.la \
$(top_builddir)/libsupc++/libsupc++convenience.la
! libstdc___la_DEPENDENCIES = ${version_dep} $(libstdc___la_LIBADD)
libstdc___la_LDFLAGS = \
-version-info $(libtool_VERSION) ${version_arg} \
Index: libstdc++-v3/src/Makefile.in
===================================================================
RCS file: /cvs/gcc/gcc/libstdc++-v3/src/Makefile.in,v
retrieving revision 1.186
diff -c -p -r1.186 Makefile.in
*** libstdc++-v3/src/Makefile.in 27 Aug 2003 21:29:43 -0000 1.186
--- libstdc++-v3/src/Makefile.in 23 Sep 2003 22:52:11 -0000
*************** toolexeclib_LTLIBRARIES = libstdc++.la
*** 226,231 ****
--- 226,233 ----
# Symbol versioning for shared libraries.
@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@version_arg = -Wl,--version-script=libstdc++-symbol.ver
@GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE@version_arg =
+ @GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE@version_dep =
+ @GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@version_dep = libstdc++-symbol.ver
# Source files linked in via configuration/make substitution for a
# particular host.
*************** libstdc___la_LIBADD = \
*** 286,292 ****
$(top_builddir)/libsupc++/libsupc++convenience.la
! libstdc___la_DEPENDENCIES = libstdc++-symbol.ver $(libstdc___la_LIBADD)
libstdc___la_LDFLAGS = \
-version-info $(libtool_VERSION) ${version_arg} \
--- 288,294 ----
$(top_builddir)/libsupc++/libsupc++convenience.la
! libstdc___la_DEPENDENCIES = ${version_dep} $(libstdc___la_LIBADD)
libstdc___la_LDFLAGS = \
-version-info $(libtool_VERSION) ${version_arg} \
*************** uninstall-am: uninstall-info-am uninstal
*** 622,628 ****
@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@ cat tmp.top $(port_specific_symbol_files) tmp.bottom > $@; \
@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@ rm tmp.top tmp.bottom; \
@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@ fi
- @GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE@libstdc++-symbol.ver:
codecvt_members.cc: ${glibcxx_srcdir}/$(CCODECVT_CC)
$(LN_S) ${glibcxx_srcdir}/$(CCODECVT_CC) . || true
--- 624,629 ----
--
Dr. Ulrich Weigand
weigand@informatik.uni-erlangen.de