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


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

PATCH: PR4082


In article <ory9o7ouy9.fsf@feijoada.lsd.ic.unicamp.br>,
Alexandre Oliva <aoliva@redhat.com> writes:

> [...] The solution is to base references to sibling directories in
> toplevel_srcdir (defined in libstdc++-v3's configure.in): it points
> to the actual top-level directory, regardless of whether srcdir is a
> full or relative pathname, or whether we're in a linked-mirror of
> the source tree or doing a VPATH build.

Thanks for the complete answer. ;-)

> A better (IMO) alternative, in case you have spare disk space and
> write permissions in the filesystem containing the source tree, is
> to use [duptree].

OK, this works nicely.  At some point, I will setup one of the
auto-regression testers at freebsd.org to always build in-source.

In that tree with the straightforward patch implied by your solution,
I see the following now work:

./configure
gmake configure-target-libstdc++-v3
cd i386-unknown-freebsd4.3/libstdc++-v3
gmake
gmake check

So, at least there are no other obvious problems impeding in-source
configuration and building in libstdc++-v3 at the moment.

Installing may still be broken for other reasons.

And, all the softlinks for tst/txt files are wrong and, of course, a
completely different mechanism is used to set it up.  The problem is
that the hack to work around multilibs when srcdir==objdir creates
softlinks and the dejagnu code blindly copies the full path in the
softlink even though it is placing it in another directory at a
different level (yes, on this platform at least, it keeps it as a
softlink instead of creating a new level of indirection or just plain
copying the small files).

I will install as obvious (but not until another night of thinking).
I will not close PR4082 until './configure; make bootstrap check
install' is known to work completely again and as well as the case
used by most developers.

Regards,
Loren

Index: Makefile.am
===================================================================
RCS file: /cvs/gcc/gcc/libstdc++-v3/include/Makefile.am,v
retrieving revision 1.1.6.5
diff -c -r1.1.6.5 Makefile.am
*** Makefile.am	2001/08/25 00:22:02	1.1.6.5
--- Makefile.am	2001/08/28 06:50:46
***************
*** 399,416 ****
  ${thread_builddir}/gthr.h:
  	sed -e '/^#/s/\(${uppercase}${uppercase}*\)/_GLIBCPP_\1/g' \
  	    -e 's,^#include "\(.*\)",#include <bits/\1>,g' \
! 	    < ${glibcpp_srcdir}/../gcc/gthr.h > $@
  
  ${thread_builddir}/gthr-single.h:
  	sed -e 's/\(UNUSED\)/_GLIBCPP_\1/g' \
  	    -e 's/\(GCC${uppercase}*_H\)/_GLIBCPP_\1/g' \
! 	    < ${glibcpp_srcdir}/../gcc/gthr-single.h > $@
  
  ${thread_builddir}/gthr-default.h:
  	sed -e 's/\(UNUSED\)/_GLIBCPP_\1/g' \
  	    -e 's/\(GCC${uppercase}*_H\)/_GLIBCPP_\1/g' \
  	    -e 's/\(${uppercase}*WEAK\)/_GLIBCPP_\1/g' \
! 	    < ${glibcpp_srcdir}/../gcc/${glibcpp_thread_h} > $@
  
  # One big happy istallation:  just copy everything from the build to the
  # install tree (except for the build stamps).
--- 399,416 ----
  ${thread_builddir}/gthr.h:
  	sed -e '/^#/s/\(${uppercase}${uppercase}*\)/_GLIBCPP_\1/g' \
  	    -e 's,^#include "\(.*\)",#include <bits/\1>,g' \
! 	    < ${toplevel_srcdir}/gcc/gthr.h > $@
  
  ${thread_builddir}/gthr-single.h:
  	sed -e 's/\(UNUSED\)/_GLIBCPP_\1/g' \
  	    -e 's/\(GCC${uppercase}*_H\)/_GLIBCPP_\1/g' \
! 	    < ${toplevel_srcdir}/gcc/gthr-single.h > $@
  
  ${thread_builddir}/gthr-default.h:
  	sed -e 's/\(UNUSED\)/_GLIBCPP_\1/g' \
  	    -e 's/\(GCC${uppercase}*_H\)/_GLIBCPP_\1/g' \
  	    -e 's/\(${uppercase}*WEAK\)/_GLIBCPP_\1/g' \
! 	    < ${toplevel_srcdir}/gcc/${glibcpp_thread_h} > $@
  
  # One big happy istallation:  just copy everything from the build to the
  # install tree (except for the build stamps).


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