Re: GCC include files conundrum.

From: Craig Rodrigues <rodrigc_at_crodrigues.org>
Date: Sun, 14 Mar 2004 20:38:17 -0500
On Sun, Mar 14, 2004 at 07:55:18PM -0500, David Gilbert wrote:
> I attempted to argue that audio/tclmidi wasn't broken... and the ports
> maintainer fired back with
> 
> http://bento.freebsd.org/errorlogs/i386-5-latest/tclmidi-3.1.log
> 
> Now... I started investigating this and found that this was all due to
> some differences in C++ over the years.
 
> So what's the solution?

Pick up a contemporary C++ book and learn about Standard C++ (which became
an ISO standard in 1998).  strstream is deprecated in Appendix D
of the standard.  I recommend a book such as "The C++ Programming
Language, 3rd ed." by Bjarne Stroustrup.

gcc 3.x supports Standard C++ more aggressively than earlier
gcc versions, which can be painful.  The GCC developers (more specifically
libstdc++ developers) are more interested in supporting Standard
C++, and are not too interested in maintaining backwards compatibility
with deprecated headers such as strstream.h.  This is a bit of a problem
for software that depends on these older libraries.

You have a few options:

(1)  Learn enough C++ so that you can apply the necessary patches
     to fix audio/tclmidi so that it compiles with
     Standard C++ headers (such as <sstream>).

(2)  gcc 3.3 has /usr/include/c++/3.3/backward/strstream, so you may
     want to try #include <backward/sstream> an see if that works,
     but chances are if it doesn't work, you will be out of luck,
     since it is a deprecated header that the GCC developers
     are not too interested in supporting.

(3)  In the Makefile for the audio/tclmidi port, mark it as broken
     on FreeBSD 5.x:

.if ${OSVERSION} > 500000
BROKEN=         "Does not build on 5.x"
.endif


-- 
Craig Rodrigues        
http://crodrigues.org
rodrigc_at_crodrigues.org
Received on Sun Mar 14 2004 - 16:38:19 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:47 UTC