This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]