This causes objdump to disassemble them, rather than rendering them as
straight hex data.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Wei Liu <wei.liu2@citrix.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
---
tools/tests/x86_emulator/Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/tests/x86_emulator/Makefile b/tools/tests/x86_emulator/Makefile
index 970ec3e..b54603d 100644
--- a/tools/tests/x86_emulator/Makefile
+++ b/tools/tests/x86_emulator/Makefile
@@ -149,7 +149,7 @@ $(addsuffix .h,$(TESTCASES)): %.h: %.c testcase.mk Makefile
(echo 'static const unsigned int __attribute__((section(".test, \"ax\", @progbits #")))' \
"$${prefix}_$(arch)$${flavor}[] = {"; \
od -v -t x $*.bin | sed -e 's/^[0-9]* /0x/' -e 's/ /, 0x/g' -e 's/$$/,/'; \
- echo "};") >>$@.new; \
+ echo "}; asm(\".type $${prefix}_$(arch)$${flavor}, STT_FUNC;\");") >>$@.new; \
rm -f $*.bin; \
done; \
)
@@ -165,7 +165,7 @@ $(addsuffix -opmask.h,$(OPMASK)): %.h: opmask.S testcase.mk Makefile
(echo 'static const unsigned int __attribute__((section(".test, \"ax\", @progbits #")))' \
"$${prefix}_$(arch)$${flavor}[] = {"; \
od -v -t x $*.bin | sed -e 's/^[0-9]* /0x/' -e 's/ /, 0x/g' -e 's/$$/,/'; \
- echo "};") >>$@.new; \
+ echo "}; asm(\".type $${prefix}_$(arch)$${flavor}, STT_FUNC;\");") >>$@.new; \
rm -f $*.bin; \
done; \
)
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
>>> On 24.05.19 at 17:15, <andrew.cooper3@citrix.com> wrote: > --- a/tools/tests/x86_emulator/Makefile > +++ b/tools/tests/x86_emulator/Makefile > @@ -149,7 +149,7 @@ $(addsuffix .h,$(TESTCASES)): %.h: %.c testcase.mk Makefile > (echo 'static const unsigned int __attribute__((section(".test, \"ax\", @progbits #")))' \ > "$${prefix}_$(arch)$${flavor}[] = {"; \ > od -v -t x $*.bin | sed -e 's/^[0-9]* /0x/' -e 's/ /, 0x/g' -e 's/$$/,/'; \ > - echo "};") >>$@.new; \ > + echo "}; asm(\".type $${prefix}_$(arch)$${flavor}, STT_FUNC;\");") >>$@.new; \ Hmm, this seems risky to me - I'd expect a decent compiler to mark them as STT_OBJECT, and a decent assembler to choke on finding disagreeing .type directives for the same symbol. Current binutils looks to simply OR together all the values, and then decide in an adhoc sequence which type to actually emit: if ((flags & BSF_THREAD_LOCAL) != 0) type = STT_TLS; else if ((flags & BSF_GNU_INDIRECT_FUNCTION) != 0) type = STT_GNU_IFUNC; else if ((flags & BSF_FUNCTION) != 0) type = STT_FUNC; else if ((flags & BSF_OBJECT) != 0) type = STT_OBJECT; else if ((flags & BSF_RELC) != 0) type = STT_RELC; else if ((flags & BSF_SRELC) != 0) type = STT_SRELC; else type = STT_NOTYPE; I don't think that's sane behavior (albeit it guarantees @function to win over @object), and hence I'd say it can change at any time. I wanted to suggest forcing the type change via objcopy, but to my surprise I couldn't find a respective option. Jan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
© 2016 - 2024 Red Hat, Inc.