Out of memory error when compiling GnuPG 1.2.1 on AIX 5.2
Roberts, Iain I SITI-ITDGE12
iain.roberts at shell.com
Tue Apr 29 14:08:08 CEST 2003
I am trying to compile the latest source of GnuPG 1.2.1 on an AIX 5.2 server. I also have a similar problem running GnuPG 1.2.1. compiled under AIX 5.1 on my AIX 5.2 server.
I get the following error consistently at different times and on different servers.
At the suggestion of Mick Ohrberg I have used the following configure options which fixes another problem but not this one :
# CFLAGS="-g -O2 -mcpu=powerpc" ./configure --disable-asm
Here is the problem part of the output.
--------------------
cat ./../doc/HACKING ./../doc/DETAILS ./../doc/FAQ >plain-large
../g10/gpg --homedir . --quiet --yes --import ./pubdemo.asc
gpg: WARNING: unsafe ownership on homedir "."
gpg: out of memory while allocating 8192 bytes
make: 1254-004 The error code from the last command is 2.
Stop.
make: 1254-004 The error code from the last command is 1.
Stop.
make: 1254-004 The error code from the last command is 2.
Stop.
----------------------
I have also tried running gpg compiled on AIX 5.1 on my AIX 5.2 server. t works OK except when trying to encrypt as root. I get the following output fro truss. I notice that the final error is the same as in the compile.
This is run with no /dev/random device created and no egd running (works OK for non-root users).
# truss -t "lseek,close,statx,open" gpg -r edede -e /tmp/hello
statx("~/.gnupg", 0x2FF22868, 128, 010) Err#2 ENOENT
statx("//.gnupg/options", 0x2FF22868, 128, 010) = 0
statx("//.gnupg", 0x2FF228E8, 128, 010) = 0
open("//.gnupg/options", 0400000000) = 3
close(3) = 0
open("//.gnupg/secring.gpg", 0400000000) = 3
close(3) = 0
open("//.gnupg/pubring.gpg", 0400000000) = 3
close(3) = 0
open("//.gnupg/pubring.gpg", 0400000000) = 3
open("//.gnupg/pubring.gpg", 0400000000) = 4
open("//.gnupg/.#lk2000da18.pat0013.50520", 0400002401) = 5
close(5) = 0
open("//.gnupg/trustdb.gpg", 0400000002) = 5
open("/tmp/hello", 0400000000) = 6
open("/opt/freeware/share/locale/locale.alias", O_RDONLY) Err#2 ENOENT
open("/opt/gnupg121/usr/local/share/locale/en_US/LC_MESSAGES/gnupg.mo", O_RDONLY) Err#2 ENOENT
open("/opt/gnupg121/usr/local/share/locale/en/LC_MESSAGES/gnupg.mo", O_RDONLY) Err#2 ENOENT
open("/dev/tty", 0400000002) = 7
File `/tmp/hello.gpg' exists. Overwrite (y/N)? y
open("/tmp/hello.gpg", 0400001401) = 8
open("/tmp/hello", 0400000000) = 9
open("//.gnupg/random_seed", 0400000000) = 10
close(10) = 0
close(10) = 0
gpg: out of memory while allocating 8192 bytes
----------------------------------------------------------------------------------------------
Here is what seems to be relevant part of the output from a full truss
# truss gpg -r edede -e /tmp/hello
execve("/usr/local/bin/gpg", 0x2FF22B44, 0x2FF22B5C) argc: 5
. . . . .
open("//.gnupg/random_seed", 0400000000) = 10
fstatx(10, 0x2FF21400, 128, 010) = 0
kread(10, " ë T í Õ ¹ ± L [ R * J ù".., 600) = 600
close(10) = 0
_getpid() = 63010
times(0x2FF213A8) = 102946137
access("/dev/random", 04) Err#2 ENOENT
socket(1, 1, 0) = 10
connext(10, 0x2FF212B8, 18) Err#2 ENOENT
close(10) = 0>
appgetrusage(0, 0x2FF21690) = 0
times(0x2FF21638) = 102946137
appgetrusage(0, 0x2FF21660) = 0
times(0x2FF21608) = 102946138
appgetrusage(0, 0x2FF21568) = 0
times(0x2FF21510) = 102946138
fstatx(6, 0x2FF217A8, 128, 010) = 0
kwrite(8, "85010E03 û Z9712 3 w Î".., 273) = 273
appgetrusage(0, 0x2FF21590) = 0
times(0x2FF21538) = 102946149
kwrite(8, " Ò", 1) = 1
appgetrusage(0, 0x2FF214E8) = 0
times(0x2FF21490) = 102946149
appgetrusage(0, 0x2FF21580) = 0
times(0x2FF21528) = 102946149
sbrk(0x00010010) Err#12 ENOMEM
sbrk(0x00010010) Err#12 ENOMEM
sbrk(0x00004010) Err#12 ENOMEM
sbrk(0x00004010) Err#12 ENOMEM
sbrk(0x00003010) Err#12 ENOMEM
sbrk(0x00002010) Err#12 ENOMEM
sbrk(0x00002410) Err#12 ENOMEM
sbrk(0x00001810) Err#12 ENOMEM
sbrk(0x00002110) Err#12 ENOMEM
sbrk(0x00001610) Err#12 ENOMEM
sbrk(0x00002050) Err#12 ENOMEM
sbrk(0x00001550) Err#12 ENOMEM
sbrk(0x00002020) Err#12 ENOMEM
sbrk(0x00001520) Err#12 ENOMEM
gpgkwrite(2, " g p g", 3) = 3
: kwrite(2, " : ", 2) = 2
out of kwrite(2, " o u t o f ", 7) = 7
memory while allocating kwrite(2, " m e m o r y w h i l".., 25) = 25
8192kwrite(2, " 8 1 9 2", 4) = 4
bytes
kwrite(2, " b y t e s\n", 7) = 7
unlink("//.gnupg/.#lk2000da18.pat0013.63010") = 0
kfcntl(1, F_GETFL, 0x2000607C) = 67108866
kfcntl(2, F_GETFL, 0x00000000) = 67108866
_exit(2)
---------------------------------------------------------------------------------------
Here is the truss output if /dev/urandom and /dev/random do exist
. . . .
access("/dev/random", 04) = 0
access("/dev/random", 04) = 0
open("/dev/urandom", 0400000000) = 10
fstatx(10, 0x2FF1FF80, 128, 010) = 0
_select(11, 0x2FF20340, 0x00000000, 0x00000000, 0x2FF21340) (sleeping...)
_select(11, 0x2FF20340, 0x00000000, 0x00000000, 0x2FF21340) = 0
Not enough random bytes available. Please do some other work to give
the OS a chance to collect more entropy! (Need kwrite(7, "\n N o t e n o u g h ".., 118) = 118
16 more bytes)
kwrite(7, " 1 6 m o r e b y t e".., 15) = 15
kfcntl(7, F_GETFL, 0x2FF22FFC) = 67108866
_select(11, 0x2FF20340, 0x00000000, 0x00000000, 0x2FF21340) (sleeping...)
_select(11, 0x2FF20340, 0x00000000, 0x00000000, 0x2FF21340) = 0
_select(11, 0x2FF20340, 0x00000000, 0x00000000, 0x2FF21340) (sleeping...)
[CTRL-C at this point]
(Note : /dev/urandom does supply data which can be collected with dd).
Thanks,
Iain Roberts
0xF59AA56D3
More information about the Gnupg-devel
mailing list