compile error on Mac OS X 10.3 (Panther) and the patch

js ebgssth at gmail.com
Fri Oct 26 14:14:47 UTC 2007


Hi Dormando,

> Do you (or anyone offhand) know of how to detect OS X before 10.4? It
> seems wrong to define it for the whole apple platform.

Maybe like this? (Code from python-2.4.3/Modules/getpath.c)

#ifdef __APPLE__
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4
bla bla bla
#else
bla bla bla
#endif


On 10/26/07, dormando <dormando at rydia.net> wrote:
> It is, sorry!
>
> I ... don't have an OS X 10.3 machine to test this with, though I have
> two 10.4's, which I should use to make sure it still works.
>
> Do you (or anyone offhand) know of how to detect OS X before 10.4? It
> seems wrong to define it for the whole apple platform.
>
> If not we might merge it anyway, but I'll merge it sooner if someone
> satisfies my OCD nitpick!
>
> -Dormando
>
> js wrote:
> > Isn't here a good place to submit a patch?
> > If so, could you lead me to the right place please?
> >
> > On 10/21/07, js <ebgssth at gmail.com> wrote:
> >> Hi,
> >>
> >> Compiling memcached(svn trunk ver) failed with these errors.
> >>
> >> $ make
> >> make  all-recursive
> >> Making all in doc
> >> make[2]: Nothing to be done for `all'.
> >> source='memcached.c' object='memcached.o' libtool=no \
> >> depfile='.deps/memcached.Po' tmpdepfile='.deps/memcached.TPo' \
> >> depmode=gcc3 /bin/sh ./depcomp \
> >> gcc -DHAVE_CONFIG_H -I. -I. -I.   -I/opt/local/include   -g -O2 -c
> >> `test -f 'memcached.c' || echo './'`memcached.c
> >> memcached.c: In function `add_msghdr':
> >> memcached.c:224: warning: assignment from incompatible pointer type
> >> memcached.c: In function `add_iov':
> >> memcached.c:584: error: `IOV_MAX' undeclared (first use in this function)
> >> memcached.c:584: error: (Each undeclared identifier is reported only once
> >> memcached.c:584: error: for each function it appears in.)
> >> make[2]: *** [memcached.o] Error 1
> >> make[1]: *** [all-recursive] Error 1
> >> make: *** [all] Error 2
> >>
> >> This is because OS X 10.3, unlike 10.4, doesn't have IOV_MAX in limits.h.
> >> Below is my patch.
> >>
> >> Index: memcached.c
> >> ===================================================================
> >> --- memcached.c (revision 629)
> >> +++ memcached.c (working copy)
> >> @@ -52,9 +52,9 @@
> >>  #endif
> >>  #endif
> >>
> >> -/* FreeBSD 4.x doesn't have IOV_MAX exposed. */
> >> +/* FreeBSD 4.x and old OSX don't have IOV_MAX exposed. */
> >>  #ifndef IOV_MAX
> >> -#if defined(__FreeBSD__)
> >> +#if defined(__FreeBSD__) || defined(__APPLE__)
> >>  # define IOV_MAX 1024
> >>  #endif
> >>  #endif
> >>
> >> __APPLE__is the flag for darwin.
> >> http://www.google.com/codesearch?hl=en&q=+lang:c+darwin-c.c+__APPLE__+show:jXyBUL4_D4k:I24eDuyXrWQ:BPY6ixvGT5I&sa=N&cd=1&ct=rc&cs_p=http://gcc.fyxm.net/prerelease-4.1.2-20070128/gcc-core-4.1.2-20070128.tar.bz2&cs_f=gcc-4.1.2-20070128/gcc/config/darwin-c.c#first
> >>
> >> I don't know whether this is right fix or not
> >> so could someone please review this patch and accept this or write better patch?
> >>
> >> Thank you in advance.
> >>
>
>


More information about the memcached mailing list