Use non-deprecated APIs for dynloader/darwin.c - Mailing list pgsql-patches

From Chris Campbell
Subject Use non-deprecated APIs for dynloader/darwin.c
Date
Msg-id A9076D86-13E1-415C-8DB6-858276D55E15@bignerdranch.com
Whole thread Raw
Responses Re: Use non-deprecated APIs for dynloader/darwin.c  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-patches
Re: Darwin stuff is getting deprecated

     http://archives.postgresql.org/pgsql-hackers/2006-09/msg02238.php

Mac OS X has included dlopen() and friends etc since Mac OS X 10.3.
 From the dlopen(3) man page:

      Mac OS X 10.3 incorporated the dlcompat package written by
Jorge Acereda
      <jacereda@users.sourceforge.net> and Peter O'Gorman <ogor-
      man@users.sourceforge.net>.

      In Mac OS X 10.4, dlopen was rewritten to be a native part of
dyld.

The attached patch switches to using those APIs in src/backend/port/
dynloader/darwin.c (and passes "make check").

(1) This change requires Mac OS X 10.3 and later. Do we currently
support PostgreSQL on older versions of Mac OS X?

(2) The pg_* functions are such trivial wrappers for the OS's APIs --
should they be turned into macros in dynloader/darwin.h and we can
just delete the .c file?

(3) If we need to continue supporting Mac OS X 10.2 and earlier, I
guess we'll need to add a configure test for the presence of dlopen
()? Is that a check that should only be run on Darwin, or all platforms?

Thanks!

- Chris



Attachment

pgsql-patches by date:

Previous
From: Chris Campbell
Date:
Subject: Use dns_sd.h for Bonjour
Next
From: Tom Lane
Date:
Subject: Re: Use non-deprecated APIs for dynloader/darwin.c