This is the mail archive of the cygwin-patches mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[WIP] mingw64 related changes to Cygwin configure and other assorted files with departed w32api/mingw


I decided over the weekend to port over configury changes that I made to
Cygwin's now-out-of-date GIT repository.

These changes basically just cleaned up some of the configure scripts
and made it easier to pinpoint where windows headers and libraries come
from by adding a --with-windows-headers and --with-windows-libs options.
However, some of the assumptions made for the git repository weren't
really valid for the CVS repository so there was a fair amount of work
involved.

I thought that I'd do this so I could easily get up-and-running with the
MinGW64 stuff but I ran into some problems building things with gentoo's
MinGW64 implementation.  So, I switched to using the files from the
Cygwin release.

As I mentioned in cygwin-developers, getting the most recent version of
mingw64 stuff working required making some changes to some Cygwin source
files.  Most of the changes just involved #undef'ing constants defined
in Windows headers.  Still, I was surprised that these hadn't already
been handled since I thought I was behind the times by still using the
Mingw32 stuff.

Anyway, is a summary of the changes I've made to files is below.  I'll
be doing appropriate ChangeLogs too, of course.  I've also attached the
patch.

This is a heads up in case this conflicted materially with any of the
w64 development.

cgf

--- winsup/Makefile.common

Gutted.  Revamped to just include common definitions and macros.

--- winsup/acinclude.m4

Gutted.  Now defines:

AC_WINDOWS_HEADERS
AC_WINDOWS_LIBS
AC_CYGWIN_INCLUDES

--- winsup/configure.cygwin

New file.  Does common stuff for cygwin configure files.

--- **/autogen.sh

New script.  Regenerates configure and aclocal.m4.

--- winsup/ccwrap

New script.  Used to run gcc/g++ using defined cygwin/newlib/windows
locations.

CCWRAP_VERBOSE=1 environment variable shows full expanded path to
compiler command line.

(I wish gcc had a way to say "Don't use this built-in header directory")

--- winsup/c++wrap

C++ front-end to ccwrap - because CVS doesn't like symlinks.

--- **/configure.in

Revamped to use new acinclude.m4 directives and to eliminate cruft.

--- **/Makefile.in

Add .E target to generate macro expanded version of source file.
Eliminate "VERBOSE=" option.  Always print everything.
Revamp to use new configure framework and c*wrap.
Regenerate Makefile if Makefile.in, config.status change.
Use WINDOWS_LIBDIR and WINDOWS_HEADERS to find windows stuff.
Remove unneeded SHELL:= setting.

--- cygwin/Makefile.in

Add the very important datarootdir setting!

Revamp (slightly) CFLAGS/CXXFLAGS settings.  These two things should
really be separate but I've gotten into the habit of saying:

make CFLAGS=-g

to cause things to not be built with optimization.  Handle that case
but otherwise decouple CFLAGS from CXXFLAGS.

Generate tlsoffsets.h in the build directory.

--- cygwin/mkvers.sh

Fix version.h and winver.rc generation to not assume in-tree windows
files.

--- cygwin/winlean.h

#define _WIN32

cygwin/winsup.h

#define _WIN32

--- cygwin/include/netdb.h

#undef a bunch of windows-defined constants.

--- cygwin/include/cygwin/if.h

Use #pragma once

--- cygwin/include/cygwin/in.h

Use #pragma once
Use _IN_PORT_DECLARED to guard against define of in_port_t.

--- cygwin/include/cygwin/in6.h

Use #pragma once
Use _IN_PORT_DECLARED to guard against define of in_port_t.

--- cygwin/include/cygwin/socket.h

#undef a bunch of windows-defined constants.

--- cygwin/include/sys/socket.h

#pragma once

--- cygwin/include/sys/termios.h

#undef FIONBIO before defining it.

--- cygwin/minires-os-if.c

#define __INSIDE_CYGWIN__
#include <sys/time.h>
Delete some #undef's that are now in header files.

--- cygwin/libc/minires.h

#pragma once
#undef some windows-defined constants.

--- utils/Makefile.in

Lots of changes.  Assume that we always have mingw libraries available for cygcheck.
Set CCWRAP variables to control where to find header files for various utilities.

--- utils/dump_setup.cc

Include zlib.h directly.

--- utils/path.cc

#define __CRT__NO_INLINE
to avoid an error from a windows header.

Attachment: p
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]