This is the mail archive of the gcc-patches@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: [patch i386]: Disable builtins exec(l/v) for x86_64-pc-mingw* target


Sorry,

This variant won't work, because gfortran does not include the c-common.c file.
I had to revert this patch. Fortran didn't compiled anymore.

2008/4/26 Kai Tietz <ktietz70@googlemail.com>:
> 2008/4/25 Uros Bizjak <ubizjak@gmail.com>:
>
>
> > Kai Tietz wrote:
>  >
>  >
>  > > 2008-04-25  Kai Tietz  <kai.tietz@onevision.com>
>  > >
>  > >        * config/i386/mingw32.h (SUBTARGET_INIT_BUILTINS): New.
>  > >        * config/i386/i386.c (ix86_init_builtins): Use
>  > SUBTARGET_INIT_BUILTINS.
>  > >
>  > >
>  > > Uros, my question is, shouldn't we add to i386.h at least an '#undef
>  > SUBTARGET_INIT_BUILTINS'? This would show to other i386 targets, that there
>  > is a way to customize the builtins for there purpose.
>  > >
>  > >
>  >
>  >  This is the same approach as rs6000 has for its darwin subtarget. I think
>  > we can adopt the same approach here, so it is OK for the mainline (but
>  > please add whitespace changes as described below).
>  >
>  >
>  > > ------------------------------------------------------------------------
>  > >
>  > > Index: gcc/gcc/config/i386/i386.c
>  > > ===================================================================
>  > > --- gcc.orig/gcc/config/i386/i386.c
>  > > +++ gcc/gcc/config/i386/i386.c
>  > > @@ -19806,6 +19806,9 @@ ix86_init_builtins (void)
>  > >  {
>  > >   if (TARGET_MMX)
>  > >     ix86_init_mmx_sse_builtins ();
>  > >
>  > >
>  >  One line of vertical space here.
>  >
>  >
>  > > +#ifdef SUBTARGET_INIT_BUILTINS
>  > > +  SUBTARGET_INIT_BUILTINS;
>  > > +#endif
>  > >  }
>  > >   /* Errors in the source file can cause expand_expr to return const0_rtx
>  > > Index: gcc/gcc/config/i386/mingw32.h
>  > > ===================================================================
>  > > --- gcc.orig/gcc/config/i386/mingw32.h
>  > > +++ gcc/gcc/config/i386/mingw32.h
>  > > @@ -180,6 +180,24 @@ __enable_execute_stack (void *addr)
>  > >  #undef ENABLE_EXECUTE_STACK
>  > >  #define ENABLE_EXECUTE_STACK MINGW_ENABLE_EXECUTE_STACK
>  > >  +#undef SUBTARGET_INIT_BUILTINS
>  > >
>  > > +#define SUBTARGET_INIT_BUILTINS                                        \
>  > > +  do {                                                         \
>  > >
>  > >
>  >  No need for #undef, since this will never be defined in the top level. This
>  > #define is for subtargets and these are mutually exclusive.
>  >
>  >  Please also fix indentation for "do {". It should start at the beginning of
>  > the line.
>  >
>  >
>  > > +    if (TARGET_64BIT_MS_ABI)                                   \
>  > >
>  > > +      {                                                                \
>  > > +       /* These builtin functions have a different return      \
>  > > +          type (intptr_t) on 64-bit MS Windows.  */            \
>  > > +       disable_builtin_function ("execl");                     \
>  > > +       disable_builtin_function ("execlp");                    \
>  > > +       disable_builtin_function ("execle");                    \
>  > > +       disable_builtin_function ("execv");                     \
>  > > +       disable_builtin_function ("execvp");                    \
>  > > +       disable_builtin_function ("execve");                    \
>  > > +      }                                                                \
>  > > +    /* Second argument of MS scalb is long, not double. */     \
>  > > +    disable_builtin_function ("scalb");                                \
>  > > +  } while (0)                                                     \
>  > > +
>  > >   #ifdef IN_LIBGCC2
>  > >  #include <windows.h>
>  > >
>  > >
>  >
>  >  Thanks,
>  >  Uros.
>  >
>
>  Committed at revision 134683.
>
>  Thanks,
>
>
>   Kai
>
>  --
>  | (\_/) This is Bunny. Copy and paste
>  | (='.'=) Bunny into your signature to help
>  | (")_(") him gain world domination
>



-- 
| (\_/) This is Bunny. Copy and paste
| (='.'=) Bunny into your signature to help
| (")_(") him gain world domination


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