[MacPorts] #35467: openldap @2.4.31 fails to upgrade
MacPorts
noreply at macports.org
Wed Aug 1 15:50:19 PDT 2012
#35467: openldap @2.4.31 fails to upgrade
--------------------------------------+-------------------------------------
Reporter: nonstop.server@… | Owner: landonf@…
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version: 2.1.2
Keywords: | Port: openldap
--------------------------------------+-------------------------------------
Comment(by Peter_Dyballa@…):
On a PPC Mac with just one processor I get as well the same error.
I think the error is caused from these lines (with line numbers, but TABs
removed by this input form) in
/opt/local/var/macports/build/_opt_local_var_macports_sources_lil.fr.rsync.macports.org_release_tarballs_ports_databases_openldap/openldap/work/openldap-2.4.31/libraries/libmdb/mdb.c:
{{{
211 #ifndef _WIN32
212 /** A flag for opening a file and requesting synchronous data
writes.
213 * This is only used when writing a meta page. It's not
strictly needed;
214 * we could just do a normal write and then immediately
perform a flush.
215 * But if this flag is available it saves us an extra system
call.
216 *
217 * @note If O_DSYNC is undefined but exists in /usr/include,
218 * preferably set some compiler flag to get the definition.
219 * Otherwise compile with the less efficient -DMDB_DSYNC=O_SYNC.
220 */
221 #ifndef MDB_DSYNC
222 # define MDB_DSYNC O_DSYNC
223 #endif
224 #endif
}}}
On my system I did not find a C header file with a valid definition of
O_DSYNC. In /usr/include/sys/aio.h I found this:
{{{
127 /*
128 * A aio_fsync() options
129 * that the calling thread is to continue execution while
130 * the lio_listio() operation is being performed, and no
131 * notification is given when the operation is complete
132 */
133
134 #ifndef O_SYNC /* XXX investigate documentation error */
135 #define O_SYNC 0x0080 /* queued IO is completed
as if by fsync() */
136 #endif
137 #if 0 /* O_DSYNC - NOT SUPPORTED */
138 #define O_DSYNC 0x1 /* queued async IO
is completed as if by fdatasync() */
139 #endif
}}}
So it seems we need to use -DMDB_DSYNC=O_SYNC…
--
Ticket URL: <https://trac.macports.org/ticket/35467#comment:4>
MacPorts <http://www.macports.org/>
Ports system for Mac OS
More information about the macports-tickets
mailing list