From f3c2d91dfa90b9641ba348bc7a640e80446e497a Mon Sep 17 00:00:00 2001 From: John Dallaway Date: Tue, 30 Jan 2024 15:36:13 +0000 Subject: [PATCH] Add COFF binary object presentation improvements to N&N --- NewAndNoteworthy/CDT-11.5.md | 8 ++++++++ .../images/CDT-11.5-coff-object.png | Bin 0 -> 24172 bytes 2 files changed, 8 insertions(+) create mode 100644 NewAndNoteworthy/images/CDT-11.5-coff-object.png diff --git a/NewAndNoteworthy/CDT-11.5.md b/NewAndNoteworthy/CDT-11.5.md index de301af88f8..9239724ab8a 100644 --- a/NewAndNoteworthy/CDT-11.5.md +++ b/NewAndNoteworthy/CDT-11.5.md @@ -16,6 +16,14 @@ The managed build system now invokes `gcc -c` to build GNU assembly language sou The new behaviour applies to managed build configurations using a _Cross GCC_, _Cygwin GCC_, _Linux GCC_ or _MinGW GCC_ toolchain. +## COFF symbol presentation + +A complete set of external symbols is now presented under COFF binary object files within the _Project Explorer_ view: + +

+ +The revised presentation matches that observed for ELF binary object files. + # API Changes, current and planned ## Breaking API changes diff --git a/NewAndNoteworthy/images/CDT-11.5-coff-object.png b/NewAndNoteworthy/images/CDT-11.5-coff-object.png new file mode 100644 index 0000000000000000000000000000000000000000..0ba052372d1904cd6193b891fcdc4c9d3cec65d7 GIT binary patch literal 24172 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 M%TTlA@}0;30W>eVO#lD@ literal 0 HcmV?d00001