I've checked the toolchain build, it appears nxflat tools are built with THUMB support properly.
CC: errno.c
arm-none-eabi-gcc -c -fpic -msingle-pic-base -mpic-register=r10 -mno-pic-data-is-text-relative -fno-builtin -Wall -Wshadow -Wundef -g -Og -fno-strict-aliasing -fno-strength-reduce -nostartfiles -nostdlib -mno-thumb-interwork -fomit-frame-pointer -ffunction-sections -fdata-sections -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -isystem /home/walmis/Electronics/DancerECU/nuttx/nuttx/include errno.c -o errno.o
errno.c: In function 'main':
errno.c:60:9: warning: unused variable 'test_stream' [-Wunused-variable]
FILE *test_stream;
^~~~~~~~~~~
At top level:
errno.c:48:19: warning: 'g_nonexistent' defined but not used [-Wunused-const-variable=]
static const char g_nonexistent[] = "aflav-sautga-ay";
^~~~~~~~~~~~~
CC: test.c
arm-none-eabi-gcc -c -fpic -msingle-pic-base -mpic-register=r10 -mno-pic-data-is-text-relative -fno-builtin -Wall -Wshadow -Wundef -g -Og -fno-strict-aliasing -fno-strength-reduce -nostartfiles -nostdlib -mno-thumb-interwork -fomit-frame-pointer -ffunction-sections -fdata-sections -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -isystem /home/walmis/Electronics/DancerECU/nuttx/nuttx/include test.c -o test.o
CC: testcpp.cpp
arm-none-eabi-g++ -c -fpic -msingle-pic-base -mpic-register=r10 -mno-pic-data-is-text-relative -fno-builtin -Wall -Wshadow -Wundef -g -Og -fno-strict-aliasing -fno-strength-reduce -nostartfiles -nostdlib -mno-thumb-interwork -fomit-frame-pointer -ffunction-sections -fdata-sections -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -isystem /home/walmis/Electronics/DancerECU/nuttx/nuttx/include -nostartfiles -nostdlib -fno-rtti -fno-exceptions -isystem /home/walmis/Electronics/DancerECU/nuttx/nuttx/include/libcxx testcpp.cpp -o testcpp.o
LD: errno.o
arm-none-eabi-gcc -nostartfiles -nostdlib -mno-thumb-interwork -fomit-frame-pointer -ffunction-sections -fdata-sections -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -isystem /home/walmis/Electronics/DancerECU/nuttx/nuttx/include -Wl,-r,-d,-warn-common -o errno.r1 errno.o test.o testcpp.o
MK: errno.r1
mknxflat -o errno-thunk.S errno.r1
AS: errno-thunk.S
arm-none-eabi-gcc -c -nostartfiles -nostdlib -mno-thumb-interwork -fomit-frame-pointer -ffunction-sections -fdata-sections -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -isystem /home/walmis/Electronics/DancerECU/nuttx/nuttx/include -fpic -msingle-pic-base -mpic-register=r10 -mno-pic-data-is-text-relative -fno-builtin -Wall -Wshadow -Wundef -g -Og -fno-strict-aliasing -fno-strength-reduce errno-thunk.S -o errno-thunk.o
LD: errno-thunk.o
arm-none-eabi-gcc -nostartfiles -nostdlib -mno-thumb-interwork -fomit-frame-pointer -ffunction-sections -fdata-sections -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -isystem /home/walmis/Electronics/DancerECU/nuttx/nuttx/include -Wl,-T/home/walmis/Electronics/DancerECU/nuttx/nuttx/binfmt/libnxflat/gnu-nxflat-gotoff.ld,-no-check-sections,-r,-d,-warn-common -o errno.r2 errno.o test.o testcpp.o errno-thunk.o
LD: errno.r2
ldnxflat -v -e main -s 2048 -o errno errno.r2
Reading section .text
Reading section .data
Reading section .bss
Reading section .comment
Reading section .ARM.attributes
Reading section .debug_abbrev
Reading section .debug_info
Reading section .debug_line
Reading section .debug_aranges
Reading section .debug_loc
Reading section .debug_ranges
Reading section .debug_str
Reading section .debug_frame
INPUT SECTIONS:
SECT LOW HIGH SIZE
TEXT 00000000 000000bc 000000bc
DATA 00000000 00000058 00000058
BSS 00000058 00000058 00000000
TEXT: [ .text ]
DATA: [ .data ]
BSS: [ .bss ]
Sym [ .data] base 00000000, top 00000004
Sym [ .bss] base 00000058, top 0000005c
Sym [ .comment] base 00000000, top 00000004
Sym [ .ARM.attributes] base 00000000, top 00000004
Sym [ .debug_abbrev] base 00000000, top 00000004
Sym [ .debug_info] base 00000000, top 00000004
Sym [ .debug_line] base 00000000, top 00000004
Sym [ .debug_aranges] base 00000000, top 00000004
Sym [ .debug_loc] base 00000000, top 00000004
Sym [ .debug_ranges] base 00000000, top 00000004
Sym [ .debug_str] base 00000000, top 00000004
Sym [ .debug_frame] base 00000000, top 00000004
Sym [ errno.c] base 00000000, top 00000004
Sym [ $d] base 00000000, top 00000004
Sym [ .LC0] base 00000000, top 00000004
Sym [ .LC1] base 00000018, top 0000001c
Sym [ test.c] base 00000000, top 00000004
Sym [ $d] base 00000030, top 00000034
Sym [ .LC0] base 00000030, top 00000034
Sym [ testcpp.cpp] base 00000000, top 00000004
Sym [ $d] base 00000038, top 0000003c
Sym [ .LC0] base 00000038, top 0000003c
Sym [ errno-thunk.o] base 00000000, top 00000004
Sym [ __dynimport0000] base 00000000, top 00000007
Sym [ __dynimport0001] base 00000007, top 0000000f
Sym [ __dynimport0002] base 0000000f, top 00000020
Sym [ $d] base 00000040, top 00000044
WARNING -- Symbols '$d'[ .data] and '__dyninfo0000'[ .data] OVERLAP!
WARNING -- Sym '$d' base 00000040, top 00000044
WARNING -- Sym '__dyninfo0000' base 00000040, top 00000048
WARNING -- Symbols '$d'[ .data] and '__dynimport_begin'[ .data] OVERLAP!
WARNING -- Sym '$d' base 00000040, top 00000044
WARNING -- Sym '__dynimport_begin' base 00000040, top 00000058
Sym [ __dyninfo0000] base 00000040, top 00000048
WARNING -- Symbols '__dyninfo0000'[ .data] and '__dynimport_begin'[ .data] OVERLAP!
WARNING -- Sym '__dyninfo0000' base 00000040, top 00000048
WARNING -- Sym '__dynimport_begin' base 00000040, top 00000058
Sym [ __dyninfo0001] base 00000048, top 00000050
WARNING -- Symbols '__dyninfo0001'[ .data] and '__dynimport_begin'[ .data] OVERLAP!
WARNING -- Sym '__dyninfo0001' base 00000048, top 00000050
WARNING -- Sym '__dynimport_begin' base 00000040, top 00000058
Sym [ __dyninfo0002] base 00000050, top 00000058
WARNING -- Symbols '__dyninfo0002'[ .data] and '__dynimport_begin'[ .data] OVERLAP!
WARNING -- Sym '__dyninfo0002' base 00000050, top 00000058
WARNING -- Sym '__dynimport_begin' base 00000040, top 00000058
Sym [ printf] base 00000020, top 00000030
Sym [ _ctors_end] base 00000058, top 0000005c
Sym [ __dynimport_end] base 00000058, top 0000005c
Sym [ __dynimport_begin] base 00000040, top 00000058
Sym [ edata] base 00000060, top 00000064
Sym [ _dtors_end] base 00000058, top 0000005c
Sym [ fprintf] base 00000030, top 00000040
Sym [ end] base 00000060, top 00000064
Sym [ _ctors_start] base 00000058, top 0000005c
Sym [ sched_getstreams] base 00000040, top 00000050
Sym [ __bss_start] base 00000058, top 0000005c
Sym [ main] base 00000050, top 0000008c
Sym [ cpptest] base 000000a8, top 000000bc
Sym [ func] base 0000008c, top 000000a0
Sym [ _edata] base 00000058, top 0000005c
Sym [ _end] base 00000060, top 00000064
Sym [ __data_start] base 00000000, top 00000004
Sym [ callme] base 000000a0, top 000000a6
Sym [ _dtors_start] base 00000058, top 0000005c
Sym [ .data] base 00000000, top 00000004
Sym [ .bss] base 00000058, top 0000005c
Sym [ .comment] base 00000000, top 00000004
Sym [ .ARM.attributes] base 00000000, top 00000004
Sym [ .debug_abbrev] base 00000000, top 00000004
Sym [ .debug_info] base 00000000, top 00000004
Sym [ .debug_line] base 00000000, top 00000004
Sym [ .debug_aranges] base 00000000, top 00000004
Sym [ .debug_loc] base 00000000, top 00000004
Sym [ .debug_ranges] base 00000000, top 00000004
Sym [ .debug_str] base 00000000, top 00000004
Sym [ .debug_frame] base 00000000, top 00000004
Sym [ errno.c] base 00000000, top 00000004
Sym [ $d] base 00000000, top 00000004
Sym [ .LC0] base 00000000, top 00000004
Sym [ .LC1] base 00000018, top 0000001c
Sym [ test.c] base 00000000, top 00000004
Sym [ $d] base 00000030, top 00000034
Sym [ .LC0] base 00000030, top 00000034
Sym [ testcpp.cpp] base 00000000, top 00000004
Sym [ $d] base 00000038, top 0000003c
Sym [ .LC0] base 00000038, top 0000003c
Sym [ errno-thunk.o] base 00000000, top 00000004
Sym [ __dynimport0000] base 00000000, top 00000007
Sym [ __dynimport0001] base 00000007, top 0000000f
Sym [ __dynimport0002] base 0000000f, top 00000020
Sym [ $d] base 00000040, top 00000044
WARNING -- Symbols '$d'[ .data] and '__dyninfo0000'[ .data] OVERLAP!
WARNING -- Sym '$d' base 00000040, top 00000044
WARNING -- Sym '__dyninfo0000' base 00000040, top 00000048
WARNING -- Symbols '$d'[ .data] and '__dynimport_begin'[ .data] OVERLAP!
WARNING -- Sym '$d' base 00000040, top 00000044
WARNING -- Sym '__dynimport_begin' base 00000040, top 00000058
Sym [ __dyninfo0000] base 00000040, top 00000048
WARNING -- Symbols '__dyninfo0000'[ .data] and '__dynimport_begin'[ .data] OVERLAP!
WARNING -- Sym '__dyninfo0000' base 00000040, top 00000048
WARNING -- Sym '__dynimport_begin' base 00000040, top 00000058
Sym [ __dyninfo0001] base 00000048, top 00000050
WARNING -- Symbols '__dyninfo0001'[ .data] and '__dynimport_begin'[ .data] OVERLAP!
WARNING -- Sym '__dyninfo0001' base 00000048, top 00000050
WARNING -- Sym '__dynimport_begin' base 00000040, top 00000058
Sym [ __dyninfo0002] base 00000050, top 00000058
WARNING -- Symbols '__dyninfo0002'[ .data] and '__dynimport_begin'[ .data] OVERLAP!
WARNING -- Sym '__dyninfo0002' base 00000050, top 00000058
WARNING -- Sym '__dynimport_begin' base 00000040, top 00000058
Sym [ printf] base 00000020, top 00000030
Sym [ _ctors_end] base 00000058, top 0000005c
Sym [ __dynimport_end] base 00000058, top 0000005c
Sym [ __dynimport_begin] base 00000040, top 00000058
Sym [ edata] base 00000060, top 00000064
Sym [ _dtors_end] base 00000058, top 0000005c
Sym [ fprintf] base 00000030, top 00000040
Sym [ end] base 00000060, top 00000064
Sym [ _ctors_start] base 00000058, top 0000005c
Sym [ sched_getstreams] base 00000040, top 00000050
Sym [ __bss_start] base 00000058, top 0000005c
Sym [ main] base 00000050, top 0000008c
Sym [ cpptest] base 000000a8, top 000000bc
Sym [ func] base 0000008c, top 000000a0
Sym [ _edata] base 00000058, top 0000005c
Sym [ _end] base 00000060, top 00000064
Sym [ __data_start] base 00000000, top 00000004
Sym [ callme] base 000000a0, top 000000a6
Sym [ _dtors_start] base 00000058, top 0000005c
sym[0000] Sym[ .text] @ 0000 align sz 0000 tp 03 |........S....d.l|
sym[0001] Sym[ .data] @ 0000 align sz 0000 tp 03 |........S....d.l|
sym[0002] Sym[ .bss] @ 0000 align sz 0000 tp 03 |........S....d.l|
sym[0003] Sym[ .comment] @ 0000 align sz 0000 tp 03 |........S....d.l|
sym[0004] Sym[ .ARM.attributes] @ 0000 align sz 0000 tp 03 |........S....d.l|
sym[0005] Sym[ .debug_abbrev] @ 0000 align sz 0000 tp 03 |........S....d.l|
sym[0006] Sym[ .debug_info] @ 0000 align sz 0000 tp 03 |........S....d.l|
sym[0007] Sym[ .debug_line] @ 0000 align sz 0000 tp 03 |........S....d.l|
sym[0008] Sym[ .debug_aranges] @ 0000 align sz 0000 tp 03 |........S....d.l|
sym[0009] Sym[ .debug_loc] @ 0000 align sz 0000 tp 03 |........S....d.l|
sym[0010] Sym[ .debug_ranges] @ 0000 align sz 0000 tp 03 |........S....d.l|
sym[0011] Sym[ .debug_str] @ 0000 align sz 0000 tp 03 |........S....d.l|
sym[0012] Sym[ .debug_frame] @ 0000 align sz 0000 tp 03 |........S....d.l|
sym[0013] Sym[ errno.c] @ 0000 align sz 0000 tp 04 |..F..........d.l|
sym[0014] Sym[ $t] @ 0050 align sz 0000 tp 00 |...........K...l|
sym[0015] Sym[ $d] @ 0080 align sz 0000 tp 00 |...........K...l|
sym[0016] Sym[ $d] @ 0000 align sz 0000 tp 00 |...........K...l|
sym[0017] Sym[ .LC0] @ 0000 align sz 0000 tp 00 |...............l|
sym[0018] Sym[ .LC1] @ 0018 align sz 0000 tp 00 |...............l|
sym[0019] Sym[ test.c] @ 0000 align sz 0000 tp 04 |..F..........d.l|
sym[0020] Sym[ $t] @ 008c align sz 0000 tp 00 |...........K...l|
sym[0021] Sym[ $d] @ 009c align sz 0000 tp 00 |...........K...l|
sym[0022] Sym[ $t] @ 00a0 align sz 0000 tp 00 |...........K...l|
sym[0023] Sym[ $d] @ 0030 align sz 0000 tp 00 |...........K...l|
sym[0024] Sym[ .LC0] @ 0030 align sz 0000 tp 00 |...............l|
sym[0025] Sym[ testcpp.cpp] @ 0000 align sz 0000 tp 04 |..F..........d.l|
sym[0026] Sym[ $t] @ 00a8 align sz 0000 tp 00 |...........K...l|
sym[0027] Sym[ $d] @ 00b8 align sz 0000 tp 00 |...........K...l|
sym[0028] Sym[ $d] @ 0038 align sz 0000 tp 00 |...........K...l|
sym[0029] Sym[ .LC0] @ 0038 align sz 0000 tp 00 |...............l|
sym[0030] Sym[ errno-thunk.o] @ 0000 align sz 0000 tp 04 |..F..........d.l|
sym[0031] Sym[ __dynimport0000] @ 0000 align sz 0007 tp 01 |O..............l|
sym[0032] Sym[ $d] @ 0000 align sz 0000 tp 00 |...........K...l|
sym[0033] Sym[ __dynimport0001] @ 0007 align sz 0008 tp 01 |O..............l|
sym[0034] Sym[ __dynimport0002] @ 000f align sz 0011 tp 01 |O..............l|
sym[0035] Sym[ $d] @ 0040 align sz 0000 tp 00 |...........K...l|
sym[0036] Sym[ __dyninfo0000] @ 0040 align sz 0008 tp 01 |O..............l|
sym[0037] Sym[ __dyninfo0001] @ 0048 align sz 0008 tp 01 |O..............l|
sym[0038] Sym[ __dyninfo0002] @ 0050 align sz 0008 tp 01 |O..............l|
sym[0039] Sym[ $t] @ 0020 align sz 0000 tp 00 |...........K...l|
sym[0040] Sym[ $d] @ 002c align sz 0000 tp 00 |...........K...l|
sym[0041] Sym[ $t] @ 0030 align sz 0000 tp 00 |...........K...l|
sym[0042] Sym[ $d] @ 003c align sz 0000 tp 00 |...........K...l|
sym[0043] Sym[ $t] @ 0040 align sz 0000 tp 00 |...........K...l|
sym[0044] Sym[ $d] @ 004c align sz 0000 tp 00 |...........K...l|
sym[0045] Sym[ printf] @ 0020 align sz 0010 tp 12 |............f.g.|
sym[0046] Sym[ _etext] @ 00bc align sz 0000 tp 10 |..............g.|
sym[0047] Sym[ _ctors_end] @ 0058 align sz 0000 tp 10 |..............g.|
sym[0048] Sym[ __dynimport_end] @ 0058 align sz 0000 tp 11 |O.............g.|
sym[0049] Sym[ __dynimport_begin] @ 0040 align sz 0018 tp 11 |O.............g.|
sym[0050] Sym[ edata] @ 0060 align sz 0000 tp 10 |..............g.|
sym[0051] Sym[ _dtors_end] @ 0058 align sz 0000 tp 10 |..............g.|
sym[0052] Sym[ fprintf] @ 0030 align sz 0010 tp 12 |............f.g.|
sym[0053] Sym[ end] @ 0008 align sz 0000 tp 10 |..............g.|
sym[0054] Sym[ _ctors_start] @ 0058 align sz 0000 tp 10 |..............g.|
sym[0055] Sym[ sched_getstreams] @ 0040 align sz 0010 tp 12 |............f.g.|
sym[0056] Sym[ __bss_start] @ 0058 align sz 0000 tp 10 |..............g.|
sym[0057] Sym[ main] @ 0050 align sz 003c tp 12 |............f.g.|
sym[0058] Sym[ text_start] @ 0000 align sz 0000 tp 10 |..............g.|
sym[0059] Sym[ cpptest] @ 00a8 align sz 0014 tp 12 |............f.g.|
sym[0060] Sym[ func] @ 008c align sz 0014 tp 12 |............f.g.|
sym[0061] Sym[ _edata] @ 0058 align sz 0000 tp 10 |..............g.|
sym[0062] Sym[ _end] @ 0008 align sz 0000 tp 10 |..............g.|
sym[0063] Sym[ __data_start] @ 0000 align sz 0000 tp 10 |..............g.|
sym[0064] Sym[ callme] @ 00a0 align sz 0006 tp 12 |............f.g.|
sym[0065] Sym[ _dtors_start] @ 0058 align sz 0000 tp 10 |..............g.|
rel 0 : sym [ __dyninfo0000] s_addr @ 0000002c rel 00000000 how R_ARM_GOTOFF32
rel 1 : sym [ __dyninfo0001] s_addr @ 0000003c rel 00000000 how R_ARM_GOTOFF32
rel 2 : sym [ __dyninfo0002] s_addr @ 0000004c rel 00000000 how R_ARM_GOTOFF32
rel 3 : sym [ sched_getstreams] s_addr @ 00000052 rel 00000000 how R_ARM_THM_CALL
rel 4 : sym [ fprintf] s_addr @ 0000005e rel 00000000 how R_ARM_THM_CALL
rel 5 : sym [ sched_getstreams] s_addr @ 00000062 rel 00000000 how R_ARM_THM_CALL
rel 6 : sym [ fprintf] s_addr @ 0000006e rel 00000000 how R_ARM_THM_CALL
rel 7 : sym [ callme] s_addr @ 00000078 rel 00000000 how R_ARM_THM_CALL
rel 8 : sym [ .LC0] s_addr @ 00000080 rel 00000000 how R_ARM_GOT32
Created GOT entry 0 for sym 0x559f896a8360 (offset 0)
rel 9 : sym [ .LC1] s_addr @ 00000084 rel 00000000 how R_ARM_GOT32
Created GOT entry 1 for sym 0x559f896a83c0 (offset 4)
rel 10 : sym [ func] s_addr @ 00000088 rel 00000000 how R_ARM_GOT32
Created GOT entry 2 for sym 0x559f896a9380 (offset 8)
rel 11 : sym [ printf] s_addr @ 00000094 rel 00000000 how R_ARM_THM_CALL
rel 12 : sym [ .LC0] s_addr @ 0000009c rel 00000000 how R_ARM_GOT32
Created GOT entry 3 for sym 0x559f896a8600 (offset 12)
rel 13 : sym [ printf] s_addr @ 000000b0 rel 00000000 how R_ARM_THM_CALL
rel 14 : sym [ .LC0] s_addr @ 000000b8 rel 00000000 how R_ARM_GOT32
Created GOT entry 4 for sym 0x559f896a87e0 (offset 16)
rel 0 : sym [ .text] s_addr @ 00000040 rel 00000000 how R_ARM_ABS32
rel 1 : sym [ .text] s_addr @ 00000048 rel 00000000 how R_ARM_ABS32
rel 2 : sym [ .text] s_addr @ 00000050 rel 00000000 how R_ARM_ABS32
rel 0 : sym [ __dyninfo0000] s_addr @ 0000002c val 00000040-00000054 rel 00000000 how R_ARM_GOTOFF32
Perfoming GOTOFF reloc at addr 0000002c [00000000] to sym '__dyninfo0000' [00000054]
rel 1 : sym [ __dyninfo0001] s_addr @ 0000003c val 00000048-0000005c rel 00000000 how R_ARM_GOTOFF32
Perfoming GOTOFF reloc at addr 0000003c [00000000] to sym '__dyninfo0001' [0000005c]
rel 2 : sym [ __dyninfo0002] s_addr @ 0000004c val 00000050-00000064 rel 00000000 how R_ARM_GOTOFF32
Perfoming GOTOFF reloc at addr 0000004c [00000000] to sym '__dyninfo0002' [00000064]
rel 3 : sym [ sched_getstreams] s_addr @ 00000052 val 00000040-00000040 rel 00000000 how R_ARM_THM_CALL
Performing THM link at addr 00000052 [f7ff fffe] to sym 'sched_getstreams' [00000040]
rel 4 : sym [ fprintf] s_addr @ 0000005e val 00000030-00000030 rel 00000000 how R_ARM_THM_CALL
Performing THM link at addr 0000005e [f7ff fffe] to sym 'fprintf' [00000030]
rel 5 : sym [ sched_getstreams] s_addr @ 00000062 val 00000040-00000040 rel 00000000 how R_ARM_THM_CALL
Performing THM link at addr 00000062 [f7ff fffe] to sym 'sched_getstreams' [00000040]
rel 6 : sym [ fprintf] s_addr @ 0000006e val 00000030-00000030 rel 00000000 how R_ARM_THM_CALL
Performing THM link at addr 0000006e [f7ff fffe] to sym 'fprintf' [00000030]
rel 7 : sym [ callme] s_addr @ 00000078 val 000000a0-000000a0 rel 00000000 how R_ARM_THM_CALL
Performing THM link at addr 00000078 [f7ff fffe] to sym 'callme' [000000a0]
rel 8 : sym [ .LC0] s_addr @ 00000080 val 00000000-00000014 rel 00000000 how R_ARM_GOT32
Performing GOT32 reloc at addr 00000080 [00000000] to sym '.LC0' [00000014]
rel 9 : sym [ .LC1] s_addr @ 00000084 val 00000018-0000002c rel 00000000 how R_ARM_GOT32
Performing GOT32 reloc at addr 00000084 [00000000] to sym '.LC1' [0000002c]
rel 10 : sym [ func] s_addr @ 00000088 val 0000008c-0000008c rel 00000000 how R_ARM_GOT32
Performing GOT32 reloc at addr 00000088 [00000000] to sym 'func' [0000008c]
rel 11 : sym [ printf] s_addr @ 00000094 val 00000020-00000020 rel 00000000 how R_ARM_THM_CALL
Performing THM link at addr 00000094 [f7ff fffe] to sym 'printf' [00000020]
rel 12 : sym [ .LC0] s_addr @ 0000009c val 00000030-00000044 rel 00000000 how R_ARM_GOT32
Performing GOT32 reloc at addr 0000009c [00000000] to sym '.LC0' [00000044]
rel 13 : sym [ printf] s_addr @ 000000b0 val 00000020-00000020 rel 00000000 how R_ARM_THM_CALL
Performing THM link at addr 000000b0 [f7ff fffe] to sym 'printf' [00000020]
rel 14 : sym [ .LC0] s_addr @ 000000b8 val 00000038-0000004c rel 00000000 how R_ARM_GOT32
Performing GOT32 reloc at addr 000000b8 [00000000] to sym '.LC0' [0000004c]
rel 0 : sym [ .text] s_addr @ 00000040 val 00000000-00000000 rel 00000000 how R_ARM_ABS32
Performing ABS32 link at addr 00000040 [00000000] to sym '.text' [00000000]
rel 1 : sym [ .text] s_addr @ 00000048 val 00000000-00000000 rel 00000000 how R_ARM_ABS32
Performing ABS32 link at addr 00000048 [00000007] to sym '.text' [00000000]
rel 2 : sym [ .text] s_addr @ 00000050 val 00000000-00000000 rel 00000000 how R_ARM_ABS32
Performing ABS32 link at addr 00000050 [0000000f] to sym '.text' [00000000]
Entry symbol "main": 00000074 in section ".text"
HDR: 00000024 + Section VMA: 00000000 + Symbol Value: 00000050
Symbol __dynimport_begin: value: 00000040 section offset: 00000000 file offset: 00000134 count: 3
cp errno rom
genromfs -f rom.img -d rom -a 16