List:Internals« Previous MessageNext Message »
From:Chris Meyer Date:October 8 2000 4:13pm
Subject:Re: porting to Darwin/Mac OS X
View as plain text  
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

Thread
porting to Darwin/Mac OS XChris Meyer1 Oct
  • porting to Darwin/Mac OS XMichael Widenius1 Oct
    • Re: porting to Darwin/Mac OS XChris Meyer2 Oct
      • Re: porting to Darwin/Mac OS XMichael Widenius3 Oct
        • Re: porting to Darwin/Mac OS XChris Meyer9 Oct
          • Re: porting to Darwin/Mac OS Xsinisa9 Oct
          • Re: porting to Darwin/Mac OS XMichael Widenius11 Oct
            • Re: porting to Darwin/Mac OS XNick Kledzik19 Oct
  • Re: porting to Darwin/Mac OS Xsasha11 Oct
Re: porting to Darwin/Mac OS XThimble Smith1 Oct