Обсуждение: Re: [PATCHES] Linking on AIX (Was: Fix linking of OpenLDAP libraries )
With the patch attached this time...
-rocco
> -----Original Message-----
> From: Rocco Altier
> Sent: Friday, September 15, 2006 2:04 PM
> To: Rocco Altier; 'Tom Lane'; 'Albe Laurenz'
> Cc: 'pgsql-hackers@postgresql.org'
> Subject: RE: [PATCHES] [HACKERS] Linking on AIX (Was: Fix
> linking of OpenLDAP libraries )
>
>
> > > From: Tom Lane [mailto:tgl@sss.pgh.pa.us]
> > > Mmm ... what of "make check"'s temporary installation? We need
> > > to have the executables search in the temporary install's libdir,
> > > *before* looking in the configured --libdir (which could easily
> > > contain an incompatible back-version libpq ...)
> > >
> > > pg_regress normally tries to handle this by setting
> LD_LIBRARY_PATH
> > > ... does AIX use that or a similar symbol?
> > >
> > The "make check" was successful in my previous testing of the last
> > patch, so it appears that AIX was paying attention to
> LD_LIBRARY_PATH.
> >
> > I am testing the new version of the patch now, so will report back
> > shortly.
> >
> From testing the new patch, it did not work for the
> regression tests in the buildfarm.
> Not sure why it did work before.
>
> Anyhow, I have updated the patch to set LIBPATH (AIX's
> version of LD_LIBRARY_PATH), in pg_regress and ecpg's pg_regress.
>
> I have tested this with default config options
> (enable-shared, enable-rpath). I am starting to test the
> other methods as well, but wanted to get this out first.
>
> -rocco
>
Вложения
I would like to see some comments about AIX linking so we don't need to relearn this in 1-2 years. --------------------------------------------------------------------------- Rocco Altier wrote: > With the patch attached this time... > > -rocco > > > -----Original Message----- > > From: Rocco Altier > > Sent: Friday, September 15, 2006 2:04 PM > > To: Rocco Altier; 'Tom Lane'; 'Albe Laurenz' > > Cc: 'pgsql-hackers@postgresql.org' > > Subject: RE: [PATCHES] [HACKERS] Linking on AIX (Was: Fix > > linking of OpenLDAP libraries ) > > > > > > > > From: Tom Lane [mailto:tgl@sss.pgh.pa.us] > > > > Mmm ... what of "make check"'s temporary installation? We need > > > > to have the executables search in the temporary install's libdir, > > > > *before* looking in the configured --libdir (which could easily > > > > contain an incompatible back-version libpq ...) > > > > > > > > pg_regress normally tries to handle this by setting > > LD_LIBRARY_PATH > > > > ... does AIX use that or a similar symbol? > > > > > > > The "make check" was successful in my previous testing of the last > > > patch, so it appears that AIX was paying attention to > > LD_LIBRARY_PATH. > > > > > > I am testing the new version of the patch now, so will report back > > > shortly. > > > > > From testing the new patch, it did not work for the > > regression tests in the buildfarm. > > Not sure why it did work before. > > > > Anyhow, I have updated the patch to set LIBPATH (AIX's > > version of LD_LIBRARY_PATH), in pg_regress and ecpg's pg_regress. > > > > I have tested this with default config options > > (enable-shared, enable-rpath). I am starting to test the > > other methods as well, but wanted to get this out first. > > > > -rocco > > Content-Description: aix.link.regression.patch [ Attachment, skipping... ] > > ---------------------------(end of broadcast)--------------------------- > TIP 5: don't forget to increase your free space map settings -- Bruce Momjian bruce@momjian.us EnterpriseDB http://www.enterprisedb.com + If your life is a hard drive, Christ can be your backup. +
"Rocco Altier" <RoccoA@Routescape.com> writes:
> With the patch attached this time...
The proposed patch to Makefile.shlib makes me gag :-( ... lying to make
about what's the purpose of a rule is seldom a good idea. Please try
as attached instead. Also, I am *really* dubious about the change to
ecpg/test/Makefile.regress --- if that's necessary then this whole
exercise is wrong.
regards, tom lane
*** src/Makefile.shlib.orig Thu Apr 27 22:53:20 2006
--- src/Makefile.shlib Fri Sep 15 18:11:30 2006
***************
*** 96,103 ****
soname = lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
ifeq ($(PORTNAME), aix)
! shlib = lib$(NAME)$(DLSUFFIX)
! # SHLIB_LINK += -lc
endif
ifeq ($(PORTNAME), darwin)
--- 96,103 ----
soname = lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
ifeq ($(PORTNAME), aix)
! shlib = lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
! haslibarule = yes
endif
ifeq ($(PORTNAME), darwin)
***************
*** 295,303 ****
else # PORTNAME == aix
# AIX case
! $(shlib): lib$(NAME).a
$(MKLDEXPORT) lib$(NAME).a > lib$(NAME)$(EXPSUFF)
! $(COMPILER) $(LDFLAGS_NO_L) $(LDFLAGS_SL) -o $@ $< -Wl,-bE:lib$(NAME)$(EXPSUFF) $(SHLIB_LINK)
endif # PORTNAME == aix
--- 295,307 ----
else # PORTNAME == aix
# AIX case
! $(shlib) lib$(NAME).a: $(OBJS)
! $(LINK.static) lib$(NAME).a $^
! $(RANLIB) lib$(NAME).a
$(MKLDEXPORT) lib$(NAME).a > lib$(NAME)$(EXPSUFF)
! $(COMPILER) $(LDFLAGS_NO_L) $(LDFLAGS_SL) -o $(shlib) lib$(NAME).a -Wl,-bE:lib$(NAME)$(EXPSUFF) $(SHLIB_LINK)
! rm -f lib$(NAME).a
! $(AR) $(AROPT) lib$(NAME).a $(shlib)
endif # PORTNAME == aix
***************
*** 350,355 ****
--- 354,360 ----
ifeq ($(enable_shared), yes)
install-lib-shared: $(shlib)
+ ifneq ($(PORTNAME), aix) # we don't install $(shlib) on AIX
$(INSTALL_SHLIB) $< '$(DESTDIR)$(libdir)/$(shlib)'
ifneq ($(PORTNAME), cygwin)
ifneq ($(PORTNAME), win32)
***************
*** 365,370 ****
--- 370,376 ----
endif
endif # not win32
endif # not cygwin
+ endif # not aix
endif # enable_shared