You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

132 lines
4.5 KiB

Remove lorder(1) and tsort(1) stuff, because it is not needed on modern
systems and makes problems under some platforms (e.g. older Linux).
--- src/Makefile.global.in.orig Thu Sep 5 00:54:18 2002
+++ src/Makefile.global.in Tue Jul 1 17:17:25 2003
@@ -193,7 +193,7 @@
LDREL = -r
LDOUT = -o
RANLIB = @RANLIB@
-LORDER = @LORDER@
+MK_NO_LORDER= true
X = @EXEEXT@
# Perl
--- src/makefiles/Makefile.freebsd.orig Wed Aug 29 21:14:40 2001
+++ src/makefiles/Makefile.freebsd Tue Jul 1 17:23:00 2003
@@ -16,7 +16,7 @@
$(LD) $(LDREL) $(LDOUT) $<.obj -x $<
@echo building shared object $@
@rm -f $@.pic
- @${AR} cq $@.pic `lorder $<.obj | tsort`
+ @${AR} cq $@.pic
${RANLIB} $@.pic
@rm -f $@
$(LD) -x -Bshareable -Bforcearchive -o $@ $@.pic
--- src/makefiles/Makefile.openbsd.orig Wed Aug 29 21:14:40 2001
+++ src/makefiles/Makefile.openbsd Tue Jul 1 17:23:12 2003
@@ -16,7 +16,7 @@
$(LD) $(LDREL) $(LDOUT) $<.obj -x $<
@echo building shared object $@
@rm -f $@.pic
- @${AR} cq $@.pic `lorder $<.obj | tsort`
+ @${AR} cq $@.pic
${RANLIB} $@.pic
@rm -f $@
$(LD) -x -Bshareable -Bforcearchive \
--- src/makefiles/Makefile.netbsd.orig Wed Aug 29 21:14:40 2001
+++ src/makefiles/Makefile.netbsd Tue Jul 1 17:23:39 2003
@@ -18,7 +18,7 @@
$(LD) $(LDREL) $(LDOUT) $<.obj -x $<
@echo building shared object $@
@rm -f $@.pic
- @${AR} cq $@.pic `lorder $<.obj | tsort`
+ @${AR} cq $@.pic
${RANLIB} $@.pic
@rm -f $@
$(LD) -x -Bshareable -Bforcearchive \
Index: src/template/freebsd
--- src/template/freebsd.orig 2004-12-02 19:11:40.000000000 +0100
+++ src/template/freebsd 2005-02-16 17:09:09.617038264 +0100
@@ -1,3 +1,3 @@
case $host_cpu in
- alpha*) CFLAGS="-O";; # alpha has problems with -O2
+ alpha*) CFLAGS=`echo "x$CFLAGS" | sed -e 's;^x;;' -e 's;-O2;-O;'`;; # alpha has problems with -O2
esac
Index: src/template/linux
--- src/template/linux.orig 2004-12-02 19:11:40.000000000 +0100
+++ src/template/linux 2005-02-16 17:08:13.160599508 +0100
@@ -1,2 +1,2 @@
# Force _GNU_SOURCE on; plperl is broken with Perl 5.8.0 otherwise
-CPPFLAGS="-D_GNU_SOURCE"
+CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
-----------------------------------------------------------------------------
A small patch to allow DSO-based PostgreSQL extensions to be more
flexible by providing initialization and finishing hooks. This patch was
contributed by Ralf S. Engelschall to the upstream vendor in August 2006
and taken over by the upstream vendor for inclusion into the next major
PostgreSQL release.
http://groups.google.com/group/pgsql.hackers/browse_frm/thread/ce7858f865a6fecd/19a3f052656f3a69?tvc=1&q=PG_init#19a3f052656f3a69
Index: src/backend/utils/fmgr/dfmgr.c
--- src/backend/utils/fmgr/dfmgr.c.orig 2005-10-15 04:49:32 +0200
+++ src/backend/utils/fmgr/dfmgr.c 2006-10-07 11:53:58 +0200
@@ -60,6 +60,10 @@
static char *expand_dynamic_library_name(const char *name);
static char *substitute_libpath_macro(const char *name);
+/* types for PostgreSQL-specific DSO init/fini functions */
+typedef void (*PG_init_t)(void);
+typedef void (*PG_fini_t)(void);
+
/*
* Load the specified dynamic-link library file, and look for a function
* named funcname in it. (funcname can be NULL to just load the file.)
@@ -77,6 +81,7 @@
load_external_function(char *filename, char *funcname,
bool signalNotFound, void **filehandle)
{
+ PG_init_t *PG_init;
DynamicFileList *file_scanner;
PGFunction retval;
char *load_error;
@@ -146,6 +151,13 @@
fullname, load_error)));
}
+ /* optionally give the DSO a chance to initialize by calling a
+ PostgreSQL-specific (and this way portable) "_PG_init" function
+ similar to what dlopen(3) implicitly does with "_init" on some
+ Unix platforms. */
+ if ((PG_init = (PG_init_t *)pg_dlsym(file_scanner->handle, "_PG_init")) != NULL)
+ (*PG_init)();
+
/* OK to link it into list */
if (file_list == NULL)
file_list = file_scanner;
@@ -187,6 +199,7 @@
void
load_file(char *filename)
{
+ PG_fini_t *PG_fini;
DynamicFileList *file_scanner,
*prv,
*nxt;
@@ -223,6 +236,14 @@
prv->next = nxt;
else
file_list = nxt;
+
+ /* optionally give the DSO a chance to finish by calling
+ a PostgreSQL-specific (and this way portable) "_PG_fini"
+ function similar to what dlopen(3) implicitly does with
+ "_fini" on some Unix platforms. */
+ if ((PG_fini = (PG_fini_t *)pg_dlsym(file_scanner->handle, "_PG_fini")) != NULL)
+ (*PG_fini)();
+
clear_external_function_hash(file_scanner->handle);
pg_dlclose(file_scanner->handle);
free((char *) file_scanner);