.syntax unified .thumb .file "foo.c" .text .macro decltype name, type .ifc \type,object .data .else .thumb .thumb_func .endif .type \name, %\type .endm .macro entry name, type, vis, typespc, visspc, entry_fct .align 2 .ifb \visspc .\vis __acle_se_\name .else .\visspc __acle_se_\name .endif .\vis \name .thumb .thumb_func .ifb \typespc decltype __acle_se_\name, \type .else decltype __acle_se_\name, \typespc .endif decltype \name, \type __acle_se_\name: \entry_fct \name: .ifc \type,object .word 42 .else nop .endif .size \name, .-\name .size __acle_se_\name, .-__acle_se_\name .endm .ifndef CHECK_ERRORS @ Valid setups for veneer generation entry glob_entry_veneer1, function, global entry weak_entry_veneer1, function, weak entry glob_entry_veneer2, function, global, visspc=weak entry weak_entry_veneer2, function, weak, visspc=global @ Valid setup for entry function without SG veneer entry glob_entry_fct, function, global, entry_fct=nop @ Valid setup for entry function with absolute address .align 2 .global __acle_se_abs_entry_fct .global abs_entry_fct .type __acle_se_abs_entry_fct, %function .type abs_entry_fct, %function __acle_se_abs_entry_fct = 0x10000 abs_entry_fct = 0x10004 .size abs_entry_fct, 0 .size __acle_se_abs_entry_fct, 0 .else @ Invalid setups for veneer generation (visibility) entry loc_entry_veneer1, function, local entry loc_entry_veneer2, function, global, visspc=local entry loc_entry_veneer3, function, local, visspc=global entry loc_entry_veneer4, function, weak, visspc=local entry loc_entry_veneer5, function, local, visspc=weak @ Invalid setups for veneer generation (absent standard symbol) .align 2 .global __acle_se_fake_entry_veneer1 .thumb .thumb_func .type __acle_se_fake_entry_veneer1, %function __acle_se_fake_entry_veneer1: nop .size __acle_se_fake_entry_veneer1, .-__acle_se_fake_entry_veneer1 @ Invalid setups for veneer generation (type) entry obj_entry_veneer1, object, global, typespc=function entry obj_entry_veneer2, function, global, typespc=object @ Invalid setup for veneer generation (sections) .section .text.sub1 .align 2 .thumb .thumb_func .global __acle_se_fake_entry_veneer2 .type __acle_se_fake_entry_veneer2, %function __acle_se_fake_entry_veneer2: nop .size __acle_se_fake_entry_veneer2, .-__acle_se_fake_entry_veneer2 .section .text.sub2 .align 2 .thumb .thumb_func .global fake_entry_veneer2 .type fake_entry_veneer2, %function fake_entry_veneer2: nop .size fake_entry_veneer2, .-fake_entry_veneer2 .endif