However, it's worth adding a .size directive so that objdump reports the
correct sizes for the code fragments.
/* REAL_FRAGMENT: Declare and define a real-mode code fragment in .text16 */
#define REAL_FRAGMENT( name, asm_code_str ) \
extern void name ( void ); \
- extern char name ## _size[]; \
__asm__ __volatile__ ( \
".section \".text16\"\n\t" \
".code16\n\t" \
#name ":\n\t" \
asm_code_str "\n\t" \
"ret\n\t" \
- #name "_end:\n\t" \
- ".equ " #name "_size, " #name "_end - " #name "\n\t" \
+ ".size " #name ", . - " #name "\n\t" \
".code32\n\t" \
".previous\n\t" \
: : \