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.orgReceived 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