diff options
author | Michael Brown | 2018-03-21 15:47:33 +0100 |
---|---|---|
committer | Michael Brown | 2018-03-21 16:00:53 +0100 |
commit | bc85368cdd311fe68ffcf251e7e8e90c14f8a9dc (patch) | |
tree | 2966a5d8310f0b57e39a8db9dec202ea5823286d /src/arch/x86/transitions/librm_test.c | |
parent | [librm] Provide symbols for inline code placed into other sections (diff) | |
download | ipxe-bc85368cdd311fe68ffcf251e7e8e90c14f8a9dc.tar.gz ipxe-bc85368cdd311fe68ffcf251e7e8e90c14f8a9dc.tar.xz ipxe-bc85368cdd311fe68ffcf251e7e8e90c14f8a9dc.zip |
[librm] Ensure that inline code symbols are unique
Commit 6149e0a ("[librm] Provide symbols for inline code placed into
other sections") may cause build failures due to duplicate label names
if the compiler chooses to duplicate inline assembly code.
Fix by using the "%=" special format string to include a
guaranteed-unique number within the label name.
The "%=" will be expanded only if constraints exist for the inline
assembly. This fix therefore requires that all REAL_CODE() fragments
use a (possibly empty) constraint list.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/arch/x86/transitions/librm_test.c')
-rw-r--r-- | src/arch/x86/transitions/librm_test.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/arch/x86/transitions/librm_test.c b/src/arch/x86/transitions/librm_test.c index ba4254fe..77cf8022 100644 --- a/src/arch/x86/transitions/librm_test.c +++ b/src/arch/x86/transitions/librm_test.c @@ -97,7 +97,7 @@ static void librm_test_exec ( void ) { /* Profile complete real-mode call cycle */ for ( i = 0 ; i < PROFILE_COUNT ; i++ ) { profile_start ( &real_call_profiler ); - __asm__ __volatile__ ( REAL_CODE ( "" ) ); + __asm__ __volatile__ ( REAL_CODE ( "" ) : ); profile_stop ( &real_call_profiler ); } |