Update TODO list
This commit is contained in:
parent
8aa486515e
commit
2e6fc4e73d
46
TODO
46
TODO
@ -1,4 +1,4 @@
|
||||
NuttX TODO List (Last updated March 4, 2018)
|
||||
NuttX TODO List (Last updated June 6, 2018)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
This file summarizes known NuttX bugs, limitations, inconsistencies with
|
||||
@ -18,7 +18,7 @@ nuttx/:
|
||||
(0) Message Queues (sched/mqueue)
|
||||
(8) Kernel/Protected Build
|
||||
(3) C++ Support
|
||||
(6) Binary loaders (binfmt/)
|
||||
(5) Binary loaders (binfmt/)
|
||||
(16) Network (net/, drivers/net)
|
||||
(4) USB (drivers/usbdev, drivers/usbhost)
|
||||
(2) Other drivers (drivers/)
|
||||
@ -1028,48 +1028,6 @@ o Binary loaders (binfmt/)
|
||||
Priority: There are too many references like the above. They will have
|
||||
to get fixed as needed for Windows native tool builds.
|
||||
|
||||
Title: TOOLCHAIN COMPATIBILITY PROBLEM
|
||||
Description: The older 4.3.3 compiler generates GOTOFF relocations to the constant
|
||||
strings, like:
|
||||
|
||||
.L3:
|
||||
.word .LC0(GOTOFF)
|
||||
.word .LC1(GOTOFF)
|
||||
.word .LC2(GOTOFF)
|
||||
.word .LC3(GOTOFF)
|
||||
.word .LC4(GOTOFF)
|
||||
|
||||
Where .LC0, LC1, LC2, LC3, and .LC4 are the labels corresponding to strings in
|
||||
the .rodata.str1.1 section. One consequence of this is that .rodata must reside
|
||||
in D-Space since it will addressed relative to the GOT (see the section entitled
|
||||
"Read-Only Data in RAM" at
|
||||
http://nuttx.org/Documentation/NuttXNxFlat.html#limitations).
|
||||
|
||||
The newer 4.6.3 compiler generated PC relative relocations to the strings:
|
||||
|
||||
.L2:
|
||||
.word .LC0-(.LPIC0+4)
|
||||
.word .LC1-(.LPIC1+4)
|
||||
.word .LC2-(.LPIC2+4)
|
||||
.word .LC3-(.LPIC4+4)
|
||||
.word .LC4-(.LPIC5+4)
|
||||
|
||||
This is good and bad. This is good because it means that .rodata.str1.1 can now
|
||||
reside in FLASH with .text and can be accessed using PC-relative addressing.
|
||||
That can be accomplished by simply moving the .rodata from the .data section to
|
||||
the .text section in the linker script. (The NXFLAT linker script is located at
|
||||
nuttx/binfmt/libnxflat/gnu-nxflat.ld).
|
||||
|
||||
This is bad because a lot of stuff may get broken an a lot of test will need to
|
||||
be done. One question that I have is does this apply to all kinds of .rodata?
|
||||
Or just to .rodata.str1.1?
|
||||
|
||||
Status: Open. Many of the required changes are in place but, unfortunately, not enough
|
||||
go be fully functional. I think all of the I-Space-to-I-Space fixes are in place.
|
||||
However, the generated code also includes PC-relative references to .bss which
|
||||
just cannot be done.
|
||||
Priority: Medium. The workaround for now is to use the older, 4.3.3 OABI compiler.
|
||||
|
||||
o Network (net/, drivers/net)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user