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]

Testsuite failures due to Makefile issue


Hello,

when running the g++ and libstdc++ testsuites in parallel,
I'm getting spurious failures of g++ test cases.  This is
because running the libstdc++ 'make check' target causes
the libstdc++.so library to be rebuilt every time.

During this rebuild the library file is missing or invalid
for some time, and g++ test cases that run at this time
will fail because of the missing library.

Now, 'make check' should obviously not rebuild the library.
It happens because of the dependency:

libstdc___la_DEPENDENCIES = libstdc++-symbol.ver $(libstdc___la_LIBADD)

on the libstdc++-symbol.ver target.  If this file does not
exist, make will think libstdc++.so is out of date.

However, if GLIBCXX_BUILD_VERSIONED_SHLIB is not set (which
it appears not to be in my environment), the libstdc++-symbol.ver
file will never be created.  While there is a dummy make rule

libstdc++-symbol.ver:

this rule only serves to prevent make from aborting due to
the missing file, it does not prevent make from rebuilding
the library every time.

What would you suggest as best way to fix this?  I guess
something like this should work:

if GLIBCXX_BUILD_VERSIONED_SHLIB
libstdc___la_DEPENDENCIES = libstdc++-symbol.ver $(libstdc___la_LIBADD)
else
libstdc___la_DEPENDENCIES = $(libstdc___la_LIBADD)
endif


(B.t.w. is GLIBCXX_BUILD_VERSIONED_SHLIB supposed to be set
on a Linux build or not?)

Bye,
Ulrich

-- 
  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]