[Date Prev][Date Next]
Re: (ITS#8034) lmdb-0.9.14 | Undefined symbols for architecture ppc: "_posix_memalign" referenced from _mdb_env_copyfd2 | ld: symbol(s) not found for architecture ppc
- To: openldap-its@OpenLDAP.org
- Subject: Re: (ITS#8034) lmdb-0.9.14 | Undefined symbols for architecture ppc: "_posix_memalign" referenced from _mdb_env_copyfd2 | ld: symbol(s) not found for architecture ppc
- From: email@example.com
- Date: Sat, 24 Jan 2015 00:40:17 +0000
- Auto-submitted: auto-generated (OpenLDAP-ITS)
On 23/01/15 18:10, firstname.lastname@example.org wrote:
>> LMDB should not be pulled separately from OpenLDAP. I.e., only the bundled
>> version of LMDB should be used with a given version of OpenLDAP.
> I've already had this conversation with the gentoo maintainers; they
> refuse to listen to reason. It's all their problem now.
Still, memalign() is a problem. mdb.c defines HAVE_MEMALIGN,
but it may be wrong for the user to -D"HAVE_MEMALIGN" since that
may omit whatever #include file declares it. <malloc/malloc.h>
(some Apple stuff I think), <malloc.h> dunno what else.
We could drop memalign. malloc(desired space + 1 OS page), then
adjust for alignment. On machines with a sane linear address
space where we can tell alignment from the address, anyway.
On weirder hosts, you care about them, omit alignment altogether
if posix_memalign is missing. And omit O_DIRECT/F_NOCACHE in
mdb_env_copy2(). I gather those are why we need alignment.
Branch "mdb/memalign" in <git://git.uio.no/u/hbf/openldap.git>
has draft code.
Daniel: You can try that branch, and configure with
I guess the preprocessor test should be "defined(a test for
Darwin: __APPLE__, _MACOSX_ or..?)" and not __PPC__. PowerPC is
an architecture, while features like posix_memalign are defined
by compilers/operating systems. The macports issue disables mdb
for Darwin. Or maybe not, I don't know Mac, Darwin, PPC or
Gentoo, or if you just said this has been resolved, so I'll stay
out of of that issue.