Great, I have added this to the bottom of the AIX FAQ.  Thanks.


Albe Laurenz wrote:
> > I still would like to see a paragraph describing how AIX is different
> > from other platforms and what we are doing here.
> Ok, I'll try to sum it up:
> Shared libraries in AIX are different from shared libraries
> in Linux.
> A shared library on AIX is an 'ar' archive containing
> shared objects.
> A shared object is produced by the linker when invoked
> appropriately (e.g. with -G), it is what we call a
> shared library on Linux.
> -> On AIX, you can do a static as well as a dynamic
> -> link against a shared library, it depends on how you
> -> invoke the linker.
> When you link statically, the shared objects from
> the library are added to your executable as required;
> when you link dynamically, only references
> to the shared objects are included in the executable.
> Consequently you do not need a separate static library
> on AIX if you have a dynamic library.
> However, you CAN have static libraries (ar archives
> containing *.o files), and the linker will link
> against them. This will of course always be a
> static link.
> When the AIX linker searches for libraries to link,
> it will look for a library libxy.a as well as for a
> single shared object when you tell it
> to -lyx. When it finds both in the same directory,
> it will prefer libpq.a unless invoked with -brtl.
> This is where the problem occurs:
> By default, PostgreSQL will (in the Linux way) create
> a shared object and a static library libpq.a
> in the same directory.
> Up to now, since the linker was invoked without the
> -brtl flag, linking on AIX was always static, as the
> linker preferred libpq.a over
> We could have solved the problem by linking with
> -brtl on AIX, but we chose to go a more AIX-conforming
> way so that third party programs linking against
> PostgreSQL libraries will not be fooled into
> linking statically by default.
> The 'new way' on AIX is:
> - Create as before from the static library
>   libxy.a with the linker.
> - Remove libxy.a
> - Recreate libxy.a as a dynamic library with
>   ar -cr libxy.a
> - Only install libxy.a, do not install
> Since linking is dynamic on AIX now, we have a new
> problem:
> We must make sure that the executable finds
> its library even if the library is not installed in
> one of the standard library paths (/usr/lib or /lib).
> On Linux this is done with an RPATH, on AIX the
> equivalent is LIBPATH that can be specified at link
> time with -blibpath:<colon separated path> .
> If you do not specify the LIBPATH, it is automatically
> computed from the -L arguments given to the linker.
> The LIBPATH, when set, must contain ALL directories where
> shared libraries should be searched, including
> the standard library directories.
> Makefile.aix has been changed to link executables
> with a LIBPATH that contains --libdir when PostgreSQL
> is configured with --enable-rpath (the default).
> The AIX equivalent for the Linux environment variable
> The regression tests rely on LD_LIBRARY_PATH and have
> to be changed to set LIBPATH as well.
> I hope that's good enough,
> Laurenz Albe
> ---------------------------(end of broadcast)---------------------------
> TIP 9: In versions below 8.0, the planner will ignore your desire to
>        choose an index scan if your joining column's datatypes do not
>        match

  Bruce Momjian   [EMAIL PROTECTED]

  + If your life is a hard drive, Christ can be your backup. +

---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?


Reply via email to