From 2e6fc4e73d910e656c2170aa66a338206c6b4a75 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 6 Jun 2018 23:27:36 -0600 Subject: [PATCH] Update TODO list --- TODO | 46 ++-------------------------------------------- 1 file changed, 2 insertions(+), 44 deletions(-) diff --git a/TODO b/TODO index 94120eeeeebb..5d473789224a 100644 --- a/TODO +++ b/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) ^^^^^^^^^^^^^^^^^^^^^^^^^^^