From owner-freebsd-current Mon Jun 19 17: 6: 5 2000 Delivered-To: freebsd-current@freebsd.org Received: from anchor-post-32.mail.demon.net (anchor-post-32.mail.demon.net [194.217.242.90]) by hub.freebsd.org (Postfix) with ESMTP id 6CBE337B824; Mon, 19 Jun 2000 17:05:57 -0700 (PDT) (envelope-from n_hibma@qubesoft.com) Received: from calcaphon.demon.co.uk ([193.237.19.5] helo=bluebottle.qubesoft.com) by anchor-post-32.mail.demon.net with esmtp (Exim 2.12 #1) id 134BY7-000EH5-0W; Tue, 20 Jun 2000 01:05:52 +0100 Received: from henny.webweaving.org (henny.qubesoft.com [192.168.1.5]) by bluebottle.qubesoft.com (8.9.3/8.9.1) with ESMTP id BAA86756; Tue, 20 Jun 2000 01:05:56 +0100 (BST) (envelope-from n_hibma@qubesoft.com) Received: from localhost (localhost [127.0.0.1]) by henny.webweaving.org (8.9.3/8.9.3) with ESMTP id AAA31428; Tue, 20 Jun 2000 00:59:47 +0100 (BST) (envelope-from n_hibma@qubesoft.com) Date: Tue, 20 Jun 2000 00:59:47 +0100 (BST) From: Nick Hibma X-Sender: n_hibma@localhost Reply-To: Nick Hibma To: Peter Wemm , FreeBSD CURRENT Mailing List , Doug Rabson Cc: green@FreeBSD.ORG Subject: Using KLD's with modules that depend other modules in the same file Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="0-1810085133-961459187=:31393" Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. --0-1810085133-961459187=:31393 Content-Type: TEXT/PLAIN; charset=US-ASCII When loading modules with other modules in the same linker file, depending on each other, currently the kernel linker chokes. Example: the uhub, uhci, ohci and usb modules are (for unrelated reasons) linked into one big file. It is however impossible currently to preload that file because the dependencies are not found if MODULE_DEPEND and MODULE_VERSION are added in appropriate places. Currently we do the following: for all linker files (A) check dependencies for all modules in linker file against found_modules if resolves (B) add the modules to found_modules The attached patch changes this to for all linker files (B) create a list of modules in the file (file_modules) (A) check dependencies for all modules in linker file against found_modules and file_modules if resolves (C) concatenate file_modules to found_modules Step A and B are reversed and a copy loop (C) has been added. As a side effect it is now also possible for modules to depend on themselves (usb_depend_on_usb): % nm /modules/usb.ko | grep depend_on 00019bc0 d _uhub_depend_on_usb 00019e88 d _usb_depend_on_usb Comments? Nick P.S.: I am aware of the people involved being at Usenix, so I'll postpone committing this until they have had time to comment on it. -- n_hibma@webweaving.org n_hibma@freebsd.org USB project http://www.etla.net/~n_hibma/ --0-1810085133-961459187=:31393 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="kern_linker.c.diff" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="kern_linker.c.diff" SW5kZXg6IGtlcm5fbGlua2VyLmMNCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N ClJDUyBmaWxlOiAvaG9tZS9uY3ZzL3NyYy9zeXMva2Vybi9rZXJuX2xpbmtl ci5jLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS40Ng0KZGlmZiAtdyAtdSAt cjEuNDYga2Vybl9saW5rZXIuYw0KLS0tIGtlcm5fbGlua2VyLmMJMjAwMC8w NS8yNiAwMjowNDozNAkxLjQ2DQorKysga2Vybl9saW5rZXIuYwkyMDAwLzA2 LzE5IDIzOjM2OjI0DQpAQCAtOTIzLDExICs5MjMsMTEgQEANCiAgKi8NCiAN CiBzdGF0aWMgbW9kbGlzdF90DQotbW9kbGlzdF9sb29rdXAoY29uc3QgY2hh ciAqbmFtZSkNCittb2RsaXN0X2xvb2t1cChtb2RsaXN0aGVhZF90ICptb2R1 bGVzLCBjb25zdCBjaGFyICpuYW1lKQ0KIHsNCiAgICAgbW9kbGlzdF90IG1v ZDsNCiANCi0gICAgZm9yIChtb2QgPSBUQUlMUV9GSVJTVCgmZm91bmRfbW9k dWxlcyk7IG1vZDsgbW9kID0gVEFJTFFfTkVYVChtb2QsIGxpbmspKSB7DQor ICAgIGZvciAobW9kID0gVEFJTFFfRklSU1QobW9kdWxlcyk7IG1vZDsgbW9k ID0gVEFJTFFfTkVYVChtb2QsIGxpbmspKSB7DQogCWlmICghc3RyY21wKG1v ZC0+bmFtZSwgbmFtZSkpDQogCSAgICByZXR1cm4gbW9kOw0KICAgICB9DQpA QCAtOTYwLDEwICs5NjAsMTIgQEANCiAgICAgaW50CQkJaTsNCiAgICAgaW50 CQkJcmVzb2x2ZXM7DQogICAgIG1vZGxpc3RfdAkJbW9kOw0KKyAgICBtb2Rs aXN0aGVhZF90CWZpbGVfbW9kdWxlczsNCiANCiAgICAgVEFJTFFfSU5JVCgm bG9hZGVkX2ZpbGVzKTsNCiAgICAgVEFJTFFfSU5JVCgmZGVwZW5kZWRfZmls ZXMpOw0KICAgICBUQUlMUV9JTklUKCZmb3VuZF9tb2R1bGVzKTsNCisgICAg VEFJTFFfSU5JVCgmZmlsZV9tb2R1bGVzKTsNCiAgICAgZXJyb3IgPSAwOw0K IA0KICAgICBtb2RwdHIgPSBOVUxMOw0KQEAgLTEwMDIsNyArMTAwNCw3IEBA DQogCSAgICBpZiAobXAtPm1kX3R5cGUgIT0gTURUX1ZFUlNJT04pDQogCQlj b250aW51ZTsNCiAJICAgIG1vZG5hbWUgPSBtcC0+bWRfY3ZhbDsNCi0JICAg IGlmIChtb2RsaXN0X2xvb2t1cChtb2RuYW1lKSAhPSBOVUxMKSB7DQorCSAg ICBpZiAobW9kbGlzdF9sb29rdXAoJmZvdW5kX21vZHVsZXMsIG1vZG5hbWUp ICE9IE5VTEwpIHsNCiAJCXByaW50ZigibW9kdWxlICVzIGFscmVhZHkgcHJl c2VudCFcbiIsIG1vZG5hbWUpOw0KIAkJLyogWFhYIHdoYXQgY2FuIHdlIGRv PyB0aGlzIGlzIGEgYnVpbGQgZXJyb3IuIDotKCAqLw0KIAkJY29udGludWU7 DQpAQCAtMTAyNSwzNCArMTAyNywyMCBAQA0KICAgICBmb3IgKGxmID0gVEFJ TFFfRklSU1QoJmxvYWRlZF9maWxlcyk7IGxmOyBsZiA9IFRBSUxRX05FWFQo bGYsIGxvYWRlZCkpIHsNCiAJZGVwcyA9IChzdHJ1Y3QgbGlua2VyX3NldCop DQogCSAgICBsaW5rZXJfZmlsZV9sb29rdXBfc3ltYm9sKGxmLCBNRFRfU0VU TkFNRSwgMCk7DQotCS8qDQotCSAqIEZpcnN0LCBsb29rIHRvIHNlZSBpZiB3 ZSB3b3VsZCBzdWNjZXNzZnVsbHkgbGluayB3aXRoIHRoaXMgc3R1ZmYuDQot CSAqLw0KKw0KIAlyZXNvbHZlcyA9IDE7CS8qIHVubGVzcyB3ZSBrbm93IG90 aGVyd2lzZSAqLw0KKw0KIAlpZiAoZGVwcykgew0KLQkgICAgZm9yIChpID0g MDsgaSA8IGRlcHMtPmxzX2xlbmd0aDsgaSsrKSB7DQotCQltcCA9IGxpbmtl cl9yZWxvY19wdHIobGYsIGRlcHMtPmxzX2l0ZW1zW2ldKTsNCi0JCWlmICht cC0+bWRfdHlwZSAhPSBNRFRfREVQRU5EKQ0KLQkJICAgIGNvbnRpbnVlOw0K LQkJbW9kbmFtZSA9IGxpbmtlcl9yZWxvY19wdHIobGYsIG1wLT5tZF9jdmFs KTsNCi0JCWlmIChtb2RsaXN0X2xvb2t1cChtb2RuYW1lKSA9PSBOVUxMKSB7 DQotCQkgICAgLyogb2ssIHRoZSBtb2R1bGUgaXNuJ3QgaGVyZSB5ZXQsIHdl IGFyZSBub3QgZmluaXNoZWQgKi8NCi0JCSAgICByZXNvbHZlcyA9IDA7DQot CQl9DQotCSAgICB9DQotCX0NCiAJLyoNCi0JICogT0ssIGlmIHdlIGZvdW5k IG91ciBtb2R1bGVzLCB3ZSBjYW4gbGluay4gIFNvLCAicHJvdmlkZSIgdGhl DQotCSAqIG1vZHVsZXMgaW5zaWRlIGFuZCBhZGQgaXQgdG8gdGhlIGVuZCBv ZiB0aGUgbGluayBvcmRlciBsaXN0Lg0KKwkgICAgICogRmlyc3QsIGZpbmQg YWxsIHRoZSBtb2R1bGVzIHRoYXQgYXJlIGNvbnRhaW5lZCBpbiB0aGUgZmls ZS4NCiAJICovDQotCWlmIChyZXNvbHZlcykgew0KLQkgICAgaWYgKGRlcHMp IHsNCiAJCWZvciAoaSA9IDA7IGkgPCBkZXBzLT5sc19sZW5ndGg7IGkrKykg ew0KIAkJICAgIG1wID0gbGlua2VyX3JlbG9jX3B0cihsZiwgZGVwcy0+bHNf aXRlbXNbaV0pOw0KIAkJICAgIGlmIChtcC0+bWRfdHlwZSAhPSBNRFRfVkVS U0lPTikNCiAJCQljb250aW51ZTsNCiAJCSAgICBtb2RuYW1lID0gbGlua2Vy X3JlbG9jX3B0cihsZiwgbXAtPm1kX2N2YWwpOw0KLQkJICAgIGlmIChtb2Rs aXN0X2xvb2t1cChtb2RuYW1lKSAhPSBOVUxMKSB7DQorCQlpZiAobW9kbGlz dF9sb29rdXAoJmZvdW5kX21vZHVsZXMsIG1vZG5hbWUpICE9IE5VTEwNCisJ CSAgICB8fCBtb2RsaXN0X2xvb2t1cCgmZmlsZV9tb2R1bGVzLCBtb2RuYW1l KSAhPSBOVUxMKSB7DQogCQkJcHJpbnRmKCJtb2R1bGUgJXMgYWxyZWFkeSBw cmVzZW50IVxuIiwgbW9kbmFtZSk7DQogCQkJbGlua2VyX2ZpbGVfdW5sb2Fk KGxmKTsNCiAJCQlUQUlMUV9SRU1PVkUoJmxvYWRlZF9maWxlcywgbGYsIGxv YWRlZCk7DQpAQCAtMTA2NCw5ICsxMDUyLDM4IEBADQogCQkgICAgYnplcm8o bW9kLCBzaXplb2YoKm1vZCkpOw0KIAkJICAgIG1vZC0+Y29udGFpbmVyID0g bGY7DQogCQkgICAgbW9kLT5uYW1lID0gbW9kbmFtZTsNCi0JCSAgICBUQUlM UV9JTlNFUlRfVEFJTCgmZm91bmRfbW9kdWxlcywgbW9kLCBsaW5rKTsNCisJ CVRBSUxRX0lOU0VSVF9UQUlMKCZmaWxlX21vZHVsZXMsIG1vZCwgbGluayk7 DQorCSAgICB9DQorDQorCSAgICAvKg0KKwkgICAgICogVGhlbiwgbG9vayB0 byBzZWUgaWYgd2Ugd291bGQgc3VjY2Vzc2Z1bGx5IGxpbmsgd2l0aCB0aGlz IHN0dWZmLg0KKwkgICAgICovDQorCSAgICBmb3IgKGkgPSAwOyBpIDwgZGVw cy0+bHNfbGVuZ3RoOyBpKyspIHsNCisJCW1wID0gbGlua2VyX3JlbG9jX3B0 cihsZiwgZGVwcy0+bHNfaXRlbXNbaV0pOw0KKwkJaWYgKG1wLT5tZF90eXBl ICE9IE1EVF9ERVBFTkQpDQorCQkgICAgY29udGludWU7DQorCQltb2RuYW1l ID0gbGlua2VyX3JlbG9jX3B0cihsZiwgbXAtPm1kX2N2YWwpOw0KKwkJaWYg KG1vZGxpc3RfbG9va3VwKCZmb3VuZF9tb2R1bGVzLCBtb2RuYW1lKSA9PSBO VUxMDQorCQkgICAgJiYgbW9kbGlzdF9sb29rdXAoJmZpbGVfbW9kdWxlcywg bW9kbmFtZSkgPT0gTlVMTCkgew0KKwkJICAgIC8qIG9rLCB0aGUgbW9kdWxl IGlzbid0IGhlcmUgeWV0LCB3ZSBhcmUgbm90IGZpbmlzaGVkICovDQorCQkg ICAgcmVzb2x2ZXMgPSAwOw0KIAkJfQ0KIAkgICAgfQ0KKwl9DQorCS8qDQor CSAqIE9LLCBpZiB3ZSBmb3VuZCBvdXIgbW9kdWxlcywgd2UgY2FuIGxpbmsu ICBTbywgInByb3ZpZGUiIHRoZQ0KKwkgKiBtb2R1bGVzIGluc2lkZSBhbmQg YWRkIGl0IHRvIHRoZSBlbmQgb2YgdGhlIGxpbmsgb3JkZXIgbGlzdC4NCisJ ICovDQorCWlmIChyZXNvbHZlcykgew0KKwkgICAgLyoNCisJICAgICAqIENv cHkgdGhlIGxpc3Qgb2YgbW9kdWxlcyBmb3VuZCBpbiB0aGUgZmlsZSBpbnRv IHRoZSBnbG9iYWwNCisJICAgICAqIGxpc3Qgb2YgbW9kdWxlcyBhdmFpbGFi bGUuDQorCSAgICAgKi8NCisJICAgIHdoaWxlICgobW9kID0gVEFJTFFfRklS U1QoJmZpbGVfbW9kdWxlcykpKSB7DQorCQlUQUlMUV9SRU1PVkUoJmZpbGVf bW9kdWxlcywgbW9kLCBsaW5rKTsNCisJCVRBSUxRX0lOU0VSVF9UQUlMKCZm b3VuZF9tb2R1bGVzLCBtb2QsIGxpbmspOw0KKwkgICAgfQ0KKyANCiAJICAg IFRBSUxRX1JFTU9WRSgmbG9hZGVkX2ZpbGVzLCBsZiwgbG9hZGVkKTsNCiAJ ICAgIFRBSUxRX0lOU0VSVF9UQUlMKCZkZXBlbmRlZF9maWxlcywgbGYsIGxv YWRlZCk7DQogCSAgICAvKg0KQEAgLTEwNzUsNiArMTA5MiwxMSBAQA0KIAkg ICAgICogQWxzbywgd2UndmUgYnVzdGVkIHRoZSB0YWlscSBuZXh0IHBvaW50 ZXIgd2l0aCB0aGUgUkVNT1ZFLg0KIAkgICAgICovDQogCSAgICBnb3RvIHJl c3RhcnQ7DQorCX0gZWxzZSB7DQorCSAgICB3aGlsZSAoKG1vZCA9IFRBSUxR X0ZJUlNUKCZmaWxlX21vZHVsZXMpKSkgew0KKwkJVEFJTFFfUkVNT1ZFKCZm aWxlX21vZHVsZXMsIG1vZCwgbGluayk7DQorCSAgICAJZnJlZShtb2QsIE1f TElOS0VSKTsNCisJICAgIH0NCiAJfQ0KICAgICB9DQogDQpAQCAtMTEwNiw3 ICsxMTI4LDcgQEANCiAJCWlmIChtcC0+bWRfdHlwZSAhPSBNRFRfREVQRU5E KQ0KIAkJICAgIGNvbnRpbnVlOw0KIAkJbW9kbmFtZSA9IGxpbmtlcl9yZWxv Y19wdHIobGYsIG1wLT5tZF9jdmFsKTsNCi0JCW1vZCA9IG1vZGxpc3RfbG9v a3VwKG1vZG5hbWUpOw0KKwkJbW9kID0gbW9kbGlzdF9sb29rdXAoJmZvdW5k X21vZHVsZXMsIG1vZG5hbWUpOw0KIAkJbW9kLT5jb250YWluZXItPnJlZnMr KzsNCiAJCWVycm9yID0gbGlua2VyX2ZpbGVfYWRkX2RlcGVuZGFuY3kobGYs IG1vZC0+Y29udGFpbmVyKTsNCiAJCWlmIChlcnJvcikNCkBAIC0xMzExLDcg KzEzMzMsNyBAQA0KIAkgICAgaWYgKG1wLT5tZF90eXBlICE9IE1EVF9WRVJT SU9OKQ0KIAkJY29udGludWU7DQogCSAgICBtb2RuYW1lID0gbGlua2VyX3Jl bG9jX3B0cihsZiwgbXAtPm1kX2N2YWwpOw0KLQkgICAgaWYgKG1vZGxpc3Rf bG9va3VwKG1vZG5hbWUpICE9IE5VTEwpIHsNCisJICAgIGlmIChtb2RsaXN0 X2xvb2t1cCgmZm91bmRfbW9kdWxlcywgbW9kbmFtZSkgIT0gTlVMTCkgew0K IAkJcHJpbnRmKCJtb2R1bGUgJXMgYWxyZWFkeSBwcmVzZW50IVxuIiwgbW9k bmFtZSk7DQogCQlyZXR1cm4gRUVYSVNUOw0KIAkgICAgfQ0KQEAgLTEzMzQs NyArMTM1Niw3IEBADQogCSAgICB9DQogCSAgICBpZiAoaiA8IGRlcHMtPmxz X2xlbmd0aCkJLyogZWFybHkgZXhpdCwgaXQncyBhIHNlbGYgcmVmZXJlbmNl ICovDQogCQljb250aW51ZTsNCi0JICAgIG1vZCA9IG1vZGxpc3RfbG9va3Vw KG1vZG5hbWUpOw0KKwkgICAgbW9kID0gbW9kbGlzdF9sb29rdXAoJmZvdW5k X21vZHVsZXMsIG1vZG5hbWUpOw0KIAkgICAgaWYgKG1vZCkgewkJLyogd29v aG9vLCBpdCdzIGxvYWRlZCBhbHJlYWR5ICovDQogCQlsZmRlcCA9IG1vZC0+ Y29udGFpbmVyOw0KIAkJbGZkZXAtPnJlZnMrKzsNCg== --0-1810085133-961459187=:31393-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message