Re: Future of src/utils

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: Future of src/utils
Дата
Msg-id 200207160542.g6G5gWI20498@candle.pha.pa.us
обсуждение исходный текст
Ответ на Re: Future of src/utils  (Peter Eisentraut <peter_e@gmx.net>)
Список pgsql-hackers
Peter Eisentraut wrote:
> Bruce Momjian writes:
>
> > However, over time, this distinction has broken down and we have a
> > number of backend/port stuff used in other binaries.  I propose moving
> > the src/utils remaining items into src/backend/port, and removing the
> > src/utils directory.
>
> I propose the reverse operation.

The following patch moves dllinit.c and strdup.c into backend/port, and
removes the src/utils directory, for the time being.  It also cleans up
dllinit so it has its own variable to point to the file path rather than
having it hard-coded in all the makefiles.

When we decide to move everything to src/utils, it will be all ready.

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026
Index: configure.in
===================================================================
RCS file: /cvsroot/pgsql/configure.in,v
retrieving revision 1.189
diff -c -r1.189 configure.in
*** configure.in    15 Jul 2002 22:41:45 -0000    1.189
--- configure.in    16 Jul 2002 05:41:22 -0000
***************
*** 916,922 ****
  AC_SUBST(INET_ATON)
  AC_CHECK_FUNCS(strerror, [], STRERROR='$(top_builddir)/src/backend/port/strerror.o')
  AC_SUBST(STRERROR)
! AC_CHECK_FUNCS(strdup, [], STRDUP='$(top_builddir)/src/utils/strdup.o')
  AC_SUBST(STRDUP)
  AC_CHECK_FUNCS(strtol, [], STRTOL='$(top_builddir)/src/backend/port/strtol.o')
  AC_SUBST(STRTOL)
--- 916,922 ----
  AC_SUBST(INET_ATON)
  AC_CHECK_FUNCS(strerror, [], STRERROR='$(top_builddir)/src/backend/port/strerror.o')
  AC_SUBST(STRERROR)
! AC_CHECK_FUNCS(strdup, [], STRDUP='$(top_builddir)/src/backend/port/strdup.o')
  AC_SUBST(STRDUP)
  AC_CHECK_FUNCS(strtol, [], STRTOL='$(top_builddir)/src/backend/port/strtol.o')
  AC_SUBST(STRTOL)
***************
*** 924,929 ****
--- 924,936 ----
  AC_SUBST(STRTOUL)
  AC_CHECK_FUNCS(strcasecmp, [], STRCASECMP='$(top_builddir)/src/backend/port/strcasecmp.o')
  AC_SUBST(STRCASECMP)
+
+ # Set path of dllinit.c for cygwin
+ DLLINIT=""
+ case $host_os in
+   cygwin*) DLLINIT='$(top_builddir)/src/backend/port/dllinit.o' ;;
+ esac
+ AC_SUBST(DLLINIT)

  # On HPUX 9, rint() is not in regular libm.a but in /lib/pa1.1/libm.a;
  # this hackery with HPUXMATHLIB allows us to cope.
Index: src/Makefile.global.in
===================================================================
RCS file: /cvsroot/pgsql/src/Makefile.global.in,v
retrieving revision 1.148
diff -c -r1.148 Makefile.global.in
*** src/Makefile.global.in    28 May 2002 16:57:53 -0000    1.148
--- src/Makefile.global.in    16 Jul 2002 05:41:23 -0000
***************
*** 359,364 ****
--- 359,365 ----
  STRERROR    = @STRERROR@
  STRTOL      = @STRTOL@
  STRTOUL     = @STRTOUL@
+ DLLINIT     = @DLLINIT@

  TAS         = @TAS@

Index: src/Makefile.shlib
===================================================================
RCS file: /cvsroot/pgsql/src/Makefile.shlib,v
retrieving revision 1.58
diff -c -r1.58 Makefile.shlib
*** src/Makefile.shlib    24 May 2002 18:10:17 -0000    1.58
--- src/Makefile.shlib    16 Jul 2002 05:41:23 -0000
***************
*** 327,339 ****
  else # PORTNAME == win

  # WIN case
! $(shlib) lib$(NAME).a: $(OBJS) $(top_builddir)/src/utils/dllinit.o
      $(DLLTOOL) --export-all --output-def $(NAME).def $(OBJS)
!     $(DLLWRAP) -o $(shlib) --dllname $(shlib) --def $(NAME).def $(OBJS) $(top_builddir)/src/utils/dllinit.o
$(DLLINIT)$(DLLLIBS) $(SHLIB_LINK) 
      $(DLLTOOL) --dllname $(shlib) --def $(NAME).def --output-lib lib$(NAME).a

! $(top_builddir)/src/utils/dllinit.o: $(top_srcdir)/src/utils/dllinit.c
!     $(MAKE) -C $(top_builddir)/src/utils dllinit.o

  endif # PORTNAME == win

--- 327,339 ----
  else # PORTNAME == win

  # WIN case
! $(shlib) lib$(NAME).a: $(OBJS) $(DLLINIT)
      $(DLLTOOL) --export-all --output-def $(NAME).def $(OBJS)
!     $(DLLWRAP) -o $(shlib) --dllname $(shlib) --def $(NAME).def $(OBJS) $(DLLINIT) $(DLLLIBS) $(SHLIB_LINK)
      $(DLLTOOL) --dllname $(shlib) --def $(NAME).def --output-lib lib$(NAME).a

! $(DLLINIT):
!     $(MAKE) -C $(@D) $(@F)

  endif # PORTNAME == win

Index: src/backend/Makefile
===================================================================
RCS file: /cvsroot/pgsql/src/backend/Makefile,v
retrieving revision 1.79
diff -c -r1.79 Makefile
*** src/backend/Makefile    22 May 2002 21:46:40 -0000    1.79
--- src/backend/Makefile    16 Jul 2002 05:41:24 -0000
***************
*** 43,49 ****

  # No points for style here. How about encapsulating some of these
  # commands into variables?
! postgres: $(OBJS) $(top_builddir)/src/utils/dllinit.o postgres.def libpostgres.a
      dlltool --dllname $@$(X) --output-exp $@.exp --def postgres.def
      gcc $(LDFLAGS) -g -o $@$(X) -Wl,--base-file,$@.base $@.exp $(OBJS) $(DLLLIBS)
      dlltool --dllname $@$(X) --base-file $@.base --output-exp $@.exp --def postgres.def
--- 43,49 ----

  # No points for style here. How about encapsulating some of these
  # commands into variables?
! postgres: $(OBJS) $(DLLINIT) postgres.def libpostgres.a
      dlltool --dllname $@$(X) --output-exp $@.exp --def postgres.def
      gcc $(LDFLAGS) -g -o $@$(X) -Wl,--base-file,$@.base $@.exp $(OBJS) $(DLLLIBS)
      dlltool --dllname $@$(X) --base-file $@.base --output-exp $@.exp --def postgres.def
***************
*** 67,80 ****
  postgres.def: $(OBJS)
      $(DLLTOOL) --export-all --output-def $@ $(OBJS)

! libpostgres.a: $(OBJS) $(top_builddir)/src/utils/dllinit.o postgres.def
      $(DLLTOOL) --dllname postgres.exe --def postgres.def --output-lib $@

  endif # MAKE_DLL


! $(top_builddir)/src/utils/dllinit.o: $(top_srcdir)/src/utils/dllinit.c
!     $(MAKE) -C $(top_builddir)/src/utils dllinit.o

  # The postgres.o target is needed by the rule in Makefile.global that
  # creates the exports file when MAKE_EXPORTS = true.
--- 67,80 ----
  postgres.def: $(OBJS)
      $(DLLTOOL) --export-all --output-def $@ $(OBJS)

! libpostgres.a: $(OBJS) $(DLLINIT) postgres.def
      $(DLLTOOL) --dllname postgres.exe --def postgres.def --output-lib $@

  endif # MAKE_DLL


! $(DLLINIT):
!     $(MAKE) -C $(@D) $(@F)

  # The postgres.o target is needed by the rule in Makefile.global that
  # creates the exports file when MAKE_EXPORTS = true.
Index: src/makefiles/Makefile.win
===================================================================
RCS file: /cvsroot/pgsql/src/makefiles/Makefile.win,v
retrieving revision 1.15
diff -c -r1.15 Makefile.win
*** src/makefiles/Makefile.win    6 Sep 2001 02:58:33 -0000    1.15
--- src/makefiles/Makefile.win    16 Jul 2002 05:41:25 -0000
***************
*** 17,23 ****

  %.dll: %.o
      $(DLLTOOL) --export-all --output-def $*.def $<
!     $(DLLWRAP) -o $@ --def $*.def $< $(top_builddir)/src/utils/dllinit.o $(DLLLIBS)
      rm -f $*.def

  ifeq ($(findstring backend,$(subdir)), backend)
--- 17,23 ----

  %.dll: %.o
      $(DLLTOOL) --export-all --output-def $*.def $<
!     $(DLLWRAP) -o $@ --def $*.def $< $(DLLINIT) $(DLLLIBS)
      rm -f $*.def

  ifeq ($(findstring backend,$(subdir)), backend)

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

Предыдущее
От: "Christopher Kings-Lynne"
Дата:
Сообщение: pg_views.definition
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: pg_views.definition