Hello,
I am working on the port of PostgreSQL to NetWare.
During my work i�ve found the following that need to be added to
the sources in order to compile postgreSQL on NetWare. There
may be some more changes i�ve not seen until today, but if so
i�ll post the upcomping issues here.
1. The following additions to main.c:
#ifdef N_PLAT_NLM/* NetWare-specific actions on startup */ NWInit();
#endif /* N_PLAT_NLM */
and
#if !defined(__BEOS__) && !defined(N_PLAT_NLM)
if (geteuid() == 0)
{
...
2. in bootstrap.c/cleanup()
static void
cleanup()
{static int beenhere = 0;
if (!beenhere) beenhere = 1;else{ elog(FATAL, "Memory manager fault: cleanup called twice.\n");
proc_exit(1);}if(reldesc != (Relation) NULL) heap_close(reldesc, NoLock);CommitTransactionCommand();
#ifdef N_PLAT_NLM NWCleanUp();
#endif
proc_exit(Warnings);
}
3. in xlog.c
#if !defined(__BEOS__) && !defined(N_PLAT_NLM)if (link(tmppath, path) < 0) elog(STOP, "link from %s to %s
(initializationof log file %u, segment %u) failed: %m", tmppath, path, log, seg);unlink(tmppath);
4. in fd.c/filepath()
static char *
filepath(const char *filename)
{char *buf;
#ifdef N_PLAT_NLMbuf = (char *) palloc(strlen(filename) + 1);strcpy(buf, filename);
#else/* Not an absolute path name? Then fill in with database path... */if (*filename != '/'){...
5. in dfmgr.c/load_external_function()
#ifdef N_PLAT_NLM file_scanner->handle = dlopen(filename, RTLD_LAZY);
#else file_scanner->handle = pg_dlopen(filename);
#endif
6. in datetime.h
#if !defined(__CYGWIN__) && !defined(N_PLAT_NLM)
#define TIMEZONE_GLOBAL timezone
#else
#define TIMEZONE_GLOBAL _timezone
#endif
7. in dynamic_loader.h
#ifndef N_PLAT_NLM
extern void *pg_dlopen(char *filename);
extern PGFunction pg_dlsym(void *handle, char *funcname);
extern void pg_dlclose(void *handle);
extern char *pg_dlerror(void);
#endif
8. a directory backend/port/netware for some OS specific files I want to maintain.
Please give me some information how I can get access to such a directory and how
I can check in files to this directory. If you have another way please let me know.
As you see these are only some simple #ifdefs that need to be added to the code.
best regards
Ulrich Neumann
Novell Worldwide Developer Support