Skip to content

boards/tiva: change default toolchain for tm4c123g to GNU EABI#18690

Open
TheFakeMontyOnTheRun wants to merge 1 commit intoapache:masterfrom
TheFakeMontyOnTheRun:TheFakeMontyOnTheRun-patch-1
Open

boards/tiva: change default toolchain for tm4c123g to GNU EABI#18690
TheFakeMontyOnTheRun wants to merge 1 commit intoapache:masterfrom
TheFakeMontyOnTheRun:TheFakeMontyOnTheRun-patch-1

Conversation

@TheFakeMontyOnTheRun
Copy link
Copy Markdown
Contributor

Fixes: #18668

Summary

This will change the default toolchain from OABI to GNU EABI. Out of the box,

Impact

it's a less jarring experience to anyone trying to run NuttX on the TM4C123G. TBH, I'm not even sure how to use OABI (or if it's even possible. My only experience with Buildroot was with Linux).

Sadly, I can't help with other configurations or boards, since I do not own the required hardware to test (I think)?

Should I open an issue for the other boards? Given how wide is the effort to fix this for other boards, it's something to be discussed within the governance of the project .

Testing

Built cleanly on the Machine 3 listed here (#18668).
After programming the board, NuttX worked perfectly on minicom.
Running OSTest did generate an assertion error:

ostest
stdio_test: write fd=1
stdio_test: Standard I/O Check: printf
stdio_test: write fd=2
stdio_test: Standard I/O Check: fprintf to stderr
ostest_main: putenv(Variable1=BadValue3)
ostest_main: setenv(Variable1, GoodValue1, TRUE)
ostest_main: setenv(Variable2, BadValue1, FALSE)
ostest_main: setenv(Variable2, GoodValue2, TRUE)
ostest_main: setenv(Variable3, GoodValue3, FALSE)
ostest_main: setenv(Variable3, BadValue2, FALSE)
show_variable: Variable=Variable1 has value=GoodValue1
show_variable: Variable=Variable2 has value=GoodValue2
show_variable: Variable=Variable3 has value=GoodValue3
ostest_main: Started user_main at PID=5

user_main: Begin argument test
user_main: Started with argc=5
user_main: argv[0]="ostest"
user_main: argv[1]="Arg1"
user_main: argv[2]="Arg2"
user_main: argv[3]="Arg3"
user_main: argv[4]="Arg4"

End of test memory usage:
VARIABLE  BEFORE   AFTER
======== ======== ========
arena        5c04     5c04
ordblks         1        1
mxordblk     1a48     1a48
uordblks     41bc     41bc
fordblks     1a48     1a48

user_main: getopt() test
getopt():  Simple test
getopt():  Invalid argument
getopt():  Missing optional argument
getopt_long():  Simple test
getopt_long():  No short options
getopt_long():  Argument for --option=argument
getopt_long():  Invalid long option
getopt_long():  Mixed long and short options
getopt_long():  Invalid short option
getopt_long():  Missing optional arguments
getopt_long_only():  Mixed long and short options
getopt_long_only():  Single hyphen long options

End of test memory usage:
VARIABLE  BEFORE   AFTER
======== ======== ========
arena        5c04     5c04
ordblks         1        1
mxordblk     1a48     1a48
uordblks     41bc     41bc
fordblks     1a48     1a48

user_main: libc tests

End of test memory usage:
VARIABLE  BEFORE   AFTER
======== ======== ========
arena        5c04     5c04
ordblks         1        1
mxordblk     1a48     1a48
uordblks     41bc     41bc
fordblks     1a48     1a48
show_variable: Variable=Variable1 has value=GoodValue1
show_variable: Variable=Variable2 has value=GoodValue2
show_variable: Variable=Variable3 has value=GoodValue3
show_variable: Variable=Variable1 has no value
show_variable: Variable=Variable2 has value=GoodValue2
show_variable: Variable=Variable3 has value=GoodValue3

End of test memory usage:
VARIABLE  BEFORE   AFTER
======== ======== ========
arena        5c04     5c04
ordblks         1        2
mxordblk     1a48     1a48
uordblks     41bc     419c
fordblks     1a48     1a68
show_variable: Variable=Variable1 has no value
show_variable: Variable=Variable2 has no value
show_variable: Variable=Variable3 has no value

End of test memory usage:
VARIABLE  BEFORE   AFTER
======== ======== ========
arena        5c04     5c04
ordblks         2        2
mxordblk     1a48     1a48
uordblks     419c     4124
fordblks     1a68     1ae0

user_main: setvbuf test
setvbuf_test: Test NO buffering
setvbuf_test: Using NO buffering
setvbuf_test: Test default FULL buffering
setvbuf_test: Using default FULL buffering
setvbuf_test: Test FULL buffering, buffer size 64
setvbuf_test: Using FULL buffering, buffer size 64
setvbuf_test: Test FULL buffering, pre-allocated buffer
setvbuf_test: Using FULL buffering, pre-allocated buffer
setvbuf_test: Test LINE buffering, buffer size 64
setvbuf_test: Using LINE buffering, buffer size 64
setvbuf_test: Test FULL buffering, pre-allocated buffer
setvbuf_test: Using FULL buffering, pre-allocated buffer

End of test memory usage:
VARIABLE  BEFORE   AFTER
======== ======== ========
arena        5c04     5c04
ordblks         2        2
mxordblk     1a48     1a48
uordblks     4124     4124
fordblks     1ae0     1ae0

user_main: /dev/null test
dev_null: Read 0 bytes from /dev/null
dev_null: Wrote 1024 bytes to /dev/null

End of test memory usage:
VARIABLE  BEFORE   AFTER
======== ======== ========
arena        5c04     5c04
ordblks         2    dump_assert_info: Current Version: NuttX  12.13.0 54ee939f82-dirty Apr  8 2026 21:57:55 arm
dump_assert_info: Assertion failed : at file: :0 task: <noname> process: <noname> 0xf051
up_dump_register: R0: 20000d00 R1: 00000000 R2: 200041b8  R3: 00000000
up_dump_register: R4: 200041b8 R5: 00000000 R6: 00000000  FP: 200007a4
up_dump_register: R8: 00000000 SB: 00000006 SL: 00000000 R11: 00000000
up_dump_register: IP: 00000000 SP: 20006448 LR: 0000159f  PC: 0000159f
up_dump_register: xPSR: 60000000 BASEPRI: 00000080 CONTROL: 00000000
up_dump_register: EXC_RETURN: 00000000
dump_stackinfo: User Stack:
dump_stackinfo:   base: 0x20004600
dump_stackinfo:   size: 00008112
dump_stackinfo:     sp: 0x20006448
stack_dump: 0x20006428: 200065b0 200065b0 20006448 20004600 200007a4 00001fb0 00000006 000016ad
stack_dump: 0x20006448: 00018276 00000000 000177e5 000177e5 0000f051 00000001 00000000 00000000
stack_dump: 0x20006468: 200041b8 20000d00 00000000 00000000 00000000 7474754e 00000058 20006660
stack_dump: 0x20006488: ffffffff 0a0065b8 200000f8 00000000 20006508 00003aa5 00000001 200026e0
stack_dump: 0x200064a8: 20002610 00000000 2e323100 302e3331 20006500 00000000 00000000 34350000
stack_dump: 0x200064c8: 33396565 32386639 7269642d 41207974 20207270 30322038 32203632 37353a31
stack_dump: 0x200064e8: 0035353a 200026e0 20004390 00000001 6d726154 00005200 00000001 00001fb0
stack_dump: 0x20006508: 200045b0 20004600 00000001 ffffffff 00000000 200019b8 20000374 200045d8
stack_dump: 0x20006528: 20000364 00000000 00000000 000046f1 00000005 0000ffcd 0001fa60 7ffffffe
stack_dump: 0x20006548: 200045dc 2000192c 00000000 0000f175 00005c04 00000001 00000022 00001a48
stack_dump: 0x20006568: 000041bc 00001a48 00004650 00000000 00000000 0000f051 00000005 200045c8
stack_dump: 0x20006588: 00000000 00000000 00000000 000048a1 0000f051 00002741 00000000 00000000
stack_dump: 0x200065a8: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    2
mxordblk     1a48     1a48
uordblks     4124     4124
fordblks     1ae0     1ae0

user_main: task_restart test

Test task_restart()
restart_main: setenv(VarName, VarValue, TRUE)
restart_main: ERROR Failed to start restart_main
ostest_main: Exiting with status 256

Is this a blocker? In any case, I don't mind opening a separate issue for this.

@github-actions github-actions bot added Size: XS The size of the change in this PR is very small Board: arm labels Apr 8, 2026
xiaoxiang781216
xiaoxiang781216 previously approved these changes Apr 9, 2026
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CONFIG_ARM_TOOLCHAIN_GNU_EABI is deault option, don't need specify explicitly, so it's enough to remove CONFIG_ARM_TOOLCHAIN_BUILDROOT_OABI directly.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed. Hope it good now :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Board: arm Size: XS The size of the change in this PR is very small

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] Support for TM4C123 (TI Launchpad Tiva C) seems to be broken

2 participants