From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 130829 invoked by alias); 28 Apr 2016 18:06:55 -0000 Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner@cygwin.com Mail-Followup-To: cygwin@cygwin.com Received: (qmail 130816 invoked by uid 89); 28 Apr 2016 18:06:54 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL,BAYES_00,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 spammy=Under, Questions, lee X-HELO: mail-wm0-f52.google.com Received: from mail-wm0-f52.google.com (HELO mail-wm0-f52.google.com) (74.125.82.52) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Thu, 28 Apr 2016 18:06:44 +0000 Received: by mail-wm0-f52.google.com with SMTP id a17so78735468wme.0 for ; Thu, 28 Apr 2016 11:06:44 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to; bh=RbI8ZEAn4hyhI1YmaFT/tieO38NEy96y7uNj6ZU9v4E=; b=bnZwW2/89dViiEz0xrfyX99hqVDd99uBWCfk6Sb3iB6PWWgVOvkYNzX+cdT7M3Dnlb /02pb5eRXhUkCEE0G0+gn2UMzx1hlZ+ymEwmb88rAIm4bzCIlYjij6+wZu+t8kyWAIVC pjPXDwpIpY6GSeE6mTr6Wlhh2ALhK4R41Y2RcdFXdr21MTRM6mjwncydmYxwoFd73/xb zcvgnSARZwVw5iiqXacLhWMcTrMfBOzijnvIHKHU3+RoyYi8//hMTaHeYb8IaxGzqyXI LOrVfGYMjiVB9m2pixCnGIdGnT9bs+HDXSA3uLPGv4qZbzAJmiZTZEfAx/o4YKZg8VcE /BLg== X-Gm-Message-State: AOPr4FXMrKV5i9SlYgtcC1sBRK+RUPHJshHCzA1RgprhY1B44hDeWdPf35wijuVa8xao5Cnca6zRoO2OSnzTng== MIME-Version: 1.0 X-Received: by 10.28.54.224 with SMTP id y93mr18222667wmh.82.1461866801657; Thu, 28 Apr 2016 11:06:41 -0700 (PDT) Received: by 10.194.70.7 with HTTP; Thu, 28 Apr 2016 11:06:41 -0700 (PDT) In-Reply-To: <572091DE.7010800@gmail.com> References: <571FF46E.6050603@gmail.com> <572091DE.7010800@gmail.com> Date: Thu, 28 Apr 2016 21:17:00 -0000 Message-ID: Subject: Re: converting from -mno-cygwin From: Lee To: cygwin@cygwin.com Content-Type: text/plain; charset=UTF-8 X-IsSubscribed: yes X-SW-Source: 2016-04/txt/msg00626.txt.bz2 On 4/27/16, JonY wrote: > On 4/27/2016 08:32, Lee wrote: >> On 4/26/16, JonY wrote: >>> On 4/27/2016 05:08, Lee wrote: >>>> Questions: [.. snip ..] >> and maybe it's a problem. I haven't tracked it down yet, but >> GNUmakefile.in has >> # PThreads library, if needed. >> PTHREAD_LIB = @PTHREAD_ONLY@@PTHREAD_LIB@ >> >> which, after running autoheader & autoconf, creates a GNUmakefile with >> # PThreads library, if needed. >> PTHREAD_LIB = -lpthreadGC2 >> >> which doesn't work :( >> > > Fix your configure.ac assumptions. Done! works now :) >>>> Is there a standard way to figure out if the compiler is gcc-v3 with >>>> the -mno-cygwin flag set? >>> >>> No, don't do this, it'd turn into a giant hairball fast. >> >> Not really.. it's just a few places that I've had to change the source >> code to deal with the differences between cygwin 1.5 + gcc v3 & >> whatever the current cygwin is + i686-w64-mingw32-gcc >> > > You'd get into a bigger hairball when you involve 64bit Cygwin where > long is 64bit unlike the rest of the Windows world. I took a look at https://cygwin.com/faq/faq.html#faq.programming.64bitporting I'm not sure I really want to go there. But in any case, I think you're right to not try to maintain compatibility with gcc -mno-cygwin >>>> I had to make a few changes to the code to get this far & I'd prefer >>>> to have the changes wrapped inside an #IFDEF or something. For >>>> example, I just commented out the include since it conflicts with >>>> something >>>> >>>> #ifdef __MINGW32__ >>>> /* -LR- #include "cygwin.h" */ >>>> /* -LR- const char cygwin_h_rcs[] = CYGWIN_H_VERSION; */ >>>> #endif >>>> >>>> Under cygwin 1.5, gcc -mno-cygwin requires cygwin.h to be included. >>>> Using i686-w64-mingw32-gcc if cygwin.h is inculded gcc barfs with a >>>> conflicting definition of [i don't remember]. >>>> It'd be nice if I could build using the old or new method without >>>> having to change the source code, so I'm guessing I want some kind of >>>> ifdef wrapper for the include?? >>>> >>> >>> What are you even trying to do? You shouldn't mix different runtimes. >> >> I'm not mixing runtimes. I'm trying to keep it so that the program >> continues to build under the old cygwin 1.5/gcc -mno-cygwin as well as >> building under the current cygwin/i686-w64-mingw32-gcc cross-compiler. >> Since I have to do different things depending on if I'm using the >> cross compiler or the old gcc -mno-cygwin I'm hoping there's a flag or >> something I can use so the exact same source code works with either >> build system. >> > > Using Cygwin headers in purely win32 program is wrong. I understand you > are simply trying to get Cygwin version strings, it'll just end up as a > compile error if the toolchain isn't Cygwin hosted. You can try using > autoconf to run "uname -a" instead and grab that instead. It looks like cygwin.h was included because it has the define for _RICHEDIT_VER If I remove the include & build using gcc v3: [1.5] Lee@twinky /cygdrive/c/cygwin/cvs/privoxy/current $ make gcc -c -pipe -O2 -DWINVER=0x501 -mwindows -mno-cygwin -Wall -Ipcre w32log.c -o w32log.o w32log.c:61: error: `CYGWIN_H_VERSION' undeclared here (not in a function) w32log.c: In function `InitRichEdit': w32log.c:774: error: `_RICHEDIT_VER' undeclared (first use in this function) w32log.c:774: error: (Each undeclared identifier is reported only once w32log.c:774: error: for each function it appears in.) make: *** [w32log.o] Error 1 The include files for i686-w64-mingw32-gcc have been [changed? fixed?] so that including cygwin.h now causes a warning: /source/privoxy/current $ make i686-w64-mingw32-gcc -c -pipe -O2 -DWINVER=0x501 -mwindows -mwin32 -Wall -Ipcre w32log.c -o w32log.o In file included from w32log.c:60:0: cygwin.h:43:0: warning: "_RICHEDIT_VER" redefined #define _RICHEDIT_VER 0x0300 ^ In file included from w32log.c:45:0: /usr/i686-w64-mingw32/sys-root/mingw/include/richedit.h:23:0: note: this is the location of the previous definition #define _RICHEDIT_VER 0x0800 ^ Thanks for your help!! Lee -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple