OS2World OLD-STATIC-BACKUP Forum

OS/2 - Technical => Applications => Topic started by: madcrow on 2011.01.10, 21:47:24

Title: GBM fails, looks for TCPIP32???
Post by: madcrow on 2011.01.10, 21:47:24
I'm creating an OS/2 VM and in order to get some support for modern image file formats, I was installing the new version of GBM from Hobbes. Sadly the WPI installer is sadly inadequate, as it fails to do certain crucial things like adding the GBM path to the system path and library path in CONFIG.SYS. Even after I do this by hand (and reboot), things still don't work: GBMV/GBMV2 fail to run (when I run them from the command line, I'm told that they're looking for TCPIP32, which, of course, my old Warp4+FP15 combo lacks) and GBMVER says that I lack either GBM or some dependencies. What gives here? Nothing I've read seems to indicate that GBM relies on TCP/IP, so was this just a case of bad compilation switch which included an erroneus dependency in the app, or is there something more going on here? Can anybody help me get GBM working?
Title: Re: GBM fails, looks for TCPIP32???
Post by: melf on 2011.01.11, 01:09:27
Hi madcrow,
can't help you with your problem, but just a note about that the readme of GBM clearly says that it by purpose do not add paths to config.sys
Title: Re: GBM fails, looks for TCPIP32???
Post by: rudi on 2011.01.11, 10:07:45
Quote from: madcrow on 2011.01.10, 21:47:24
Nothing I've read seems to indicate that GBM relies on TCP/IP, so was this just a case of bad compilation switch which included an erroneus dependency in the app, or is there something more going on here? Can anybody help me get GBM working?

Contact the author and ask for a workaround. GBM imports four relatively unimportant functions from TCPIP32. Something that happens very easily when you use more recent compilers/tools that assume TCPIP is a standard lib.
Title: Re: GBM fails, looks for TCPIP32???
Post by: RobertM on 2011.01.14, 01:20:28
Quote from: rudi on 2011.01.11, 10:07:45
Quote from: madcrow on 2011.01.10, 21:47:24
Nothing I've read seems to indicate that GBM relies on TCP/IP, so was this just a case of bad compilation switch which included an erroneus dependency in the app, or is there something more going on here? Can anybody help me get GBM working?

Contact the author and ask for a workaround. GBM imports four relatively unimportant functions from TCPIP32. Something that happens very easily when you use more recent compilers/tools that assume TCPIP is a standard lib.


Though I have not tried this with a core OS/2 subsystem, it may be possible to place those DLLs someplace NOT in your path statements and then use the BEGINLIBPATH/ENDLIBPATH statements in a CMD file to start GBM. You'd of course also have to make sure the CMD file passed any parameters it was sent to GBM after setting up it's environment variables.
Title: Re: GBM fails, looks for TCPIP32???
Post by: DougB on 2011.01.14, 02:48:37
QuoteI'm told that they're looking for TCPIP32, which, of course, my old Warp4+FP15 combo lacks)

Yes it does...

Quoteso was this just a case of bad compilation switch which included an erroneus dependency in the app

Probably. Apparently, including TCP/IP is a default, and it defaults to expecting the new TCP/IP stack (which is embodied in TCPIP32.DLL).

QuoteCan anybody help me get GBM working?

Two possibilities (in addition to the other suggestion to get GBM compiled without the dependency):

1) The quick, dirty, and potentially dangerous method: IF GBM does not actually use anything that is in TCPIP32.DLL, you *might* be able to get it to work by simply copying TCPIP.DLL to TCPIP32.DLL. If that doesn't work, do not leave the new file there. If it does work, DO NOT FORGET that you did that, because it can cause trouble later, if you install a program that does actually try to use it.

2) The recommended method would be to update to the 32 bit TCP/IP stack. There is information about that at: http://www3.telus.net/public/bissett1/Warp4updates.txt (http://www3.telus.net/public/bissett1/Warp4updates.txt). This has the added advantage that you get better TCP/IP support.

HTH...
Title: Re: GBM fails, looks for TCPIP32???
Post by: eville_hn on 2011.01.16, 02:23:36
Thanks for reporting the issue with the dependency to TCPIP32 (also via PM).

I think I meanwhile found why it is now there. The library I included for the new RAW support does use some network byte order conversion functions (htons/ntohs, htonl/ntohl). Obviously I have overseen this when porting it to OS/2 for GBM. Usage of the functions/macros is pretty common in code developed for Unix/Linux. I'll see if I can replace them by GBM own implementations to get rid of the dependencies so that GBM will also work on Warp 3 again (although nobody complained yet).

Nevertheless with Warp 4 it is a good idea to go to 32bit TCP/IP stack alone for security and better performance. eCS user have it on-board from the beginning.

Only GBM version 1.70 and 1.71 are affected by the TCPIP32 dependency, older versions should be fine.

EDIT:
A patched GBM.DLL 1.71 for Warp 3/4 with 16bit TCPIP stack is now available from the GBM website. If you have such a system, I'd be interested in success reports ;) . All eCS users and users of Warp 4 with 32bit TCPIP stack can keep the original GBM.DLL. The next official release will have the fix incorporated.