From mboxrd@z Thu Jan 1 00:00:00 1970 From: mcgrof@kernel.org Subject: [PATCH v4 00/16] linux: generalize sections, ranges and linker tables Date: Fri, 19 Aug 2016 14:32:49 -0700 Message-ID: <1471642385-5629-1-git-send-email-mcgrof@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: hpa@zytor.com, tglx@linutronix.de, mingo@redhat.com, jpoimboe@redhat.com, bp@alien8.de, linux@arm.linux.org.uk, mhiramat@kernel.org, masami.hiramatsu.pt@hitachi.com, jbaron@akamai.com, heiko.carstens@de.ibm.com, ananth@linux.vnet.ibm.com, anil.s.keshavamurthy@intel.com, davem@davemloft.net, realmz6@gmail.com Cc: gnomes@lxorguk.ukuu.org.uk, linux-ia64@vger.kernel.org, jkosina@suse.cz, benh@kernel.crashing.org, ming.lei@canonical.com, linux@rasmusvillemoes.dk, platform-driver-x86@vger.kernel.org, James.Bottomley@HansenPartnership.com, paul.gortmaker@windriver.com, paulus@samba.org, sparclinux@vger.kernel.org, mchehab@osg.samsung.com, linux-arch@vger.kernel.org, markus.heiser@darmarit.de, xen-devel@lists.xensource.com, msalter@redhat.com, linux-sh@vger.kernel.org, mpe@ellerman.id.au, x86@kernel.org, fontana@sharpeleven.org, linux-arm-kernel@lists.infradead.org, catalin.marinas@arm.com, dvhart@infradead.org, dwmw2@infradead.org, linux-xtensa@linux-xtensa.org, pali.rohar@gmail.com, keescook@chromium.org, arnd@arndb.de, jani.nikula@intel.com, will.deacon@arm.com, rusty@rustcorp.com.au, rostedt@goodmis.org, acme@redhat.com, ak@linux.intel.com, andriy.shevchenko@linux.intel.com, mcb30@ip List-Id: linux-arch.vger.kernel.org RnJvbTogIkx1aXMgUi4gUm9kcmlndWV6IiA8bWNncm9mQGtlcm5lbC5vcmc+CgpUaGlzIHY0IGFk ZHJlc3NlcyBmZWVkYmFjayBmcm9tIHRoZSBwcmV2aW91cyB2MyBzZXJpZXMgWzBdLCBhbmQgYWxz bwphZGRyZXNzZXMgYSBodWdlIGFycmF5IG9mIGFkZGl0aW9uYWwgdGVzdHMgYWdhaW5zdCBtYW55 IGFyY2hpdGVjdHVyZXMKb3V0c2lkZSBvZiB3aGF0IDAtZGF5IHByb3ZpZGVzLiBBcyBJIG1lbnRp b25lZCBpbiBteSBsYXN0IHYzIHNlcmllcywKMC1kYXkgaGFkIG9ubHkgZm91bmQgb25lIGlzc3Vl IHdpdGggdGhlIHNlcmllcywgYSBibGFja2ZpbiBhcmNoaXRlY3R1cmUKbGlua2VyIGlzc3VlIHdp dGggdGhlIGxhc3Qgc2VyaWVzLiBHdWVudGVyIFJvY2sgd2FzIGtpbmQgZW5vdWdoIHRvIGdpdmUK bXkgc2VyaWVzIGEgdGVzdCBzcGluIG9uIGhpcyB0ZXN0IGJlZCBhbmQgaGUgZm91bmQgcXVpdGUg YSBiaXQgb2Ygb3RoZXIKb2RkYmFsbCBpc3N1ZXMgd2l0aCBvYnNjdXJlIGFyY2hpdGVjdHVyZXMs IGFuZCBldmVuIG9uIHg4NiB3aXRoIGFuIG9sZAp0b29sY2hhaW4uIEFmdGVyIGEgbG90IG9mIHdv cmsgYW5kIGNvb3JkaW5hdGluZyB3aXRoIGEgZmV3IG1haW50YWluZXJzCkknbSBoYXBweSB0byBy ZXBvcnQgYWxsIGlzc3VlcyBmb3VuZCBzbyBmYXIgdGhyb3VnaCBhbGwgcG9zc2libGUgdGVzdGlu ZwpJIGNvdWxkIGRvIGFyZSBub3cgZml4ZWQsIHRoaXMgc2VyaWVzIGFsc28gYWRkcmVzc2VzIGFs bCBmZWVkYmFjayBmcm9tCnRoZSBsYXN0IHNlcmllcywgYXMgc3VjaCB0aGlzIGdvZXMgc3VibWl0 dGVkIGFzIFBBVENIIGZvcm0uCgpJbiBhZGRyZXNzaW5nIGZpeGluZyB0aGlzIHdvcmsgb24gYSBm ZXcgYXJjaGl0ZWN0dXJlcyBzb21lIG9mIHRoZSBwcmV2aW91cwpwYXRjaGVzIGFyZSBmdXJ0aGVy IHNpbXBsaWZpZWQuIFRoZSBrcHJvYmVzIHBvcnQgdG8gbGlua2VyIHRhYmxlcyBpcyBtYWRlCm11 Y2ggZWFzaWVyIG5vdyB0aGF0IEkndmUgYWRkcmVzc2VkIG1vdmluZyBvdXQgY29yZSBrcHJvYmUg ZGVjbGFyYXRpb25zCmludG8gYXNtLWdlbmVyaWMva3Byb2Jlcy5oLiBSZWZlciB0byB0aGUgcGF0 Y2ggImtwcm9iZXM6IG1vdmUga3Byb2JlCmRlY2xhcmF0aW9ucyB0byBhc20tZ2VuZXJpYy9rcHJv YmVzLmgiLiBUaGlzIG1ha2VzIGZvciBhIG11Y2ggY2xlYW5lcgpzb2x1dGlvbiBhY3Jvc3MgYXJj aGl0ZWN0dXJlcy4KCkJvcmlzIGZlZWRiYWNrIG9uIG1ha2luZyB0aGUgY29kZSBiaXQgcm90IGZl YXR1cmUgb3B0aW9uYWwgaXMgYWRkcmVzc2VkCmJ5IHVzaW5nIGEgbmV3IEtjb25maWcgc3ltYm9s IGZvciB0aGlzLCBDT05GSUdfQlVJTERfQVZPSURfQklUUk9ULApidXQgZ2l2ZW4gR3JlZydzIGNv bmNlcm5zIG92ZXIgbGFjayBvZiBjbGFyaXR5IG92ZXIgd2hhdCB0aGlzIHdhcyBhbGwgYWJvdXQK SSd2ZSByaXBwZWQgdGhhdCBmdW5jdGlvbmFsaXR5IG91dCBpbnRvIGl0cyBvd24gcGF0Y2ggd2l0 aCBhIGJpdCBtb3JlCmV4dGVuc2l2ZSBkb2N1bWVudGF0aW9uIGFuZCByZS13b3JkaW5nLiBTZWUg dGhlIHBhdGNoICJrYnVpbGQ6IGVuYWJsZSBvcHRpb24KdG8gZm9yY2UgY29tcGlsZSBmb3JjZS1v YmoteSBhbmQgZm9yY2UtbGliLXkiLiBJIGhvcGUgbWFrZXMgaXQgY2xlYXIgaG93CmxpbmtlciB0 YWJsZXMgY2FuIGhlbHAgd2l0aCBhdm9pZGluZyBjb2RlIGJpdCByb3QuIEkndmUgZ29uZSB3aXRo IGEgbmV3Cktjb25maWcgc3ltYm9sIENPTkZJR19CVUlMRF9BVk9JRF9CSVRST1QgZ2l2ZW4gQ09O RklHX0NPTVBJTEVfVEVTVCBpcwpub3QgYXZhaWxhYmxlIG9uIFVNTCwgdGhpcyBmZWF0dXJlIGlz IGRlc2lyYWJsZSBvbiBhbGwgYXJjaGl0ZWN0dXJlcy4KClRoZSBkb2N1bWVudGF0aW9uIGlzIHJl dmFtcGVkLCBub3cgdGhhdCB0aGUgRG9jQm9vayBmb3JtYXQgaXMgZGVwcmVjYXRlZApJIHBvcnRl ZCB0aGUgZG9jdW1lbnRpb24gaW50byB0aGUgdHJlbmR5IGhpcHN0ZXIgU3BoaW54IGRvY3VtZW50 YXRpb24KZm9ybWF0LgoKQVQgQm9yaXMnIHJlcXVlc3QgSSd2ZSBhZGFwYXRlZCB0aGUgdXNlcnNw YWNlIGxpbmtlciB0YWJsZSBhcHBsaWNhdGlvbgpmb3JpbnRlZ3JhdGlvbiBpbnRvIHRoZSBrZXJu ZWwgdW5kZXIgdG9vbHMvIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGtlZXAKdGhpbmdzIGluIHN5bmMs IGhvd2V2ZXIgc2luY2UgdGhpcyByZXF1aXJlcyBhIGJpdCBvZiBjaGFuZ2VzIHRvIHNvbWUgaGVh ZGVycwppbiB0b29scy8gSSdsbCBzdWJtaXQgdGhhdCBzZXBhcmF0ZWx5LgoKWzBdIGh0dHBzOi8v bGttbC5rZXJuZWwub3JnL3IvMTQ2OTIyMjY4Ny0xNjAwLTEtZ2l0LXNlbmQtZW1haWwtbWNncm9m QGtlcm5lbC5vcmcKCklmIHlvdSdkIGxpa2UgdGhpcyBpbiBnaXQtZm9ybSwgeW91IGNhbiBnZXQg aXQgb24gdGhlIDIwMTYwODE5LWxpbmtlci10YWJsZS12NApicmFuY2ggb2YgbXkgbGludXgtbmV4 dCB0cmVlIG9uIGtlcm5lbC5vcmcsIHRoaXMgYWxzbyBpbmNsdWRlcyB0aGUgc2VyaWVzIG9mCnRo ZSBsaW5rZXIgdGFibGUgdXNlcnNwYWNlIHNhbmRib3g6CgpodHRwczovL2dpdC5rZXJuZWwub3Jn L2NnaXQvbGludXgva2VybmVsL2dpdC9tY2dyb2YvbGludXgtbmV4dC5naXQvbG9nLz9oPTIwMTYw ODE5LWxpbmtlci10YWJsZS12NAoKUGxlYXNlIGxldCBtZSBrbm93IGlmIHRoZXJlIGFyZSBhbnkg Y29uY2VybnMgb3IgcXVlc3Rpb25zLgoKTHVpcyBSLiBSb2RyaWd1ZXogKDE2KToKICB4ODY6IHJl bW92ZSBMVE9fUkVGRVJFTkNFX0lOSVRDQUxMKCkKICBkZWxsLXNtbzg4MDA6IGluY2x1ZGUgdWFj Y2Vzcy5oCiAgc2NyaXB0cy9tb2R1bGUtY29tbW9uLmxkczogZW5hYmxlIGdlbmVyYXRpb24KICBn ZW5lcmljLXNlY3Rpb25zOiBhZGQgc2VjdGlvbiBjb3JlIGhlbHBlcnMKICB4dGVuc2E6IHNraXAg YWRkaW5nIGxpdGVyYWwgd2hlbiBTT1JUKCkgaXMgdXNlZAogIHJhbmdlcy5oOiBhZGQgaGVscGVy cyB0byBidWlsZCBhbmQgaWRlbnRpZnkgTGludXggc2VjdGlvbiByYW5nZXMKICB0YWJsZXMuaDog YWRkIGxpbmtlciB0YWJsZSBzdXBwb3J0CiAga2J1aWxkOiBlbmFibGUgb3B0aW9uIHRvIGZvcmNl IGNvbXBpbGUgZm9yY2Utb2JqLXkgYW5kIGZvcmNlLWxpYi15CiAgZmlybXdhcmUvTWFrZWZpbGU6 IGZvcmNlIHJlY29tcGlsYXRpb24gaWYgbWFrZWZpbGUgY2hhbmdlcwogIGZpcm13YXJlOiBwb3J0 IGJ1aWx0LWluIHNlY3Rpb24gdG8gbGlua2VyIHRhYmxlCiAganVtcF9sYWJlbDogbW92ZSBndWFy ZCAjZW5kaWYgZG93biB3aGVyZSBpdCBiZWxvbmdzCiAganVtcF9sYWJlbDogcG9ydCBfX2p1bXBf dGFibGUgdG8gbGlua2VyIHRhYmxlcwogIGR5bmFtaWNfZGVidWc6IHBvcnQgdG8gdXNlIGxpbmtl ciB0YWJsZXMKICBrcHJvYmVzOiBtb3ZlIGtwcm9iZSBkZWNsYXJhdGlvbnMgdG8gYXNtLWdlbmVy aWMva3Byb2Jlcy5oCiAga3Byb2JlczogcG9ydCAua3Byb2Jlcy50ZXh0IHRvIHNlY3Rpb24gcmFu Z2UKICBrcHJvYmVzOiBwb3J0IGJsYWNrbGlzdCBrcHJvYmVzIHRvIGxpbmtlciB0YWJsZQoKIC5n aXRpZ25vcmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICsK IERvY3VtZW50YXRpb24vaW5kZXgucnN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAx ICsKIERvY3VtZW50YXRpb24va2J1aWxkL21ha2VmaWxlcy50eHQgICAgICAgICAgICAgICAgIHwg IDM2ICsrCiBEb2N1bWVudGF0aW9uL3NlY3Rpb25zL2NvbmYucHkgICAgICAgICAgICAgICAgICAg ICB8ICAgNCArCiBEb2N1bWVudGF0aW9uL3NlY3Rpb25zL2luZGV4LnJzdCAgICAgICAgICAgICAg ICAgICB8ICAxMyArCiBEb2N1bWVudGF0aW9uL3NlY3Rpb25zL2xpbmtlci10YWJsZXMucnN0ICAg ICAgICAgICB8IDIwMiArKysrKysrCiBEb2N1bWVudGF0aW9uL3NlY3Rpb25zL3Jhbmdlcy5yc3Qg ICAgICAgICAgICAgICAgICB8ICA0OSArKwogRG9jdW1lbnRhdGlvbi9zZWN0aW9ucy9zZWN0aW9u LWNvcmUucnN0ICAgICAgICAgICAgfCAxNTMgKysrKysKIE1BSU5UQUlORVJTICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDM3ICsrCiBNYWtlZmlsZSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQogYXJjaC9hbHBoYS9pbmNs dWRlL2FzbS9LYnVpbGQgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKwogYXJjaC9hcmMvaW5j bHVkZS9hc20vS2J1aWxkICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogYXJjaC9hcmMv aW5jbHVkZS9hc20va3Byb2Jlcy5oICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIGFyY2gv YXJjL2tlcm5lbC92bWxpbnV4Lmxkcy5TICAgICAgICAgICAgICAgICAgICAgIHwgICAxIC0KIGFy Y2gvYXJtL2luY2x1ZGUvYXNtL0tidWlsZCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzICsK IGFyY2gvYXJtL2luY2x1ZGUvYXNtL2p1bXBfbGFiZWwuaCAgICAgICAgICAgICAgICAgIHwgICA2 ICstCiBhcmNoL2FybS9pbmNsdWRlL2FzbS9rcHJvYmVzLmggICAgICAgICAgICAgICAgICAgICB8 ICAgNCArCiBhcmNoL2FybS9rZXJuZWwvZW50cnktYXJtdi5TICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMyArLQogYXJjaC9hcm0va2VybmVsL3ZtbGludXgteGlwLmxkcy5TICAgICAgICAgICAg ICAgICAgfCAgIDEgLQogYXJjaC9hcm0va2VybmVsL3ZtbGludXgubGRzLlMgICAgICAgICAgICAg ICAgICAgICAgfCAgIDEgLQogYXJjaC9hcm0vcHJvYmVzL2RlY29kZS5oICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDEgKwogYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9LYnVpbGQgICAgICAg ICAgICAgICAgICAgICAgfCAgIDMgKwogYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9qdW1wX2xhYmVs LmggICAgICAgICAgICAgICAgfCAgIDYgKy0KIGFyY2gvYXJtNjQvaW5jbHVkZS9hc20va3Byb2Jl cy5oICAgICAgICAgICAgICAgICAgIHwgICA0ICsKIGFyY2gvYXJtNjQva2VybmVsL2FybXY4X2Rl cHJlY2F0ZWQuYyAgICAgICAgICAgICAgIHwgICAxICsKIGFyY2gvYXJtNjQva2VybmVsL2luc24u YyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIGFyY2gvYXJtNjQva2VybmVsL3By b2Jlcy9rcHJvYmVzLmMgICAgICAgICAgICAgICAgIHwgICA0ICstCiBhcmNoL2FybTY0L2tlcm5l bC92bWxpbnV4Lmxkcy5TICAgICAgICAgICAgICAgICAgICB8ICAgMSAtCiBhcmNoL2F2cjMyL2lu Y2x1ZGUvYXNtL0tidWlsZCAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBhcmNoL2F2cjMy L2luY2x1ZGUvYXNtL2twcm9iZXMuaCAgICAgICAgICAgICAgICAgICB8ICAgNCArCiBhcmNoL2F2 cjMyL2tlcm5lbC9lbnRyeS1hdnIzMmIuUyAgICAgICAgICAgICAgICAgICB8ICAxMyArLQogYXJj aC9hdnIzMi9rZXJuZWwvdm1saW51eC5sZHMuUyAgICAgICAgICAgICAgICAgICAgfCAgIDEgLQog YXJjaC9ibGFja2Zpbi9pbmNsdWRlL2FzbS9LYnVpbGQgICAgICAgICAgICAgICAgICAgfCAgIDQg KwogYXJjaC9ibGFja2Zpbi9rZXJuZWwvdm1saW51eC5sZHMuUyAgICAgICAgICAgICAgICAgfCAg IDEgLQogYXJjaC9jNngvaW5jbHVkZS9hc20vS2J1aWxkICAgICAgICAgICAgICAgICAgICAgICAg fCAgIDMgKwogYXJjaC9jNngvaW5jbHVkZS9hc20vdGFibGVzLmggICAgICAgICAgICAgICAgICAg ICAgfCAgMjYgKwogYXJjaC9jNngva2VybmVsL3ZtbGludXgubGRzLlMgICAgICAgICAgICAgICAg ICAgICAgfCAgIDEgLQogYXJjaC9jcmlzL2luY2x1ZGUvYXNtL0tidWlsZCAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDQgKwogYXJjaC9mcnYvaW5jbHVkZS9hc20vS2J1aWxkICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDQgKwogYXJjaC9oODMwMC9pbmNsdWRlL2FzbS9LYnVpbGQgICAgICAg ICAgICAgICAgICAgICAgfCAgIDQgKwogYXJjaC9oZXhhZ29uL2luY2x1ZGUvYXNtL0tidWlsZCAg ICAgICAgICAgICAgICAgICAgfCAgIDQgKwogYXJjaC9oZXhhZ29uL2tlcm5lbC92bWxpbnV4Lmxk cy5TICAgICAgICAgICAgICAgICAgfCAgIDEgLQogYXJjaC9pYTY0L2luY2x1ZGUvYXNtL0tidWls ZCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogYXJjaC9pYTY0L2luY2x1ZGUvYXNtL2tw cm9iZXMuaCAgICAgICAgICAgICAgICAgICAgfCAgIDcgKy0KIGFyY2gvaWE2NC9rZXJuZWwvanBy b2Jlcy5TICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzICstCiBhcmNoL2lhNjQva2VybmVs L3ZtbGludXgubGRzLlMgICAgICAgICAgICAgICAgICAgICB8ICAgMSAtCiBhcmNoL2lhNjQvbGli L2ZsdXNoLlMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQogYXJjaC9tMzJy L2luY2x1ZGUvYXNtL0tidWlsZCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKwogYXJjaC9t NjhrL2luY2x1ZGUvYXNtL0tidWlsZCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKwogYXJj aC9tZXRhZy9pbmNsdWRlL2FzbS9LYnVpbGQgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKwog YXJjaC9tZXRhZy9rZXJuZWwvdm1saW51eC5sZHMuUyAgICAgICAgICAgICAgICAgICAgfCAgIDEg LQogYXJjaC9taWNyb2JsYXplL2luY2x1ZGUvYXNtL0tidWlsZCAgICAgICAgICAgICAgICAgfCAg IDQgKwogYXJjaC9taWNyb2JsYXplL2tlcm5lbC92bWxpbnV4Lmxkcy5TICAgICAgICAgICAgICAg fCAgIDEgLQogYXJjaC9taXBzL2luY2x1ZGUvYXNtL0tidWlsZCAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDMgKwogYXJjaC9taXBzL2luY2x1ZGUvYXNtL2p1bXBfbGFiZWwuaCAgICAgICAgICAg ICAgICAgfCAgIDYgKy0KIGFyY2gvbWlwcy9pbmNsdWRlL2FzbS9rcHJvYmVzLmggICAgICAgICAg ICAgICAgICAgIHwgICA2ICstCiBhcmNoL21pcHMva2VybmVsL3ZtbGludXgubGRzLlMgICAgICAg ICAgICAgICAgICAgICB8ICAgMSAtCiBhcmNoL21uMTAzMDAvaW5jbHVkZS9hc20vS2J1aWxkICAg ICAgICAgICAgICAgICAgICB8ICAgMyArCiBhcmNoL21uMTAzMDAvaW5jbHVkZS9hc20va3Byb2Jl cy5oICAgICAgICAgICAgICAgICB8ICAgNCArCiBhcmNoL21uMTAzMDAva2VybmVsL3ZtbGludXgu bGRzLlMgICAgICAgICAgICAgICAgICB8ICAgMSAtCiBhcmNoL25pb3MyL2luY2x1ZGUvYXNtL0ti dWlsZCAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArCiBhcmNoL25pb3MyL2tlcm5lbC92bWxp bnV4Lmxkcy5TICAgICAgICAgICAgICAgICAgICB8ICAgMSAtCiBhcmNoL29wZW5yaXNjL2luY2x1 ZGUvYXNtL0tidWlsZCAgICAgICAgICAgICAgICAgICB8ICAgNCArCiBhcmNoL29wZW5yaXNjL2tl cm5lbC92bWxpbnV4Lmxkcy5TICAgICAgICAgICAgICAgICB8ICAgMSAtCiBhcmNoL3BhcmlzYy9p bmNsdWRlL2FzbS9LYnVpbGQgICAgICAgICAgICAgICAgICAgICB8ICAgNCArCiBhcmNoL3Bhcmlz Yy9rZXJuZWwvdm1saW51eC5sZHMuUyAgICAgICAgICAgICAgICAgICB8ICAgMSAtCiBhcmNoL3Bv d2VycGMvaW5jbHVkZS9hc20vS2J1aWxkICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBhcmNo L3Bvd2VycGMvaW5jbHVkZS9hc20vanVtcF9sYWJlbC5oICAgICAgICAgICAgICB8ICAgOCArLQog YXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2twcm9iZXMuaCAgICAgICAgICAgICAgICAgfCAgIDYg KwogYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3BwY19hc20uaCAgICAgICAgICAgICAgICAgfCAg IDcgKy0KIGFyY2gvcG93ZXJwYy9rZXJuZWwvdm1saW51eC5sZHMuUyAgICAgICAgICAgICAgICAg IHwgICAxIC0KIGFyY2gvczM5MC9pbmNsdWRlL2FzbS9LYnVpbGQgICAgICAgICAgICAgICAgICAg ICAgIHwgICAzICsKIGFyY2gvczM5MC9pbmNsdWRlL2FzbS9qdW1wX2xhYmVsLmggICAgICAgICAg ICAgICAgIHwgICA2ICstCiBhcmNoL3MzOTAvaW5jbHVkZS9hc20va3Byb2Jlcy5oICAgICAgICAg ICAgICAgICAgICB8ICAgNCArCiBhcmNoL3MzOTAva2VybmVsL2VudHJ5LlMgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgNSArLQogYXJjaC9zMzkwL2tlcm5lbC9rcHJvYmVzLmMgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIGFyY2gvczM5MC9rZXJuZWwvbWNvdW50LlMgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAzICstCiBhcmNoL3MzOTAva2VybmVsL3ZtbGludXgu bGRzLlMgICAgICAgICAgICAgICAgICAgICB8ICAgMSAtCiBhcmNoL3Njb3JlL2luY2x1ZGUvYXNt L0tidWlsZCAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArCiBhcmNoL3Njb3JlL2tlcm5lbC92 bWxpbnV4Lmxkcy5TICAgICAgICAgICAgICAgICAgICB8ICAgMSAtCiBhcmNoL3NoL2luY2x1ZGUv YXNtL0tidWlsZCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBhcmNoL3NoL2luY2x1 ZGUvYXNtL2twcm9iZXMuaCAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArCiBhcmNoL3NoL2tl cm5lbC92bWxpbnV4Lmxkcy5TICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSAtCiBhcmNoL3Nw YXJjL2luY2x1ZGUvYXNtL0tidWlsZCAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBhcmNo L3NwYXJjL2luY2x1ZGUvYXNtL2p1bXBfbGFiZWwuaCAgICAgICAgICAgICAgICB8ICAgNiArLQog YXJjaC9zcGFyYy9pbmNsdWRlL2FzbS9rcHJvYmVzLmggICAgICAgICAgICAgICAgICAgfCAgIDUg KwogYXJjaC9zcGFyYy9rZXJuZWwvdm1saW51eC5sZHMuUyAgICAgICAgICAgICAgICAgICAgfCAg IDEgLQogYXJjaC9zcGFyYy9tbS91bHRyYS5TICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgIDMgKy0KIGFyY2gvdGlsZS9pbmNsdWRlL2FzbS9LYnVpbGQgICAgICAgICAgICAgICAgICAg ICAgIHwgICAzICsKIGFyY2gvdGlsZS9pbmNsdWRlL2FzbS9rcHJvYmVzLmggICAgICAgICAgICAg ICAgICAgIHwgICA2ICstCiBhcmNoL3RpbGUva2VybmVsL3ZtbGludXgubGRzLlMgICAgICAgICAg ICAgICAgICAgICB8ICAgMSAtCiBhcmNoL3VtL2luY2x1ZGUvYXNtL0tidWlsZCAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgNCArCiBhcmNoL3VuaWNvcmUzMi9pbmNsdWRlL2FzbS9LYnVpbGQg ICAgICAgICAgICAgICAgICB8ICAgMyArCiBhcmNoL3VuaWNvcmUzMi9pbmNsdWRlL2FzbS9zZWN0 aW9uLWNvcmUuaCAgICAgICAgICB8ICAxOSArCiBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9LYnVpbGQg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9qdW1w X2xhYmVsLmggICAgICAgICAgICAgICAgICB8ICAxMCArLQogYXJjaC94ODYvaW5jbHVkZS9hc20v a3Byb2Jlcy5oICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKwogYXJjaC94ODYva2VybmVsL2Nw dS9taWNyb2NvZGUvY29yZS5jICAgICAgICAgICAgICAgfCAgIDggKy0KIGFyY2gveDg2L2tlcm5l bC9rcHJvYmVzL2NvcmUuYyAgICAgICAgICAgICAgICAgICAgIHwgIDExICstCiBhcmNoL3g4Ni9r ZXJuZWwvdm1saW51eC5sZHMuUyAgICAgICAgICAgICAgICAgICAgICB8ICAgMSAtCiBhcmNoL3g4 Ni90b29scy9yZWxvY3MuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArCiBhcmNo L3h0ZW5zYS9pbmNsdWRlL2FzbS9LYnVpbGQgICAgICAgICAgICAgICAgICAgICB8ICAgNCArCiBh cmNoL3h0ZW5zYS9rZXJuZWwvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICB8ICAgOCAr LQogZHJpdmVycy9iYXNlL2Zpcm13YXJlX2NsYXNzLmMgICAgICAgICAgICAgICAgICAgICAgfCAg MTIgKy0KIGRyaXZlcnMvcGxhdGZvcm0veDg2L2RlbGwtc21vODgwMC5jICAgICAgICAgICAgICAg IHwgICAxICsKIGZpcm13YXJlL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICA2ICstCiBpbmNsdWRlL2FzbS1nZW5lcmljL2twcm9iZXMuaCAgICAgICAgICAgICAg ICAgICAgICB8ICAyNiArCiBpbmNsdWRlL2FzbS1nZW5lcmljL3Jhbmdlcy5oICAgICAgICAgICAg ICAgICAgICAgICB8IDEwMyArKysrCiBpbmNsdWRlL2FzbS1nZW5lcmljL3NlY3Rpb24tY29yZS5o ICAgICAgICAgICAgICAgICB8IDM0MSArKysrKysrKysrKwogaW5jbHVkZS9hc20tZ2VuZXJpYy9z ZWN0aW9ucy5oICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIGluY2x1ZGUvYXNtLWdlbmVy aWMvdGFibGVzLmggICAgICAgICAgICAgICAgICAgICAgIHwgIDUwICsrCiBpbmNsdWRlL2FzbS1n ZW5lcmljL3ZtbGludXgubGRzLmggICAgICAgICAgICAgICAgICB8ICA3MyArLS0KIGluY2x1ZGUv bGludXgvY29tcGlsZXIuaCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA4IC0KIGluY2x1 ZGUvbGludXgvZHluYW1pY19kZWJ1Zy5oICAgICAgICAgICAgICAgICAgICAgIHwgICA1ICstCiBp bmNsdWRlL2xpbnV4L2luaXQuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyMCAr LQogaW5jbHVkZS9saW51eC9qdW1wX2xhYmVsLmggICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDggKy0KIGluY2x1ZGUvbGludXgva3Byb2Jlcy5oICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDI0ICstCiBpbmNsdWRlL2xpbnV4L3Jhbmdlcy5oICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8IDEyOCArKysrKwogaW5jbHVkZS9saW51eC9zZWN0aW9ucy5oICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAxMTEgKysrKwogaW5jbHVkZS9saW51eC90YWJsZXMuaCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCA2MzggKysrKysrKysrKysrKysrKysrKysrCiBpbml0L0tjb25m aWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyMiArCiBrZXJuZWwv anVtcF9sYWJlbC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxNyArLQoga2Vy bmVsL2twcm9iZXMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTcgKy0K IGxpYi9keW5hbWljX2RlYnVnLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEz ICstCiBzY3JpcHRzL01ha2VmaWxlLmJ1aWxkICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgNyArLQogc2NyaXB0cy9NYWtlZmlsZS5jbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDIgKwogc2NyaXB0cy9NYWtlZmlsZS5saWIgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMTEgKwogc2NyaXB0cy9NYWtlZmlsZS5tb2Rwb3N0ICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDIgKy0KIHNjcmlwdHMvbW9kL21vZHBvc3QuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAyICstCiBzY3JpcHRzL3ttb2R1bGUtY29tbW9uLmxkcyA9PiBtb2R1 bGUtY29tbW9uLmxkcy5TfSB8ICAgNiArCiBzY3JpcHRzL3JlY29yZG1jb3VudC5jICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc2NyaXB0cy9yZWNvcmRtY291bnQucGwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHRvb2xzL29ianRvb2wvc3BlY2lhbC5j ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiAxMzMgZmlsZXMgY2hhbmdlZCwg MjMyOCBpbnNlcnRpb25zKCspLCAyMTQgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQg RG9jdW1lbnRhdGlvbi9zZWN0aW9ucy9jb25mLnB5CiBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1l bnRhdGlvbi9zZWN0aW9ucy9pbmRleC5yc3QKIGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0 aW9uL3NlY3Rpb25zL2xpbmtlci10YWJsZXMucnN0CiBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1l bnRhdGlvbi9zZWN0aW9ucy9yYW5nZXMucnN0CiBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRh dGlvbi9zZWN0aW9ucy9zZWN0aW9uLWNvcmUucnN0CiBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9j NngvaW5jbHVkZS9hc20vdGFibGVzLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL3VuaWNvcmUz Mi9pbmNsdWRlL2FzbS9zZWN0aW9uLWNvcmUuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUv YXNtLWdlbmVyaWMva3Byb2Jlcy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9hc20tZ2Vu ZXJpYy9yYW5nZXMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvYXNtLWdlbmVyaWMvc2Vj dGlvbi1jb3JlLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2FzbS1nZW5lcmljL3RhYmxl cy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9saW51eC9yYW5nZXMuaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IGluY2x1ZGUvbGludXgvc2VjdGlvbnMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGlu Y2x1ZGUvbGludXgvdGFibGVzLmgKIHJlbmFtZSBzY3JpcHRzL3ttb2R1bGUtY29tbW9uLmxkcyA9 PiBtb2R1bGUtY29tbW9uLmxkcy5TfSAoODAlKQoKLS0gCjIuOS4yCgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApY ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.kernel.org ([198.145.29.136]:42844 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754449AbcHSVlO (ORCPT ); Fri, 19 Aug 2016 17:41:14 -0400 From: mcgrof@kernel.org Subject: [PATCH v4 00/16] linux: generalize sections, ranges and linker tables Date: Fri, 19 Aug 2016 14:32:49 -0700 Message-ID: <1471642385-5629-1-git-send-email-mcgrof@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-arch-owner@vger.kernel.org List-ID: To: hpa@zytor.com, tglx@linutronix.de, mingo@redhat.com, jpoimboe@redhat.com, bp@alien8.de, linux@arm.linux.org.uk, mhiramat@kernel.org, masami.hiramatsu.pt@hitachi.com, jbaron@akamai.com, heiko.carstens@de.ibm.com, ananth@linux.vnet.ibm.com, anil.s.keshavamurthy@intel.com, davem@davemloft.net, realmz6@gmail.com Cc: x86@kernel.org, luto@amacapital.net, keescook@chromium.org, torvalds@linux-foundation.org, gregkh@linuxfoundation.org, rusty@rustcorp.com.au, gnomes@lxorguk.ukuu.org.uk, alan@linux.intel.com, dwmw2@infradead.org, arnd@arndb.de, ming.lei@canonical.com, linux-arch@vger.kernel.org, benh@kernel.crashing.org, ananth@in.ibm.com, pebolle@tiscali.nl, fontana@sharpeleven.org, david.vrabel@citrix.com, konrad.wilk@oracle.com, mcb30@ipxe.org, jgross@suse.com, andrew.cooper3@citrix.com, andriy.shevchenko@linux.intel.com, paul.gortmaker@windriver.com, xen-devel@lists.xensource.com, ak@linux.intel.com, pali.rohar@gmail.com, dvhart@infradead.org, platform-driver-x86@vger.kernel.org, mmarek@suse.com, linux@rasmusvillemoes.dk, jkosina@suse.cz, korea.drzix@gmail.com, linux-kbuild@vger.kernel.org, tony.luck@intel.com, akpm@linux-foundation.org, linux-ia64@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, catalin.marinas@arm.com, will.deacon@arm.com, rostedt@goodmis.org, jani.nikula@intel.com, mchehab@osg.samsung.com, markus.heiser@darmarit.de, acme@redhat.com, jolsa@kernel.org, msalter@redhat.com, chris@zankel.net, jcmvbkbc@gmail.com, linux-xtensa@linux-xtensa.org, paulus@samba.org, mpe@ellerman.id.au, James.Bottomley@HansenPartnership.com, "Luis R. Rodriguez" Message-ID: <20160819213249.FVXDVE9EbRPBg0DLZwwlUw5A0F1k1-A8yQrf1GjHeKQ@z> From: "Luis R. Rodriguez" This v4 addresses feedback from the previous v3 series [0], and also addresses a huge array of additional tests against many architectures outside of what 0-day provides. As I mentioned in my last v3 series, 0-day had only found one issue with the series, a blackfin architecture linker issue with the last series. Guenter Rock was kind enough to give my series a test spin on his test bed and he found quite a bit of other oddball issues with obscure architectures, and even on x86 with an old toolchain. After a lot of work and coordinating with a few maintainers I'm happy to report all issues found so far through all possible testing I could do are now fixed, this series also addresses all feedback from the last series, as such this goes submitted as PATCH form. In addressing fixing this work on a few architectures some of the previous patches are further simplified. The kprobes port to linker tables is made much easier now that I've addressed moving out core kprobe declarations into asm-generic/kprobes.h. Refer to the patch "kprobes: move kprobe declarations to asm-generic/kprobes.h". This makes for a much cleaner solution across architectures. Boris feedback on making the code bit rot feature optional is addressed by using a new Kconfig symbol for this, CONFIG_BUILD_AVOID_BITROT, but given Greg's concerns over lack of clarity over what this was all about I've ripped that functionality out into its own patch with a bit more extensive documentation and re-wording. See the patch "kbuild: enable option to force compile force-obj-y and force-lib-y". I hope makes it clear how linker tables can help with avoiding code bit rot. I've gone with a new Kconfig symbol CONFIG_BUILD_AVOID_BITROT given CONFIG_COMPILE_TEST is not available on UML, this feature is desirable on all architectures. The documentation is revamped, now that the DocBook format is deprecated I ported the documention into the trendy hipster Sphinx documentation format. AT Boris' request I've adapated the userspace linker table application forintegration into the kernel under tools/ to make it easier to keep things in sync, however since this requires a bit of changes to some headers in tools/ I'll submit that separately. [0] https://lkml.kernel.org/r/1469222687-1600-1-git-send-email-mcgrof@kernel.org If you'd like this in git-form, you can get it on the 20160819-linker-table-v4 branch of my linux-next tree on kernel.org, this also includes the series of the linker table userspace sandbox: https://git.kernel.org/cgit/linux/kernel/git/mcgrof/linux-next.git/log/?h=20160819-linker-table-v4 Please let me know if there are any concerns or questions. Luis R. Rodriguez (16): x86: remove LTO_REFERENCE_INITCALL() dell-smo8800: include uaccess.h scripts/module-common.lds: enable generation generic-sections: add section core helpers xtensa: skip adding literal when SORT() is used ranges.h: add helpers to build and identify Linux section ranges tables.h: add linker table support kbuild: enable option to force compile force-obj-y and force-lib-y firmware/Makefile: force recompilation if makefile changes firmware: port built-in section to linker table jump_label: move guard #endif down where it belongs jump_label: port __jump_table to linker tables dynamic_debug: port to use linker tables kprobes: move kprobe declarations to asm-generic/kprobes.h kprobes: port .kprobes.text to section range kprobes: port blacklist kprobes to linker table .gitignore | 2 + Documentation/index.rst | 1 + Documentation/kbuild/makefiles.txt | 36 ++ Documentation/sections/conf.py | 4 + Documentation/sections/index.rst | 13 + Documentation/sections/linker-tables.rst | 202 +++++++ Documentation/sections/ranges.rst | 49 ++ Documentation/sections/section-core.rst | 153 +++++ MAINTAINERS | 37 ++ Makefile | 6 +- arch/alpha/include/asm/Kbuild | 4 + arch/arc/include/asm/Kbuild | 3 + arch/arc/include/asm/kprobes.h | 6 +- arch/arc/kernel/vmlinux.lds.S | 1 - arch/arm/include/asm/Kbuild | 3 + arch/arm/include/asm/jump_label.h | 6 +- arch/arm/include/asm/kprobes.h | 4 + arch/arm/kernel/entry-armv.S | 3 +- arch/arm/kernel/vmlinux-xip.lds.S | 1 - arch/arm/kernel/vmlinux.lds.S | 1 - arch/arm/probes/decode.h | 1 + arch/arm64/include/asm/Kbuild | 3 + arch/arm64/include/asm/jump_label.h | 6 +- arch/arm64/include/asm/kprobes.h | 4 + arch/arm64/kernel/armv8_deprecated.c | 1 + arch/arm64/kernel/insn.c | 1 + arch/arm64/kernel/probes/kprobes.c | 4 +- arch/arm64/kernel/vmlinux.lds.S | 1 - arch/avr32/include/asm/Kbuild | 3 + arch/avr32/include/asm/kprobes.h | 4 + arch/avr32/kernel/entry-avr32b.S | 13 +- arch/avr32/kernel/vmlinux.lds.S | 1 - arch/blackfin/include/asm/Kbuild | 4 + arch/blackfin/kernel/vmlinux.lds.S | 1 - arch/c6x/include/asm/Kbuild | 3 + arch/c6x/include/asm/tables.h | 26 + arch/c6x/kernel/vmlinux.lds.S | 1 - arch/cris/include/asm/Kbuild | 4 + arch/frv/include/asm/Kbuild | 4 + arch/h8300/include/asm/Kbuild | 4 + arch/hexagon/include/asm/Kbuild | 4 + arch/hexagon/kernel/vmlinux.lds.S | 1 - arch/ia64/include/asm/Kbuild | 3 + arch/ia64/include/asm/kprobes.h | 7 +- arch/ia64/kernel/jprobes.S | 3 +- arch/ia64/kernel/vmlinux.lds.S | 1 - arch/ia64/lib/flush.S | 6 +- arch/m32r/include/asm/Kbuild | 4 + arch/m68k/include/asm/Kbuild | 4 + arch/metag/include/asm/Kbuild | 4 + arch/metag/kernel/vmlinux.lds.S | 1 - arch/microblaze/include/asm/Kbuild | 4 + arch/microblaze/kernel/vmlinux.lds.S | 1 - arch/mips/include/asm/Kbuild | 3 + arch/mips/include/asm/jump_label.h | 6 +- arch/mips/include/asm/kprobes.h | 6 +- arch/mips/kernel/vmlinux.lds.S | 1 - arch/mn10300/include/asm/Kbuild | 3 + arch/mn10300/include/asm/kprobes.h | 4 + arch/mn10300/kernel/vmlinux.lds.S | 1 - arch/nios2/include/asm/Kbuild | 4 + arch/nios2/kernel/vmlinux.lds.S | 1 - arch/openrisc/include/asm/Kbuild | 4 + arch/openrisc/kernel/vmlinux.lds.S | 1 - arch/parisc/include/asm/Kbuild | 4 + arch/parisc/kernel/vmlinux.lds.S | 1 - arch/powerpc/include/asm/Kbuild | 3 + arch/powerpc/include/asm/jump_label.h | 8 +- arch/powerpc/include/asm/kprobes.h | 6 + arch/powerpc/include/asm/ppc_asm.h | 7 +- arch/powerpc/kernel/vmlinux.lds.S | 1 - arch/s390/include/asm/Kbuild | 3 + arch/s390/include/asm/jump_label.h | 6 +- arch/s390/include/asm/kprobes.h | 4 + arch/s390/kernel/entry.S | 5 +- arch/s390/kernel/kprobes.c | 6 +- arch/s390/kernel/mcount.S | 3 +- arch/s390/kernel/vmlinux.lds.S | 1 - arch/score/include/asm/Kbuild | 4 + arch/score/kernel/vmlinux.lds.S | 1 - arch/sh/include/asm/Kbuild | 3 + arch/sh/include/asm/kprobes.h | 2 + arch/sh/kernel/vmlinux.lds.S | 1 - arch/sparc/include/asm/Kbuild | 3 + arch/sparc/include/asm/jump_label.h | 6 +- arch/sparc/include/asm/kprobes.h | 5 + arch/sparc/kernel/vmlinux.lds.S | 1 - arch/sparc/mm/ultra.S | 3 +- arch/tile/include/asm/Kbuild | 3 + arch/tile/include/asm/kprobes.h | 6 +- arch/tile/kernel/vmlinux.lds.S | 1 - arch/um/include/asm/Kbuild | 4 + arch/unicore32/include/asm/Kbuild | 3 + arch/unicore32/include/asm/section-core.h | 19 + arch/x86/include/asm/Kbuild | 3 + arch/x86/include/asm/jump_label.h | 10 +- arch/x86/include/asm/kprobes.h | 6 + arch/x86/kernel/cpu/microcode/core.c | 8 +- arch/x86/kernel/kprobes/core.c | 11 +- arch/x86/kernel/vmlinux.lds.S | 1 - arch/x86/tools/relocs.c | 4 + arch/xtensa/include/asm/Kbuild | 4 + arch/xtensa/kernel/Makefile | 8 +- drivers/base/firmware_class.c | 12 +- drivers/platform/x86/dell-smo8800.c | 1 + firmware/Makefile | 6 +- include/asm-generic/kprobes.h | 26 + include/asm-generic/ranges.h | 103 ++++ include/asm-generic/section-core.h | 341 +++++++++++ include/asm-generic/sections.h | 4 +- include/asm-generic/tables.h | 50 ++ include/asm-generic/vmlinux.lds.h | 73 +-- include/linux/compiler.h | 8 - include/linux/dynamic_debug.h | 5 +- include/linux/init.h | 20 +- include/linux/jump_label.h | 8 +- include/linux/kprobes.h | 24 +- include/linux/ranges.h | 128 +++++ include/linux/sections.h | 111 ++++ include/linux/tables.h | 638 +++++++++++++++++++++ init/Kconfig | 22 + kernel/jump_label.c | 17 +- kernel/kprobes.c | 17 +- lib/dynamic_debug.c | 13 +- scripts/Makefile.build | 7 +- scripts/Makefile.clean | 2 + scripts/Makefile.lib | 11 + scripts/Makefile.modpost | 2 +- scripts/mod/modpost.c | 2 +- scripts/{module-common.lds => module-common.lds.S} | 6 + scripts/recordmcount.c | 2 +- scripts/recordmcount.pl | 2 +- tools/objtool/special.c | 2 +- 133 files changed, 2328 insertions(+), 214 deletions(-) create mode 100644 Documentation/sections/conf.py create mode 100644 Documentation/sections/index.rst create mode 100644 Documentation/sections/linker-tables.rst create mode 100644 Documentation/sections/ranges.rst create mode 100644 Documentation/sections/section-core.rst create mode 100644 arch/c6x/include/asm/tables.h create mode 100644 arch/unicore32/include/asm/section-core.h create mode 100644 include/asm-generic/kprobes.h create mode 100644 include/asm-generic/ranges.h create mode 100644 include/asm-generic/section-core.h create mode 100644 include/asm-generic/tables.h create mode 100644 include/linux/ranges.h create mode 100644 include/linux/sections.h create mode 100644 include/linux/tables.h rename scripts/{module-common.lds => module-common.lds.S} (80%) -- 2.9.2 From mboxrd@z Thu Jan 1 00:00:00 1970 From: mcgrof@kernel.org Date: Fri, 19 Aug 2016 21:32:49 +0000 Subject: [PATCH v4 00/16] linux: generalize sections, ranges and linker tables Message-Id: <1471642385-5629-1-git-send-email-mcgrof@kernel.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: hpa@zytor.com, tglx@linutronix.de, mingo@redhat.com, jpoimboe@redhat.com, bp@alien8.de, linux@arm.linux.org.uk, mhiramat@kernel.org, masami.hiramatsu.pt@hitachi.com, jbaron@akamai.com, heiko.carstens@de.ibm.com, ananth@linux.vnet.ibm.com, anil.s.keshavamurthy@intel.com, davem@davemloft.net, realmz6@gmail.com Cc: gnomes@lxorguk.ukuu.org.uk, linux-ia64@vger.kernel.org, jkosina@suse.cz, benh@kernel.crashing.org, ming.lei@canonical.com, linux@rasmusvillemoes.dk, platform-driver-x86@vger.kernel.org, James.Bottomley@HansenPartnership.com, paul.gortmaker@windriver.com, paulus@samba.org, sparclinux@vger.kernel.org, mchehab@osg.samsung.com, linux-arch@vger.kernel.org, markus.heiser@darmarit.de, xen-devel@lists.xensource.com, msalter@redhat.com, linux-sh@vger.kernel.org, mpe@ellerman.id.au, x86@kernel.org, fontana@sharpeleven.org, linux-arm-kernel@lists.infradead.org, catalin.marinas@arm.com, dvhart@infradead.org, dwmw2@infradead.org, linux-xtensa@linux-xtensa.org, pali.rohar@gmail.com, keescook@chromium.org, arnd@arndb.de, jani.nikula@intel.com, will.deacon@arm.com, rusty@rustcorp.com.au, rostedt@goodmis.org, acme@redhat.com, ak@linux.intel.com, andriy.shevchenko@linux.intel.com, mcb30@ip From: "Luis R. Rodriguez" This v4 addresses feedback from the previous v3 series [0], and also addresses a huge array of additional tests against many architectures outside of what 0-day provides. As I mentioned in my last v3 series, 0-day had only found one issue with the series, a blackfin architecture linker issue with the last series. Guenter Rock was kind enough to give my series a test spin on his test bed and he found quite a bit of other oddball issues with obscure architectures, and even on x86 with an old toolchain. After a lot of work and coordinating with a few maintainers I'm happy to report all issues found so far through all possible testing I could do are now fixed, this series also addresses all feedback from the last series, as such this goes submitted as PATCH form. In addressing fixing this work on a few architectures some of the previous patches are further simplified. The kprobes port to linker tables is made much easier now that I've addressed moving out core kprobe declarations into asm-generic/kprobes.h. Refer to the patch "kprobes: move kprobe declarations to asm-generic/kprobes.h". This makes for a much cleaner solution across architectures. Boris feedback on making the code bit rot feature optional is addressed by using a new Kconfig symbol for this, CONFIG_BUILD_AVOID_BITROT, but given Greg's concerns over lack of clarity over what this was all about I've ripped that functionality out into its own patch with a bit more extensive documentation and re-wording. See the patch "kbuild: enable option to force compile force-obj-y and force-lib-y". I hope makes it clear how linker tables can help with avoiding code bit rot. I've gone with a new Kconfig symbol CONFIG_BUILD_AVOID_BITROT given CONFIG_COMPILE_TEST is not available on UML, this feature is desirable on all architectures. The documentation is revamped, now that the DocBook format is deprecated I ported the documention into the trendy hipster Sphinx documentation format. AT Boris' request I've adapated the userspace linker table application forintegration into the kernel under tools/ to make it easier to keep things in sync, however since this requires a bit of changes to some headers in tools/ I'll submit that separately. [0] https://lkml.kernel.org/r/1469222687-1600-1-git-send-email-mcgrof@kernel.org If you'd like this in git-form, you can get it on the 20160819-linker-table-v4 branch of my linux-next tree on kernel.org, this also includes the series of the linker table userspace sandbox: https://git.kernel.org/cgit/linux/kernel/git/mcgrof/linux-next.git/log/?h 160819-linker-table-v4 Please let me know if there are any concerns or questions. Luis R. Rodriguez (16): x86: remove LTO_REFERENCE_INITCALL() dell-smo8800: include uaccess.h scripts/module-common.lds: enable generation generic-sections: add section core helpers xtensa: skip adding literal when SORT() is used ranges.h: add helpers to build and identify Linux section ranges tables.h: add linker table support kbuild: enable option to force compile force-obj-y and force-lib-y firmware/Makefile: force recompilation if makefile changes firmware: port built-in section to linker table jump_label: move guard #endif down where it belongs jump_label: port __jump_table to linker tables dynamic_debug: port to use linker tables kprobes: move kprobe declarations to asm-generic/kprobes.h kprobes: port .kprobes.text to section range kprobes: port blacklist kprobes to linker table .gitignore | 2 + Documentation/index.rst | 1 + Documentation/kbuild/makefiles.txt | 36 ++ Documentation/sections/conf.py | 4 + Documentation/sections/index.rst | 13 + Documentation/sections/linker-tables.rst | 202 +++++++ Documentation/sections/ranges.rst | 49 ++ Documentation/sections/section-core.rst | 153 +++++ MAINTAINERS | 37 ++ Makefile | 6 +- arch/alpha/include/asm/Kbuild | 4 + arch/arc/include/asm/Kbuild | 3 + arch/arc/include/asm/kprobes.h | 6 +- arch/arc/kernel/vmlinux.lds.S | 1 - arch/arm/include/asm/Kbuild | 3 + arch/arm/include/asm/jump_label.h | 6 +- arch/arm/include/asm/kprobes.h | 4 + arch/arm/kernel/entry-armv.S | 3 +- arch/arm/kernel/vmlinux-xip.lds.S | 1 - arch/arm/kernel/vmlinux.lds.S | 1 - arch/arm/probes/decode.h | 1 + arch/arm64/include/asm/Kbuild | 3 + arch/arm64/include/asm/jump_label.h | 6 +- arch/arm64/include/asm/kprobes.h | 4 + arch/arm64/kernel/armv8_deprecated.c | 1 + arch/arm64/kernel/insn.c | 1 + arch/arm64/kernel/probes/kprobes.c | 4 +- arch/arm64/kernel/vmlinux.lds.S | 1 - arch/avr32/include/asm/Kbuild | 3 + arch/avr32/include/asm/kprobes.h | 4 + arch/avr32/kernel/entry-avr32b.S | 13 +- arch/avr32/kernel/vmlinux.lds.S | 1 - arch/blackfin/include/asm/Kbuild | 4 + arch/blackfin/kernel/vmlinux.lds.S | 1 - arch/c6x/include/asm/Kbuild | 3 + arch/c6x/include/asm/tables.h | 26 + arch/c6x/kernel/vmlinux.lds.S | 1 - arch/cris/include/asm/Kbuild | 4 + arch/frv/include/asm/Kbuild | 4 + arch/h8300/include/asm/Kbuild | 4 + arch/hexagon/include/asm/Kbuild | 4 + arch/hexagon/kernel/vmlinux.lds.S | 1 - arch/ia64/include/asm/Kbuild | 3 + arch/ia64/include/asm/kprobes.h | 7 +- arch/ia64/kernel/jprobes.S | 3 +- arch/ia64/kernel/vmlinux.lds.S | 1 - arch/ia64/lib/flush.S | 6 +- arch/m32r/include/asm/Kbuild | 4 + arch/m68k/include/asm/Kbuild | 4 + arch/metag/include/asm/Kbuild | 4 + arch/metag/kernel/vmlinux.lds.S | 1 - arch/microblaze/include/asm/Kbuild | 4 + arch/microblaze/kernel/vmlinux.lds.S | 1 - arch/mips/include/asm/Kbuild | 3 + arch/mips/include/asm/jump_label.h | 6 +- arch/mips/include/asm/kprobes.h | 6 +- arch/mips/kernel/vmlinux.lds.S | 1 - arch/mn10300/include/asm/Kbuild | 3 + arch/mn10300/include/asm/kprobes.h | 4 + arch/mn10300/kernel/vmlinux.lds.S | 1 - arch/nios2/include/asm/Kbuild | 4 + arch/nios2/kernel/vmlinux.lds.S | 1 - arch/openrisc/include/asm/Kbuild | 4 + arch/openrisc/kernel/vmlinux.lds.S | 1 - arch/parisc/include/asm/Kbuild | 4 + arch/parisc/kernel/vmlinux.lds.S | 1 - arch/powerpc/include/asm/Kbuild | 3 + arch/powerpc/include/asm/jump_label.h | 8 +- arch/powerpc/include/asm/kprobes.h | 6 + arch/powerpc/include/asm/ppc_asm.h | 7 +- arch/powerpc/kernel/vmlinux.lds.S | 1 - arch/s390/include/asm/Kbuild | 3 + arch/s390/include/asm/jump_label.h | 6 +- arch/s390/include/asm/kprobes.h | 4 + arch/s390/kernel/entry.S | 5 +- arch/s390/kernel/kprobes.c | 6 +- arch/s390/kernel/mcount.S | 3 +- arch/s390/kernel/vmlinux.lds.S | 1 - arch/score/include/asm/Kbuild | 4 + arch/score/kernel/vmlinux.lds.S | 1 - arch/sh/include/asm/Kbuild | 3 + arch/sh/include/asm/kprobes.h | 2 + arch/sh/kernel/vmlinux.lds.S | 1 - arch/sparc/include/asm/Kbuild | 3 + arch/sparc/include/asm/jump_label.h | 6 +- arch/sparc/include/asm/kprobes.h | 5 + arch/sparc/kernel/vmlinux.lds.S | 1 - arch/sparc/mm/ultra.S | 3 +- arch/tile/include/asm/Kbuild | 3 + arch/tile/include/asm/kprobes.h | 6 +- arch/tile/kernel/vmlinux.lds.S | 1 - arch/um/include/asm/Kbuild | 4 + arch/unicore32/include/asm/Kbuild | 3 + arch/unicore32/include/asm/section-core.h | 19 + arch/x86/include/asm/Kbuild | 3 + arch/x86/include/asm/jump_label.h | 10 +- arch/x86/include/asm/kprobes.h | 6 + arch/x86/kernel/cpu/microcode/core.c | 8 +- arch/x86/kernel/kprobes/core.c | 11 +- arch/x86/kernel/vmlinux.lds.S | 1 - arch/x86/tools/relocs.c | 4 + arch/xtensa/include/asm/Kbuild | 4 + arch/xtensa/kernel/Makefile | 8 +- drivers/base/firmware_class.c | 12 +- drivers/platform/x86/dell-smo8800.c | 1 + firmware/Makefile | 6 +- include/asm-generic/kprobes.h | 26 + include/asm-generic/ranges.h | 103 ++++ include/asm-generic/section-core.h | 341 +++++++++++ include/asm-generic/sections.h | 4 +- include/asm-generic/tables.h | 50 ++ include/asm-generic/vmlinux.lds.h | 73 +-- include/linux/compiler.h | 8 - include/linux/dynamic_debug.h | 5 +- include/linux/init.h | 20 +- include/linux/jump_label.h | 8 +- include/linux/kprobes.h | 24 +- include/linux/ranges.h | 128 +++++ include/linux/sections.h | 111 ++++ include/linux/tables.h | 638 +++++++++++++++++++++ init/Kconfig | 22 + kernel/jump_label.c | 17 +- kernel/kprobes.c | 17 +- lib/dynamic_debug.c | 13 +- scripts/Makefile.build | 7 +- scripts/Makefile.clean | 2 + scripts/Makefile.lib | 11 + scripts/Makefile.modpost | 2 +- scripts/mod/modpost.c | 2 +- scripts/{module-common.lds => module-common.lds.S} | 6 + scripts/recordmcount.c | 2 +- scripts/recordmcount.pl | 2 +- tools/objtool/special.c | 2 +- 133 files changed, 2328 insertions(+), 214 deletions(-) create mode 100644 Documentation/sections/conf.py create mode 100644 Documentation/sections/index.rst create mode 100644 Documentation/sections/linker-tables.rst create mode 100644 Documentation/sections/ranges.rst create mode 100644 Documentation/sections/section-core.rst create mode 100644 arch/c6x/include/asm/tables.h create mode 100644 arch/unicore32/include/asm/section-core.h create mode 100644 include/asm-generic/kprobes.h create mode 100644 include/asm-generic/ranges.h create mode 100644 include/asm-generic/section-core.h create mode 100644 include/asm-generic/tables.h create mode 100644 include/linux/ranges.h create mode 100644 include/linux/sections.h create mode 100644 include/linux/tables.h rename scripts/{module-common.lds => module-common.lds.S} (80%) -- 2.9.2