From owner-freebsd-amd64@FreeBSD.ORG Fri Jan 16 08:41:40 2009 Return-Path: Delivered-To: amd64@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5B13C1065672; Fri, 16 Jan 2009 08:41:40 +0000 (UTC) (envelope-from yanefbsd@gmail.com) Received: from mail-bw0-f20.google.com (mail-bw0-f20.google.com [209.85.218.20]) by mx1.freebsd.org (Postfix) with ESMTP id 7CC4D8FC2B; Fri, 16 Jan 2009 08:41:39 +0000 (UTC) (envelope-from yanefbsd@gmail.com) Received: by bwz13 with SMTP id 13so5155316bwz.19 for ; Fri, 16 Jan 2009 00:41:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:cc:content-type:content-transfer-encoding; bh=YAEQoVT7GNzyxuqW1SNDHZBtvVbXJhG7DWwJEp6RNSY=; b=eHrnRJr+vtmRFQVKwi+YtKTNx7yxK30dEHZR7vymlJ2TikyFHzRuKObNAdMLf2aKw0 WHiyDMU3KcHeyfOM8FoRD7JzXt71I2zjZxOPzdzw2McWhuNQEzOpdO9wk4D+sJfjkHN4 yDko7MxalU9RaKOwr+r7nTgKHRfIGz44C3Rkc= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=fdZXO7Ll9tSI5F2Tmx80h+h4SxhcpL5NzbSX81sQKFPJEo7B4l3n5hskih0v8OTOqr Tb4guzjFWlHzPUyNI5p8w0HxNOB6x13S3+87UzHdiZ2TeHXRlY38Cdt2QTKBYhvfHfXj dshBcMtXrNOKGfyqxsSsEJ6CYVBPKJldXCbUI= MIME-Version: 1.0 Received: by 10.181.135.5 with SMTP id m5mr764556bkn.87.1232095297847; Fri, 16 Jan 2009 00:41:37 -0800 (PST) Date: Fri, 16 Jan 2009 00:41:37 -0800 Message-ID: <7d6fde3d0901160041n55466290l55f737d274a40895@mail.gmail.com> From: Garrett Cooper To: Hackers freeBSD Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Mailman-Approved-At: Fri, 16 Jan 2009 12:22:56 +0000 Cc: "amd64@freebsd.org" Subject: Confused by segfault with legitimate call to strerror(3) on amd64 / sysctl(3) setting `odd' errno's X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Jan 2009 08:41:40 -0000 Hi amd64 and Hackers, Uh, I'm really confused why 1) this error (errno => ENOMEM) would occur when I have more than enough free memory (both on x86 and amd64) and 2) why strerror would segfault in the call to errx in the attached sourcefile on amd64 only. Not initializing len causes the second output sample (errno => 14, which is EFAULT). Any ideas? Please CC me if mailing on amd64@ as I'm not subscribed to the list. Thanks, -Garrett /* Program */ #include #include #include #include #include int main() { int mib[4]; size_t len; if (sysctlnametomib("kern.ipc.shmmax", mib, &len) != 0) { printf("Errno: %d\n", errno); errx(errno, "Error: %s", strerror(errno)); } printf("%lu\n", len); return 0; } # output for len preset to 0: [gcooper@optimus ~]$ ./test2 Errno: 12 test2: Segmentation fault: 11 (core dumped) [gcooper@optimus ~]$ uname -a FreeBSD optimus.gateway.2wire.net 8.0-CURRENT FreeBSD 8.0-CURRENT #4: Sun Jan 11 12:30:31 PST 2009 root@optimus.gateway.2wire.net:/usr/obj/usr/src/sys/OPTIMUS amd64 [gcooper@orangebox /usr/home/gcooper]$ ./test Errno: 12 test: Error: Cannot allocate memory [gcooper@orangebox /usr/home/gcooper]$ uname -a FreeBSD orangebox.gateway.2wire.net 8.0-CURRENT FreeBSD 8.0-CURRENT #4: Sat Jan 3 22:54:52 PST 2009 gcooper@orangebox.gateway.2wire.net:/usr/obj/usr/src/sys/ORANGEBOX i386 # output for len not preset to 0: [gcooper@optimus ~]$ ./test2 Errno: 14 test2: Segmentation fault: 11 (core dumped)