Hi Monty,
OK - I'm back from my vacation to Cape Cod :)
Thanks for applying this patch. There was another person from Apple
that posted a few other goodies for Mac OS X. Did you happen to see
those patches also? They fix a few more items that showed up in
3.23.25-beta (mine were for 3.23.24-beta). I can repost his message
if you missed it.
I want to reiterate one point he made:
1. 'rhapsody' (Mac OS X Server; cthreads only) and
2. 'darwin' (Mac OS X; cthreads AND pthreads)
are significantly different... AND the 'standard binary' that is on
http://www.mysql.com/downloads/mysql-3.23.html is actually for
'rhapsody' (Mac OS X Server). It should probably be re-labeled and
another one for 'darwin' (Mac OS X) should be posted.
I'll be happy to make sure everything is in order and coordinate with
the person from Apple -- but where/when are the patches you made
available? I couldn't find a CVS server for mysql anywhere on the web
pages. Is there one and if so, can you give me the URL for setup
info? If not, what other way do I have to download/verify the patches?
Also, of one other minor note: the pthreads deficiencies in Darwin
are now being tracked in the Darwin bug-list...
Thanks,
Chris
>Hi!
>
>>>>>> "Chris" == Chris Meyer <cmeyer@stripped> writes:
>
>Chris> Hi Monty,
>>> Wht is the difference between the thread implementation in rhapsody
>>> and darwin; As you know, MySQL compiles and works on rhapsodi.
>
>Chris> Darwin has a POSIX IEEE 1003.1c pthreads implementation. I don't know
>Chris> enough about the standard to know if Darwin complies 100% but 'POSIX
>Chris> IEEE 1003.1c' is documented in the headers... Again, I think
>Chris> pthread_kill is not included in that spec. What defines do I have to
>Chris> set in order to avoid the use of pthread_kill? I ran configure (after
>Chris> certain modifications to recognize 'darwin') and it noticed that
>Chris> pthread_kill was NOT available -- but when I did the 'make'
>Chris> pthread_kill was still being called. Is this a mistake?
>
>For rhapsody we have the following in configure:
>
> *rhapsody*)
> if test "$ac_cv_prog_gcc" = "yes"
> then
> CPPFLAGS="$CPPFLAGS -traditional-cpp "
> CFLAGS="-DHAVE_CTHREADS_WRAPPER -DDO_NOT_REMOVE_THREAD_WRAPPERS"
> CXXFLAGS="-DHAVE_CTHREADS_WRAPPER"
> if test $with_named_curses = "no"
> then
> with_named_curses=""
> fi
> fi
>
>
>Adding the above defines to CFLAGS and CXXFLAGS should give you the
>same behaveour in Darvin as in rhapsody
>
>>> Doesn't mysqladmin shutdown work if you don't have any connected
>>> clients? I am quite sure this works on rhapsodi.
>
>Chris> I never got this to work even in rhapsody -- but I don't think I ever
>Chris> tried the binary dist. I had built it myself...
>
>I have access to one MacOS X machine with rhapsody; I can verify this
>when I get some time over..
>
>Chris> Here's a list of the issues for building under Darwin. I also
>Chris> included my current patch file which gets things to build. You'll
>Chris> note that I'm NOT using the 'HAVE_CTHREADS_WRAPPER' like rhapsody.
>
>Why?
>If you don't do that, you will get problems with pthread_kill ?
>
>Chris> Instead I made a new section called 'HAVE_DARWIN_THREADS'. Hopefully
>Chris> this is just temporary until things get cleaned up. Anyway, the list:
>
>Chris> 1 - 'darwin' needs to be added to config.guess and config.sub
>
>Chris> 2 - A compiler option '-O6' is added to the build; this doesn't seem
>Chris> to be a standard gcc switch; only pgcc under linux uses it. This
>Chris> doesn't cause the build to fail, just a bunch of annoying warnings. I
>Chris> didn't make any changes w.r.t. this.
>
>ok.
>
>Chris> 3 - The check for 'ps' doesn't work because under Darwin when the
>Chris> shell executes a script the only thing that shows up in 'ps' is the
>Chris> shell, not the script. I posted some messages on the Darwin list to
>Chris> see if anyone has any solution to this. Otherwise someone more
>Chris> knowledgeable will have to special-case Darwin in configure to force
>Chris> the BSD style FIND_PROC.
>
>ok.
>
>Chris> 4 - Some compiler flags for building with Darwin's gcc. Mainly
>Chris> '-traditional-cpp' needs to be on to build correctly.
>
>ok.
>
>Chris> 5 - The whole pthread issue. See my first paragraph at the beginning
>Chris> of this message.
>
>see above.
>
>Chris> 6 - A minor change in sql/sql_cache.cc which doesn't build under
>Chris> Darwin. Hopefully this can be merged into mysql right away.
>
>Done.
>
>Chris> Here's the patch file (don't apply this blindly since configure.in
>Chris> forces FIND_PROC to use BSD style if all other checks fail):
>
><cut>
>
>I have now applied this; I did however add a test to only do
>do your FIND_PROC patch on darwin.
>
>Regards,
>Monty