From: Chris Meyer Date: October 8 2000 4:13pm Subject: Re: porting to Darwin/Mac OS X List-Archive: http://lists.mysql.com/internals/25 Message-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" ; format="flowed" 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 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): > > > >I have now applied this; I did however add a test to only do >do your FIND_PROC patch on darwin. > >Regards, >Monty