Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/usr.bin/config config(1): More TODO
details: https://anonhg.NetBSD.org/src/rev/3a8044d213d9
branches: trunk
changeset: 333355:3a8044d213d9
user: uebayasi <uebayasi%NetBSD.org@localhost>
date: Thu Oct 30 08:20:15 2014 +0000
description:
config(1): More TODO
diffstat:
usr.bin/config/TODO | 23 +++++++++++++++++++++--
1 files changed, 21 insertions(+), 2 deletions(-)
diffs (46 lines):
diff -r b30352cb8bbb -r 3a8044d213d9 usr.bin/config/TODO
--- a/usr.bin/config/TODO Thu Oct 30 07:53:41 2014 +0000
+++ b/usr.bin/config/TODO Thu Oct 30 08:20:15 2014 +0000
@@ -109,17 +109,22 @@
Accordingly device/attach selection syntax should be revisited.
-o Support kernel constructor/destructor (.ctors/.dtors)
+o Support kernel constructor/destructor (.kctors/.kdtors)
Initialization and finalization should be called via constructors and
destructors. Don't hardcode those sequences as sys/kern/init_main.c:main()
does.
- The order of .ctors/.dtors is resolved by dependency. The difference from
+ The order of .kctors/.kdtors is resolved by dependency. The difference from
userland is that in kernel depended ones are located in lower addresses;
"machdep" module is the lowest. Thus the lowest entry in .ctors must be
executed the first.
+ The .kctors/.kdtors entries are executed by kernel's main() function, unlike
+ userland where start code executes .ctors/.dtors before main(). The hardcoded
+ sequence of various subsystem initializations in init_main.c:main() will be
+ replaced by an array of .kctors invocaions, and #ifdef's there will be gone.
+
o Replace linkset.
Don't allow kernel subsystems create random ELF sections (with potentially
@@ -131,3 +136,17 @@
Dynamically loaded modules have to register those entries via constructors
(functions). This means that dynamically loaded modules are flexible but
come with overhead.
+
+o Shared kernel objects.
+
+ Since NetBSD has not established a clear kernek ABI, every single kernel
+ has to build all the objects by their own. As a result, similar kernels
+ (e.g. evbarm kernels) repeatedly compile similar objects, that is waste of
+ energy & space.
+
+ Share them if possible. For evb* ports, ideally everything except machdep.ko
+ should be shared.
+
+ While leaving optimizations as options (CPU specific optimizations, inlined
+ bus_space(9) operations, etc.) for users, the official binaries build
+ provided by TNF should be as portable as possible.
Home |
Main Index |
Thread Index |
Old Index