Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Oct 2022 14:54:59 +0200
From:      Kristof Provost <kp@FreeBSD.org>
To:        Konstantin Belousov <kostikbel@gmail.com>
Cc:        src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org
Subject:   Re: git: 9cabef3d146e - main - ldd: use direct exec mode unconditionally
Message-ID:  <DD8C0FC6-A66D-4652-BE34-5591A9670181@FreeBSD.org>
In-Reply-To: <Y1KVf9V4rhNmXe/R@kib.kiev.ua>
References:  <202210061550.296FoVrm088661@gitrepo.freebsd.org> <7F982005-246F-4607-A17B-08C81CE65E0B@FreeBSD.org> <Y1KVf9V4rhNmXe/R@kib.kiev.ua>

next in thread | previous in thread | raw e-mail | index | archive | help

--=_MailMate_F10CBA37-0676-48B6-A799-35DC2356068D_=
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 21 Oct 2022, at 14:50, Konstantin Belousov wrote:
> On Fri, Oct 21, 2022 at 02:18:04PM +0200, Kristof Provost wrote:
>> On 6 Oct 2022, at 17:50, Konstantin Belousov wrote:
>>> The branch main has been updated by kib:
>>>
>>> URL: =

>>> https://cgit.FreeBSD.org/src/commit/?id=3D9cabef3d146e9a844813b6bc895=
2d6cf2e9d45e5
>>>
>>> commit 9cabef3d146e9a844813b6bc8952d6cf2e9d45e5
>>> Author:     Konstantin Belousov <kib@FreeBSD.org>
>>> AuthorDate: 2022-09-21 13:55:44 +0000
>>> Commit:     Konstantin Belousov <kib@FreeBSD.org>
>>> CommitDate: 2022-10-06 15:50:26 +0000
>>>
>>>     ldd: use direct exec mode unconditionally
>>>
>>>     Trying to exec malformed or unusual binary, for instance, a
>>> non-FreeBSD
>>>     ABI, or using a non-standard interpreter, might give unexpected
>>> outcome.
>>>
>>>     Reported by:    The UK's National Cyber Security Centre (NCSC)
>>>     Reviewed by:    emaste, markj, philip
>>>     Discussed with: jhb
>>>     Sponsored by:   The FreeBSD Foundation
>>>     admbug: 991
>>>     PR:     127276, 175339, 231926
>>>     MFC after:      1 week
>>>     Differential revision:  https://reviews.freebsd.org/D36650
>>>
>> This appears to break things for armv7 (running on aarch64).
>>
>> This manifests while building pfsense (for 3100 / armv7), which we do =

>> on an
>> aarch64 vm (to avoid having to deal with qemu, and because it=E2=80=99=
s =

>> faster).
>>
>> During that build a couple ports fail to build, including =

>> databases/sqlite3.
>> It fails running `/usr/bin/ldd -a =

>> "/wrkdirs/usr/ports/databases/sqlite3/work-default/stage/usr/local/bin=
/sqlite3" =

>> "/wrkdirs/usr/ports/databases/sqlite3/work-default/stage/usr/local/lib=
/libsqlite3.so=E2=80=9D`,
>> which produces:
>>
>> 	ld-elf.so.1: =

>> /wrkdirs/usr/ports/databases/sqlite3/work-default/stage/usr/local/bin/=
sqlite3:
>> mmap of entire address space failed: Cannot allocate memory
>> 	/wrkdirs/usr/ports/databases/sqlite3/work-default/stage/usr/local/bin=
/sqlite3:
>> exit status 1
>>
>> That fails doing the `mapbase =3D mmap(base_addr, mapsize, PROT_NONE,
>> base_flags, -1, 0);` call in rtld-elf=E2=80=99s map_object():217. That=
 call =

>> does
>> `mmap(0x10000, 0x1dc000, PROT_NONE, 0x6010, -1, 0) =3D> 0xffffffff`.
>>
>> With this patch reverted we can build successfully.
>
> Can you manually invoke ldd on the binary under ktrace -i, and show me =

> the
> kdump output?
>
I might be doing something wrong:

	# ktrace -i /usr/obj/usr/src/arm.armv7/usr.bin/ldd/ldd -a =

"/wrkdirs/usr/ports/databases/sqlite3/work-default/stage/usr/local/bin/sq=
lite3"
	ld-elf.so.1: =

/wrkdirs/usr/ports/databases/sqlite3/work-default/stage/usr/local/bin/sql=
ite3: =

mmap of entire address space failed: Cannot allocate memory
	/wrkdirs/usr/ports/databases/sqlite3/work-default/stage/usr/local/bin/sq=
lite3: =

exit status 1
	# kdump -f ktrace.out
	    16 @      UNKNOWN(265)
	kdump: data too short
	#

Perhaps because this is running in a jail?

Here=E2=80=99s truss at least:

	# truss -f /usr/obj/usr/src/arm.armv7/usr.bin/ldd/ldd -a =

"/wrkdirs/usr/ports/databases/sqlite3/work-default/stage/usr/local/bin/sq=
lite3"
	95910: =

mmap(0x0,135168,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =3D =

1074327552 (0x4008f000)
	95910: mprotect(0x4007d000,4096,PROT_READ)	 =3D 0 (0x0)
	95910: issetugid()				 =3D 0 (0x0)
	95910: sigfastblock(0x1,0x4008df70)		 =3D 0 (0x0)
	95910: open("/etc/libmap.conf",O_RDONLY|O_CLOEXEC,01) =3D 3 (0x3)
	95910: fstat(3,{ mode=3D-rw-r--r-- ,inode=3D108965,size=3D47,blksize=3D4=
096 }) =

=3D 0 (0x0)
	95910: read(3,"# $FreeBSD$\nincludedir /usr/loc"...,47) =3D 47 (0x2f)
	95910: close(3)					 =3D 0 (0x0)
	95910: =

open("/usr/local/etc/libmap.d",O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC,=
0145) =

ERR#2 'No such file or directory'
	95910: open("/var/run/ld-elf.so.hints",O_RDONLY|O_CLOEXEC,0204411) =3D 3=
 =

(0x3)
	95910: read(3,"Ehnt\^A\0\0\0\M^@\0\0\0|\0\0\0\0"...,128) =3D 128 (0x80)
	95910: fstat(3,{ mode=3D-r--r--r-- ,inode=3D270241,size=3D252,blksize=3D=
4096 }) =

=3D 0 (0x0)
	95910: pread(3,"/lib:/usr/lib:/usr/lib/compat:/u"...,124,0x80) =3D 124 =

(0x7c)
	95910: close(3)					 =3D 0 (0x0)
	95910: =

open("/lib/libelf.so.2",O_RDONLY|O_CLOEXEC|O_VERIFY,010002250025) =3D 3 =

(0x3)
	95910: fstat(3,{ mode=3D-r--r--r-- ,inode=3D109043,size=3D88428,blksize=3D=
88576 =

}) =3D 0 (0x0)
	95910: mmap(0x0,4096,PROT_READ,MAP_PRIVATE|MAP_PREFAULT_READ,3,0x0) =3D =

1074028544 (0x40046000)
	95910: mmap(0x0,282624,PROT_NONE,MAP_GUARD,-1,0x0) =3D 1074462720 =

(0x400b0000)
	95910: =

mmap(0x400b0000,12288,PROT_READ,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE|MAP_PREF=
AULT_READ,3,0x0) =

=3D 1074462720 (0x400b0000)
	95910: =

mmap(0x400c2000,77824,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOCOR=
E|MAP_PREFAULT_READ,3,0x2000) =

=3D 1074536448 (0x400c2000)
	95910: =

mmap(0x400e4000,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_PREFA=
ULT_READ,3,0x14000) =

=3D 1074675712 (0x400e4000)
	95910: =

mmap(0x400f4000,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_PREFA=
ULT_READ,3,0x14000) =

=3D 1074741248 (0x400f4000)
	95910: munmap(0x40046000,4096)			 =3D 0 (0x0)
	95910: close(3)					 =3D 0 (0x0)
	95910: =

open("/lib/libgcc_s.so.1",O_RDONLY|O_CLOEXEC|O_VERIFY,010002250027) =3D 3=
 =

(0x3)
	95910: fstat(3,{ mode=3D-r--r--r-- ,inode=3D109245,size=3D44108,blksize=3D=
44544 =

}) =3D 0 (0x0)
	95910: mmap(0x0,4096,PROT_READ,MAP_PRIVATE|MAP_PREFAULT_READ,3,0x0) =3D =

1074028544 (0x40046000)
	95910: mmap(0x0,241664,PROT_NONE,MAP_GUARD,-1,0x0) =3D 1074745344 =

(0x400f5000)
	95910: =

mmap(0x400f5000,12288,PROT_READ,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE|MAP_PREF=
AULT_READ,3,0x0) =

=3D 1074745344 (0x400f5000)
	95910: =

mmap(0x40107000,36864,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOCOR=
E|MAP_PREFAULT_READ,3,0x2000) =

=3D 1074819072 (0x40107000)
	95910: =

mmap(0x4011f000,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_PREFA=
ULT_READ,3,0xa000) =

=3D 1074917376 (0x4011f000)
	95910: =

mmap(0x4012f000,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_PREFA=
ULT_READ,3,0xa000) =

=3D 1074982912 (0x4012f000)
	95910: munmap(0x40046000,4096)			 =3D 0 (0x0)
	95910: close(3)					 =3D 0 (0x0)
	95910: open("/lib/libc.so.7",O_RDONLY|O_CLOEXEC|O_VERIFY,010002250023) =

=3D 3 (0x3)
	95910: fstat(3,{ mode=3D-r--r--r-- =

,inode=3D109132,size=3D1708716,blksize=3D131072 }) =3D 0 (0x0)
	95910: mmap(0x0,4096,PROT_READ,MAP_PRIVATE|MAP_PREFAULT_READ,3,0x0) =3D =

1074028544 (0x40046000)
	95910: mmap(0x0,2056192,PROT_NONE,MAP_GUARD,-1,0x0) =3D 1074987008 =

(0x40130000)
	95910: =

mmap(0x40130000,294912,PROT_READ,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE|MAP_PRE=
FAULT_READ,3,0x0) =

=3D 1074987008 (0x40130000)
	95910: =

mmap(0x40187000,1388544,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOC=
ORE|MAP_PREFAULT_READ,3,0x47000) =

=3D 1075343360 (0x40187000)
	95910: =

mmap(0x402e9000,20480,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_PREF=
AULT_READ,3,0x199000) =

=3D 1076793344 (0x402e9000)
	95910: =

mmap(0x402fd000,16384,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_PREF=
AULT_READ,3,0x19d000) =

=3D 1076875264 (0x402fd000)
	95910: =

mmap(0x40301000,151552,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MAP_ANO=
N,-1,0x0) =

=3D 1076891648 (0x40301000)
	95910: munmap(0x40046000,4096)			 =3D 0 (0x0)
	95910: close(3)					 =3D 0 (0x0)
	95910: mprotect(0x402e9000,16384,PROT_READ)	 =3D 0 (0x0)
	95910: sysarch(ARM_SET_TP,0x4009f010)		 =3D 0 (0x0)
	95910: __sysctl("hw.10",2,0x40303698,0xffffcc78,0x0,0) ERR#2 'No such =

file or directory'
	95910: readlink("/etc/malloc.conf",0xffffc847,1024) ERR#2 'No such file =

or directory'
	95910: issetugid()				 =3D 0 (0x0)
	95910: =

mmap(0x0,2097152,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(21=
),-1,0x0) =

=3D 1077936128 (0x40400000)
	95910: clock_gettime(4,{ 80683.109657689 })	 =3D 0 (0x0)
	95910: clock_gettime(4,{ 80683.109707855 })	 =3D 0 (0x0)
	95910: clock_gettime(4,{ 80683.109765151 })	 =3D 0 (0x0)
	95910: =

mmap(0x0,20480,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),=
-1,0x0) =

=3D 1074028544 (0x40046000)
	95910: =

mmap(0x0,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),-=
1,0x0) =

=3D 1074049024 (0x4004b000)
	95910: =

openat(AT_FDCWD,"/wrkdirs/usr/ports/databases/sqlite3/work-default/stage/=
usr/local/bin/sqlite3",O_RDONLY|O_VERIFY,00) =

=3D 3 (0x3)
	95910: fstat(3,{ mode=3D-rwxr-xr-x ,inode=3D3021,size=3D1752272,blksize=3D=
4096 =

}) =3D 0 (0x0)
	95910: mmap(0x0,1752272,PROT_READ,MAP_PRIVATE,3,0x0) =3D 1080033280 =

(0x40600000)
	95910: =

mmap(0x0,12288,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),=
-1,0x0) =

=3D 1074053120 (0x4004c000)
	95910: =

mmap(0x0,28672,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),=
-1,0x0) =

=3D 1074192384 (0x4006e000)
	95910: =

mmap(0x0,12288,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),=
-1,0x0) =

=3D 1074065408 (0x4004f000)
	95910: munmap(0x40600000,1752272)		 =3D 0 (0x0)
	95910: close(3)					 =3D 0 (0x0)
	95910: =

mmap(0x0,20480,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),=
-1,0x0) =

=3D 1074221056 (0x40075000)
	95910: =

mmap(0x0,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),-=
1,0x0) =

=3D 1074077696 (0x40052000)
	95910: =

mmap(0x0,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),-=
1,0x0) =

=3D 1074081792 (0x40053000)
	95910: =

mmap(0x0,12288,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),=
-1,0x0) =

=3D 1074241536 (0x4007a000)
	95910: =

mmap(0x0,20480,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),=
-1,0x0) =

=3D 1074257920 (0x4007e000)
	95910: =

mmap(0x0,12288,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),=
-1,0x0) =

=3D 1074278400 (0x40083000)
	95910: =

mmap(0x0,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),-=
1,0x0) =

=3D 1074085888 (0x40054000)
	95910: =

mmap(0x0,28672,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNED(12),=
-1,0x0) =

=3D 1074290688 (0x40086000)
	95911: <new process>
	95910: fork()					 =3D 95911 (0x176a7)
	95911: execve("/libexec/ld-elf.so.1",0xffffda78,0x40054000) EJUSTRETURN
	95911: =

mmap(0x0,135168,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =3D =

1074126848 (0x4005e000)
	95911: mprotect(0x4e000,4096,PROT_READ)		 =3D 0 (0x0)
	95911: issetugid()				 =3D 0 (0x0)
	95911: =

open("/wrkdirs/usr/ports/databases/sqlite3/work-default/stage/usr/local/b=
in/sqlite3",O_RDONLY|O_CLOEXEC|O_VERIFY,00) =

=3D 3 (0x3)
	95911: fstat(3,{ mode=3D-rwxr-xr-x ,inode=3D3021,size=3D1752272,blksize=3D=
4096 =

}) =3D 0 (0x0)
	95911: geteuid()				 =3D 0 (0x0)
	95911: sigfastblock(0x1,0x5ef70)		 =3D 0 (0x0)
	95911: mmap(0x0,4096,PROT_READ,MAP_PRIVATE|MAP_PREFAULT_READ,3,0x0) =3D =

1074262016 (0x4007f000)
	95911: =

mmap(0x10000,1949696,PROT_NONE,MAP_FIXED|MAP_GUARD|MAP_EXCL,-1,0x0) =

ERR#12 'Cannot allocate memory'
	95911: munmap(0x4007f000,4096)			 =3D 0 (0x0)
	95911: close(3)					 =3D 0 (0x0)
	ld-elf.so.1: 95911: write(2,"ld-elf.so.1: ",13)		 =3D 13 (0xd)
	/wrkdirs/usr/ports/databases/sqlite3/work-default/stage/usr/local/bin/sq=
lite3: =

mmap of entire address space failed: Cannot allocate memory95911: =

write(2,"/wrkdirs/usr/ports/databases/sql"...,138) =3D 138 (0x8a)

	95911: write(2,"\n",1)				 =3D 1 (0x1)
	95911: exit(0x1)
	95911: process exit, rval =3D 1
	95910: wait4(-1,{ EXITED,val=3D1 },0x0,0x0)	 =3D 95911 (0x176a7)
	/wrkdirs/usr/ports/databases/sqlite3/work-default/stage/usr/local/bin/sq=
lite3: =

exit status 1
	95910: write(2,"/wrkdirs/usr/ports/databases/sql"...,93) =3D 93 (0x5d)
	95910: exit(0x1)
	95910: process exit, rval =3D 1

Best regards,
Kristof
--=_MailMate_F10CBA37-0676-48B6-A799-35DC2356068D_=
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE html>
<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/xhtml; charset=3Dutf-8"=
>
</head>
<body><div style=3D"font-family: sans-serif;"><div class=3D"markdown" sty=
le=3D"white-space: normal;">
<p dir=3D"auto">On 21 Oct 2022, at 14:50, Konstantin Belousov wrote:</p>
</div><div class=3D"plaintext" style=3D"white-space: normal;"><blockquote=
 style=3D"margin: 0 0 5px; padding-left: 5px; border-left: 2px solid #136=
BCE; color: #136BCE;"><p dir=3D"auto">On Fri, Oct 21, 2022 at 02:18:04PM =
+0200, Kristof Provost wrote:</p>
<blockquote style=3D"margin: 0 0 5px; padding-left: 5px; border-left: 2px=
 solid #136BCE; border-left-color: #4B89CF; color: #4B89CF;"><p dir=3D"au=
to">On 6 Oct 2022, at 17:50, Konstantin Belousov wrote:</p>
<blockquote style=3D"margin: 0 0 5px; padding-left: 5px; border-left: 2px=
 solid #136BCE; border-left-color: #4B89CF; color: #4B89CF;"><p dir=3D"au=
to">The branch main has been updated by kib:</p>
<p dir=3D"auto">URL: <a href=3D"https://cgit.FreeBSD.org/src/commit/?id=3D=
9cabef3d146e9a844813b6bc8952d6cf2e9d45e5">https://cgit.FreeBSD.org/src/co=
mmit/?id=3D9cabef3d146e9a844813b6bc8952d6cf2e9d45e5</a></p>
<p dir=3D"auto">commit 9cabef3d146e9a844813b6bc8952d6cf2e9d45e5
<br>
Author:     Konstantin Belousov &lt;kib@FreeBSD.org&gt;
<br>
AuthorDate: 2022-09-21 13:55:44 +0000
<br>
Commit:     Konstantin Belousov &lt;kib@FreeBSD.org&gt;
<br>
CommitDate: 2022-10-06 15:50:26 +0000</p>
<p dir=3D"auto">    ldd: use direct exec mode unconditionally</p>
<p dir=3D"auto">    Trying to exec malformed or unusual binary, for insta=
nce, a
<br>
non-FreeBSD
<br>
    ABI, or using a non-standard interpreter, might give unexpected
<br>
outcome.</p>
<p dir=3D"auto">    Reported by:    The UK's National Cyber Security Cent=
re (NCSC)
<br>
    Reviewed by:    emaste, markj, philip
<br>
    Discussed with: jhb
<br>
    Sponsored by:   The FreeBSD Foundation
<br>
    admbug: 991
<br>
    PR:     127276, 175339, 231926
<br>
    MFC after:      1 week
<br>
    Differential revision:  <a href=3D"https://reviews.freebsd.org/D36650=
">https://reviews.freebsd.org/D36650</a></p>;
</blockquote><p dir=3D"auto">This appears to break things for armv7 (runn=
ing on aarch64).</p>
<p dir=3D"auto">This manifests while building pfsense (for 3100 / armv7),=
 which we do on an
<br>
aarch64 vm (to avoid having to deal with qemu, and because it=E2=80=99s f=
aster).</p>
<p dir=3D"auto">During that build a couple ports fail to build, including=
 databases/sqlite3.
<br>
It fails running `/usr/bin/ldd -a "/wrkdirs/usr/ports/databases/sqlite3/w=
ork-default/stage/usr/local/bin/sqlite3" "/wrkdirs/usr/ports/databases/sq=
lite3/work-default/stage/usr/local/lib/libsqlite3.so=E2=80=9D`,
<br>
which produces:</p>
<p dir=3D"auto">	ld-elf.so.1: /wrkdirs/usr/ports/databases/sqlite3/work-d=
efault/stage/usr/local/bin/sqlite3:
<br>
mmap of entire address space failed: Cannot allocate memory
<br>
	/wrkdirs/usr/ports/databases/sqlite3/work-default/stage/usr/local/bin/sq=
lite3:
<br>
exit status 1</p>
<p dir=3D"auto">That fails doing the `mapbase =3D mmap(base_addr, mapsize=
, PROT_NONE,
<br>
base_flags, -1, 0);` call in rtld-elf=E2=80=99s map_object():217. That ca=
ll does
<br>
`mmap(0x10000, 0x1dc000, PROT_NONE, 0x6010, -1, 0) =3D&gt; 0xffffffff`.</=
p>
<p dir=3D"auto">With this patch reverted we can build successfully.</p>
</blockquote><p dir=3D"auto">Can you manually invoke ldd on the binary un=
der ktrace -i, and show me the
<br>
kdump output?</p>
<br></blockquote></div>
<div class=3D"markdown" style=3D"white-space: normal;">
<p dir=3D"auto">I might be doing something wrong:</p>
<pre style=3D"margin-left: 15px; margin-right: 15px; padding: 5px; border=
: thin solid gray; overflow-x: auto; max-width: 90vw; background-color: #=
E4E4E4;"><code style=3D"padding: 0 0.25em; background-color: #E4E4E4;"># =
ktrace -i /usr/obj/usr/src/arm.armv7/usr.bin/ldd/ldd -a &quot;/wrkdirs/us=
r/ports/databases/sqlite3/work-default/stage/usr/local/bin/sqlite3&quot;
ld-elf.so.1: /wrkdirs/usr/ports/databases/sqlite3/work-default/stage/usr/=
local/bin/sqlite3: mmap of entire address space failed: Cannot allocate m=
emory
/wrkdirs/usr/ports/databases/sqlite3/work-default/stage/usr/local/bin/sql=
ite3: exit status 1
# kdump -f ktrace.out
    16 @      UNKNOWN(265)
kdump: data too short
#
</code></pre>
<p dir=3D"auto">Perhaps because this is running in a jail?</p>
<p dir=3D"auto">Here=E2=80=99s truss at least:</p>
<pre style=3D"margin-left: 15px; margin-right: 15px; padding: 5px; border=
: thin solid gray; overflow-x: auto; max-width: 90vw; background-color: #=
E4E4E4;"><code style=3D"padding: 0 0.25em; background-color: #E4E4E4;"># =
truss -f /usr/obj/usr/src/arm.armv7/usr.bin/ldd/ldd -a &quot;/wrkdirs/usr=
/ports/databases/sqlite3/work-default/stage/usr/local/bin/sqlite3&quot;
95910: mmap(0x0,135168,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =
=3D 1074327552 (0x4008f000)
95910: mprotect(0x4007d000,4096,PROT_READ)	 =3D 0 (0x0)
95910: issetugid()				 =3D 0 (0x0)
95910: sigfastblock(0x1,0x4008df70)		 =3D 0 (0x0)
95910: open(&quot;/etc/libmap.conf&quot;,O_RDONLY|O_CLOEXEC,01) =3D 3 (0x=
3)
95910: fstat(3,{ mode=3D-rw-r--r-- ,inode=3D108965,size=3D47,blksize=3D40=
96 }) =3D 0 (0x0)
95910: read(3,&quot;# $FreeBSD$\nincludedir /usr/loc&quot;...,47) =3D 47 =
(0x2f)
95910: close(3)					 =3D 0 (0x0)
95910: open(&quot;/usr/local/etc/libmap.d&quot;,O_RDONLY|O_NONBLOCK|O_DIR=
ECTORY|O_CLOEXEC,0145) ERR#2 'No such file or directory'
95910: open(&quot;/var/run/ld-elf.so.hints&quot;,O_RDONLY|O_CLOEXEC,02044=
11) =3D 3 (0x3)
95910: read(3,&quot;Ehnt\^A\0\0\0\M^@\0\0\0|\0\0\0\0&quot;...,128) =3D 12=
8 (0x80)
95910: fstat(3,{ mode=3D-r--r--r-- ,inode=3D270241,size=3D252,blksize=3D4=
096 }) =3D 0 (0x0)
95910: pread(3,&quot;/lib:/usr/lib:/usr/lib/compat:/u&quot;...,124,0x80) =
=3D 124 (0x7c)
95910: close(3)					 =3D 0 (0x0)
95910: open(&quot;/lib/libelf.so.2&quot;,O_RDONLY|O_CLOEXEC|O_VERIFY,0100=
02250025) =3D 3 (0x3)
95910: fstat(3,{ mode=3D-r--r--r-- ,inode=3D109043,size=3D88428,blksize=3D=
88576 }) =3D 0 (0x0)
95910: mmap(0x0,4096,PROT_READ,MAP_PRIVATE|MAP_PREFAULT_READ,3,0x0) =3D 1=
074028544 (0x40046000)
95910: mmap(0x0,282624,PROT_NONE,MAP_GUARD,-1,0x0) =3D 1074462720 (0x400b=
0000)
95910: mmap(0x400b0000,12288,PROT_READ,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE|M=
AP_PREFAULT_READ,3,0x0) =3D 1074462720 (0x400b0000)
95910: mmap(0x400c2000,77824,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MA=
P_NOCORE|MAP_PREFAULT_READ,3,0x2000) =3D 1074536448 (0x400c2000)
95910: mmap(0x400e4000,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MA=
P_PREFAULT_READ,3,0x14000) =3D 1074675712 (0x400e4000)
95910: mmap(0x400f4000,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MA=
P_PREFAULT_READ,3,0x14000) =3D 1074741248 (0x400f4000)
95910: munmap(0x40046000,4096)			 =3D 0 (0x0)
95910: close(3)					 =3D 0 (0x0)
95910: open(&quot;/lib/libgcc_s.so.1&quot;,O_RDONLY|O_CLOEXEC|O_VERIFY,01=
0002250027) =3D 3 (0x3)
95910: fstat(3,{ mode=3D-r--r--r-- ,inode=3D109245,size=3D44108,blksize=3D=
44544 }) =3D 0 (0x0)
95910: mmap(0x0,4096,PROT_READ,MAP_PRIVATE|MAP_PREFAULT_READ,3,0x0) =3D 1=
074028544 (0x40046000)
95910: mmap(0x0,241664,PROT_NONE,MAP_GUARD,-1,0x0) =3D 1074745344 (0x400f=
5000)
95910: mmap(0x400f5000,12288,PROT_READ,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE|M=
AP_PREFAULT_READ,3,0x0) =3D 1074745344 (0x400f5000)
95910: mmap(0x40107000,36864,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MA=
P_NOCORE|MAP_PREFAULT_READ,3,0x2000) =3D 1074819072 (0x40107000)
95910: mmap(0x4011f000,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MA=
P_PREFAULT_READ,3,0xa000) =3D 1074917376 (0x4011f000)
95910: mmap(0x4012f000,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|MA=
P_PREFAULT_READ,3,0xa000) =3D 1074982912 (0x4012f000)
95910: munmap(0x40046000,4096)			 =3D 0 (0x0)
95910: close(3)					 =3D 0 (0x0)
95910: open(&quot;/lib/libc.so.7&quot;,O_RDONLY|O_CLOEXEC|O_VERIFY,010002=
250023) =3D 3 (0x3)
95910: fstat(3,{ mode=3D-r--r--r-- ,inode=3D109132,size=3D1708716,blksize=
=3D131072 }) =3D 0 (0x0)
95910: mmap(0x0,4096,PROT_READ,MAP_PRIVATE|MAP_PREFAULT_READ,3,0x0) =3D 1=
074028544 (0x40046000)
95910: mmap(0x0,2056192,PROT_NONE,MAP_GUARD,-1,0x0) =3D 1074987008 (0x401=
30000)
95910: mmap(0x40130000,294912,PROT_READ,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE|=
MAP_PREFAULT_READ,3,0x0) =3D 1074987008 (0x40130000)
95910: mmap(0x40187000,1388544,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|=
MAP_NOCORE|MAP_PREFAULT_READ,3,0x47000) =3D 1075343360 (0x40187000)
95910: mmap(0x402e9000,20480,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|M=
AP_PREFAULT_READ,3,0x199000) =3D 1076793344 (0x402e9000)
95910: mmap(0x402fd000,16384,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|M=
AP_PREFAULT_READ,3,0x19d000) =3D 1076875264 (0x402fd000)
95910: mmap(0x40301000,151552,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED|=
MAP_ANON,-1,0x0) =3D 1076891648 (0x40301000)
95910: munmap(0x40046000,4096)			 =3D 0 (0x0)
95910: close(3)					 =3D 0 (0x0)
95910: mprotect(0x402e9000,16384,PROT_READ)	 =3D 0 (0x0)
95910: sysarch(ARM_SET_TP,0x4009f010)		 =3D 0 (0x0)
95910: __sysctl(&quot;hw.10&quot;,2,0x40303698,0xffffcc78,0x0,0) ERR#2 'N=
o such file or directory'
95910: readlink(&quot;/etc/malloc.conf&quot;,0xffffc847,1024) ERR#2 'No s=
uch file or directory'
95910: issetugid()				 =3D 0 (0x0)
95910: mmap(0x0,2097152,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALI=
GNED(21),-1,0x0) =3D 1077936128 (0x40400000)
95910: clock_gettime(4,{ 80683.109657689 })	 =3D 0 (0x0)
95910: clock_gettime(4,{ 80683.109707855 })	 =3D 0 (0x0)
95910: clock_gettime(4,{ 80683.109765151 })	 =3D 0 (0x0)
95910: mmap(0x0,20480,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGN=
ED(12),-1,0x0) =3D 1074028544 (0x40046000)
95910: mmap(0x0,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNE=
D(12),-1,0x0) =3D 1074049024 (0x4004b000)
95910: openat(AT_FDCWD,&quot;/wrkdirs/usr/ports/databases/sqlite3/work-de=
fault/stage/usr/local/bin/sqlite3&quot;,O_RDONLY|O_VERIFY,00) =3D 3 (0x3)=

95910: fstat(3,{ mode=3D-rwxr-xr-x ,inode=3D3021,size=3D1752272,blksize=3D=
4096 }) =3D 0 (0x0)
95910: mmap(0x0,1752272,PROT_READ,MAP_PRIVATE,3,0x0) =3D 1080033280 (0x40=
600000)
95910: mmap(0x0,12288,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGN=
ED(12),-1,0x0) =3D 1074053120 (0x4004c000)
95910: mmap(0x0,28672,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGN=
ED(12),-1,0x0) =3D 1074192384 (0x4006e000)
95910: mmap(0x0,12288,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGN=
ED(12),-1,0x0) =3D 1074065408 (0x4004f000)
95910: munmap(0x40600000,1752272)		 =3D 0 (0x0)
95910: close(3)					 =3D 0 (0x0)
95910: mmap(0x0,20480,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGN=
ED(12),-1,0x0) =3D 1074221056 (0x40075000)
95910: mmap(0x0,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNE=
D(12),-1,0x0) =3D 1074077696 (0x40052000)
95910: mmap(0x0,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNE=
D(12),-1,0x0) =3D 1074081792 (0x40053000)
95910: mmap(0x0,12288,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGN=
ED(12),-1,0x0) =3D 1074241536 (0x4007a000)
95910: mmap(0x0,20480,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGN=
ED(12),-1,0x0) =3D 1074257920 (0x4007e000)
95910: mmap(0x0,12288,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGN=
ED(12),-1,0x0) =3D 1074278400 (0x40083000)
95910: mmap(0x0,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGNE=
D(12),-1,0x0) =3D 1074085888 (0x40054000)
95910: mmap(0x0,28672,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON|MAP_ALIGN=
ED(12),-1,0x0) =3D 1074290688 (0x40086000)
95911: &lt;new process&gt;
95910: fork()					 =3D 95911 (0x176a7)
95911: execve(&quot;/libexec/ld-elf.so.1&quot;,0xffffda78,0x40054000) EJU=
STRETURN
95911: mmap(0x0,135168,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) =
=3D 1074126848 (0x4005e000)
95911: mprotect(0x4e000,4096,PROT_READ)		 =3D 0 (0x0)
95911: issetugid()				 =3D 0 (0x0)
95911: open(&quot;/wrkdirs/usr/ports/databases/sqlite3/work-default/stage=
/usr/local/bin/sqlite3&quot;,O_RDONLY|O_CLOEXEC|O_VERIFY,00) =3D 3 (0x3)
95911: fstat(3,{ mode=3D-rwxr-xr-x ,inode=3D3021,size=3D1752272,blksize=3D=
4096 }) =3D 0 (0x0)
95911: geteuid()				 =3D 0 (0x0)
95911: sigfastblock(0x1,0x5ef70)		 =3D 0 (0x0)
95911: mmap(0x0,4096,PROT_READ,MAP_PRIVATE|MAP_PREFAULT_READ,3,0x0) =3D 1=
074262016 (0x4007f000)
95911: mmap(0x10000,1949696,PROT_NONE,MAP_FIXED|MAP_GUARD|MAP_EXCL,-1,0x0=
) ERR#12 'Cannot allocate memory'
95911: munmap(0x4007f000,4096)			 =3D 0 (0x0)
95911: close(3)					 =3D 0 (0x0)
ld-elf.so.1: 95911: write(2,&quot;ld-elf.so.1: &quot;,13)		 =3D 13 (0xd)
/wrkdirs/usr/ports/databases/sqlite3/work-default/stage/usr/local/bin/sql=
ite3: mmap of entire address space failed: Cannot allocate memory95911: w=
rite(2,&quot;/wrkdirs/usr/ports/databases/sql&quot;...,138) =3D 138 (0x8a=
)

95911: write(2,&quot;\n&quot;,1)				 =3D 1 (0x1)
95911: exit(0x1)
95911: process exit, rval =3D 1
95910: wait4(-1,{ EXITED,val=3D1 },0x0,0x0)	 =3D 95911 (0x176a7)
/wrkdirs/usr/ports/databases/sqlite3/work-default/stage/usr/local/bin/sql=
ite3: exit status 1
95910: write(2,&quot;/wrkdirs/usr/ports/databases/sql&quot;...,93) =3D 93=
 (0x5d)
95910: exit(0x1)
95910: process exit, rval =3D 1
</code></pre>
<p dir=3D"auto">Best regards,<br>
Kristof</p>

</div>
</div>
</body>

</html>

--=_MailMate_F10CBA37-0676-48B6-A799-35DC2356068D_=--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?DD8C0FC6-A66D-4652-BE34-5591A9670181>