Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 26 Apr 1997 00:14:41 +0100 (BST)
From:      Doug Rabson <dfr@nlsystems.com>
To:        current@freebsd.org
Subject:   Kernel linker for review (second try)
Message-ID:  <Pine.BSF.3.95q.970426001221.17354F-100000@herring.nlsystems.com>

next in thread | raw e-mail | index | archive | help
That will teach me to post something in a hurry.  I managed to leave out
the most interesting part - the linker itself.

This is the first cut of my kernel linker.  I would appreciate feedback,
flames, anything except indifference.

To install, unpack the tarball, and do something like this:

	(cd /usr/src/gnu/usr.bin/ld; patch -p) < ld.diffs
	(cd /usr/src/sys/i386/conf; patch -p) < i386_conf.diffs
	(cd /usr/src/sys/conf; patch -p) < conf.diffs
	(cd /usr/src/sys/kern; patch -p) < kern.diffs
	(cd /usr/src/lib/libc; patch -p) < libc.diffs
	(cd /usr/src/gnu/usr.bin/ld; make clean all install)
	(cd /usr/src/lib/libc; make clean all install)
	cp bsd.mod.mk /usr/share/mk
	cp -r sys /usr/src/sys
	(cd sbin; make all install)
	(cd testmod; make all install)	# ignore warnings from ld
	(cd testmod2; make all install)	# ditto

I am part way through reworking i386/isa to make all drivers trivially
loadable but that is not ready for the light of day.

I use the -Bdynamic format for the kernel to get the global symbol table.
This adds about 80-90k of bloat for my local kernel configuration.  I use
-Bshareable format with non-pic objects for loadable files.  This gives me
hashed symbol tables and dependancies for free compared with raw .o files.

The linker is to support other file formats, including but not limited to
ELF. 

begin 644 kld.tar.gz
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
/)WW29]KS_]#V<2T`N`$`
`
end


--
Doug Rabson				Mail:  dfr@nlsystems.com
Nonlinear Systems Ltd.			Phone: +44 181 951 1891





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.95q.970426001221.17354F-100000>