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
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);
|
|
|