[setup and gcc3] Revised patches - now with ChangeLog!

Robert Collins rbcollins@cygwin.com
Mon Nov 4 03:31:00 GMT 2002


On Mon, 2002-11-04 at 22:12, Max Bowsher wrote:
> Here are revised patches, incorporating the use of "using namespace
std;" as
> suggested.
> 
> Also, here is a ChangeLog (with additional comments on lines prefixed
#).
> 
> Comments welcomed,
> 
> Max.
> 
> 
> ##################### ChangeLog #########################
> 2002-11-03  Max Bowsher  <maxb@ukf.net>
> 
> # fix-CFLAGS+=-Wno-deprecated.patch
>  * Makefile.am: Add -Wno-deprecated to CFLAGS.
>  # strstreams are deprecated in gcc3. Since we are using -Werror, we
need
>  to turn off the warning to allow the build to succeed.

What is the replacement for strstreams?
 
> # fix-algorithm.patch
>  * archive_tar_file.cc: Include <algorithm>.
>  Change min(a,b) to std::min(a,b)
>  * compress_bz.cc: Ditto.
>  * compress_gz.cc: Ditto.
>  # I deliberately did not use "using namespace std;" here, so that
people
>  new to the setup code can see that these are not macros.

mmm. I'm a bit undecided on this. using namespace std; is easier to read
than std::. And for code newbies macros vs templates are pretty much
irrelevant.

> # fix-bzlib-windows.h-clash.patch
>  compress_bz.cc: #undef small before including bzlib.h
>  compress_bz.h: Ditto.
>  # If we are going to hide the fact that we are _WIN32 from bzlib,
>  then we need to #undef small for it as well (bad windows.h clash).

Why doesn't this impact gcc 2.95?

> # fix-cygwin-mode.patch
>  * io_stream.h: Protect a typedef of ssize_t that is not needed when
>  compiling for Cygwin.

Ditto.

>  * mkdir.cc: Don't try to compile pseudocode when compiling for
Cygwin!.

Ditto.

> # fix-gcc3-dodgy-NULL-streambuf.patch
>  * LogSingleton.cc (LogSingleton::LogSingleton): Initialize the parent
>  ostream with a NULL streambuf pointer. Legal? I don't know, but I
think
>  it used to be done implicitly, but libstdc++-v3 no longer allows
that.

Someone (for now, not I), needs to read the ostream g++-3 template to
see what is done with the streambuf pointer before I'll accept this.
 
> # fix-gcc3-just-using-namespace-std.patch
>  * IniDBBuilderPackage.cc: Add 'using namespace std;'.
>  * IniParseFindVisitor.cc: Ditto.
>  * LogFile.cc: Ditto.
>  * LogSingleton.cc: Ditto.
>  * PickView.cc: Ditto.
>  * String++.cc: Ditto.
>  * choose.cc: Ditto.
>  * download.cc: Ditto.
>  * find.cc: Ditto.
>  * install.cc: Ditto.
>  * io_stream.cc: Ditto.
>  * io_stream_file.cc: Ditto.
>  * package_db.cc: Ditto.
>  * root.cc: Ditto.
>  * site.cc: Ditto.

Ok.
 
> # fix-gcc3-main.patch
>  * Exception.h (Exception::what): Add throw() specification,
>  to agree with libstdc++-v3.
>  * Exception.cc (Exception::what): Ditto.
>  * IniDBBuilderPackage.h: Add 'std::' where needed.
>  * LogFile.h: Ditto.
>  * LogSingleton.h: Ditto.
>  * PickCategoryLine.h: Ditto.
>  * String++.h: Ditto.
>  * category.h: Ditto.
>  * package_db.h: Ditto.
>  * package_meta.h: Ditto.
>  * package_source.h: Ditto.
>  * package_version.h: Ditto.
>  * site.h: Ditto.
>  * win32.h: Define NOMINMAX before including <windows.h>.
>  * package_meta.cc: Add 'using namespace std;'.
>  (packagemeta::set_requirements): Remove default parameter values
>  from definition (gcc3 likes them only in declaration).
>  * package_version.cc: Add 'using namespace std;'.
>  (packageversion::set_requirements): Remove default parameter
>  values from definition (gcc3 likes them only in declaration).

Ok. I'll review in more detail when everything else is sorted.


> # fix-proppage.h-no-include-windows.h-directly.patch
>  * proppage.h: Include <windows.h> via "win32.h" not directly.
>  # This allows any anti-pollution defines to be gathered in win32.h,
>  not repeated everywhere <windows.h> is included.
> 
> # fix-res.rc-bad-comment.patch
>  * res.rc: Change a #-comment (invalid) to a //-comment.

Why doesn't this impact gcc 2.95?
 
> # fix-gcc2-setup-and-libgetopt++.patch
>  * Makefile.am (%.o: %.rc): Make windres use $(CC) not hardcoded gcc.
>  (inilint_LDADD): Remove -lstd++.
>  (setup_LDADD): Ditto.
>  * libgetopt++/Makefile.am (libgetopt___la_LDFLAGS): Ditto.

I presume gcc3 adds -lstd++ itself? We need a gcc 2.95 compatible
version of this patch - both need to work.

> # fix-gcc3-libgetopt++.patch
>  * libgetopt++/include/getopt++/BoolOption.h: Add 'std::' where
>  needed.
>  * libgetopt++/include/getopt++/Option.h: Ditto.
>  * libgetopt++/include/getopt++/OptionSet.h: Ditto.
>  * libgetopt++/include/getopt++/StringOption.h: Ditto.
>  * libgetopt++/src/BoolOption.cc: Add 'using namespace std;'.
>  * libgetopt++/src/OptionSet.cc: Ditto.
>  * libgetopt++/src/StringOption.cc: Ditto.

Again, are these both 2.95 and 3.0 compatible?
Rob

-- 
---
GPG key available at: http://users.bigpond.net.au/robertc/keys.txt.
---
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <http://cygwin.com/pipermail/cygwin-apps/attachments/20021104/354a776e/attachment.sig>


More information about the Cygwin-apps mailing list