Re: --with-tcl build on AIX (and others) fails

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: --with-tcl build on AIX (and others) fails
Дата
Msg-id 6566.1011567346@sss.pgh.pa.us
обсуждение исходный текст
Ответ на --with-tcl build on AIX (and others) fails  ("Zeugswetter Andreas SB SD" <ZeugswetterA@spardat.at>)
Ответы Re: --with-tcl build on AIX (and others) fails  (Peter Eisentraut <peter_e@gmx.net>)
Список pgsql-hackers
I tried out the patch that Andreas sent in a couple weeks ago, and find
that as-is it fails on HPUX.  The attached version works okay on both
HPUX 10.20 and RH Linux 7.2, however.  Anyone want to try it on other
platforms?  (Note this only covers Andreas' proposed changes for pltcl,
not for libpgtcl.)

            regards, tom lane

*** src/Makefile.shlib.orig    Sun Nov 11 20:45:36 2001
--- src/Makefile.shlib    Sun Jan 20 17:03:25 2002
***************
*** 400,406 ****
  clean-lib:
      rm -f lib$(NAME).a
  ifeq ($(enable_shared), yes)
!     rm -f $(shlib) lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION) lib$(NAME)$(DLSUFFIX)
  endif
  ifeq ($(PORTNAME), win)
      rm -rf $(NAME).def
--- 400,409 ----
  clean-lib:
      rm -f lib$(NAME).a
  ifeq ($(enable_shared), yes)
!     rm -f lib$(NAME)$(DLSUFFIX) lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
! ifdef EXPSUFF
!     rm -f lib$(NAME)$(EXPSUFF)
! endif
  endif
  ifeq ($(PORTNAME), win)
      rm -rf $(NAME).def
*** src/pl/tcl/Makefile.orig    Sat Oct 13 00:23:50 2001
--- src/pl/tcl/Makefile    Sun Jan 20 17:20:56 2002
***************
*** 26,97 ****
  endif
  endif

!
! # Change following to how shared library that contains references to
! # libtcl must get built on your system. Since these definitions come
! # from the tclConfig.sh script, they should work if the shared build
! # of tcl was successful on this system. However, tclConfig.sh lies to
! # us a little bit (at least in versions 7.6 through 8.0.4) --- it
! # doesn't mention -lc in TCL_LIBS, but you still need it on systems
! # that want to hear about dependent libraries...

  ifneq ($(TCL_SHLIB_LD_LIBS),)
  # link command for a shared lib must mention shared libs it uses
! SHLIB_EXTRA_LIBS=$(TCL_LIBS) -lc
  else
  ifeq ($(PORTNAME), hpux)
  # link command for a shared lib must mention shared libs it uses,
  # even though Tcl doesn't think so...
! SHLIB_EXTRA_LIBS=$(TCL_LIBS) -lc
  else
  # link command for a shared lib must NOT mention shared libs it uses
! SHLIB_EXTRA_LIBS=
! endif
  endif
-
- %$(TCL_SHLIB_SUFFIX): %.o
-     $(TCL_SHLIB_LD) -o $@ $< $(TCL_LIB_SPEC) $(SHLIB_EXTRA_LIBS)
-
-
- CC = $(TCL_CC)
-
- # Since we are using Tcl's choice of C compiler, which might not be
- # the same one selected for Postgres, do NOT use CFLAGS from
- # Makefile.global. Instead use TCL's CFLAGS plus necessary -I
- # directives.
-
- # Can choose either TCL_CFLAGS_OPTIMIZE or TCL_CFLAGS_DEBUG here, as
- # needed
- override CPPFLAGS += $(TCL_DEFS)
- override CFLAGS = $(TCL_CFLAGS_OPTIMIZE) $(TCL_SHLIB_CFLAGS)
-
-
- #
- # DLOBJS is the dynamically-loaded object file.
- #
- DLOBJS= pltcl$(DLSUFFIX)
-
- INFILES= $(DLOBJS)
-
- #
- # plus exports files
- #
- ifdef EXPSUFF
- INFILES+= $(DLOBJS:.o=$(EXPSUFF))
  endif


! # Provide dummy targets for the case where we can't build the shared library.

  ifeq ($(TCL_SHARED_BUILD), 1)

! all: $(INFILES)
      $(MAKE) -C modules $@

- pltcl$(DLSUFFIX): pltcl.o
-
  install: all installdirs
!     $(INSTALL_SHLIB) $(DLOBJS) $(DESTDIR)$(pkglibdir)/$(DLOBJS)
      $(MAKE) -C modules $@

  installdirs:
--- 26,64 ----
  endif
  endif

! # Set up extra libs that must be mentioned in pltcl.so's link command.
! # Aside from libtcl.so, on many platforms we must mention the shared
! # libraries that libtcl.so depends on.  Don't forget -lc, which the
! # Tcl makefiles unaccountably exclude from $(TCL_LIBS).

  ifneq ($(TCL_SHLIB_LD_LIBS),)
  # link command for a shared lib must mention shared libs it uses
! SHLIB_LINK=$(TCL_LIB_SPEC) $(TCL_LIBS) -lc
  else
  ifeq ($(PORTNAME), hpux)
  # link command for a shared lib must mention shared libs it uses,
  # even though Tcl doesn't think so...
! SHLIB_LINK=$(TCL_LIB_SPEC) $(TCL_LIBS) -lc
  else
  # link command for a shared lib must NOT mention shared libs it uses
! SHLIB_LINK=$(TCL_LIB_SPEC)
  endif
  endif

+ NAME = pltcl
+ SO_MAJOR_VERSION = 2
+ SO_MINOR_VERSION = 0
+ OBJS = pltcl.o

! include $(top_srcdir)/src/Makefile.shlib

  ifeq ($(TCL_SHARED_BUILD), 1)

! all: all-lib
      $(MAKE) -C modules $@

  install: all installdirs
!     $(INSTALL_SHLIB) $(shlib) $(DESTDIR)$(pkglibdir)/$(NAME)$(DLSUFFIX)
      $(MAKE) -C modules $@

  installdirs:
***************
*** 99,105 ****
      $(MAKE) -C modules $@

  uninstall:
!     rm -f $(DESTDIR)$(pkglibdir)/$(DLOBJS)
      $(MAKE) -C modules $@

  else # TCL_SHARED_BUILD = 0
--- 66,72 ----
      $(MAKE) -C modules $@

  uninstall:
!     rm -f $(DESTDIR)$(pkglibdir)/$(NAME)$(DLSUFFIX)
      $(MAKE) -C modules $@

  else # TCL_SHARED_BUILD = 0
***************
*** 114,119 ****
  Makefile.tcldefs: mkMakefile.tcldefs.sh
      $(SHELL) $< '$(TCL_CONFIG_SH)' '$@'

! clean distclean maintainer-clean:
!     rm -f $(INFILES) pltcl.o Makefile.tcldefs
      $(MAKE) -C modules $@
--- 81,86 ----
  Makefile.tcldefs: mkMakefile.tcldefs.sh
      $(SHELL) $< '$(TCL_CONFIG_SH)' '$@'

! clean distclean maintainer-clean: clean-lib
!     rm -f $(OBJS) Makefile.tcldefs
      $(MAKE) -C modules $@

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: pltlc and pltlcu problems
Следующее
От: Brent Verner
Дата:
Сообщение: Re: pltlc and pltlcu problems