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