summaryrefslogtreecommitdiff
path: root/sys/kern/kern_linker.c
diff options
context:
space:
mode:
authorDoug Rabson <dfr@FreeBSD.org>1999-01-25 08:42:24 +0000
committerDoug Rabson <dfr@FreeBSD.org>1999-01-25 08:42:24 +0000
commit149a155c3b6d60d732f1450880e202ee6ac7acc9 (patch)
treebc89d06896bf2e8cd00d4b7248743d533270e4f3 /sys/kern/kern_linker.c
parent0346639d07ddc30ece9835917e87c8d84c5e8003 (diff)
Notes
Diffstat (limited to 'sys/kern/kern_linker.c')
-rw-r--r--sys/kern/kern_linker.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/kern/kern_linker.c b/sys/kern/kern_linker.c
index 3f69c0561a33..2cd51428a8f5 100644
--- a/sys/kern/kern_linker.c
+++ b/sys/kern/kern_linker.c
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: kern_linker.c,v 1.21 1999/01/19 22:26:46 peter Exp $
+ * $Id: kern_linker.c,v 1.22 1999/01/23 03:45:22 peter Exp $
*/
#include "opt_ddb.h"
@@ -355,6 +355,7 @@ linker_make_file(const char* pathname, void* priv, struct linker_file_ops* ops)
lf->refs = 1;
lf->userrefs = 0;
+ lf->flags = 0;
lf->filename = (char*) (lf + 1);
strcpy(lf->filename, filename);
lf->id = next_file_id++;
@@ -410,7 +411,9 @@ linker_file_unload(linker_file_t file)
goto out;
}
- linker_file_sysuninit(file);
+ /* Don't try to run SYSUNINITs if we are unloaded due to a link error */
+ if (file->flags & LINKER_FILE_LINKED)
+ linker_file_sysuninit(file);
TAILQ_REMOVE(&files, file, link);
lockmgr(&lock, LK_RELEASE, 0, curproc);