From: "gunno" Newsgroups: comp.os.msdos.djgpp Subject: HowTo patch RSXNTDJ : a first attempt Lines: 88 X-Newsreader: Microsoft Outlook Express 4.71.1712.3 X-MimeOLE: Produced By Microsoft MimeOLE V4.71.1712.3 Message-ID: <4Jbw3.675$Hya.190530560@newsa.telia.net> Date: Mon, 23 Aug 1999 13:08:16 GMT NNTP-Posting-Host: 195.198.144.9 X-Complaints-To: abuse AT telia DOT com X-Trace: newsa.telia.net 935413696 195.198.144.9 (Mon, 23 Aug 1999 15:08:16 CEST) NNTP-Posting-Date: Mon, 23 Aug 1999 15:08:16 CEST Organization: Telia Internet To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com I just got RSXNTDJ to work for C++ and have successfully worked through a handful examples. Below is a first attempt to a "How to patch RSXNTDJ". The purpose of posting this, is to save time for people trying RSXNTDJ, and hopefully it will be improved by others with deeper knowledge. The guidelines below would have saved days of work for me. 1: Check the versions ! ----------------------- (or "what the h** is 'stab strings'?") RSXNTDJ v.1.3.1 doesn't cooperate with djgpp v.2.8 when it comes to compiling c++. (As far as I've tracked this down, the problem is in NTBIND) If you get error messages complaining about missing 'stab strings' then you probably have this combination of versions. Check it out! Two solutions: A: Downgrade djgpp to 2.7 .. something. I've seen recommendations telling that this will work together with RSXNTDJ v.1.3 but I haven't tested that. B: Replace RSXNTDJ v.1.3 with the newer version RSXNTDJ v.1.5.0 This I've tested, and it comes with new problems. The following is about how to solve those problems. DJGPP v.2.8 + RSXNTDJ v.1.5.0 ============================== (0. First make sure you have made the settings in 'Install RSXNTDJ' in the documentation (RSXNTDJ.HLP)) 1. Missing library. -------------------- c:/djgpp/bin/ld.exe: cannot open -lcomctl32: No such file or directory (ENOENT) make.exe: *** [whello.exe] Error 1 If you get this error message the reason is that there is no library 'libcomctl32.a' in \rsxntdj\lib\. However there is a '\rsxntdj\lib\LIBCOMCT.A' and I've been told that the name has been truncated during the zipping. (Thanks again, Johan Venter!) Go to \rsxntdj\lib and make a copy with the longer name: cd \rsxntdj\lib copy LIBCOMCT.A libcomctl32.a 2. Conflicting names. function.h -------------------------------- There is a 'function.h' in \rsxntdj\include\win32 There is another 'function.h' in \djgpp\lang\cxx Don't ask me why these directories are visited during the inclusion process, (I haven't the foggiest idea) but they _are_ visited regardless of the values of the environment variables. The problem is obvious. If RSXNTDJ wants to include 'function.h' and the djgpp directory is visited first, wrong file will be included. And arranging things so the RSXNTDJ directory is visited first is no solution, because then djgpp will get wrong 'function.h' included. My solution so far: I: give RSXNTDJ's 'function.h' a new name cd \rsxntdj\include\win32 move function.h RS_funct.h /* or whatever name you prefer */ II: In RSXNTDJ header files 'function.h' is mentioned at three places: \rsxntdj\include\longshrt.ls1:23: cpp/stl_function.h stl_func.h \rsxntdj\include\longshrt.ls2:12: cpp/function.h and \rsxntdj\include\Win32\windows.h:55: #include The latter is crucial. In windows programming you include windows.h. So take your editor and change that line in 'windows.h' to #include What to do with the others, 'longshrt.1s1' and 'longshrt.1s2' I don't know. I haven't seen such files before and don't know what they do. I haven't touched them. And so far things have been working just fine. Conclusion: ----------- As can be seen this HowTo is not finished. There is plenty of room for improvements and answers to the questions it leaves behind. At least it gives some help on the way to get a working RSXNTDJ.