This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
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).