From owner-cvs-usrbin Sat Oct 28 05:27:23 1995 Return-Path: owner-cvs-usrbin Received: (from root@localhost) by freefall.freebsd.org (8.6.12/8.6.6) id FAA08035 for cvs-usrbin-outgoing; Sat, 28 Oct 1995 05:27:23 -0700 Received: (from peter@localhost) by freefall.freebsd.org (8.6.12/8.6.6) id FAA08026 ; Sat, 28 Oct 1995 05:27:21 -0700 Date: Sat, 28 Oct 1995 05:27:21 -0700 From: Peter Wemm Message-Id: <199510281227.FAA08026@freefall.freebsd.org> To: CVS-commiters, cvs-usrbin Subject: cvs commit: src/usr.bin/symorder symorder.c Sender: owner-cvs-usrbin@FreeBSD.org Precedence: bulk peter 95/10/28 05:27:21 Modified: usr.bin/symorder symorder.c Log: symorder appears to have been designed to run on executable files only, as it payes no attention to the relocation table (which references the symbols). As a result, running "symorder -c" to clean up the visibility of a LKM ".o" file (as is done in the new bsd.kmod.mk) totally screws up the relocation table, making the LKM file unloadable. (ld: bogus relocation record) This is a pretty crude fix - I've changed symorder so that when running in "cleanup" mode, it disables the reordering which was screwing up the relocation table. I'm sure there is a better fix, but I didn't have the energy. Feel free to fix this hack, probably by renumbering the symbol indexes in the relocation table.