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]

Re: [PATCH] Cygwin: Build cygwin-console-helper with correct compiler


Corinna Vinschen wrote:
On Jun 25 00:54, Mark Geisert wrote:
---
  winsup/utils/Makefile.in | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/winsup/utils/Makefile.in b/winsup/utils/Makefile.in
index b64f457e7..cebf39572 100644
--- a/winsup/utils/Makefile.in
+++ b/winsup/utils/Makefile.in
@@ -64,7 +64,7 @@ MINGW_BINS := ${addsuffix .exe,cygcheck cygwin-console-helper ldh strace}
  # List all objects to be compiled in MinGW mode.  Any object not on this
  # list will will be compiled in Cygwin mode implicitly, so there is no
  # need for a CYGWIN_OBJS.
-MINGW_OBJS := bloda.o cygcheck.o dump_setup.o ldh.o path.o strace.o
+MINGW_OBJS := bloda.o cygcheck.o cygwin-console-helper.o dump_setup.o ldh.o path.o strace.o
  MINGW_LDFLAGS:=-static
CYGCHECK_OBJS:=cygcheck.o bloda.o path.o dump_setup.o
--
2.21.0

Careful!  This leads to a warning when building on 64 bit:

   cygwin-console-helper.cc: In function 'int main(int, char**)':
   cygwin-console-helper.cc:8:48: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
    HANDLE h = (HANDLE) strtoul (argv[1], &end, 0);
                                                 ^
   cygwin-console-helper.cc:10:41: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
    h = (HANDLE) strtoul (argv[2], &end, 0);
                                          ^

Note that strtoul returns an unsigned long.  Mingw compiles
for native Windows, which is LLP64 rather than LP64:

   mingw:sizeof(long) == 4
   cygwin:sizeof(long) == 8

This needs fixing as well (use strtoull).

I appreciate the comments. These warnings have "always" been present. I will submit a separate patch to correct them.

I didn't make clear the reason for this one-line patch to Makefile.in: A 'make -j 6' over the Cygwin source tree would sometimes fail because the link step for cygwin-console-helper uses a different gcc than the compile step did in parallel builds. Can you accept this patch as-is for what it does for builds?

I will over time pay more attention to the make log and submit more patches for the warnings I see flying by. There's maybe a handful of them, mostly in newlib.

Cheers,

..mark


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