From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/10235 Path: news.gmane.org!not-for-mail From: Daniel Wilkerson Newsgroups: gmane.linux.lib.musl.general Subject: request for help with aux Date: Mon, 27 Jun 2016 13:07:59 -0700 Message-ID: Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-Trace: ger.gmane.org 1467058181 12601 80.91.229.3 (27 Jun 2016 20:09:41 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 27 Jun 2016 20:09:41 +0000 (UTC) Cc: Mark Winterrowd To: musl@lists.openwall.com Original-X-From: musl-return-10248-gllmg-musl=m.gmane.org@lists.openwall.com Mon Jun 27 22:09:38 2016 Return-path: Envelope-to: gllmg-musl@m.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1bHcqg-0002xs-7K for gllmg-musl@m.gmane.org; Mon, 27 Jun 2016 22:09:38 +0200 Original-Received: (qmail 7774 invoked by uid 550); 27 Jun 2016 20:09:35 -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 7497 invoked from network); 27 Jun 2016 20:08:40 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to:cc; bh=yTNE9b2XvmVUHv+J2hgulfYpDjups93OKTSo+Bne5Lo=; b=Ix389ADhLRcyDkVaL4htCG28o5CM7Sq2Vb0pv+LZxuSzsLak0vGLWxsLqHZHaCGVSN kVTmIJBrBDhoPgM7VvUpPVeOsoqAO59T8VoBok34AXM0oRjzNws7DCkOtJtNhY/tiyAh Gx+y3NvOJSQRTYeQF0alTG+1HFW/4XdYlCSdUrHG7iC2HMed3tZPL410Tw+Ea+/sNTv8 KHvWGfJa0rlwNErVQJB4aTmNlI1NYp/NYpLNYS1fHn7FkEfI0bI8z4KScJKW6tHMDtPP bxZ9776JDNisByJ2dOgFY3KECOxWYf6/UlSM5dwOWVJKtCgOyn4zZJpXyuNVdw+EIAOt WxRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=yTNE9b2XvmVUHv+J2hgulfYpDjups93OKTSo+Bne5Lo=; b=fGVUxWlrE9VjHW/GiqghaBF8+XU/9Uc+8BNwu6sYxTNyZvGJnRH7KnyqGQCkM0UyAn qWWapn6frn5543NeHP99P+CpmDTBxMO6LhzpZx9vKnSHRa2i8+hhVxm+pDnxMKkli0y2 OkyqWtp2jh8RBoDNc6BLIfj93bEtXsVGoVLmmeqdAo/6N0WAa5+i1IurCge+2Wc5Zwpk wpkxh6P4DEVsxKHHK2d771WNU1BlF58en5z7GGD6SFmrOf40iM+hF9lj2eXTnV/65D8E 5YurSDA3NNZj7UlwbI7ZPAwEN46a8c86rrZjE1DVvvw/Se35wAhO1fP3G/EisfAFhIkh Fb+w== X-Gm-Message-State: ALyK8tIKHigT0qPz1KcVhnOPjPc2HiQPHKSQrQHoCKW/s3582BiwAHYkJ/TAvIbhRgFu2MeLHi1KyTwlxN/WkA== X-Received: by 10.129.102.195 with SMTP id a186mr12635530ywc.76.1467058109047; Mon, 27 Jun 2016 13:08:29 -0700 (PDT) Xref: news.gmane.org gmane.linux.lib.musl.general:10235 Archived-At: The musl crt0 code seems to expect that when the process starts that the stack pointer points to a data page having the following four data structures immediately contiguous: argc, argv, env, aux. I'm writing a loader for musl-riscv and I need to know how to initialize this data. The only one I wonder about is the aux array. It seems that aux is a collection of name/value pairs which are used as follows in musl-riscv/src/env/__libc_start_main.c: void __init_libc(char **envp, char *pn) { size_t i, *auxv, aux[AUX_CNT] = { 0 }; __environ = envp; for (i=0; envp[i]; i++); libc.auxv = auxv = (void *)(envp+i+1); for (i=0; auxv[i]; i+=2) if (auxv[i]