Building on OS X Lion

Nicholas Cole nicholas.cole at gmail.com
Mon Jul 25 22:58:46 CEST 2011


On Mon, Jul 25, 2011 at 5:10 PM, David Shaw <dshaw at jabberwocky.com> wrote:
> On Jul 25, 2011, at 11:40 AM, Nicholas Cole wrote:
>
>> On Mon, Jul 25, 2011 at 4:38 PM, Nicholas Cole <nicholas.cole at gmail.com> wrote:
>>> On Mon, Jul 25, 2011 at 11:31 AM, Nicholas Cole <nicholas.cole at gmail.com> wrote:
>>>> Dear List,
>>>>
>>>> Building 1.4.11 on OS X Lion (Intel Core 2 Duo) fails with the following error:
>>>>
>>>> Is this a known problem?
>>>
>>> My mistake - I think I might have had some 3rd party libraries
>>> confusing the build process!
>>
>> But a rebuilt gpg is still failing with this error:
>>
>> nicholas$ gpg --card-status
>> gpg(97903) malloc: *** mmap(size=2608166010582208512) failed (error code=12)
>> *** error: can't allocate region
>> *** set a breakpoint in malloc_error_break to debug
>> gpg: out of  memory while allocating 26 bytes
>
> Interesting.  2608166010582208512 in binary is 10010000110010000100010010101100000000000000000001000000000000.  Looks like the lower 32 bits are correct (being equal to 4096, which makes sense in this context), but the upper 32 bits are uninitialized or otherwise mangled.
>
> I haven't upgraded to Lion yet, so I can't easily run this myself, but can you get a backtrace via gdb?  Just run gpg under gdb, and "break malloc_error_break", then "run --card-status".  It'll stop at the breakpoint, and you can then do "bt full".

Dear David,

I hope that the following output is useful!

Best wishes,

Nicholas

Macintosh-2:gnupg-1.4.11 nicholas$ gdb ./g10/gpg
GNU gdb 6.3.50-20050815 (Apple version gdb-1705) (Fri Jul  1 10:50:06 UTC 2011)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin"...Reading symbols for
shared libraries ...... done

(gdb) break malloc_error_break
Function "malloc_error_break" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 1 (malloc_error_break) pending.
(gdb) run --card-status
Starting program: /Users/nicholas/Downloads/gnupg-1.4.11/g10/gpg --card-status
Reading symbols for shared libraries +++++............................... done
Breakpoint 1 at 0x7fff8f0606c0
Pending breakpoint 1 - "malloc_error_break" resolved
Reading symbols for shared libraries . done
gpg(20035) malloc: *** mmap(size=2608166010582208512) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug

Breakpoint 1, 0x00007fff8f0606c0 in malloc_error_break ()
(gdb) bt full
#0  0x00007fff8f0606c0 in malloc_error_break ()
No symbol table info available.
#1  0x00007fff8f023477 in szone_error ()
No symbol table info available.
#2  0x00007fff8f025404 in allocate_pages ()
No symbol table info available.
#3  0x00007fff8f025ba4 in large_malloc ()
No symbol table info available.
#4  0x00007fff8f02bdee in szone_malloc_should_clear ()
No symbol table info available.
#5  0x00007fff8f0603c8 in malloc_zone_malloc ()
No symbol table info available.
#6  0x00007fff8f0611a4 in malloc ()
No symbol table info available.
#7  0x000000010009aaad in xmalloc (n=4296171520) at memory.c:443
	p = 0x0
#8  0x00000001000417f2 in open_pcsc_reader_direct [inlined] () at apdu.c:1499
	nreader = 2608166010582204441
	slot = 0
	err = 0
	list = 0x0
#9  0x00000001000417f2 in open_pcsc_reader [inlined] () at
/Users/nicholas/Downloads/gnupg-1.4.11/g10/apdu.c:1785
	nreader = 2608166010582204441
	slot = 0
	err = 0
	list = 0x0
#10 0x00000001000417f2 in apdu_open_reader (portstr=0x0) at apdu.c:2463
	nreader = 2608166010582204441
	slot = 0
	err = 0
	list = 0x0
#11 0x000000010002d339 in open_card () at cardglue.c:453
No locals.
#12 0x000000010002f323 in agent_learn (info=0x7fff5fbff0f0) at cardglue.c:874
	stamp = 140735592927652
	serial = 0x7fff5fbff0b0 ""
	app = (app_t) 0x0
	ctrl = {
  status_cb = 0x10012a268,
  status_cb_arg = 0xa8
}
	rc = <value temporarily unavailable, due to optimizations>
#13 0x0000000100030e50 in card_status (fp=0x7fff7ca664e8,
serialno=0x0, serialnobuflen=0) at card-util.c:369
	info = {
  error = 1221232,
  apptype = 0x100129a00 "",
  serialno = 0xffffffffffffffe0 <Address 0xffffffffffffffe0 out of bounds>,
  disp_name = 0x5 <Address 0x5 out of bounds>,
  disp_lang = 0x100126000 "",
  disp_sex = 8192,
  pubkey_url = 0x7fff5fbff1b0 "",
  login_data = 0x7fff8f0275c3 "A??P\b",
  private_do = {0x1002fc080 "", 0xad <Address 0xad out of bounds>,
0x0, 0x40000000 <Address 0x40000000 out of bounds>},
  cafpr1valid = -32 '?',
  cafpr2valid = -15 '?',
  cafpr3valid = -65 '?',
  cafpr1 = "_?\000\000?u\002??\000\000??/\000\001\000",
  cafpr2 = "\000?\000\000\000\000\000\000\000\000\000
\000\001\000\000\000?\000",
  cafpr3 = "\000\000\000\000\000\000\000
\000\001\000\000\000@\000\000\000\000\000",
  fpr1valid = 0 '\0',
  fpr2valid = 1 '\001',
  fpr3valid = 0 '\0',
  fpr1 = "\000\000\000\000\000\000? \000\001\000\000\000\000\000 \000\001",
  fpr2 = "\000\000?? \000\001\000\000\000\000`\022\000\001\000\000\000??",
  fpr3 = " \000\001\000\000\000\b? \000\001\000\000\000\000\000\000\000\000",
  fpr1time = 1204224,
  fpr2time = 1,
  fpr3time = 64,
  sig_counter = 140734799802928,
  chv1_cached = -1895430263,
  is_v2 = 32767,
  chvmaxlen = {0, 0, 0},
  chvretry = {0, 64, 0},
  key_attr = {{
      algo = 0,
      nbits = 0
    }, {
      algo = 2140680,
      nbits = 1
    }, {
      algo = 0,
      nbits = 0
    }},
  extcap = {
    ki = 0,
    aac = 0
  }
}
	uval = 0
	rc = 2140680
	thefpr = (const unsigned char *) 0x0
#14 0x0000000100007b19 in main (argc=0, argv=0x7fff5fbff970) at gpg.c:3926
	remusr = (STRLIST) 0x0
	nrings = (STRLIST) 0x0
	configname = 0x0
	sl = (STRLIST) 0x0
	cmd = aCardStatus
	orig_argc = 2
	default_configname = 0x0
	locusr = (STRLIST) 0x0
	sec_nrings = (STRLIST) 0x0
	configlineno = 228
	orig_argv = (char **) 0x7fff5fbff960
	a = (IOBUF) 0x0
	pargs = {
  argc = 0x7fff5fbff61c,
  argv = 0x7fff5fbff610,
  flags = 32769,
  err = 0,
  r_opt = 0,
  r_type = 0,
  r = {
    ret_int = 0,
    ret_long = 0,
    ret_ulong = 0,
    ret_str = 0x0
  },
  internal = {
    idx = 2,
    inarg = 0,
    stopped = 0,
    last = 0x7fff5fbffab7 "--card-status",
    aliases = 0x0,
    cur_alias = 0x0
  }
}
	may_coredump = 0
	afx = {
  refcount = 0,
  what = 0,
  only_keyblocks = 0,
  hdrlines = 0x0,
  no_openpgp_data = 0,
  inp_checked = 0,
  inp_bypass = 0,
  in_cleartext = 0,
  not_dash_escaped = 0,
  hashes = 0,
  faked = 0,
  truncated = 0,
  qp_detected = 0,
  pgp2mode = 0,
  eol = "\000\000",
  buffer = 0x0,
  buffer_size = 0,
  buffer_len = 0,
  buffer_pos = 0,
  radbuf = "\000\000\000",
  idx = 0,
  idx2 = 0,
  crc = 0,
  status = 0,
  cancel = 0,
  any_data = 0,
  pending_lf = 0
}
	rc = 0
(gdb)



More information about the Gnupg-devel mailing list