This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC 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: Trouble building gcc-3.4.0 cygwin->linux


On Mon, Jun 07, 2004 at 03:58:24AM -0700, Dan Kegel wrote:
>Jim Wilson wrote:
>>[See http://gcc.gnu.org/ml/gcc/2004-04/msg00906.html]
>>Looking at it again, I see that there are some curious __CYGWIN__ ifdefs 
>>in there which might instead be the problem.  Your cygwin-x-linux cross 
>>compiler would have been compiled with a compiler that defined 
>>__CYGWIN__, and thus some stuff in cp/method.c would have been enabled 
>>and/or disabled that should not have been.  To fix this, put a
>>#define THIS_IS_CYWGIN_REALLY
>>in config/i386/cygwin.h (or maybe cygming.h?) and modify cp/method.c to 
>>use that define instead of __CYGWIN__.  We need a more elegant solution 
>>for gcc mainline, but one has already been written.  This is the 
>>TARGET_USE_LOCAL_THUNK_ALIAS_P stuff I mentioned earler.
>>
>>See PR 14808.  This contains the method.c.diff patch that broke gcc-3.4. 
>> This was an attempt to write a safer simpler patch than the one that 
>>went into mainline, which can be found here
>>    http://gcc.gnu.org/ml/gcc-patches/2004-04/msg00432.html
>>Unfortunately, this patch breaks cross compilers built on cygwin.
>
>Bingo.  The following patch let my cygwin->linux build succeed.  Thanks!

I like the choice of variable name but there isn't any reason for putting
the define in cygming.h and cygwin.h, is there?

cgf

>--- gcc-3.4.0/gcc/cp/method.c.old	Sun Jun  6 22:46:04 2004
>+++ gcc-3.4.0/gcc/cp/method.c	Sun Jun  6 22:48:13 2004
>@@ -286,7 +286,7 @@
>   tree alias;
>   char buf[256];
>
>-#if defined (__CYGWIN__) || defined (__MINGW32__)
>+#if defined (TARGET_IS_PE_COFF)
>   if (DECL_ONE_ONLY (function))
>     return function;
> #endif
>@@ -404,7 +404,7 @@
>   push_to_top_level ();
>
> #if defined (ASM_OUTPUT_DEF) \
>-  && !(defined (__CYGWIN__) || defined (__MINGW32__))
>+  && !defined (TARGET_IS_PE_COFF)
>   if (targetm.have_named_sections)
>     {
>       resolve_unique_section (function, 0, flag_function_sections);
>--- gcc-3.4.0/gcc/config/i386/cygwin.h.old	Sun Jun  6 22:50:41 2004
>+++ gcc-3.4.0/gcc/config/i386/cygwin.h	Sun Jun  6 22:52:18 2004
>@@ -22,6 +22,8 @@
>
> #define TARGET_VERSION fprintf (stderr, " (x86 Cygwin)");
>
>+#define TARGET_IS_PE_COFF 1
>+
> #define EXTRA_OS_CPP_BUILTINS()  /* Nothing.  */
>
> #undef CPP_SPEC
>--- gcc-3.4.0/gcc/config/i386/cygming.h.old	Sun Jun  6 22:50:46 2004
>+++ gcc-3.4.0/gcc/config/i386/cygming.h	Sun Jun  6 22:52:10 2004
>@@ -27,6 +27,8 @@
>
> #define TARGET_EXECUTABLE_SUFFIX ".exe"
>
>+#define TARGET_IS_PE_COFF 1
>+
> #include <stdio.h>
>
> /* Masks for subtarget switches used by other files.  */
>
>
>-- 
>My technical stuff: http://kegel.com
>My politics: see http://www.misleader.org for examples of why I'm for 
>regime change


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