[PATCH] D82733: [clang][docs] Add note about using `-flto` with `-g` on macOS
Philippe Blain via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Sun Jun 28 17:10:05 PDT 2020
phil-blain created this revision.
phil-blain added reviewers: echristo, dblaikie.
Herald added subscribers: dexonsmith, inglorion.
Herald added a reviewer: JDevlieghere.
Herald added a project: clang.
If `-Wl,object_path_lto,<lto-filename>.o` is not passed at link time
when compiling and linking in separate steps with `-flto` and `-g`, the
temporary file used for Link Time Optimization is deleted by the linker,
so the executable is missing debug symbols and can't be easily debugged,
and `dsymutil` can't be run.
Document this behaviour.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D82733
Files:
clang/docs/CommandGuide/clang.rst
Index: clang/docs/CommandGuide/clang.rst
===================================================================
--- clang/docs/CommandGuide/clang.rst
+++ clang/docs/CommandGuide/clang.rst
@@ -474,6 +474,14 @@
optimization. With "thin", :doc:`ThinLTO <../ThinLTO>`
compilation is invoked instead.
+ Note: on Darwin, when using :option:`-flto` along with :option:`-g` and
+ compiling and linking in separate steps, you also need to pass
+ `-Wl,object_path_lto,<lto-filename>.o` at the linking step to instruct the
+ ld64 linker not to delete the temporary object file generated during Link
+ Time Optimization (this flag is automatically passed to the linker by Clang
+ if compilation and linking are done in a single step). This allows debugging
+ the executable as well as generating the `.dSYM` bundle using :manpage:`dsymutil(1)`.
+
Driver Options
~~~~~~~~~~~~~~
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D82733.273982.patch
Type: text/x-patch
Size: 881 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20200629/e5562b14/attachment-0001.bin>
More information about the cfe-commits
mailing list