Windows NT port of Postgres

Started by Joost Kraaijeveldover 27 years ago3 messages
#1Joost Kraaijeveld
JKraaijeveld@askesis.nl

Hi everybody,

A report of my attempts after my holiday.

1. Configure

Configure needed a little change in the detection of the way echo handles
en-of-line.

2. Make

Postgres compiles and links with EGCS 1.1 for CygWin B19 with some tools
from Andy Piper and a IPC library by Ludovic Lange. Some changes in the EGCS
source tree are needed (I did this so that I did not have to change any
Postgres source).

3. Make install

I had to strip the extension from the executables (I read somewhere that
that could be done from configure but I cannot find te correct message.
After Make instal I renamed the executables to the *.exe form again. If I
did not do that I got a lot of "access denied" messages in the rest of the
procedure.

4. Initdb

I created a postgres account (jkr).

I set the environmental variable USER to the account above.

This line in the script gave NOUSER as POSTGRES_SUPERUID:
POSTGRES_SUPERUID=`pg_id $POSTGRES_SUPERUSERNAME`
I think it has something to do with the way a user name is created in
Windows NT: WindowNTDomain\UserName and the way getpwnam() in pg_id.c works.
Running pg_id with no $POSTGRES_SUPERUSERNAME gave a number. So I changed
the line to:
POSTGRES_SUPERUID=500, the result of running pg_id without parameter.

After doing that the output of initdb was:

bash-2.01$ initdb
initdb: using /usr/local/pgsql/lib/local1_template1.bki.source as input to
create the template database.
initdb: using /usr/local/pgsql/lib/global1.bki.source as input to create the
global classes.
initdb: using /usr/local/pgsql/lib/pg_hba.conf.sample as the host-based
authentication control file.

We are initializing the database system with username jkr (uid=500).
This user will own all the files and must also own the server process.

initdb: creating template database in /usr/local/pgsql/data/base/template1
Running: postgres -boot -C -F -D/usr/local/pgsql/data -Q template1
(d:\unix\root\usr\local\pgsql\bin\postgres.exe 5333) Exception:
STATUS_ACCESS_VIOLATION
(d:\unix\root\usr\local\pgsql\bin\postgres.exe 5333) Dumping stack trace to
postgres.exe.core
initdb: could not create template database
initdb: cleaning up by wiping out /usr/local/pgsql/data/base/template1
bash-2.01$

Debugging postgres with the above commandline created some difficulties
because the debugger did not step into the function that was responsible for
the crash (bool IsBootstrapProcessingMode() in miscinit.c line 170). I have
not figured out what the problem is.

5. People who have offered help.

There are a few people who have offered to help (active coding / guidance /
moral support) :
Hugo Korwaser (hugo.korwaser@dspace.co.uk)
J. Michael Roberts (mirobert@cs.indiana.edu)
Chris Williams (chris_d_williams@sterling.com)

More help is welcome. (BTW because of some major hard and software prblems I
lost my entire email archive. So if you offered help and I did not mention
you please respond and don't be mad at me ;-)).

The people who have offered help will be contacted shortly to make a plan.
If you allready have one let me know.

Joost

#2Thomas G. Lockhart
lockhart@alumni.caltech.edu
In reply to: Joost Kraaijeveld (#1)
Re: [HACKERS] Windows NT port of Postgres

More help is welcome. (BTW because of some major hard and software
prblems I lost my entire email archive. So if you offered help and I
did not mention you please respond and don't be mad at me ;-)).

Yeah, I know at least one other person who lot their e-mail system
because of memory problems on an NT machine.

One of the problems of running on a bleeding-edge retro system ;)

- Tom

#3Bruce Momjian
maillist@candle.pha.pa.us
In reply to: Joost Kraaijeveld (#1)
Re: [HACKERS] Windows NT port of Postgres

[Charset iso-8859-1 unsupported, filtering to ASCII...]

Hi everybody,

A report of my attempts after my holiday.

1. Configure

Configure needed a little change in the detection of the way echo handles
en-of-line.

2. Make

Postgres compiles and links with EGCS 1.1 for CygWin B19 with some tools
from Andy Piper and a IPC library by Ludovic Lange. Some changes in the EGCS
source tree are needed (I did this so that I did not have to change any
Postgres source).

3. Make install

I had to strip the extension from the executables (I read somewhere that
that could be done from configure but I cannot find te correct message.
After Make instal I renamed the executables to the *.exe form again. If I
did not do that I got a lot of "access denied" messages in the rest of the
procedure.

4. Initdb

I created a postgres account (jkr).

I set the environmental variable USER to the account above.

This line in the script gave NOUSER as POSTGRES_SUPERUID:
POSTGRES_SUPERUID=`pg_id $POSTGRES_SUPERUSERNAME`
I think it has something to do with the way a user name is created in
Windows NT: WindowNTDomain\UserName and the way getpwnam() in pg_id.c works.
Running pg_id with no $POSTGRES_SUPERUSERNAME gave a number. So I changed
the line to:
POSTGRES_SUPERUID=500, the result of running pg_id without parameter.

After doing that the output of initdb was:

bash-2.01$ initdb
initdb: using /usr/local/pgsql/lib/local1_template1.bki.source as input to
create the template database.
initdb: using /usr/local/pgsql/lib/global1.bki.source as input to create the
global classes.
initdb: using /usr/local/pgsql/lib/pg_hba.conf.sample as the host-based
authentication control file.

We are initializing the database system with username jkr (uid=500).
This user will own all the files and must also own the server process.

initdb: creating template database in /usr/local/pgsql/data/base/template1
Running: postgres -boot -C -F -D/usr/local/pgsql/data -Q template1
(d:\unix\root\usr\local\pgsql\bin\postgres.exe 5333) Exception:
STATUS_ACCESS_VIOLATION
(d:\unix\root\usr\local\pgsql\bin\postgres.exe 5333) Dumping stack trace to
postgres.exe.core
initdb: could not create template database
initdb: cleaning up by wiping out /usr/local/pgsql/data/base/template1
bash-2.01$

Debugging postgres with the above commandline created some difficulties
because the debugger did not step into the function that was responsible for
the crash (bool IsBootstrapProcessingMode() in miscinit.c line 170). I have
not figured out what the problem is.

This is pretty amazing you got this far. Hard to see how it could crash
on that code.

5. People who have offered help.

There are a few people who have offered to help (active coding / guidance /
moral support) :
Hugo Korwaser (hugo.korwaser@dspace.co.uk)
J. Michael Roberts (mirobert@cs.indiana.edu)
Chris Williams (chris_d_williams@sterling.com)

More help is welcome. (BTW because of some major hard and software prblems I
lost my entire email archive. So if you offered help and I did not mention
you please respond and don't be mad at me ;-)).

The people who have offered help will be contacted shortly to make a plan.
If you allready have one let me know.

This is all pretty amazing. To port something like this requires a huge
amount of supporting NT code to make it look like Unix.

-- 
Bruce Momjian                          |  830 Blythe Avenue
maillist@candle.pha.pa.us              |  Drexel Hill, Pennsylvania 19026
http://www.op.net/~candle              |  (610) 353-9879(w)
  +  If your life is a hard drive,     |  (610) 853-3000(h)
  +  Christ can be your backup.        |