[PATCH] D134559: [LLD][COFF] Generate map file even if no /out flag is present
Pengxuan Zheng via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sun Sep 25 11:51:08 PDT 2022
pzheng updated this revision to Diff 462746.
pzheng added a comment.
Add a dedicated test
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D134559/new/
https://reviews.llvm.org/D134559
Files:
lld/COFF/Driver.cpp
lld/test/COFF/map.test
Index: lld/test/COFF/map.test
===================================================================
--- lld/test/COFF/map.test
+++ lld/test/COFF/map.test
@@ -11,6 +11,11 @@
# RUN: lld-link /out:%t.dll /dll %t-dll.obj /export:exportfn1 \
# RUN: /export:foo=exportfn2 /map /mapinfo:exports
# RUN: FileCheck -check-prefix=MAPINFO -strict-whitespace %s < %t.map
+# RUN: rm -rf %t && mkdir -p %t && cd %t
+# RUN: cp %t.obj map.test.tmp.obj
+# RUN: cp %t-dll.lib map.test.tmp-dll.lib
+# RUN: lld-link /entry:main map.test.tmp.obj map.test.tmp-dll.lib /map
+# RUN: FileCheck -check-prefix=MAP -strict-whitespace %s < map.test.tmp.map
# MAP: {{.*}}
# MAP-EMPTY:
Index: lld/COFF/Driver.cpp
===================================================================
--- lld/COFF/Driver.cpp
+++ lld/COFF/Driver.cpp
@@ -1919,25 +1919,6 @@
if (config->mingw || config->debugDwarf)
config->warnLongSectionNames = false;
- config->lldmapFile = getMapFile(args, OPT_lldmap, OPT_lldmap_file);
- config->mapFile = getMapFile(args, OPT_map, OPT_map_file);
-
- if (config->mapFile != "" && args.hasArg(OPT_map_info)) {
- for (auto *arg : args.filtered(OPT_map_info)) {
- std::string s = StringRef(arg->getValue()).lower();
- if (s == "exports")
- config->mapInfo = true;
- else
- error("unknown option: /mapinfo:" + s);
- }
- }
-
- if (config->lldmapFile != "" && config->lldmapFile == config->mapFile) {
- warn("/lldmap and /map have the same output file '" + config->mapFile +
- "'.\n>>> ignoring /lldmap");
- config->lldmapFile.clear();
- }
-
if (config->incremental && args.hasArg(OPT_profile)) {
warn("ignoring '/incremental' due to '/profile' specification");
config->incremental = false;
@@ -2143,6 +2124,25 @@
return;
}
+ config->lldmapFile = getMapFile(args, OPT_lldmap, OPT_lldmap_file);
+ config->mapFile = getMapFile(args, OPT_map, OPT_map_file);
+
+ if (config->mapFile != "" && args.hasArg(OPT_map_info)) {
+ for (auto *arg : args.filtered(OPT_map_info)) {
+ std::string s = StringRef(arg->getValue()).lower();
+ if (s == "exports")
+ config->mapInfo = true;
+ else
+ error("unknown option: /mapinfo:" + s);
+ }
+ }
+
+ if (config->lldmapFile != "" && config->lldmapFile == config->mapFile) {
+ warn("/lldmap and /map have the same output file '" + config->mapFile +
+ "'.\n>>> ignoring /lldmap");
+ config->lldmapFile.clear();
+ }
+
if (shouldCreatePDB) {
// Put the PDB next to the image if no /pdb flag was passed.
if (config->pdbPath.empty()) {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D134559.462746.patch
Type: text/x-patch
Size: 2599 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220925/b0c391a1/attachment.bin>
More information about the llvm-commits
mailing list