summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2015-11-19 22:21:03 (GMT)
committerBill Hoffman <bill.hoffman@kitware.com>2015-11-19 22:21:03 (GMT)
commit75004280af22edd22a3efb7b47d5d87f2da65354 (patch)
treed82737d365f2673af4c51ad1e36fd605cfc03ea0
parente45e503f140f99f4fcf387e5359e7aba4bb1de0e (diff)
downloadCMake-75004280af22edd22a3efb7b47d5d87f2da65354.zip
CMake-75004280af22edd22a3efb7b47d5d87f2da65354.tar.gz
CMake-75004280af22edd22a3efb7b47d5d87f2da65354.tar.bz2
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.cxx2
-rw-r--r--Tests/RunCMake/AutoExportDll/sub/sub.cxx2
2 files changed, 3 insertions, 1 deletions
diff --git a/Source/bindexplib.cxx b/Source/bindexplib.cxx
index 64621e0..e7263ae 100644
--- a/Source/bindexplib.cxx
+++ b/Source/bindexplib.cxx
@@ -422,7 +422,7 @@ DumpFile(const char* filename,
DumpSymbols<cmANON_OBJECT_HEADER_BIGOBJ, cmIMAGE_SYMBOL_EX>
symbolDumper((cmANON_OBJECT_HEADER_BIGOBJ*) lpFileBase, symbols,
dataSymbols,
- (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 9766b41..9a3145e 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;
}