From 5707d2add464b6787ec615825e00b2407ba8a82b Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 8 Sep 2015 09:36:02 +0100 Subject: [PATCH] Extend the descriptiopn of how to access linker defined symbols from C. * ld.texinfo (Source Code Reference): Extend description to include an example using arrays. --- ld/ChangeLog | 5 +++++ ld/ld.texinfo | 13 +++++++++++++ 2 files changed, 18 insertions(+) diff --git a/ld/ChangeLog b/ld/ChangeLog index a9eb7c8..3ab9f75 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,8 @@ +2015-09-08 Nick Clifton + + * ld.texinfo (Source Code Reference): Extend description to + include an example using arrays. + 2015-07-28 Andrew Burgess * ld.h (enum orphan_handling_enum): New. diff --git a/ld/ld.texinfo b/ld/ld.texinfo index d20a59f..be1d490 100644 --- a/ld/ld.texinfo +++ b/ld/ld.texinfo @@ -3887,6 +3887,19 @@ Then the C source code to perform the copy would be: @end smallexample Note the use of the @samp{&} operators. These are correct. +Alternatively the symbols can be treated as the names of vectors or +arrays and then the code will again work as expected: + +@smallexample +@group + extern char start_of_ROM[], end_of_ROM[], start_of_FLASH[]; + + memcpy (start_of_FLASH, start_of_ROM, end_of_ROM - start_of_ROM); +@end group +@end smallexample + +Note how using this method does not require the use of @samp{&} +operators. @node SECTIONS @section SECTIONS Command -- 2.7.4