From owner-freebsd-arch@freebsd.org Mon Sep 26 16:06:00 2016 Return-Path: Delivered-To: freebsd-arch@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 04B03BE4A71 for ; Mon, 26 Sep 2016 16:06:00 +0000 (UTC) (envelope-from marcel@xcllnt.net) Received: from mail.xcllnt.net (mail.xcllnt.net [50.0.150.214]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DB35B1C50 for ; Mon, 26 Sep 2016 16:05:59 +0000 (UTC) (envelope-from marcel@xcllnt.net) Received: from marcels-mbp.int.brkt.com.mail (cerberus.brkt.com [208.185.168.138]) (authenticated bits=0) by mail.xcllnt.net (8.15.2/8.15.2) with ESMTPSA id u8QG5vpt013037 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NO) for ; Mon, 26 Sep 2016 09:05:58 -0700 (PDT) (envelope-from marcel@xcllnt.net) Date: Mon, 26 Sep 2016 09:05:51 -0700 From: Marcel Moolenaar To: "=?utf-8?Q?freebsd-arch=40freebsd.org?=" Message-ID: Subject: Including without getting ioctl(2) defines X-Mailer: Airmail (382) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="57e9475f_169e9367_e1fd" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3 (mail.xcllnt.net [50.0.150.214]); Mon, 26 Sep 2016 09:05:58 -0700 (PDT) X-Content-Filtered-By: Mailman/MimeDel 2.1.23 X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Sep 2016 16:06:00 -0000 --57e9475f_169e9367_e1fd Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Background: In order for a select set of =46reeBSD utilities to compile on non-=46ree= BSD (specifically macOS and Linux) as build tools, we need some portabili= ty tweaks. Problem: mkimg(1) includes disk partitioning headers like , and and those headers themselves include for ioctl(2) definitions. The header does not t= ypically exist on the host we=E2=80=99re being, causing build failures. Proposal: What I like is to be able to use =46reeBSD=E2=80=99s headers, but not pul= l in =46reeBSD-specifics like ioctl(2) definitions. Solutions: 1. Split off the definitions relating to the partitioning into a separate= header (e.g. ) and keep the =46reeBSD-centric definition= s (e.g. for ioctl(2)) in the original header (e.g. . The= original header will include the new header so that there=E2=80=99s no c= hange to applications that include the original header. Portable tools li= ke mkimg can include the new split-off header to get just the structure d= efinitions and defines. 2. Expect portable utilities to define a pre-processor macro (e.g. PORTAB= LE=5FDE=46INITIONS=5FONLY) and make =46reeBSD-specific definitions condit= ional upon the *absence* of the preprocessor macro. 3. (Ab)use =5FPOSIX=5FSOURCE to achieve the same as point 2. 4. Get rid of the utilities that still use the ioctl(2) interface and fix= ports that do the same. 5. Others=3F Notes: 1. Attached a hack to allow mkimg(1) to use =46reeBSD=E2=80=99s headers f= or partitioning schemes. It shows what exactly the problem is without sug= gesting a solution. It=E2=80=99s a minimal change for a reason and not to= be discussed as if it was a solution. 2. mkimg(1) is one example. Other utilities include makefs, mtree, etc. P= lease consider an approach that serves as a good precedence for other uti= lities if and when a similar situation is encountered. --57e9475f_169e9367_e1fd Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="sys.diff" ZGlmZiAtLWdpdCBhL3N5cy9zeXMvZGlza2xhYmVsLmggYi9zeXMvc3lzL2Rpc2tsYWJlbC5oCmlu ZGV4IDQyYzc1N2EuLjRhZDEwZmIgMTAwNjQ0Ci0tLSBhL3N5cy9zeXMvZGlza2xhYmVsLmgKKysr IGIvc3lzL3N5cy9kaXNrbGFiZWwuaApAQCAtMzYsNyArMzYsNiBAQAogI2lmbmRlZiBfS0VSTkVM CiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAjZW5kaWYKLSNpbmNsdWRlIDxzeXMvaW9jY29tLmg+ CiAKIC8qCiAgKiBEaXNrIGRlc2NyaXB0aW9uIHRhYmxlLCBzZWUgZGlza3RhYig1KQpkaWZmIC0t Z2l0IGEvc3lzL3N5cy9kaXNrbWJyLmggYi9zeXMvc3lzL2Rpc2ttYnIuaAppbmRleCA1ZjQ5ZWI5 Li5jZjU2NDdkIDEwMDY0NAotLS0gYS9zeXMvc3lzL2Rpc2ttYnIuaAorKysgYi9zeXMvc3lzL2Rp c2ttYnIuaApAQCAtMzMsOCArMzMsNiBAQAogI2lmbmRlZiBfU1lTX0RJU0tNQlJfSF8KICNkZWZp bmUJX1NZU19ESVNLTUJSX0hfCiAKLSNpbmNsdWRlIDxzeXMvaW9jY29tLmg+Ci0KICNkZWZpbmUJ RE9TQkJTRUNUT1IJMAkvKiBET1MgYm9vdCBibG9jayByZWxhdGl2ZSBzZWN0b3IgbnVtYmVyICov CiAjZGVmaW5lCURPU0RTTk9GRgk0NDAJLyogV2luTlQvMksvWFAgRHJpdmUgU2VyaWFsIE51bWJl ciBvZmZzZXQgKi8KICNkZWZpbmUJRE9TUEFSVE9GRgk0NDYKQEAgLTg2LDYgKzg0LDQgQEAgdm9p ZCBkb3NfcGFydGl0aW9uX2VuYyh2b2lkICpwcCwgc3RydWN0IGRvc19wYXJ0aXRpb24gKmQpOwog I2RlZmluZQlEUFNFQ1QocykgKChzKSAmIDB4M2YpCQkvKiBpc29sYXRlIHJlbGV2YW50IGJpdHMg b2Ygc2VjdG9yICovCiAjZGVmaW5lCURQQ1lMKGMsIHMpICgoYykgKyAoKChzKSAmIDB4YzApPDwy KSkgLyogYW5kIHRob3NlIHRoYXQgYXJlIGN5bGluZGVyICovCiAKLSNkZWZpbmUgRElPQ1NNQlIg CV9JT1coJ00nLCAxMjksIHVfY2hhcls1MTJdKQotCiAjZW5kaWYgLyogIV9TWVNfRElTS01CUl9I XyAqLwpkaWZmIC0tZ2l0IGEvc3lzL3N5cy9kaXNrcGM5OC5oIGIvc3lzL3N5cy9kaXNrcGM5OC5o CmluZGV4IGFhMGJiMGEuLmJjNzA5OTkgMTAwNjQ0Ci0tLSBhL3N5cy9zeXMvZGlza3BjOTguaAor KysgYi9zeXMvc3lzL2Rpc2twYzk4LmgKQEAgLTMzLDggKzMzLDYgQEAKICNpZm5kZWYgX1NZU19E SVNLUEM5OF9IXwogI2RlZmluZQlfU1lTX0RJU0tQQzk4X0hfCiAKLSNpbmNsdWRlIDxzeXMvaW9j Y29tLmg+Ci0KICNkZWZpbmUJUEM5OF9CQlNFQ1RPUgkxCS8qIERPUyBib290IGJsb2NrIHJlbGF0 aXZlIHNlY3RvciBudW1iZXIgKi8KICNkZWZpbmUJUEM5OF9QQVJUT0ZGCTAKICNkZWZpbmUJUEM5 OF9QQVJUU0laRQkzMgpAQCAtNzcsNiArNzUsNCBAQCBDVEFTU0VSVChzaXplb2YgKHN0cnVjdCBw Yzk4X3BhcnRpdGlvbikgPT0gUEM5OF9QQVJUU0laRSk7CiB2b2lkIHBjOThfcGFydGl0aW9uX2Rl Yyh2b2lkIGNvbnN0ICpwcCwgc3RydWN0IHBjOThfcGFydGl0aW9uICpkKTsKIHZvaWQgcGM5OF9w YXJ0aXRpb25fZW5jKHZvaWQgKnBwLCBzdHJ1Y3QgcGM5OF9wYXJ0aXRpb24gKmQpOwogCi0jZGVm aW5lIERJT0NTUEM5OAlfSU9XKCdNJywgMTI5LCB1X2NoYXJbODE5Ml0pCi0KICNlbmRpZiAvKiAh X1NZU19ESVNLUEM5OF9IXyAqLwo= --57e9475f_169e9367_e1fd--