Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for Windows NT4/98/ME [CORE2609] #3019

Closed
firebird-automations opened this issue Aug 30, 2009 · 12 comments
Closed

Support for Windows NT4/98/ME [CORE2609] #3019

firebird-automations opened this issue Aug 30, 2009 · 12 comments

Comments

@firebird-automations
Copy link
Collaborator

Submitted by: @samofatov

Assigned to: @samofatov

Firebird 2.1 works on Windows 98/ME, and on NT4 is you use patched MSVC8 CRT.

Firebird 2.5 dropped this support while demand for such deployments is still there.

Commits: aca5a83

@firebird-automations
Copy link
Collaborator Author

Modified by: @samofatov

assignee: Nickolay Samofatov [ skidder ]

@firebird-automations
Copy link
Collaborator Author

Commented by: @samofatov

Implemented static MSVC7 build that supports Windows 98/ME and NT4 SP3+

@firebird-automations
Copy link
Collaborator Author

Modified by: @samofatov

status: Open [ 1 ] => Resolved [ 5 ]

resolution: Fixed [ 1 ]

Fix Version: 2.5 RC1 [ 10362 ]

@firebird-automations
Copy link
Collaborator Author

Commented by: @hvlad

There was NO agreement in fb-devel to commit this code.

@firebird-automations
Copy link
Collaborator Author

Commented by: @samofatov

Well there was an agreement, and we've spent quite a bit of time to reach it.

Quote from Dmitry, 2009-03-12
"This sounds acceptable to me. I would feel even more positive if you'd
hide the Win98 specific assembly code inside a separate file, like you
did for PIO, but I won't be insisting..."

Other changes in the patch are mostly the bugfixes (error handling, etc)

@firebird-automations
Copy link
Collaborator Author

Modified by: @pcisar

status: Resolved [ 5 ] => Closed [ 6 ]

@firebird-automations
Copy link
Collaborator Author

Commented by: Denis (obapol)

It's not clear how to build Firebird 2.5.2 for Windows 98/ME and NT4 SP3+ support.
I tried

adjust_vc7_files
make_icu
make_boot
make_all

with Visual C++ 2003 installed but got binaries incompatible with win98.

Can you please tell me what mistakes I made and how to build working win98 compatible build?

@firebird-automations
Copy link
Collaborator Author

Commented by: @samofatov

You seem to proceed correctly.

Can you please explain in more detail how the resulting binaries are not compatible?
Any unsupported functions used?

BTW, re Win98 we didn't test original 98 build, only Win98 SE

@firebird-automations
Copy link
Collaborator Author

Commented by: Denis (obapol)

Window caption says: "Error Starting Program".

Text inside window:
"The FB_INET_SERVER.EXE file is
linked to missing export KERNEL32.DLL:OpenThread.".

And it's on Windows 98 SE.

@firebird-automations
Copy link
Collaborator Author

Commented by: @samofatov

Well, some code was added into Firebird that broke Win98 support after the issue was closed.

In this particular case OpenThread call is used in fb_exception.cpp to check if threads are still alive.

The code is not very good, as it iterates over all threads and opens each and every one of them. If you have 2000+ threads this might take a while.

You might want to read MSDN and see if Win98 has OpenThread replacement. Or you might undo the patch that introduced OpenThread usage.
IMO this change only introduced a performance regression and should not have other useful effects.

@firebird-automations
Copy link
Collaborator Author

Modified by: @pavel-zotov

QA Status: No test

@firebird-automations
Copy link
Collaborator Author

Modified by: @pavel-zotov

status: Closed [ 6 ] => Closed [ 6 ]

QA Status: No test => Cannot be tested

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant