This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  993e178cfd3fab54f089fe28a03257a41409d7ba (commit)
       via  db7f069a4b33f3e8b45142b67289e51c142c90b4 (commit)
      from  f8aeb20b2c7da9b67adc960d44d0f7ce588d8b7c (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=993e178cfd3fab54f089fe28a03257a41409d7ba
commit 993e178cfd3fab54f089fe28a03257a41409d7ba
Merge: f8aeb20 db7f069
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Mon Sep 14 09:18:34 2015 -0400
Commit:     CMake Topic Stage <kwro...@kitware.com>
CommitDate: Mon Sep 14 09:18:34 2015 -0400

    Merge topic 'fix_64bit_autodef' into next
    
    db7f069a Windows: Fix 64-bit DLL module definition file generation on VS 
2015


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=db7f069a4b33f3e8b45142b67289e51c142c90b4
commit db7f069a4b33f3e8b45142b67289e51c142c90b4
Author:     Bill Hoffman <bill.hoff...@kitware.com>
AuthorDate: Thu Sep 10 17:12:41 2015 -0400
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Mon Sep 14 09:16:49 2015 -0400

    Windows: Fix 64-bit DLL module definition file generation on VS 2015
    
    With 64-bit Windows builds, there is no need to remove the leading
    underscore from all the symbols.  This is because it does not have one
    in the .obj file unless it is really in the name.  This did not cause
    any trouble until VS 2015 which has some system functions that have a
    leading underscore that end up in the .def file.

diff --git a/Source/bindexplib.cxx b/Source/bindexplib.cxx
index 11e3f34..dc4db63 100644
--- a/Source/bindexplib.cxx
+++ b/Source/bindexplib.cxx
@@ -173,7 +173,7 @@ public:
    */
 
    DumpSymbols(ObjectHeaderType* ih,
-               FILE* fout) {
+               FILE* fout, bool is64) {
       this->ObjectImageHeader = ih;
       this->SymbolTable = (SymbolTableType*)
       ((DWORD_PTR)this->ObjectImageHeader
@@ -183,6 +183,7 @@ public:
         GetSectionHeaderOffset(this->ObjectImageHeader);
       this->ImportFlag = true;
       this->SymbolCount = this->ObjectImageHeader->NumberOfSymbols;
+      this->Is64Bit = is64;
    }
 
   /*
@@ -287,7 +288,14 @@ public:
                   symbol.erase(posAt);
                }
             }
-            if (symbol[0] == '_') symbol.erase(0,1);
+            // For 64 bit builds we don't need to remove _
+            if(!this->Is64Bit)
+              {
+              if (symbol[0] == '_')
+                {
+                symbol.erase(0,1);
+                }
+              }
             if (this->ImportFlag) {
                this->ImportFlag = false;
                fprintf(this->FileOut,"EXPORTS \n");
@@ -355,6 +363,7 @@ private:
   PIMAGE_SECTION_HEADER SectionHeaders;
   ObjectHeaderType* ObjectImageHeader;
   SymbolTableType*  SymbolTable;
+  bool Is64Bit;
 };
 
 bool
@@ -406,7 +415,8 @@ DumpFile(const char* filename, FILE *fout)
       * and IMAGE_FILE_HEADER.SizeOfOptionalHeader == 0;
       */
       DumpSymbols<IMAGE_FILE_HEADER, IMAGE_SYMBOL>
-        symbolDumper((PIMAGE_FILE_HEADER) lpFileBase, fout);
+        symbolDumper((PIMAGE_FILE_HEADER) lpFileBase, fout,
+                     (dosHeader->e_magic == IMAGE_FILE_MACHINE_AMD64));
       symbolDumper.DumpObjFile();
    } else {
       // check for /bigobj format
@@ -414,7 +424,8 @@ DumpFile(const char* filename, FILE *fout)
         (cmANON_OBJECT_HEADER_BIGOBJ*) lpFileBase;
       if(h->Sig1 == 0x0 && h->Sig2 == 0xffff) {
          DumpSymbols<cmANON_OBJECT_HEADER_BIGOBJ, cmIMAGE_SYMBOL_EX>
-           symbolDumper((cmANON_OBJECT_HEADER_BIGOBJ*) lpFileBase, fout);
+           symbolDumper((cmANON_OBJECT_HEADER_BIGOBJ*) lpFileBase, fout,
+                        (dosHeader->e_magic == IMAGE_FILE_MACHINE_AMD64));
          symbolDumper.DumpObjFile();
       } else {
          printf("unrecognized file format in '%s'\n", filename);

-----------------------------------------------------------------------

Summary of changes:


hooks/post-receive
-- 
CMake
_______________________________________________
Cmake-commits mailing list
Cmake-commits@cmake.org
http://public.kitware.com/mailman/listinfo/cmake-commits

Reply via email to