Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/usr.bin/config Linker script TODO items.



details:   https://anonhg.NetBSD.org/src/rev/5f57fea4c034
branches:  trunk
changeset: 340093:5f57fea4c034
user:      uebayasi <uebayasi%NetBSD.org@localhost>
date:      Sat Aug 22 14:47:05 2015 +0000

description:
Linker script TODO items.

diffstat:

 usr.bin/config/TODO |  33 +++++++++++++++++++++++++++++++++
 1 files changed, 33 insertions(+), 0 deletions(-)

diffs (43 lines):

diff -r d0668311a434 -r 5f57fea4c034 usr.bin/config/TODO
--- a/usr.bin/config/TODO       Sat Aug 22 14:11:19 2015 +0000
+++ b/usr.bin/config/TODO       Sat Aug 22 14:47:05 2015 +0000
@@ -265,6 +265,39 @@
   of debug information.  In the future .symtab will be copied using linker
   during this stage.
 
+o Preprocess and generate linker scripts dynamically.
+
+  Include opt_xxx.h and replace some constant values (e.g. COHERENCY_UNIT,
+  PAGE_SIZE, KERNEL_BASE_PHYS, KERNEL_BASE_VIRT, ...) with cpp(1).
+
+  Don't unnecessarily define symbols.  Don't use sed(1).
+
+o Clean up linker scripts.
+
+  o Don't specify OUTPUT_FORMAT()/OUTPUT_ARCH()
+
+    These are basically set in compilers/linkers.  If non-default ABI is used,
+    command-line arguments should be specified.
+
+  o Remove .rel/.rela handlings.
+
+    These are set in relocatable objects, and handled by dynamic linkers.
+    Totally irrelefant for kernels.
+
+  o Clean up debug section handlings.
+
+  o Document (section boundary) symbols set in linker scripts.
+
+    There must be a reason why symbols are defined and exported.
+
+    PROVIDE() is to define internal symbols.
+
+  o Clean up load addresses.
+
+  o Program headers.
+
+  o According to matt@, .ARM.extab/.ARM.exidx sections are no longer needed.
+
 o Redesign swapnetbsd.c (root/swap device specification)
 
   Don't build a whole kernel only to specify root/swap devices.



Home | Main Index | Thread Index | Old Index