From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/14429 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: James Y Knight Newsgroups: gmane.linux.lib.musl.general Subject: error.h implementation Date: Mon, 22 Jul 2019 23:53:33 -0400 Message-ID: Reply-To: musl@lists.openwall.com Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="0000000000009b0dae058e5124cc" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="109907"; mail-complaints-to="usenet@blaine.gmane.org" To: musl@lists.openwall.com Original-X-From: musl-return-14445-gllmg-musl=m.gmane.org@lists.openwall.com Tue Jul 23 05:54:17 2019 Return-path: Envelope-to: gllmg-musl@m.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by blaine.gmane.org with smtp (Exim 4.89) (envelope-from ) id 1hplsX-000SWG-3k for gllmg-musl@m.gmane.org; Tue, 23 Jul 2019 05:54:17 +0200 Original-Received: (qmail 15964 invoked by uid 550); 23 Jul 2019 03:54:14 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Original-Received: (qmail 15926 invoked from network); 23 Jul 2019 03:54:13 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=HyF13UOm6EiF+DupUZspBkQX6TrNXpMWWgAg3y3COVU=; b=tt93McpkH5ekbB4RqJEiNLR8s47rAK3jNgtkj0wrUL0RjHSEADqFXYcDktrxvNoV4i A20be5GwMk3dKN8BZtntFTBJzeE7CSiPXOpY40KxImrg5EhraswUU+/3oOVlx4tjc0S1 nYk8UaVXFSYHTBlg5agzWNqLR8p8nKbdkxSHyWD9cjhFtWM3OUfQsFhU+acoZ2i6FXQg uRz1/6sLs5fGEpFrORnuBLW427ALAbgcATJN/P6RBfNPkiOXQdFPQrng7R5kh7tPQ3FT lOzR5HOBL3/qb4/pmx4YKvnTtAhMtkmM0fPUVqiZ0twSa+mY7rBE0UBXx1uqeBQ42td/ aOYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=HyF13UOm6EiF+DupUZspBkQX6TrNXpMWWgAg3y3COVU=; b=Um//Mv4YUTAebiAdKK5SLHfXxf58InyzbZAe52n+F0FPud43CBI3GHzEVpLD17Y9n6 sjltWFBIJA+2eq8zV+sXNmS2aEEImqR1GGXVepo8Jiosgw/LWj2huibsT+wTev5HYYP+ pBzkbgzQeFfMkDsCNIS/JhAy+Did7czshUFau4FSOS0NYOv1ZxDt/G1IklahMBZ91AqY zCxFZUNdl9K5FhoD7Q+WPwTngLDJiq2ttf3SVHqOkMB1RbqP/Y5smFORXyGF16HFNF0C /379kjkQhmVgLQX4p+xBDpoRcO0BOnttdmNrfVUxxsgqsi3MEz8LukcLOiVAb5Xupy28 gMVg== X-Gm-Message-State: APjAAAUL9X8VoapcccaZPyQYBHi53HInx0Uh67dezRYvtbWD/hTC2adZ atOtatzmAfWqs/tM7owJICX0zniUrP0EB8O3fXqbQEU0eWM= X-Google-Smtp-Source: APXvYqzBdpnRfnRfivou0qNExEDIwzMcTMw/hYW5vNlzxAXRGtWaCPPL4TmiiugNzEXZvpq0GHIdlatFXJK4gJ8SHxs= X-Received: by 2002:a67:f8d4:: with SMTP id c20mr4769642vsp.239.1563854041141; Mon, 22 Jul 2019 20:54:01 -0700 (PDT) Xref: news.gmane.org gmane.linux.lib.musl.general:14429 Archived-At: --0000000000009b0dae058e5124cc Content-Type: text/plain; charset="UTF-8" While these glibc-introduced functions are, IMO, ugly and not really a worthwhile addition to a libc interface, they do get used. So, in the interests of compatibility with existing code, here's an implementation...they're standalone, and pretty trivial, so it seems reasonable to include, despite it being unfortunate that they exist at all. The added test case here passes with both musl and glibc. A question: is the weak_alias stuff required in this case? I'm not 100% clear as to when that's required, and when it's not, but I think perhaps it's not actually needed here, because nothing else in the libc refers to these nonstandard symbols, and the file defines no standard symbols? --0000000000009b0dae058e5124cc Content-Type: application/octet-stream; name="0001-Add-support-for-the-glibc-specific-error.h-header.patch" Content-Disposition: attachment; filename="0001-Add-support-for-the-glibc-specific-error.h-header.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jyfa2twh0 RnJvbSBiNmYzN2Q3NTU1YTY4MzkyZWE5NzY2MjFhYTlkNDA4ZWZlYzc1YzllIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYW1lcyBZIEtuaWdodCA8anlrbmlnaHRAZ29vZ2xlLmNvbT4K RGF0ZTogTW9uLCAyMiBKdWwgMjAxOSAyMDozOToyNiAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIEFk ZCBzdXBwb3J0IGZvciB0aGUgZ2xpYmMtc3BlY2lmaWMgZXJyb3IuaCBoZWFkZXIuCgpUaGlzIGlu Y2x1ZGVzIHRoZSBmdW5jdGlvbnMgJ2Vycm9yJywgJ2Vycm9yX2F0X2xpbmUnLCBhbmQgdGhlaXIK YXNzb2NpYXRlZCBnbG9iYWwgdmFyaWFibGVzLgotLS0KIGR5bmFtaWMubGlzdCAgICAgICB8ICA3 ICsrKysKIGluY2x1ZGUvZXJyb3IuaCAgICB8IDIzICsrKysrKysrKysrKysKIHNyYy9sZWdhY3kv ZXJyb3IuYyB8IDgwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKIDMgZmlsZXMgY2hhbmdlZCwgMTEwIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBpbmNsdWRlL2Vycm9yLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvbGVnYWN5L2Vycm9yLmMK CmRpZmYgLS1naXQgYS9keW5hbWljLmxpc3QgYi9keW5hbWljLmxpc3QKaW5kZXggZWUwZDM2M2Iu LmQ4ZjU3Yjg1IDEwMDY0NAotLS0gYS9keW5hbWljLmxpc3QKKysrIGIvZHluYW1pYy5saXN0CkBA IC00Miw0ICs0MiwxMSBAQCBfX3Byb2duYW1lOwogX19wcm9nbmFtZV9mdWxsOwogCiBfX3N0YWNr X2Noa19ndWFyZDsKKworZXJyb3JfcHJpbnRfcHJvZ25hbWU7CitlcnJvcl9tZXNzYWdlX2NvdW50 OworZXJyb3Jfb25lX3Blcl9saW5lOworX19lcnJvcl9wcmludF9wcm9nbmFtZTsKK19fZXJyb3Jf bWVzc2FnZV9jb3VudDsKK19fZXJyb3Jfb25lX3Blcl9saW5lOwogfTsKZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvZXJyb3IuaCBiL2luY2x1ZGUvZXJyb3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMC4uZDRlN2ZhZDYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2Vycm9yLmgK QEAgLTAsMCArMSwyMyBAQAorI2lmbmRlZiBfRVJST1JfSAorI2RlZmluZSBfRVJST1JfSAorCisj aW5jbHVkZSA8ZmVhdHVyZXMuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsK KyNlbmRpZgorCitleHRlcm4gdm9pZCAoKmVycm9yX3ByaW50X3Byb2duYW1lKSAodm9pZCk7Citl eHRlcm4gdW5zaWduZWQgaW50IGVycm9yX21lc3NhZ2VfY291bnQ7CitleHRlcm4gaW50IGVycm9y X29uZV9wZXJfbGluZTsKKwordm9pZCBlcnJvcihpbnQgc3RhdHVzLCBpbnQgZXJybnVtLCBjb25z dCBjaGFyICpmbXQsIC4uLik7Cit2b2lkIGVycm9yX2F0X2xpbmUoaW50IHN0YXR1cywgaW50IGVy cm51bSwKKyAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpmaWxlLCB1bnNpZ25lZCBpbnQg bGluZW51bSwKKyAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpmbXQsIC4uLik7CisKKyNp ZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2xl Z2FjeS9lcnJvci5jIGIvc3JjL2xlZ2FjeS9lcnJvci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwLi4yYjgyMDk1NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9sZWdhY3kvZXJy b3IuYwpAQCAtMCwwICsxLDgwIEBACisjaW5jbHVkZSA8ZXJyb3IuaD4KKyNpbmNsdWRlIDxzdGRh cmcuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUg PHN0cmluZy5oPgorI2luY2x1ZGUgInN0ZGlvX2ltcGwuaCIKKyNpbmNsdWRlICJsaWJjLmgiCisK K3ZvaWQgKCpfX2Vycm9yX3ByaW50X3Byb2duYW1lKSAodm9pZCkgPSAwOwordW5zaWduZWQgaW50 IF9fZXJyb3JfbWVzc2FnZV9jb3VudCA9IDA7CitpbnQgX19lcnJvcl9vbmVfcGVyX2xpbmUgPSAw OworCitzdGF0aWMgdW5zaWduZWQgaW50IHNhdmVkX2xpbmVudW0gPSAwOworc3RhdGljIGNvbnN0 IGNoYXIgKnNhdmVkX2ZpbGUgPSAwOworCitzdGF0aWMgdm9pZCBlcnJvcnYoaW50IHN0YXR1cywg aW50IGVycm51bSwKKwkJICAgY29uc3QgY2hhciAqZmlsZSwgdW5zaWduZWQgaW50IGxpbmVudW0s CisJCSAgIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcCkgeworCSsrX19lcnJvcl9tZXNzYWdl X2NvdW50OworCisJZmZsdXNoKHN0ZG91dCk7CisJRkxPQ0soc3RkZXJyKTsKKworCWlmIChfX2Vy cm9yX3ByaW50X3Byb2duYW1lKQorCQlfX2Vycm9yX3ByaW50X3Byb2duYW1lKCk7CisJZWxzZSB7 CisJCWZwcmludGYoc3RkZXJyLCAiJXM6IiwgX19wcm9nbmFtZV9mdWxsKTsKKwkJaWYgKCFmaWxl KQorCQkJZnB1dGMoJyAnLCBzdGRlcnIpOworCX0KKworCWlmIChmaWxlKQorCQlmcHJpbnRmKHN0 ZGVyciwgIiVzOiV1OiAiLCBmaWxlLCBsaW5lbnVtKTsKKworCXZmcHJpbnRmKHN0ZGVyciwgZm10 LCBhcCk7CisJaWYgKGVycm51bSkKKwkJZnByaW50ZihzdGRlcnIsICI6ICVzIiwgc3RyZXJyb3Io ZXJybnVtKSk7CisJZnB1dGMoJ1xuJywgc3RkZXJyKTsKKworCWZmbHVzaChzdGRlcnIpOworCUZV TkxPQ0soc3RkZXJyKTsKKworCWlmIChzdGF0dXMpCisJCWV4aXQoc3RhdHVzKTsKK30KKwordm9p ZCBfX2Vycm9yKGludCBzdGF0dXMsIGludCBlcnJudW0sIGNvbnN0IGNoYXIgKmZtdCwgLi4uKSB7 CisJdmFfbGlzdCBhcDsKKwl2YV9zdGFydChhcCwgZm10KTsKKwllcnJvcnYoc3RhdHVzLCBlcnJu dW0sIE5VTEwsIDAsIGZtdCwgYXApOworCXZhX2VuZChhcCk7Cit9CisKK3ZvaWQgX19lcnJvcl9h dF9saW5lKGludCBzdGF0dXMsIGludCBlcnJudW0sCisgICAgICAgICAgICAgICAgICAgICBjb25z dCBjaGFyICpmaWxlLCB1bnNpZ25lZCBpbnQgbGluZW51bSwKKyAgICAgICAgICAgICAgICAgICAg IGNvbnN0IGNoYXIgKmZtdCwgLi4uKSB7CisJaWYgKGVycm9yX29uZV9wZXJfbGluZSkgeworCQlp ZihzYXZlZF9saW5lbnVtID09IGxpbmVudW0gJiYgZmlsZSAhPSBOVUxMICYmCisJCSAgIHNhdmVk X2ZpbGUgIT0gTlVMTCAmJiAhc3RyY21wKGZpbGUsIHNhdmVkX2ZpbGUpKQorCQkJcmV0dXJuOwor CQlzYXZlZF9saW5lbnVtID0gbGluZW51bTsKKwkJLy8gQXNzdW1pbmcgdGhhdCB0aGUgbGlmZXRp bWUgb2YgdGhlIHBhc3NlZCBpbiBmaWxlIG5hbWUgZXh0ZW5kcworCQkvLyB1bnRpbCB0aGUgbmV4 dCBjYWxsIGlzIHJhdGhlciBxdWVzdGlvbmFibGUsIGJ1dCBhcHBlYXJzIHRvIGJlCisJCS8vIHRo ZSBleHBlY3RlZCBzZW1hbnRpY3MuCisJCXNhdmVkX2ZpbGUgPSBmaWxlOworCX0KKworCXZhX2xp c3QgYXA7CisJdmFfc3RhcnQoYXAsIGZtdCk7CisJZXJyb3J2KHN0YXR1cywgZXJybnVtLCBmaWxl LCBsaW5lbnVtLCBmbXQsIGFwKTsKKwl2YV9lbmQoYXApOworfQorCisKK3dlYWtfYWxpYXMoX19l cnJvcl9wcmludF9wcm9nbmFtZSwgZXJyb3JfcHJpbnRfcHJvZ25hbWUpOword2Vha19hbGlhcyhf X2Vycm9yX21lc3NhZ2VfY291bnQsIGVycm9yX21lc3NhZ2VfY291bnQpOword2Vha19hbGlhcyhf X2Vycm9yX29uZV9wZXJfbGluZSwgZXJyb3Jfb25lX3Blcl9saW5lKTsKKword2Vha19hbGlhcyhf X2Vycm9yLCBlcnJvcik7Cit3ZWFrX2FsaWFzKF9fZXJyb3JfYXRfbGluZSwgZXJyb3JfYXRfbGlu ZSk7Ci0tIAoyLjIyLjAuNjU3Lmc5NjBlOTJkMjRmLWdvb2cKCg== --0000000000009b0dae058e5124cc Content-Type: application/octet-stream; name="0001-Add-tests-for-error.h-functions.patch" Content-Disposition: attachment; filename="0001-Add-tests-for-error.h-functions.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jyfa2z2m1 RnJvbSA3NTEyNDdkMmNkY2YzZjY0YWEyN2RhMGRjOTgwMTE2OWI3OGFiZWM1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYW1lcyBZIEtuaWdodCA8anlrbmlnaHRAZ29vZ2xlLmNvbT4K RGF0ZTogTW9uLCAyMiBKdWwgMjAxOSAyMjo1NzozOSAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIEFk ZCB0ZXN0cyBmb3IgPGVycm9yLmg+IGZ1bmN0aW9ucy4KCi0tLQogc3JjL2Z1bmN0aW9uYWwvZXJy b3IuYyB8IDY4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBm aWxlIGNoYW5nZWQsIDY4IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvZnVu Y3Rpb25hbC9lcnJvci5jCgpkaWZmIC0tZ2l0IGEvc3JjL2Z1bmN0aW9uYWwvZXJyb3IuYyBiL3Ny Yy9mdW5jdGlvbmFsL2Vycm9yLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u ZTBiMDYzYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9mdW5jdGlvbmFsL2Vycm9yLmMKQEAgLTAs MCArMSw2OCBAQAorI2luY2x1ZGUgPGVycm9yLmg+CisKKyNpbmNsdWRlIDxlcnJuby5oPgorI2lu Y2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+ CisjaW5jbHVkZSA8c3lzL3dhaXQuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlICJ0 ZXN0LmgiCisKKyNkZWZpbmUgQVNTRVJUKGMpIGRvIHsgXAorCWVycm5vID0gMDsgXAorCWlmICgh KGMpKSB7IFwKKwkJdF9lcnJvcigiJXMgZmFpbGVkIChlcnJubzogJXMpXG4iLCAjYywgc3RyZXJy b3IoZXJybm8pKTsgXAorCQlleGl0KDEpOyBcCisJfSBcCit9IHdoaWxlKDApCisKK3ZvaWQgbXlf cHJpbnRfcHJvZ25hbWUodm9pZCkgeworCWZwdXRzKCJQcm9nbmFtZToiLCBzdGRlcnIpOworfQor Citjb25zdCBjaGFyICpleHBlY3RlZF9vdXRwdXQgPQorCQkic3JjL2Z1bmN0aW9uYWwvZXJyb3Iu ZXhlOiBUZXN0MVxuIgorCQkic3JjL2Z1bmN0aW9uYWwvZXJyb3IuZXhlOkZpbGU6NDQ6IFRlc3Qy IGhlbGxvXG4iCisJCSJQcm9nbmFtZTpGaWxlOjQ0OiBUZXN0MyA0XG4iCisJCSJQcm9nbmFtZTpU ZXN0NCBoZWxsbzogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeVxuIgorCQkiUHJvZ25hbWU6T3Ro ZXJGaWxlOjQ0OiBUZXN0NlxuIgorCQkiUHJvZ25hbWU6T3RoZXJGaWxlOjQ3OiBUZXN0N1xuIgor CQkiZXJyb3JfbWVzc2FnZV9jb3VudDo2XG4iCisJCSJQcm9nbmFtZTpMYXN0IGVycm9yXG4iOwor CitpbnQgbWFpbigpIHsKKyAgICAgICAgaW50IGZkLCBwaWQsIHN0YXR1czsKKwlpbnQgcGlwZWZk c1syXTsKKwlBU1NFUlQocGlwZShwaXBlZmRzKSA9PSAwKTsKKworCUFTU0VSVCgocGlkID0gZm9y aygpKSA+PSAwKTsKKwlpZiAocGlkID09IDApIHsKKwkJQVNTRVJUKGR1cDIocGlwZWZkc1sxXSwg MSkgPT0gMSk7CisJCUFTU0VSVChkdXAyKHBpcGVmZHNbMV0sIDIpID09IDIpOworCisJCWVycm9y KDAsIDAsICJUZXN0MSIpOworCQllcnJvcl9hdF9saW5lKDAsIDAsICJGaWxlIiwgNDQsICJUZXN0 MiAlcyIsICJoZWxsbyIpOworCisJCWVycm9yX3ByaW50X3Byb2duYW1lID0gbXlfcHJpbnRfcHJv Z25hbWU7CisKKwkJZXJyb3Jfb25lX3Blcl9saW5lID0gMTsKKwkJZXJyb3JfYXRfbGluZSgwLCAw LCAiRmlsZSIsIDQ0LCAiVGVzdDMgJWQiLCA0KTsKKwkJZXJyb3IoMCwgRU5PRU5ULCAiVGVzdDQg JXMiLCAiaGVsbG8iKTsKKwkJZXJyb3JfYXRfbGluZSgwLCAwLCAiRmlsZSIsIDQ0LCAiVGVzdDUg KHNraXBwZWQpIik7CisJCWVycm9yX2F0X2xpbmUoMCwgMCwgIk90aGVyRmlsZSIsIDQ0LCAiVGVz dDYiKTsKKwkJZXJyb3JfYXRfbGluZSgwLCAwLCAiT3RoZXJGaWxlIiwgNDcsICJUZXN0NyIpOwor CQlwcmludGYoImVycm9yX21lc3NhZ2VfY291bnQ6JWRcbiIsIGVycm9yX21lc3NhZ2VfY291bnQp OworCQllcnJvcig3NywgMCwgIkxhc3QgZXJyb3IiKTsKKwl9CisJQVNTRVJUKHdhaXRwaWQocGlk LCAmc3RhdHVzLCAwKSA9PSBwaWQpOworCUFTU0VSVChXSUZFWElURUQoc3RhdHVzKSAmJiBXRVhJ VFNUQVRVUyhzdGF0dXMpID09IDc3KTsKKworCWNoYXIgYnVmWzEwMDBdOworCXNzaXplX3QgY291 bnQ7CisJQVNTRVJUKChjb3VudCA9IHJlYWQocGlwZWZkc1swXSwgYnVmLCBzaXplb2YoYnVmKS0x KSkgPj0gMCk7CisJYnVmW2NvdW50XSA9IDA7CisJaWYgKHN0cmNtcChidWYsIGV4cGVjdGVkX291 dHB1dCkpIHsKKwkJdF9lcnJvcigiVW5leHBlY3RlZCBvdXRwdXQuIEdvdDpcbiVzXG4iLCBidWYp OworCX0KKwlyZXR1cm4gdF9zdGF0dXM7Cit9Ci0tIAoyLjIyLjAuNjU3Lmc5NjBlOTJkMjRmLWdv b2cKCg== --0000000000009b0dae058e5124cc--