diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2015-11-19 17:21:03 -0500 |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2015-11-20 08:43:58 -0500 |
commit | c7ddc5f43821039f4c005271912da30ba0f213db (patch) | |
tree | d752ec2d8c635af835bae00e36bde4d9853d822b | |
parent | b4a2ada297214119647b26df8abe394cd73ca53a (diff) | |
download | cmake-c7ddc5f43821039f4c005271912da30ba0f213db.tar.gz |
Fix auto export symbols for Dlls containing /bigobj for 64bit builds.
This fixes a bug where 64 bit builds with /bigobj incorrectly determined
that the object files were not 64 bit. This manifested itself with
printf type functions showing up as undefined because the leading
underscore was being removed and should not be removed.
-rw-r--r-- | Source/bindexplib.cxx | 2 | ||||
-rw-r--r-- | Tests/RunCMake/AutoExportDll/sub/sub.cxx | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/Source/bindexplib.cxx b/Source/bindexplib.cxx index dc4db6358d..b2508422fd 100644 --- a/Source/bindexplib.cxx +++ b/Source/bindexplib.cxx @@ -425,7 +425,7 @@ DumpFile(const char* filename, FILE *fout) if(h->Sig1 == 0x0 && h->Sig2 == 0xffff) { DumpSymbols<cmANON_OBJECT_HEADER_BIGOBJ, cmIMAGE_SYMBOL_EX> symbolDumper((cmANON_OBJECT_HEADER_BIGOBJ*) lpFileBase, fout, - (dosHeader->e_magic == IMAGE_FILE_MACHINE_AMD64)); + (h->Machine == IMAGE_FILE_MACHINE_AMD64)); symbolDumper.DumpObjFile(); } else { printf("unrecognized file format in '%s'\n", filename); diff --git a/Tests/RunCMake/AutoExportDll/sub/sub.cxx b/Tests/RunCMake/AutoExportDll/sub/sub.cxx index 9766b41ecb..9a3145ec4c 100644 --- a/Tests/RunCMake/AutoExportDll/sub/sub.cxx +++ b/Tests/RunCMake/AutoExportDll/sub/sub.cxx @@ -1,4 +1,6 @@ +#include <stdio.h> int sub() { + printf(""); return 10; } |