aboutsummaryrefslogtreecommitdiff
path: root/src/backend
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend')
-rw-r--r--src/backend/postmaster/postmaster.c4
-rw-r--r--src/backend/tcop/postgres.c5
-rw-r--r--src/backend/utils/fmgr/Makefile4
-rw-r--r--src/backend/utils/fmgr/dfmgr.c65
-rw-r--r--src/backend/utils/init/globals.c3
5 files changed, 24 insertions, 57 deletions
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c
index 1e558d5a639..c37cb259df2 100644
--- a/src/backend/postmaster/postmaster.c
+++ b/src/backend/postmaster/postmaster.c
@@ -37,7 +37,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.387 2004/05/14 17:04:44 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.388 2004/05/17 14:35:29 momjian Exp $
*
* NOTES
*
@@ -697,6 +697,8 @@ PostmasterMain(int argc, char *argv[])
ereport(FATAL,
(errmsg("%s: could not locate my own executable path",
progname)));
+ if (strlen(pkglib_path) == 0)
+ get_pkglib_path(my_exec_path, pkglib_path);
#ifdef EXEC_BACKEND
if (find_other_exec(argv[0], "postgres", PG_VERSIONSTR, postgres_exec_path) < 0)
diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c
index 72750bfa623..f06340a54e4 100644
--- a/src/backend/tcop/postgres.c
+++ b/src/backend/tcop/postgres.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/tcop/postgres.c,v 1.406 2004/05/14 17:04:45 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/tcop/postgres.c,v 1.407 2004/05/17 14:35:31 momjian Exp $
*
* NOTES
* this is the "main" module of the postgres backend and
@@ -2652,6 +2652,9 @@ PostgresMain(int argc, char *argv[], const char *username)
ereport(FATAL,
(errmsg("%s: could not locate postgres executable",
argv[0])));
+ if (strlen(pkglib_path) == 0)
+ get_pkglib_path(my_exec_path, pkglib_path);
+
/*
* Validate we have been given a reasonable-looking DataDir (if
* under postmaster, assume postmaster did this already).
diff --git a/src/backend/utils/fmgr/Makefile b/src/backend/utils/fmgr/Makefile
index 000b17a21d5..37b6d03e23f 100644
--- a/src/backend/utils/fmgr/Makefile
+++ b/src/backend/utils/fmgr/Makefile
@@ -4,7 +4,7 @@
# Makefile for utils/fmgr
#
# IDENTIFICATION
-# $PostgreSQL: pgsql/src/backend/utils/fmgr/Makefile,v 1.15 2003/12/23 21:56:20 tgl Exp $
+# $PostgreSQL: pgsql/src/backend/utils/fmgr/Makefile,v 1.16 2004/05/17 14:35:31 momjian Exp $
#
#-------------------------------------------------------------------------
@@ -14,7 +14,7 @@ include $(top_builddir)/src/Makefile.global
OBJS = dfmgr.o fmgr.o funcapi.o
-override CPPFLAGS += -DPKGLIBDIR=\"$(pkglibdir)\" -DDLSUFFIX=\"$(DLSUFFIX)\"
+override CPPFLAGS += -DDLSUFFIX=\"$(DLSUFFIX)\"
all: SUBSYS.o
diff --git a/src/backend/utils/fmgr/dfmgr.c b/src/backend/utils/fmgr/dfmgr.c
index 60d982b9458..3aeadfa20e2 100644
--- a/src/backend/utils/fmgr/dfmgr.c
+++ b/src/backend/utils/fmgr/dfmgr.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/fmgr/dfmgr.c,v 1.71 2004/03/09 05:06:45 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/fmgr/dfmgr.c,v 1.72 2004/05/17 14:35:31 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -270,12 +270,6 @@ file_exists(const char *name)
#error "DLSUFFIX must be defined to compile this file."
#endif
-/* Example format: "/usr/local/pgsql/lib" */
-#ifndef PKGLIBDIR
-#error "PKGLIBDIR needs to be defined to compile this file."
-#endif
-
-
/*
* If name contains a slash, check if the file exists, if so return
* the name. Else (no slash) try to expand using search path (see
@@ -341,62 +335,29 @@ expand_dynamic_library_name(const char *name)
static char *
substitute_libpath_macro(const char *name)
{
- size_t macroname_len;
- char *replacement = NULL;
-#ifdef WIN32
- char basename[MAXPGPATH];
-#endif
-
+ const char *sep_ptr;
+ char *ret;
+
AssertArg(name != NULL);
if (name[0] != '$')
return pstrdup(name);
-#ifndef WIN32
- macroname_len = strcspn(name + 1, "/") + 1;
-#else
- macroname_len = strcspn(name + 1, "/\\") + 1;
-#endif
-
- if (strncmp(name, "$libdir", macroname_len) == 0)
-#ifndef WIN32
- replacement = PKGLIBDIR;
-#else
- {
- char *p;
- if (GetModuleFileName(NULL,basename,MAXPGPATH) == 0)
- ereport(FATAL,
- (errmsg("GetModuleFileName failed (%i)",(int)GetLastError())));
-
- canonicalize_path(basename);
- if ((p = last_path_separator(basename)) == NULL)
- ereport(FATAL,
- (errmsg("unexpected failure in determining PKGLIBDIR (%s)",basename)));
- else
- *p = '\0';
-
- strcat(basename,"/../lib");
- replacement = basename;
- }
-#endif
- else
+ if ((sep_ptr = first_path_separator(name)) == NULL)
+ sep_ptr = name + strlen(name);
+
+ if (strlen("$libdir") != sep_ptr - name ||
+ strncmp(name, "$libdir", strlen("$libdir")) != 0)
ereport(ERROR,
(errcode(ERRCODE_INVALID_NAME),
errmsg("invalid macro name in dynamic library path")));
- if (name[macroname_len] == '\0')
- return pstrdup(replacement);
- else
- {
- char *new;
+ ret = palloc(strlen(pkglib_path) + strlen(sep_ptr) + 1);
- new = palloc(strlen(replacement) + (strlen(name) - macroname_len) + 1);
+ strcpy(ret, pkglib_path);
+ strcat(ret, sep_ptr);
- strcpy(new, replacement);
- strcat(new, name + macroname_len);
-
- return new;
- }
+ return ret;
}
diff --git a/src/backend/utils/init/globals.c b/src/backend/utils/init/globals.c
index 356d45e62e4..d94130a1b0a 100644
--- a/src/backend/utils/init/globals.c
+++ b/src/backend/utils/init/globals.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/init/globals.c,v 1.85 2004/05/13 22:45:03 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/init/globals.c,v 1.86 2004/05/17 14:35:32 momjian Exp $
*
* NOTES
* Globals used all over the place should be declared here and not
@@ -46,6 +46,7 @@ char *DataDir = NULL;
char OutputFileName[MAXPGPATH];
char my_exec_path[MAXPGPATH]; /* full path to postgres executable */
+char pkglib_path[MAXPGPATH]; /* full path to lib directory */
BackendId MyBackendId;