Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 30 May 2002 14:47:12 -0400 (EDT)
From:      John Baldwin <jhb@FreeBSD.org>
To:        Peter Wemm <peter@FreeBSD.org>
Cc:        cvs-all@FreeBSD.org, cvs-committers@FreeBSD.org
Subject:   RE: cvs commit: src Makefile.inc1
Message-ID:  <XFMail.20020530144712.jhb@FreeBSD.org>
In-Reply-To: <200205290359.g4T3xKv98790@freefall.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

On 29-May-2002 Peter Wemm wrote:
> peter       2002/05/28 20:59:20 PDT
> 
>   Modified files:
>     .                    Makefile.inc1 
>   Log:
>   Bandaid for helping people who have a broken /usr/bin/c++ installation.
>   
>   This only affects the -current early adopters and developers who have
>   done a 'make world' in the last few weeks and as a result installed a
>   gcc-3.1 version of /usr/bin/c++ but without the corresponding library
>   support that this now requires.  This is a temporary hack that should be
>   deleted within a few weeks.  In this case we will use the existing
>   gperf/groff one last time around for the early stage1 bootstrap.  (This
>   isn't so bad, because we were unconditionally using the host one before)

Except it doesn't work for older versions of g++ it seems. :(

> cc -v
Using built-in specs.
Configured with: FreeBSD/i386 system compiler
Thread model: posix
gcc version 3.1 [FreeBSD] 20020509 (prerelease)
> c++ -v
Using builtin specs.
gcc version 2.95.4 20020320 [FreeBSD]
> buildworld
...
c++  -O -pipe -march=pentiumpro    -D__FBSDID=__RCSID
-I/usr/src/gnu/usr.bin/gperf/../../../contrib/gperf/lib -I/usr/src/gnu/usr.bin/gperf  -static -o
gperf bool-array.o gen-perf.o hash-table.o iterator.o key-list.o list-node.o main.o new.o options.o
read-line.o trace.o vectors.o version.o hash.o getopt.o getopt1.o 
gen-perf.o: In function `Gen_Perf::Gen_Perf(void)':
gen-perf.o(.text+0xa): undefined reference to `__get_eh_context'
gen-perf.o(.text+0x27a): undefined reference to `__sjthrow'
gen-perf.o(.text+0x2c3): undefined reference to `__sjthrow'
gen-perf.o(.text+0x2c9): undefined reference to `__terminate'
gen-perf.o(.text+0x2d1): undefined reference to `__terminate'
gen-perf.o: In function `Gen_Perf::change(List_Node *, List_Node *)':
gen-perf.o(.text+0x309): undefined reference to `__builtin_vec_new'
key-list.o: In function `Key_List::get_special_input(char)':
key-list.o(.text+0x8c): undefined reference to `__builtin_vec_new'
..
etc. (lots more of these)

The problem seems to maybe be that the '.c' files in gperf are compiled with
cc and not c++.  Perhaps we shouldn't build any of this stuff unless we have
a 3.1 c++ compiler like so (untested):

@@ -574,7 +574,8 @@
 .endif
 # This horrible kludge should be deleted in about 2 weeks, say July 9, 2002
 _cxx_version!= ${CXX} -v 2>&1 | awk '$$0 ~ /^gcc version/ {print $$3}'
-.if ${CXX:T} != "c++" || ${_cxx_version} != "3.1" || exists(/usr/lib/libstdc++.so.4)
+_cc_version!=  ${CC} -v 2>&1 | awk '$$0 ~ /^gcc version/ {print $$3}'
+.if ${CXX:T} != "c++" || ${_cxx_version} == ${_cc_version} && (${_cxx_version} != "3.1" ||
exists(/usr/lib/libstdc++.so.4))
 _cxx_consumers=        gnu/usr.bin/gperf gnu/usr.bin/groff
 .endif


-- 

John Baldwin <jhb@FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.20020530144712.jhb>