public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Kai Tietz <ktietz70@googlemail.com>
To: Patrick Wollgast <patrick.wollgast@rub.de>
Cc: Jonathan Wakely <jwakely@redhat.com>,
	Caroline Tice <cmtice@google.com>,
		Benjamin De Kosnik <bkoz@gnu.org>,
	Ian Lance Taylor <iant@google.com>,
	GCC Patches <gcc-patches@gcc.gnu.org>,
		"libstdc++" <libstdc++@gcc.gnu.org>
Subject: Re: [Ping] Port of VTV for Cygwin and MinGW
Date: Thu, 09 Oct 2014 14:47:00 -0000	[thread overview]
Message-ID: <CAEwic4bT+OBQcatruiZ5Cnv1d6YMGckuf4Auf9+WzKLchNNZEg@mail.gmail.com> (raw)
In-Reply-To: <54369316.7070001@rub.de>

2014-10-09 15:52 GMT+02:00 Patrick Wollgast <patrick.wollgast@rub.de>:
> On 27.09.2014 12:50, Kai Tietz wrote:
>> Hi Patrick,
>>
>> the mingw/cygwin part your patch looks fine to me.  Nevertheless I
>> have one question regarding to you.  Do you have FSF papers for gcc
>> already?  As I asked an overseer and he didn't found you on the list.
>>
>> Regards,
>> Kai
>>
>
> The papers FSF have been taken care of, and the signed papers have been
> exchanged.
>
>
> A short recap:
>
> Mail with the latest patch and changelog:
> https://gcc.gnu.org/ml/gcc-patches/2014-09/msg02200.html
>
> Approved:
> * gcc/config/i386/*
> * libstdc++-v3/*
> * libvtv/*
>
> Not approved:
> * gcc/cp/vtable-class-hierarchy.c

Index: gcc/cp/vtable-class-hierarchy.c
===================================================================
--- gcc/cp/vtable-class-hierarchy.c    (Revision 214408)
+++ gcc/cp/vtable-class-hierarchy.c    (Arbeitskopie)
@@ -1182,7 +1182,7 @@ vtv_generate_init_routine (void)
       TREE_STATIC (vtv_fndecl) = 1;
       TREE_USED (vtv_fndecl) = 1;
       DECL_PRESERVE_P (vtv_fndecl) = 1;
-      if (flag_vtable_verify == VTV_PREINIT_PRIORITY)
+      if (flag_vtable_verify == VTV_PREINIT_PRIORITY && !TARGET_PECOFF)

You need to check that TARGET_PECOFF is defined.  Otherwise you break
compilation for none i386 targets.

         DECL_STATIC_CONSTRUCTOR (vtv_fndecl) = 0;

       gimplify_function_tree (vtv_fndecl);
@@ -1190,7 +1190,7 @@ vtv_generate_init_routine (void)

       cgraph_process_new_functions ();

-      if (flag_vtable_verify == VTV_PREINIT_PRIORITY)
+      if (flag_vtable_verify == VTV_PREINIT_PRIORITY && !TARGET_PECOFF)

See above. Likewise
         assemble_vtv_preinit_initializer (vtv_fndecl);

     }


> * gcc/varasm.c

Index: gcc/varasm.c
===================================================================
--- gcc/varasm.c    (Revision 214408)
+++ gcc/varasm.c    (Arbeitskopie)
@@ -2165,6 +2165,33 @@ assemble_variable (tree decl, int top_le
                              DECL_NAME (decl));
           in_section = sect;
 #else
+          /* Neither OBJECT_FORMAT_PE, nor OBJECT_FORMAT_COFF is set here.
+             Therefore the following check is used.
+             In case a the target is PE or COFF a comdat group section
+             is created, e.g. .vtable_map_vars$foo. The linker places
+             everything in .vtable_map_vars at the end.
+
+             A fix could be made in
+             gcc/config/i386/winnt.c: i386_pe_unique_section. */
+          if (TARGET_PECOFF)

You need to test, if TARGET_PECOFF is defined!

+          {
+            char *name;
+
+            if (TREE_CODE (DECL_NAME (decl)) == IDENTIFIER_NODE)
+              name = ACONCAT ((sect->named.name, "$",
+               IDENTIFIER_POINTER (DECL_NAME (decl)), NULL));
+            else
+              name = ACONCAT ((sect->named.name, "$",
+               IDENTIFIER_POINTER (DECL_COMDAT_GROUP (DECL_NAME (decl))),
+               NULL));
+
+            targetm.asm_out.named_section (name,
+             sect->named.common.flags
+                   | SECTION_LINKONCE,

Here it seems to me that you have some whitespace issues,

+                       DECL_NAME (decl));
+            in_section = sect;
+        }
+        else
           switch_to_section (sect);
 #endif


> * libgcc/Makefile.in

Looks ok to me.

> * libgcc/config.host

Looks fine to me, too.

> * libiberty/obstack.c

Why you use instead of C-runtime exit/abort-functions the
platform-functions to terminate the process.  This looks to me like
useless change.  For cygwin this might be even wrong in some aspects.
What is the reasoning for this change?

Another note I have about re-implementation of mprotect in ---
libvtv/vtv_malloc.cc.  Why you need that?  it is already part of
libgcc for mingw.  And for cygwin this function is part of cygwin's
library itself.  So why re-implementing it here?


> Regards,
> Patrick

Regards,
Kai

  reply	other threads:[~2014-10-09 14:42 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-28 11:04 Patrick Wollgast
2014-09-11  4:12 ` [Ping] " Patrick Wollgast
     [not found]   ` <CABtf2+RU7frwOXOX2FF8Tmfc6ssrpfFVj1Vuue4cZt19FpSWtQ@mail.gmail.com>
2014-09-12 22:44     ` Caroline Tice
2014-09-18 22:24       ` Patrick Wollgast
2014-09-23  6:16         ` Caroline Tice
2014-09-23 10:22         ` Jonathan Wakely
2014-09-24 22:25           ` Patrick Wollgast
2014-09-27 10:50             ` Kai Tietz
2014-10-09 13:56               ` Patrick Wollgast
2014-10-09 14:47                 ` Kai Tietz [this message]
2014-10-16 10:23                   ` Patrick Wollgast
2014-10-30 14:51                     ` Patrick Wollgast
2014-11-12 16:23                       ` Patrick Wollgast
2014-11-12 17:05                         ` Kai Tietz
2014-11-12 17:47                           ` Patrick Wollgast
2014-11-12 18:45                             ` Kai Tietz
2014-11-27  9:59                               ` Patrick Wollgast
2014-12-10 16:37                                 ` Patrick Wollgast
2015-01-04 20:10                                   ` Patrick Wollgast
2015-01-08 20:34                                     ` Patrick Wollgast
2015-01-12 18:32                                       ` Caroline Tice
2015-01-14 19:28                                       ` Ian Lance Taylor
2015-01-14 21:23                                         ` Patrick Wollgast
2015-01-14 23:56                                           ` Ian Lance Taylor
2015-01-15  8:34                                             ` Patrick Wollgast
2015-01-15 16:14                                               ` Ian Lance Taylor
2015-01-15 22:13                                                 ` Patrick Wollgast
2015-01-28 14:04                                                   ` Patrick Wollgast
2015-01-29  1:58                                                     ` Caroline Tice
2015-01-29 18:16                                                       ` H.J. Lu
2015-01-29 18:22                                                         ` H.J. Lu
2015-01-29 18:23                                                         ` Caroline Tice
2015-01-29 18:16                                                       ` Matthias Klose
2015-01-29 18:26                                                         ` Matthias Klose
2015-01-29 18:28                                                           ` Jonathan Wakely
2015-01-29 18:34                                                             ` H.J. Lu
2015-01-29 18:59                                                               ` H.J. Lu
2015-01-29 19:27                                                                 ` H.J. Lu
2015-01-29 18:30                                                           ` H.J. Lu
2015-01-29 18:53                                                             ` Matthias Klose
2015-01-29 19:39                                                               ` Jakub Jelinek
2015-01-29 19:55                                                                 ` H.J. Lu
2015-01-29 20:01                                                                   ` Jakub Jelinek
2015-01-29 20:08                                                                     ` H.J. Lu
2015-01-29 19:28                                                             ` Jakub Jelinek
2015-02-09 12:32                                                       ` Thomas Schwinge
2015-02-02 19:56                                                     ` Patrick Wollgast

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAEwic4bT+OBQcatruiZ5Cnv1d6YMGckuf4Auf9+WzKLchNNZEg@mail.gmail.com \
    --to=ktietz70@googlemail.com \
    --cc=bkoz@gnu.org \
    --cc=cmtice@google.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=iant@google.com \
    --cc=jwakely@redhat.com \
    --cc=libstdc++@gcc.gnu.org \
    --cc=patrick.wollgast@rub.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).