home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 1992-10-31 | 313.6 KB | 7,660 lines
This forum is supplied for demonstration purposes only and is accessible via the IBM OS/2 BBS system. What you see below is the forum as it existed on 10/30/92. The IBM OS/2 Bulletin Board System (BBS) is IBM's new electronic support offering for OS/2 Version 2.0. With OS/2 BBS you can electronically review OS/2 technical information, submit program defects to IBM, and receive information on how to solve problems. Users of the OS/2 BBS not only include OS/2 customers, but the OS/2 expertise of the entire internal IBM community worldwide. OS2BBS makes all this available via a local or toll free number in most major cities. To request a complete OS/2 BBS Information Package detailing the OS/2 BBS offering and including pricing and registration/access information, please call: 1-800-547-1283. ===== C-SET2 CFORUM created at 17:34:38 on 92/04/07 GMT (by HOPKINS at AUSVM8) IBM UNCLASSIFIED ---------------- The information in this forum is considered by IBM to be external and may be shared by everyone who is given access. This forum is shared with the internal IBM employee conferences. Forum: C-SET2 CFORUM Forum subject: IBM C SET/2 Compiler This FORUM is provided as a conferencing tool to promote discussion of topics pertaining to IBM C SET/2 32 BIT compiler, and present issues, questions, and problems relating to use of the product. Contributions must not contain confidential or proprietary information. Each contributor agrees, in placing material in this forum, that IBM and other users are free to prepare derivative works based upon it, and to use, reproduce, perform, display and distribute inside and outside their company such material and such derivative works, without obligation or charge. IBM is not responsible or liable for the use, copying, or distribution of materials placed on this forum, and has therefore no obligation to control such acts. All subscribers are required to abide at all times by the conference rules described in the Bulletin Board Rules under "News and Announcements". All IBM personnel are required to abide at all times by the IBMPC RULES and the IBM Business Conduct Guidelines. IBM personnel will read the CUSTOMER FORUM RULES in IBMPC RULES before contributing. Contributions violating these rules will be deleted by the CFORUM Owner or their delegate, and in some cases by an IBM conference Administrator. The OS2BBS CFORUM is where anyone may raise concerns regarding rules violations found in this and other CFORUMS. The IBM Owner of this forum is: Name: Kenneth M. Hopkins, OS/2 Support Services Mailing Address: IBM Manufacturing and Development 11400 Burnet Road Internal Zip 2900-042/1D003 Austin, Texas 78758 IBM Node/Userid: AUSVM8/HOPKINS ----- C-SET2 CFORUM appended at 17:29:47 on 92/04/10 GMT (by AMELINE at TOROLAB6) Subject: Who's here I'll be monitoring this forum for questions, suggestions etc... There'll likely be others from the development team looking in as well Regards, Ian Ameline C-Set/2 Development ----- C-SET2 CFORUM appended at 18:08:18 on 92/04/10 GMT (by XXTCAN06 at TORVMCOP) Subject: Who's here Ref: Append at 17:29:47 on 92/04/10 GMT (by AMELINE at TOROLAB6) Hi! I guess I'll use this invitation to ask a question: Why do I have to cast some #defined constants to (ULONG)? E.g.: SWP_SIZE SWP_MOVE, SWP_ACTIVATE, SWP_SHOW. I've used the HELLO.C sample program as a starting point for PM programming and got some compile warnings on these defined constants. I tracked them down to their include file and found them to be defined along these lines: #define SWP_SIZE 0x0001. Could you not have a U (or UL) after them in their definition? The compile warnings complained about the use of bitwise operators on signed variables. The expression in "error" was: SWP_SIZE | SWP_MOVE | SWP_ACTIVATE | SWP_SHOW. I had to code: (ULONG)SWP_SIZE | (ULONG)SWP_MOVE | (ULONG)SWP_ACTIVATE | (ULONG)SWP_SHOW to get rid of the warnings. Pierre Legault. Transport Canada. (613)993-7149. ----- C-SET2 CFORUM appended at 18:27:55 on 92/04/10 GMT (by XXNOVA24 at TORVMCOP) Subject: Who's here Ref: Append at 18:08:18 on 92/04/10 GMT (by XXTCAN06 at TORVMCOP) I think I have a half answer : If you change the header files to the proper 0x000000010UL , than the RC resource compiler will crashes. One solution: (This is what I'm doing): #ifdef RC_INCLUDED #define ABC 0x0001 #else #define ABC 0x0001u #endif Only about four areas where you have to change the header files. Geza Szivos 403-290-6583 ----- C-SET2 CFORUM appended at 20:45:26 on 92/04/10 GMT (by AMELINE at TOROLAB6) Subject: Bitwise operations on signed objects. Ref: Append at 18:27:55 on 92/04/10 GMT (by XXNOVA24 at TORVMCOP) Hello! I believe that the shortcoming is in the toolkit header files. It may be that they weren't compiled with the /Kb compiler option. (This option is the one causing the warnings to be emitted.) These particular warnings can be ignored if you're not concerned with porting. The result of the bitwise operators on signed integers is implementation defined -- which is to say that they may change from machine to machine, but will not change on the same machine. The best way to get rid of them is to use the + operator instead of |. Since the values of the #defines are all powers of 2, the same result will be produced. Regards, Ian Ameline ----- C-SET2 CFORUM appended at 21:06:12 on 92/04/10 GMT (by XXNOVA24 at TORVMCOP) Subject: Bitwise operations on signed objects. Ref: Append at 20:45:26 on 92/04/10 GMT (by AMELINE at TOROLAB6) Jou're right. I still prefere to compile with (rearly) all warnings on. It fixes nearly all the syntax errors. I'd like to see that the CSET/2 goes to C++. Geza Szivos 403-290-6583 ----- C-SET2 CFORUM appended at 21:34:01 on 92/04/10 GMT (by AMELINE at TOROLAB6) Subject: Bitwise operations on signed objects. C++ Ref: Append at 21:06:12 on 92/04/10 GMT (by XXNOVA24 at TORVMCOP) I forgot to mention that if you have the same flag twice in the list, + gives different results than |. When things are hidden behind #defines, or possibly several layers of defines, this might cause difficulties. As for C-Set/2 becoming a C++ compiler, you're not alone. This is a very popular request. As you may know, IBM just announced a C++ compiler for the Risc System 6000. This compiler was done here in Toronto. The development team is just down the hall from the C team. I can't really say anything more yet, but as soon as an announcement is made, I'll post the relevant details here. Regards, dan Ameline ----- C-SET2 CFORUM appended at 21:45:55 on 92/04/10 GMT (by XXNOVA24 at TORVMCOP) Subject:Competetive upgrade. Did anyone heard someting from a competetive upgrade( a'la Borland (The old)) ? I have M$ C6.0A and I'd like to change, since I can't use it for 32 bit dev. To make and OPSYS real popular we should be able to afford the developement tools. (remember Dos with basic and exe2bin and debug?) I'd like to go out and purchase a legal copy of CSET/2 for home, but it is not for home budget. Geza Szivos 403-290-6583 ----- C-SET2 CFORUM appended at 14:44:12 on 92/04/14 GMT (by XXMTEL02 at TORVMCOP) Subject:Static initialization problem The second pointer pszTextResp in the following code fragment doesn't get initialized properly. It ends up pointing to the same place as pszScn, i.e. to the start of szData instead of 2000 bytes offset. If I move the pointer assignments into executable code, everything works. I am running the 304 versions (mid-Feb) of 2.0 base, toolkit, and C-Set. (Although eager to move up as soon as all are GA'd.) Pls advise if more details desired.... extern struct { short sLen; char szDataì20001┘; } Rspns; static char *pszScn = Rspns.szData; static char *pszTextResp = Rspns.szData + 2000; Mike Capern, Maritime Tel, 902-421-5125 ----- C-SET2 CFORUM appended at 14:50:16 on 92/04/14 GMT (by MOONEY at TOROLAB6) Subject: Static initialization problem Ref: Append at 14:44:12 on 92/04/14 GMT (by XXMTEL02 at TORVMCOP) That bug looks familiar. I believe that it was fixed for the GA-level code. dave ----- C-SET2 CFORUM appended at 22:28:49 on 92/04/14 GMT (by MIKEM at TUCVM8) - Subject: tzset ?= _tzset In other C compilers I've used, which also claim ANSI compliance, the function to set time zone information is "tzset". In C-SET/2, it appears to be _tzset, so my code, which is working on other compilers doesn't work any longer under C-SET/2. Looking through the library routines listed in the help, it appears that this is true of many other common library routines as well. Is there any painless way to resolve this without keeping two copies of my source, or -Defining different constants in the various makefiles? Mike McDermott - GCBS41A on Prodigy Pennant Systems - an IBM Company ----- C-SET2 CFORUM appended at 22:37:05 on 92/04/14 GMT (by 40953586 at EHONE) Subject: tzset ?= _tzset Ref: Append at 22:28:49 on 92/04/14 GMT (by MIKEM at TUCVM8) Reply-to: Jurrie Lulofs <LULOFS@UITVM1> The "common" functions to which you refer are not ANSI. To get things to work as you would like simply compile with the migration switch which will enable macros that map your familiar names to C Set/2's equivalent functions (ie. tzset() -> _tzset() ) jurrie ----- C-SET2 CFORUM appended at 22:55:56 on 92/04/14 GMT (by MIKEM at TUCVM8) - Subject: tzset ?= _tzset Ref: Append at 22:37:05 on 92/04/14 GMT (by 40953586 at EHONE) Thanks, /Sm is exactly what I was looking for! Mike McDermott - GCBS41A on Prodigy Pennant Systems - an IBM Company ----- C-SET2 CFORUM appended at 02:09:17 on 92/04/16 GMT (by BIGBILL at TOROLAB6) Subject: Static initialization problem Ref: Append at 14:44:12 on 92/04/14 GMT (by XXMTEL02 at TORVMCOP) By the way, all have GAd now and are available on OS2PROD2. Bill Sarantakos OS/2 WorkFrame/2 Development Toronto, Ontario ----- C-SET2 CFORUM appended at 12:09:09 on 92/04/16 GMT (by XXMTEL02 at TORVMCOP) Subject: Static initialization problem Ref: Append at 02:09:17 on 92/04/16 GMT (by BIGBILL at TOROLAB6) Thanks folks, our SE seems to be having some trouble locating it. I'll pass on the info.. Mike Capern @ Maritime T&T ----- C-SET2 CFORUM appended at 17:28:31 on 92/04/16 GMT (by JELLIOTT at CANVM2) Subject: Static initialization problem Ref: Append at 02:09:17 on 92/04/16 GMT (by BIGBILL at TOROLAB6) Bill: Please remember this is a CUSTOMER forum. Only IBM US and IBM M&D employees have access to OS2PROD2. IBM Canada M&S (marketing) employees do not have access. Jim Elliott National Support Centre, IBM Canada ----- C-SET2 CFORUM appended at 03:48:08 on 92/04/17 GMT (by BIGBILL at TOROLAB6) Subject: Static initialization problem Ref: Append at 17:28:31 on 92/04/16 GMT (by JELLIOTT at CANVM2) Thanks, I know (and have been reminded). The problem is that there is a backlog for the tools for OS/2 and if the customers have an urgent need they can ask their SE's to get them a copy from that disk. We're also trying to arrange same for Canadian SE's. Stay tuned... Bill Sarantakos OS/2 WorkFrame/2 Development Toronto, Ontario ----- C-SET2 CFORUM appended at 13:28:03 on 92/04/20 GMT (by V$IBTIGA at BCRVMPC1) Subject: Problem with type casting values as pointers A customer discovered a problem with the compiler, running in GA. The code (listed below) is a test case that takes the address of a variable and puts it into another integer variable (not a pointer). Then, the code tries to get that address and assign a value to the contents of the address, but it is unsuccessful. If the address of the variable is assigned to a pointer, it works fine. She is porting code from M'Soft C 6.0 to C-Set/2. I have tried this with M'Soft C and it does work. She says that this is causing a major problem because her application does copy the contents of addresses to variables. Are there any work-arounds available? ------------------------------------------------------- #include <stdio.h> typedef struct tRB{ unsigned int XXX; int TDP; } RB; void main (void); void main () { P_RB rbp; int tint; RB rb; rbp = &rb; printf ("Should change *TDP from 5 to 50\n"); tint = 5; /* Copy the address of tint to TDP. TDP is an integer variable */ /* that contains the address of tint. */ rbp->TDP = (int) ∭ rbp->XXX = 0x4f4f4f4f; printf ("Struct RBP: XXX=%x TDP=%x, *TDP=%d\n", rbp->XXX, rbp->TDP, *((int *) rbp->TDP)); /* Assign 50 to the contents of the address that is contained */ /* in TDP. This should be tint. */ *((int *) (rbp->TDP)) = 50; printf ("Struct RBP: XXX=%x TDP=%x, *TDP=%d\n", rbp->XXX, rbp->TDP, *((int *) rbp->TDP)); } The output is as follows: Should change *TDP from 5 to 50 Struct RBP: XXX=4f4f4f4f TDP=61fc4, *TDP=5 Struct RBP: XXX=32 TDP=61fc4, *TDP=5 On the last line, *TDP should be equal to 50. Also, why is XXX changed? Larry Moore PSPC-Boca Tech Interface Group ----- C-SET2 CFORUM appended at 15:31:05 on 92/04/21 GMT (by MOONEY at TOROLAB6) Subject: Problem with type casting values as pointers Ref: Append at 13:28:03 on 92/04/20 GMT (by V$IBTIGA at BCRVMPC1) Strictly speaking, this code is not guaranteed to work, since ANSI renders casts from ptr to int to be undefined. Realisticly speaking though, this should work, and since it doesn't, I would call it a compiler bug. I've opened PTR TO04305 against our next release. If you want an APAR for this, let Ian know and he'll open one for you. I can't think of a workaround for this except to say "Don't do that." dave ----- C-SET2 CFORUM appended at 15:07:15 on 92/04/24 GMT (by WINGERT at BOEVM3) Subject:differences between IBM C/2 and C-Set2 Can someone explain me the result of the following program? What does the C-Compiler do?What is the difference to the IBM C/2 compiler??? #include <stdio.h> void main (void) { int a; //case 1 //output after IBM C/2 compilation: 0 1 2 //output after C-Set2compilation : 0 1 2 a=0; printf("%d %d %d \n",a,a+1,a+2); //case 2 //output after IBM C/2 compilation: 2 1 0 //output after C-Set2 compilation : 0 1 2 a=0; printf("%d %d %d \n",a++,a++,a++); //case 3 //output after IBM C/2 compilation: 3 2 1 //output after C-Set2 compilation : 3 3 3 a=0; printf("%d %d %d \n",++a,++a,++a); } I've compiled in case of IBM C/2 with Od option and in case of C-Set2 with O- option. I understand the result of the IBM C/2 as follows: -parameters in C-convetion are pushed on the stack from right to left.. -the parameters are poped from the stack vice versa -therefore a,a+1,a+2 cause an output of 0 1 2 -therefore a++, a++ ,a++ first a=0 will be pushed, then incremented, (a is now 1) then a=1 will be pushed on the stack, then incremented (a is now 2) then a=2 will be pushed on the stack. the result will be: 2 1 0 -similiar the result can be explained with ++a, ++a, ++a..... Can someone tell me what C-Set2 compiler does in contrast to the IBM C/2 compiler ??? and explain the result ???? Thanks in advance Harald Boeblingen.... ----- C-SET2 CFORUM appended at 15:45:34 on 92/04/24 GMT (by MOONEY at TOROLAB6) Subject: differences between IBM C/2 and C-Set2 Ref: Append at 15:07:15 on 92/04/24 GMT (by WINGERT at BOEVM3) Changing the value of a variable more than once in a single function call has undefined results. Actually, more precisely, "between the previous and next sequence point shall have its stored value modified at most once by the evaluation of an expression." This means that if you change the value of an expression more than once in an expression (modulo a couple of restrictions), the results are undefined. If you want to see "0 1 2" printed, then stick with printf( ..., a, a+1, a+2 ); . (Meta: you've asked this question more than one place. Tsk tsk.) dave ----- C-SET2 CFORUM appended at 20:07:43 on 92/04/24 GMT (by V$IBTIGA at BCRVMPC1) Subject: Possible C-Set/2 bug I have received a call from a customer who is getting the following exception compiling his source code: #C0000005:98242 He gets the exception when he uses the following parameters in compiling: /C /Ge- /Gd- /O+ /Se /Sp1 /Re /ss /Gm+ /Kb- /Ti- He says that if he changes O+ to O-, Kb- to Kb+, and Ti- to Ti+, no exception is generated. He says that he will provide the source code, if needed. Is this a known bug? He says that he has a work around, but wanted to report this. If any more info is needed, just let me know. Larry Moore PSPC-Boca Tech Interface Group ----- C-SET2 CFORUM appended at 21:13:57 on 92/04/24 GMT (by AMELINE at TOROLAB6) Subject: Possible C-Set/2 bug Ref: Append at 20:07:43 on 92/04/24 GMT (by V$IBTIGA at BCRVMPC1) What version of the compiler is your customer using? (The date on ICC.EXE will tell me this). We have fixed a bugs with this symptom between the last beta and the GA level of the code. It is very likely that the only option change which makes the difference is /O. It would help us very much to have the pre-processed output for the file he was compiling. If you could send it to my ID, I'll get on it right away. Regards, Ian Ameline ----- C-SET2 CFORUM appended at 18:29:38 on 92/05/04 GMT (by AOI1075 at OS2CUST) Subject: Floating point argument handling We have a section of code that worked in DOS (compiled under Turbo C), but gets a floating point exception in C-Set/2. Problem was that one subroutine had a whacky call where the last two arguments were odd. Next to last arg was a pointer to character string, and last arg was a float. However, the way the code was written, only one of the two was valid (that is, the other arguments indicated which of the last two args to use). The next crazy part of this call was that the last two args really were for one four byte area in memory. The next code fragment illustrates the call: union TEMP { char *pch ; float f ; } temp ; void func ( int arg1, int arg2, char *pch, float f ); .... i = func( a1, a2, temp.pch, temp.f ); Turbo C could handle the case when pch was really a pointer, and so f was probably garbage. C-set/2 gets a floating exception in this case. The exception occurs as soon as 'func' is entered. The exception occurs loading the value from the stack to floating register. The debugger incorrectly flags the exception on the first line of code in the subroutine. I could not find anything on this in the beta documentation. This brings up the question: is this a feature or a flaw? On the one hand, it is a minor migration problem, but I do like the validation of floating values in calls. Also, the debugger does seem to have a problem flagging the correct statement when this problem occurs. J.Farmer Ashland Petroleum ----- C-SET2 CFORUM appended at 13:13:35 on 92/05/05 GMT (by PETT at TOROLAB6) Subject: Floating point argument handling Ref: Append at 18:29:38 on 92/05/04 GMT (by AOI1075 at OS2CUST) Because the argument was declared as "float", the code generation in the compiler will assume that it is a valid number. This means that it is likely to generate FLD and FST instructions for it. If the value is garbage is likely to cause floating point exceptions. There are two possible solutions: 1. Ensure that the number is a valid floating point value 2. Make the function take a variable number of arguments, and only pass the float argument if it is valid. Roger Pett ----- C-SET2 CFORUM appended at 14:36:37 on 92/05/05 GMT (by SBRZAYD at OS2CUST) Subject: CALLING 16 BIT DLLS FROM 32 BIT CODE WHERE SHOULD I BE LOOKING FOR INFORMATION ABOUT HEADER MODIFICATIONS, COMPILER ARGUMENTS, AND LINK OPTIONS WHICH MUST BE USED TO ALLOW NEW 32 BIT APPLICATIONS TO CALL EXISTING 16 BIT DLLS? ----- C-SET2 CFORUM appended at 17:46:36 on 92/05/05 GMT (by MOONEY at TOROLAB6) Subject: Calling 16-bit DLLs from 32-bit code Ref: Append at 14:36:37 on 92/05/05 GMT (by SBRZAYD at OS2CUST) There's a chapter in the User's Guide which gives the details of how 32->16 calls work. Also look at SAMPLE04 which comes from the compiler. It contains working code which demonstrates 32->16 calls. dave ----- C-SET2 CFORUM appended at 17:54:59 on 92/05/05 GMT (by MOONEY at TOROLAB6) Subject: Floating point argument handling Ref: Append at 18:29:38 on 92/05/04 GMT (by AOI1075 at OS2CUST) By default, the compiler passes floating-point arguments in floating- point registers. The 387 chip, though, expects only valid FP values to be loaded into these registers, and when you try to load random garbage, the chip hurls. The way that I would fix this (and it's a solution that (a) is backwards compatible to Borland and (b) will make your code run faster) is to pass the union as one entity in the function call: void func ( int arg1, int arg2, union TEMP ); If you would rather be able to pass both members separately, prototyping the function with the _System calling convention will cause the compiler to pass the FP value on the stack, which means that the 387 won't verify the value's validity until later. void _System func ( int arg1, int arg2, char *pch, float f ); I would recommend the first solution as the preferable one. dave ------------------------------------------------------------------------ Dave Mooney mooney@vnet.ibm.com C Set/2 Development, IBM Canada Lab, 844 Don Mills Rd, Toronto, Ontario "Don't ask me, I'm just improvising" ----- C-SET2 CFORUM appended at 23:59:26 on 92/05/05 GMT (by SBRZAYD at OS2CUST) Subject: Calling 16-bit DLLs from 32-bit code Thanks for the help; it confirmed that I am indeed doing something wrong but I still don't know what. I'm getting a "Couldn't d-load app seg for TEST->_FOO" where foo is the function I'm trying to call in the 16-bit DLL and its 32-bit prototype is extern SHORT _Far16 foo(...) The compiler args I'm using are "ICC /c /Ss /Ti /W2" The link args are "LINK386 /CO /M:FULL /NOP /PM:VIO" I don't know if I really expect anyone to be able to help with this little information but I thought I'd post here before I put something on IBMLink (and have to wait for three days). American Management Systems Thanks! Chris C. American Management Systems ----- C-SET2 CFORUM appended at 00:50:02 on 92/05/06 GMT (by WTRACEY at BETASVM2) Subject: Calling 16-bit DLLs from 32-bit code Ref: Append at 23:59:26 on 92/05/05 GMT (by SBRZAYD at OS2CUST) Is the 16 bit entrypoint Pascal or C calling convention? If it's Pascal then you need to add an _Pascal to the extern declaration. If the 16 bit entrypoint is C calling convention then you may need to add /noi (no ignore case) to the link statement, so it will look for _foo (not _FOO). Hope this helps, Bill Tracey ----- C-SET2 CFORUM appended at 00:57:27 on 92/05/06 GMT (by V$IPAULD at BCRVMPC1) Subject: Calling 16-bit DLLs from 32-bit code Ref: Append at 23:59:26 on 92/05/05 GMT (by SBRZAYD at OS2CUST) Your application is trying to import function "_FOO" by name from TEST.DLL ... my guess is that the TEST.DLL does not export the function as "_FOO". It is perhaps exported as "_foo" or "foo" or "FOO", none of which match. I suggest you try either HDR.EXE or EXEHDR.EXE (one of which comes with the OS/2 toolkit) and work out what name the DLL is exporting. Then you could change the prototype or compile/link options to get a match. Paul Devriendt ----- C-SET2 CFORUM appended at 10:53:48 on 92/05/06 GMT (by XXPRMN01 at TORVMCOP) Subject: Calling 16-bit DLLs from 32-bit code Ref: Append at 23:59:26 on 92/05/05 GMT (by SBRZAYD at OS2CUST) It looks as though it should be extern SHORT _Pascal _Far16 foo(...) You need the _Pascal keyword since the EXPENTRY in the 16 bit headers translates to _pascal _loadds Matt Smith, Prominare Inc. ----- C-SET2 CFORUM appended at 12:19:39 on 92/05/06 GMT (by AOI1075 at OS2CUST) Subject: Floating point argument handling Sorry for the confusion. I fixed the code as soon as I found the error, and yes, the floating exception was caused by an FLD at the top of the routine. I wasn't looking for a fix to the code, but an opinion on the way C-set/2 now handles floating arguments. Apparently other compilers either don't touch, or handle arg as string of bytes, until arg is used in floating computations. I guess what I'm really getting to would be:ndled in a different manner from other compilers; is this 'correct'? ----- C-SET2 CFORUM appended at 12:40:04 on 92/05/06 GMT (by MOONEY at TOROLAB6) Subject: Floating point argument handling Ref: Append at 12:19:39 on 92/05/06 GMT (by AOI1075 at OS2CUST) That's right. We pass FP values in 387 registers by default. This is becuase we can get better performance by not moving the values around as much (we have to load FP values onto the 387 to use them, anyway; why not put them there in the first place?). Declaring a function as _System will cause us to pass the arguments on the stack, just like other compilers. dave ----- C-SET2 CFORUM appended at 23:09:06 on 92/05/06 GMT (by SBRZAYD at OS2CUST) Subject: Calling 16-Bit code from 32-Bit code Thanks for everyone who helped me out; those of you who suggested /NOI were right on target and I am happily writing new 32-bit code to our 16-bit DLLs now. Just to take a quick poll out there... Personally, I always viewed functions that were declared pascal or fastpath as hideously nonstandard. For all of our work around here we simply use cdecl (except for EXPENTRY functions, of course). This works splendidly and there have been very few problems calling our stuff from new C/Set code. I realize there are performance gains to be made by using fastpath or pascal but if you are only moderatly concerned about these kinds of thing (I'm not coding up a communications program, for example) does it REALLY make that much difference? (I won't even get into C/Set optlink verses system linking conventions). In parts of a server I wrote I replaced cdecl calls with pascal and gained virtually NO speed. Am I missing something? Chris C. American Management Systems ----- C-SET2 CFORUM appended at 18:11:37 on 92/05/07 GMT (by MCG1032 at OS2CUST) Subject: upgrade to c-set2 from os/2 1.3 c/2 compiler I have c/2 version 1.1 compiler for os/2 1.3 and programming tools for os/2 1.3. The IBM sales rep cannot tell me whether I can upgrade to c set/2 compiler. Please tell me whether I can upgrade the c/2 compiler to c set/2 without extra cost. I only purchased the compiler in february 1992. ----- C-SET2 CFORUM appended at 18:15:00 on 92/05/08 GMT (by V$IBTIGA at BCRVMPC1) Subject: L1108 error I have a customer compiling a large application (greater than 4 meg) on C- Set/2. He is using /Ti and linking with /De. However, during link, he is getting the following error: L1108 Invalid debugging format When he removes /Ti and /De, it compiles fine. But he wants to be able to debug his app. He is using the GA version of C-Set/2, but not the GA for the toolkit. His linker is version 2.00.000 Feb 25 1992. I'm assumming that the might be an incompatibility in the above setup which is causing the problem. Am I correct, or is there another problem. If there is another problem to this, is there a fix available? Thanks. Larry Moore PSPC-Boca Tech Interface Group ----- C-SET2 CFORUM appended at 19:01:05 on 92/05/08 GMT (by AMELINE at TOROLAB6) Subject: L1108 error Ref: Append at 18:15:00 on 92/05/08 GMT (by V$IBTIGA at BCRVMPC1) Larry, I've seen that one before. It was caused for me by an OBJ having more than 64K in either the $$SYMBOLS or $$TYPES segments. Regradless, it is certainly a linker bug. The linker has no business with the debug information. It just copies those segments into the EXE after applying fixups to them. The problem for having >64K in the debug segments did have a fix developed for it, but I'm not sure if it made it into the GA linker. Regards, Ian Ameline ----- C-SET2 CFORUM appended at 22:50:35 on 92/05/08 GMT (by FRANCIS at TOROLAB6) Subject: upgrade to c-set2 from os/2 1.3 c/2 compiler Ref: Append at 18:11:37 on 92/05/07 GMT (by MCG1032 at OS2CUST) From: Tim Francis -- WorkFrame/2 development There is no upgrade price for the C/2 compiler. At the OS/2 developers conference this week it was announced that a promotional price for the Workset/2 package (consisting of C Set/2, WorkFrame/2 and the 2.0 Toolkit) of US$295 will be available, subject to the following: - Promotional period is from May 19 to September 5, 1992 - This price will only be available via the 1-800-3-IBM-OS2 number It was decided that this will be a promotion available to everyone, rather than limiting it to an upgrade from other compilers. Further details will be available when the "official" announcement comes out next week. -tim ----- C-SET2 CFORUM appended at 19:52:16 on 92/05/11 GMT (by V$IBTIGA at BCRVMPC1) Subject: L1108 error Ref: Append at 19:01:05 on 92/05/08 GMT (by AMELINE at TOROLAB6) Ian, Thanks for your help. The date on my linker is the same as the customer so he should be using the GA linker. You mentioned a possible fix for this problem. Is there any way I can find out if there is a fix and, if so, where is it? Any help you can give me will be appreciated. Larry Moore PSPC-Boca Tech Interface Group ----- C-SET2 CFORUM appended at 21:30:36 on 92/05/11 GMT (by AMELINE at TOROLAB6) Subject: L1108 error Ref: Append at 19:52:16 on 92/05/11 GMT (by V$IBTIGA at BCRVMPC1) Larry, Contact Dave Blaschke in Boca. I believe he either is responsible for the linker now, or knows who is. Regards, Ian Ameline ----- C-SET2 CFORUM appended at 14:59:25 on 92/05/13 GMT (by FRANCIS at TOROLAB6) Subject: IBM C Developer's Workset/2 discount promotion announced From: Tim Francis -- WorkFrame/2 development OK, here is the "official" announcement. (It's also been appended to the OS2BBS CFORUM, but it's more at home here, and I don't know if customers can easily handle cross-fora references). -tim MAY 12, 1992 ------------ IBM today announced a Limited Time Discount Promotion for the IBM C Developer's WorkSet/2 - the complete 32-bit C application development package for OS/2 2.0. From May 19, 1992 until September 5, 1992, developers can purchase WorkSet/2 at a special price of $295 (regularly priced at $895) by calling 1-800-3IBM-OS2 (1-800-342-6672). The IBM C Developer's WorkSet/2 includes: o IBM C Set/2 Version 1.0, a 32-bit C compiler and a full function PM Debugger; o IBM WorkFrame/2 Version 1.0, an open, configurable, project-oriented application development environment; o IBM Developer's Toolkit for OS/2 2.0, a comprehensive collection of productivity tools and a kernel debugger. In addition, customers who have purchased the following products can also get the OS/2 2.0 Technical Library for $239 (regularly $299) and the IBM SAA CUA Controls Library/2 (CCL/2) for $357 (regularly $595). * IBM OS/2 Programming Tools and Information Version 1.2/1.3; * IBM C/2 Version 1.1; * Microsoft SDK for OS/2 Version 1.2. Orders can be placed between 9 AM and 9 PM Eastern time, effective May 19, 1992. Payment is by approved credit card only. Shipment is expected to begin on June 5, 1992, or as soon as supply is available. For further details, please refer to IBM Announcement Letter 392-111, dated 5/12/92. ----- C-SET2 CFORUM appended at 20:42:43 on 92/05/13 GMT (by SBRZAYD at OS2CUST) Subject: CUA Controls' Library What is the CUA Controls Library? I've seen it referenced as a separate item; am I correct in assuming that the new controls (e.g. notebook, slider, container) do NOT come with the standard 2.0 developers toolkit? If so, WHY? Chris Corry American Management Systems ----- C-SET2 CFORUM appended at 11:47:21 on 92/05/14 GMT (by HSB1038 at OS2CUST) Subject: Libraries for Multithreaded APPS I am writing a PM app and am having some problems with trap errors on a WinCreateStdWindow call. This code is identical to that in OS/2 v1.3 and MSC C compiler v6.0. hWndFrame = WinCreateStdWindow(hWndParent, /* parent of window */ lfStyle, /* frame window style */ &ctldata, /* frame flags */ appname, /* class name */ title, /* window title */ 0L, /* client window style */ 0, /* module for resources */ ResID, /* resource id */ hWndClient); /* client handle*/ I think the problem may have something to do with the particular libraries I am linking in on the link line. It is as follows: . . . vmisc.obj /align:16 INV.EXE INV.MAP /NOD Os2386.lib + dde4mbs.lib+dde4mbm.lib+e:\SQLLIB\SQL_DYN INV.DEF Should I be using something other than the dde4mbs and dde4mbm libraries. I Kept getting unresolved externals on things like _strdate and _atoi if I did not include both of them. The APP does contain multiple threads. Any thought would be appreciated. ----- C-SET2 CFORUM appended at 22:11:19 on 92/05/14 GMT (by THRUMD at SYDVM1) Subject: CUA Controls' Library Ref: Append at 20:42:43 on 92/05/13 GMT (by SBRZAYD at OS2CUST) I believe these are versions of the controls for MS Windows so that people can develop cross-platform apps more easily. They should *not* be required for OS/2 2. Dave ----- C-SET2 CFORUM appended at 08:50:10 on 92/05/15 GMT (by 40953586 at EHONE) Subject: CUA Controls' Library Ref: Append at 22:11:19 on 92/05/14 GMT (by THRUMD at SYDVM1) Reply-to: Jurrie Lulofs <LULOFS@UITVM1> A similar library exists for OS/2 1.3. jurrie ----- C-SET2 CFORUM appended at 12:11:13 on 92/05/15 GMT (by DALNK03 at OS2CUST) Subject: Libraries for Multithreaded APPS The last parameter hwndClient should be &hwndClient. That would cause a trap. ----- C-SET2 CFORUM appended at 13:23:07 on 92/05/15 GMT (by BIGBILL at TOROLAB6) Subject: CUA Controls' Library Ref: Append at 20:42:43 on 92/05/13 GMT (by SBRZAYD at OS2CUST) The CUA Controls Library is a product provided for OS/2 1.3 and MS Windows for developing code that uses the new controls that were provided in the base of OS/2 2.0. It allows programmers to write apps that look and feel like 2.0 apps without actually having to port to 2.0 right away. Bill Sarantakos OS/2 WorkFrame/2 Development Toronto, Ontario ----- C-SET2 CFORUM appended at 13:24:02 on 92/05/15 GMT (by BIGBILL at TOROLAB6) Subject: Libraries for Multithreaded APPS Ref: Append at 12:11:13 on 92/05/15 GMT (by DALNK03 at OS2CUST) That's what I was going to say too. Bill Sarantakos OS/2 WorkFrame/2 Development Toronto, Ontario ----- C-SET2 CFORUM appended at 14:45:51 on 92/05/15 GMT (by SBRZAYD at OS2CUST) Subject: CUA Controls' Library Thanks for the clarification, one and all. I got a copy of an IBM Internal CUA 2.0-syle control set months and months ago and was rather unimpressed; I fully understand that it was Beta-Beta code so I really didn't give it much thought. Most of the problems were CUA based, like confirm buttons with Ok instead of OK (although I've seen several instances of this particular CUA violation in 2.0 GA), so I wasn't concerned. I'm assuming that the GA CUA controls are perfect! ( :-> for all of you on the Extensions Development Team in Cary ). Chris Corry American Management Systems ----- C-SET2 CFORUM appended at 21:09:35 on 92/05/19 GMT (by UDSS013 at OS2CUST) Subject: PM/Debugger Doesn't Start Program I just compiled and link'ed a new PM application -- my first for OS/2 v2.0 and C Set, although I have experience with OS/2 v1.3 PM programming. When I try to run the program from the command line, it switches the screen group to PM, so it is getting to the WinInitialize() API. It then switches back to command line and terminates. When I try to run the application using the PM debugger, I press OK on the Startup Information dialog and the Debugger Session Controls dialog fills in the program parts listbox with the names of my source code. This is immediately followed by a message box indicating that the program has terminated. I do not get the source window that displays my code. If I issue File/Restart from the Session Controls dialog, I get: Fatal debugger Internal Error Error code: R6.1-242 Please call IBM rep. with the error code shown above. I clearly have something strange going on here. Compiles and links are clean. My linker response file looks like: am1.obj am1cre.obj am1dlg.obj am1win.obj + am1db.obj am1mem.obj am1nwn.obj am1.exe am1 b2hilb.lib am1.def Any ideas? I don't have a lot to go on at this point! ----- C-SET2 CFORUM appended at 10:02:05 on 92/05/20 GMT (by LUCYB at MANVM1) - Subject: CICS OS/2, OS2 2.0 PM, C Set/2 environment We are planning to use the above as our development environment. I would appreciate information on the wisdom or lack there of this idea. Yesterday one of the members of our team was told that CICIS OS/2 had not been tested with C Set/2. Thanks. Lucy Barnhill MANVM1(LUCYB) TL 725-7411 ----- C-SET2 CFORUM appended at 13:11:44 on 92/05/20 GMT (by BIGBILL at TOROLAB6) Subject: PM/Debugger Doesn't Start Program Ref: Append at 21:09:35 on 92/05/19 GMT (by UDSS013 at OS2CUST) Check a couple of the standard things like the stack size you have specified and whether or not either WINDOWAPI was specified in the .DEF file or /PM:PM was specified during linking. Bill Sarantakos OS/2 WorkFrame/2 Development Toronto, Ontario ----- C-SET2 CFORUM appended at 13:32:37 on 92/05/20 GMT (by GERSTLE at LEXVMK) Subject: PM/Debugger Doesn't Start Program Ref: Append at 21:09:35 on 92/05/19 GMT (by UDSS013 at OS2CUST) You are most likely getting an exception during startup. To debug this area, use the /i command line option for IPMD (debug application initialization) and step carefully through the startup process... Pat Gerstle ----- C-SET2 CFORUM appended at 14:50:45 on 92/05/20 GMT (by V$IPAULD at BCRVMPC1) Subject: CICS OS/2, OS2 2.0 PM, C Set/2 environment Ref: Append at 10:02:05 on 92/05/20 GMT (by LUCYB at MANVM1) CICS OS/2 is a 16-bit product. C-Set/2 is a 32-bit compiler. I suspect that you are going to have a *very* interesting time making calls to CICS OS/2 from 32-bit C code. It is possible, but may not be a task for the faint hearted ! Paul Devriendt ----- C-SET2 CFORUM appended at 16:47:55 on 92/05/20 GMT (by UDSS013 at OS2CUST) Subject: PM/Debugger Doesn't Start Program >>> Check a couple of the standard things like the stack size you have specified and whether or not either WINDOWAPI was specified in the .DEF file or /PM:PM was specified during linking. <<< Thanks. I took a look at the .DEF file and WINDOWAPI was specified. I also relinked with /PM:PM just for grins and it didn't help. >>> You are most likely getting an exception during startup. To debug this area, use the /i command line option for IPMD (debug application initialization) and step carefully through the startup process... <<< Thanks for the info Pat. I restarted the debugger on my code. It is executing part of the startup code before terminating. It is getting to the 7th line in DOSCALL1. On the line: 001F:0296 CALL 1CB2H:0000H If I press "I" to step into the code, I get the "Program Terminated" dialog. I am linking with a .LIB that was created using IMPLIB on the .DEF file. The DLL was ported from 16-bit to 32-bit and I got a clean compile and link. However, this is the first time I have tried to use the DLL in its 32-bit form. I did compile with the /Ge- on the DLL. If I had to venture a guess, I would have to say that my linkage between the EXE and the DLL is not correct. Thanks for the help. Any other suggestions. ----- C-SET2 CFORUM appended at 17:04:07 on 92/05/20 GMT (by FRANCIS at TOROLAB6) Subject: CICS OS/2, OS2 2.0 PM, C Set/2 environment Ref: Append at 14:50:45 on 92/05/20 GMT (by V$IPAULD at BCRVMPC1) From: Tim Francis -- WorkFrame/2 development I don't know about the CICS product specifically, but in general not only does C Set/2 make it painless to call 16-bit code, it also makes it very easy to write callback functions that can be called from 16-bit code. -tim ----- C-SET2 CFORUM appended at 21:50:16 on 92/05/20 GMT (by PETT at TOROLAB6) Subject: CICS OS/2, OS2 2.0 PM, C Set/2 environment Ref: Append at 14:50:45 on 92/05/20 GMT (by V$IPAULD at BCRVMPC1) This may not be as difficult as Paul thinks. C Set/2 can call (and be called by) 16 bit code. There are several 16 bit calling conventions supported (cdecl, pascal, and fastcall). The only limitation is that you usually need to dynamically link between 16 and 32 bit code. This is required since to allow the runtime libraries to be initialized (C Set/2 libraries can be initialized inside a DLL). The a problem with name conflicts between 16 and 32 bit C libraries is also resolved if the 32 bit and 16 bit code are in separate DLLs. Roger Pett ----- C-SET2 CFORUM appended at 23:45:42 on 92/05/20 GMT (by V$IPAULD at BCRVMPC1) Subject: CICS OS/2, OS2 2.0 PM, C Set/2 environment Ref: Append at 21:50:16 on 92/05/20 GMT (by PETT at TOROLAB6) I wasn't so much thinking of the difficulties of getting between 16 and 32 bit code as the C Set/2 compiler is indeed good. I was more thinking along the lines of CICS itself - you write statements such as EXEC CICS DO THIS AND THAT WITH(FRED); in your source code, and then run your source code through a CICS C translator which writes the C code, then you compile the C code. I would guess that you could end up having to hand edit the output from the translator to get working 32-bit C code. I can only suggest try it and see, unless the CICS OS/2 support people can provide any references to someone who has already tried it. Paul Devriendt ----- C-SET2 CFORUM appended at 14:01:10 on 92/05/21 GMT (by UDSS013 at OS2CUST) Subject: PM/Debugger Doesn't Start Program Me again. I figured out what my problem was. Due to an error in my include file for NMAKE, I was compiling with the "/Ge-" for the .EXE Thanks for the help. ----- C-SET2 CFORUM appended at 13:07:33 on 92/05/25 GMT (by HSB1038 at OS2CUST) Subject: C/Set 2 and Database Manager Has anyone successfully compiled an y applications using C/Set 2 and DBM. I am on the GA versions of the compiler, toolkit, and DBM. Whenever my program e nters a module that was precompiled by SQLPREP I immediately get a trap error. Are there any special compile switches that I need to set? How about linker o ptions. This program worked fine under v1.3 but does not under v2.0. Any help would be appreciated. ----- C-SET2 CFORUM appended at 13:43:27 on 92/05/25 GMT (by AMELINE at TOROLAB6) Subject: C/Set 2 and Database Manager Ref: Append at 13:07:33 on 92/05/25 GMT (by HSB1038 at OS2CUST) You will have to use the /Sm switch, and /DES32TO16. If this doesn't help, please let me know. Regards, Ian Ameline ----- C-SET2 CFORUM appended at 20:58:05 on 92/05/26 GMT (by HSB1038 at OS2CUST) Subject: C/Set 2 and Database Manager Ref: Append at 13:43:27 on 92/05/25 GMT (by AMELINE at TOROLAB6) I am already using both of these switches. I did have the /Sa switch on as wel l. Should these switches apply to all .C files or only the ones using database manager? ----- C-SET2 CFORUM appended at 22:53:02 on 92/05/26 GMT (by MARYAN at TOROLAB3) Subject: enum in C/Set 2 Folks, According to ANSI, enum data type should be equivalent to int. Why C Set/2 implementation differs from this, even while compiling with -Sa option (strict ANSI) ? Jacek P. Maryan ----- C-SET2 CFORUM appended at 13:39:42 on 92/05/27 GMT (by MOONEY at TOROLAB6) Subject: enum in C/Set 2 Ref: Append at 22:53:02 on 92/05/26 GMT (by MARYAN at TOROLAB3) enum *constants* are of type int. enum *variables* are of an integral type. (ANSI 3.5.2.2: "The identifiers in an enumerator list are declared as constants that have type int..." "Each enumerated type shall be compatible with an integer type; the choice of type is implementation- defined.") That means that in the following declaration: enum colours { Red, Green, Blue } col; that Red, Green, and Blue are each int constants, and col is some integral type. In C Set/2, it is a char for this case. To force this enum to be of type int, add a dummy member to the end to force its size to be larger: enum colours { Red, Green, Blue, dummy_colour = 65536 } col; dave ----- C-SET2 CFORUM appended at 21:09:28 on 92/05/28 GMT (by FRYERK at TOROLAB6) Subject: C/Set 2 and Database Manager Ref: Append at 20:58:05 on 92/05/26 GMT (by HSB1038 at OS2CUST) /Sm and /Sa both specify the language level, so you can only use one. Probably what is happening is that /Sa (which allows only ANSI constructs) is overriding the /Sm switch. Try getting rid of the /Sa option and see what happens. Kathryn Fryer Toronto Information Development ----- C-SET2 CFORUM appended at 21:45:13 on 92/05/28 GMT (by SGLIU at RHQVM04) Subject: IBM C Developer's WorkSet/2 Promo Available via Purchase Order IBM C DEVELOPER'S WORKSET/2 PROMOTION AVAILABLE VIA PURCHASE ORDER MAY 28, 1992 Effective immediately, customers who wish to participate in the IBM C Developer's WorkSet/2 Discount Promotion and who require the use of Purchase Orders (PO) can do so by calling 1-800-IBM-CALL (1-800- 426-2255) and asking for Marisa. The hours of operation are from 8:00 AM - 7:00 PM (Eastern Time). In addition, orders can be placed through FAX: (303) 440-1639 or IBMLink: DAYVM2(IBMCALL). From May 19, 1992 until September 5, 1992, ANY developer can purchase WorkSet/2 at the special price of $295 (regularly priced at $895), a $600 savings! Credit Card orders will continue to be accepted through 1-800-3IBM-OS2 (1-800-342-6672). The IBM C Developer's WorkSet/2 includes: o IBM C Set/2 Version 1.0, a 32-bit C compiler and a full function PM Debugger; o IBM WorkFrame/2 Version 1.0, an open, configurable, project-oriented application development environment; o IBM Developer's Toolkit for OS/2 2.0, a comprehensive collection of productivity tools and a kernel debugger. Developers who currently own any one (1) of the following three products will be eligible for further discounts on the OS/2 2.0 Technical Library for $239 (regularly $299) and/or the IBM SAA CUA Controls Library/2 (CCL/2) for $357 (regularly $595). CCL/2 provides a set of CUA '91 GUI controls for OS/2 1.3 and Microsoft Windows 3.0 applications. When implemented, these applications will have a similar look-and-feel of OS/2 Version 2.0. * IBM OS/2 Programming Tools and Information Version 1.2/1.3; * IBM C/2 Version 1.1; * Microsoft SDK for OS/2 Version 1.2. Shipment is expected to begin on June 5, 1992, or as soon as supply is available. Customers who acquire the IBM C Developer's WorkSet/2 during this limited-time promotion will receive the OS/2 Developer Magazine at no charge. For further details, please refer to IBM Announcement Letter 392-111, dated 5/12/92. This promotion is available only in the United States. Steve Liu IBM PS Product Marketing White Plains, New York ----- C-SET2 CFORUM appended at 01:38:59 on 92/05/29 GMT (by HSB1038 at OS2CUST) Subject: C/Set 2 and Database Manager Ref: Append at 21:09:28 on 92/05/28 GMT (by FRYERK at TOROLAB6) I did just that . I removed the /Sa switch and there was no difference. I need to know if anyone has tried this yet or are we just speculating that it should work. I have heard through other folks that only the Microsoft compiler (16 b it) is supported for database manager development. If anyone has actually gott en this to work I'd like to know. Thanks for helping me out. There is no othe r place to turn!! ----- C-SET2 CFORUM appended at 02:22:01 on 92/05/29 GMT (by BIGBILL at TOROLAB6) Subject: C/Set 2 and Database Manager Ref: Append at 01:38:59 on 92/05/29 GMT (by HSB1038 at OS2CUST) Are you perhaps putting the compile options after the filename on the command line? If so, they are not being used since file specific options must precede the filename. Bill Sarantakos OS/2 Compiler Development Toronto, Ontario ----- C-SET2 CFORUM appended at 15:28:33 on 92/05/29 GMT (by WEEKS at AUSVM2) - Subject: C/Set 2 and Database Manager Ref: Append at 01:38:59 on 92/05/29 GMT (by HSB1038 at OS2CUST) Database Manager definitely supports 32-bit applications. If you will FAX me your compile options and a SMALL piece (if at all possible) of failing code I will look into it. If you have access to IBMMAIL you can simply send it to me at USIB3KCP at IBMMAIL. My FAX number is 512-823-3047. Craig Weeks OS/2 Application Development Center Austin, Texas ----- C-SET2 CFORUM appended at 22:09:13 on 92/05/29 GMT (by HARGRAVE at BCRVMPC1) Subject: C/Set 2 optimize option bug Ref: None. The following small prog does not work when compiled with /O. Am I doing something wrong or is this a C Set/2 bug? Below are the compile options. This program works fine if I don't use the /O option. [E:\test32]icc /O cbug.c Licensed Materials - Property of IBM IBM C Set/2 Version 1.0 (C) Copyright IBM Corp. 1991, 1992. All Rights Reserved. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Operating System/2 LX (Linear Executable) Linker Version 2.00.000 Feb 25 1992 Copyright (C) IBM Corporation 1988-1992. Copyright (C) Microsoft Corp. 1988-1992. All rights reserved. Object Modules [.obj]: /pmtype:vio /noi /align:16 /exepack /base:65536 + Object Modules [.obj]: cbug.obj Run File [cbug.exe]: cbug.exe List File [nul.map]: Libraries [.lib]: Definitions File [nul.def]: [E:\test32]cbug " 89% 1657" should be printed below " 89% 1067" [E:\test32] -------------------Cut Here---CBUG.C-------------------- #include <stdio.h> #include <string.h> char szPercent[] = " %"; char szTime[] = " "; void main ( void ) { unsigned long usage; unsigned long time; long i; usage = 89; time = 1657; printf ("\"%3u%% %4u\" should be printed below\n", usage, time ); for ( i = 2; usage && ( i >= 0 ); i-- ) { szPercent[i] = (char) ( usage % 10 + '0' ); usage /= 10; } for ( i = 3; i >= 0; i-- ) { szTime[i] = (char) ( time % 10 + '0' ); time /= 10; } printf ( "\"%.4s %.4s\"\n", szPercent, szTime ); } -------------------Cut Here----------------------------- BJ Hargrave ----- C-SET2 CFORUM appended at 22:47:44 on 92/05/29 GMT (by SC23461 at AUSVM1) Subject: C/Set 2 and Database Manager Ref: Append at 15:28:33 on 92/05/29 GMT (by WEEKS at AUSVM2) Actually, if you want to send softcopy rather than faxes to Craig, I'm right down the hall from him and can forward them to him from IBMLink, X400, or InterNet ID's... you can go through X400 or InterNet from MCI, CompuServe, etc. ... send to me at: IBMLink: DEV1122 (use % for system) Internet: lwygant@vnet.ibm.com X400: C=US,A=IBMX400,P=IBMMAIL,S=WYGANT,G=WYGAN Thanks... L. F. Wygant Key Developer Advocate: "TLC for the ISV" OS/2 EE/ES/LS Application Developer Technical Support Group Dept. 617, IBM Austin ----- C-SET2 CFORUM appended at 16:58:33 on 92/06/01 GMT (by V$IBTIGA at BCRVMPC1) Subject: C-Set/2 question Is there a function in C-Set/2 that performs just like the IN and OUT functions that comes with MS 6.0? Or do I have to use an API? Larry Moore PSPC-Boca Tech Interface Group ----- C-SET2 CFORUM appended at 19:07:08 on 92/06/01 GMT (by VENDENA at DALVM41B) Subject: UPM Logon API works in MS C 6.0, but not C Set/2 Reference: none ****** Warning- Long Append ****** ************************************** I have written a program that works when compiled and linked with MicroSoft C 6.0, but I get an error when I run it after compiling and linking with IBM C Set/2. It is a VERY simple program that calls a UPM API. The API brings up the local logon menu and allows the user to type in his/her userid and password. The userid and authority is passed back to the program. The API is documented in the Extended Services Guide to User Profile Mamagement, appendix C. Has anyone gotten ANY of the UPM APIs to work using C Set/2???????? Here is the program: ---------------------------------------- #include <stdio.h> /* I/O declarations,definitions */ #include <string.h> /* string functions */ #include <upm.h> /* User Profile Management */ #include <os2.h> main() { unsigned short RC, TYPE; unsigned char USERIDì9┘; printf("\nProgram has begun.\n"); RC = upmelocl(USERID,&TYPE); printf("\nAfter logon call.\n"); /** program never gets here **/ printf("\n%s",USERID); printf("\n%x",RC); /* print return code hex value */ } /* end main */ --------------------------------------- Here's what happens when I run it: Program has begun. General Protection Fault exception occurred at EIP = 14972354 on thread 0001. Register Dump at point of exception: EAX = D88E0158 EBX = 00000000 ECX = 000A0200 EDX = 00052C48 EBP = 00052C2C EDI = 00000000 ESI = 00000000 ESP = 00052B9C ªCS = 005B CSLIM = 1BFFFFFF DS = 0053 DSLIM = 1BFFFFFF ªES = 0053 ESLIM = 1BFFFFFF FS = 150B FSLIM = 00000030 ªGS = 0000 GSLIM = 00000000 SS = 0053 SSLIM = 1BFFFFFF Process terminating. -------------------------------------- I think I'm using the correct compile options: ICC.EXE /DINCL_32 /DES32TO16 /Fl /Ti /Gt /C .\$*.c and I am linking to the UPM library. I used the WorkFrame/2 to create my MAKEFILE and MAKEFILE.DEP. The assumed include environment variable path in my MAKEFILE.DEP is: # E:\TOOLKT20\C\OS2H; # E:\TOOLKT20\ASM\OS2INC; # D:\SQLLIB; # D:\MUGLIB; I have written a VERY simple Database Manager program and it works fine. Again, I have no errors during compile and link time, only when I run the program. Any ideas??? What have I left out? Has anyone gotten UPM APIs to work using C Set/2? Thanks, Dena Laterza ----- C-SET2 CFORUM appended at 19:54:38 on 92/06/01 GMT (by WEEKS at AUSVM2) - Subject: C/Set 2 and Database Manager Ref: Append at 01:38:59 on 92/05/29 GMT (by HSB1038 at OS2CUST) My contact in the development lab says this: The required compile options are listed in the GA version of the Prg. Guide. It's very straight forward. The big change is throwing the /DES32TO16 compile option so that the correct prototypes are used. The other switches are simply /Sm /Gt. This is pretty simple stuff and I'm sure you've already done this but I just wanted to be sure. (This is analogous to those trouble shooting guides that come with home appliances. They always say "First, be sure it is plugged in".) Craig Weeks OS/2 Application Development Center Austin, Texas ----- C-SET2 CFORUM appended at 12:58:19 on 92/06/02 GMT (by BIGBILL at TOROLAB6) Subject: none Ref: Append at 19:07:08 on 92/06/01 GMT (by VENDENA at DALVM41B) I just looked at upm.h and it looks like there is a bug in the header for 32-bit support. In my copy, on line 48, LSPAS is defined to nothing while on line 53 it is defined to 'pascal' for 16-bit support. If it truly is pascal calling convention, you should edit the file and define LSPAS to be '_Far16 _Pascal'. That should get you part/most/ all of the way there. Bill Sarantakos OS/2 Compiler Development Toronto, Ontario ----- C-SET2 CFORUM appended at 16:28:50 on 92/06/02 GMT (by VENDENA at DALVM41B) Subject: none Ref: Append at 12:58:19 on 92/06/02 GMT (by BIGBILL at TOROLAB6) Thanks for the hint, you were close. I found the problem! The GA version of UPM.H has a typo in it. Line 333 reads: #pragma linkage (UPMELCOL, far16 pascal) and should be: #pragma linkage (UPMELOCL, far16 pascal) My call to the upmelocl API was not working properly using C Set/2 because of this typo. -Dena Laterza ----- C-SET2 CFORUM appended at 13:57:10 on 92/06/03 GMT (by V$IBTIGA at BCRVMPC1) Subject: none I have a customer who is converting his C code from DOS to OS/2. His DOS C code contains the functions INP and OUTP. Apparently C Set/2 does not support these functions. Are there functions and/or API's that can be used in place of INP and OUTP? Larry Moore PSPC-Boca Tech Interface Group ----- C-SET2 CFORUM appended at 14:20:51 on 92/06/03 GMT (by OCANUC at BETASVM2) Subject: none Ref: Append at 13:57:10 on 92/06/03 GMT (by V$IBTIGA at BCRVMPC1) I used DosOpen, DosRead, and DosWrite (OS/2 CP API functions) to implement RS232 communications just recently. Worked quite well. I just opened "com1" and used it as though it were file. Brandon Booth Advanced Programming - ICSRS ----- C-SET2 CFORUM appended at 13:14:30 on 92/06/05 GMT (by EDSIMON at TOROLAB4) Subject: Customer visits Ref: None Hi, We are responsible for the technical information delivered with the WorkFrame/2 and C Set/2 products. That includes the online information as well as the hardcopy that goes out with the products. We would like to visit a customer site. The purpose of the visit would be twofold: 1) you (the customer) can tell us what you like or don't like about the product's documentation and 2) we can learn how to better design the information so it best suits our customers. If you are a customer who has been using the WorkFrame/2 and/or C Set/2 products for a month or more, and would like to show us how you use the product and its information, append a note to this forum saying so. If you are an IBM customer representative who wants to give your customers the chance to talk face to face with someone that worked on the product, let me know as well. Please let me know by June 15 if you are interested in having us visit your site. I will need to know your name, the name of your company, your telephone number, and the city you work in. P.S. While we are eager to hear from as many customers as possible, please be aware that we may be limited in the extent of visits we can make. Regards, Ed Simon and Kathryn Fryer ----- C-SET2 CFORUM appended at 16:22:23 on 92/06/05 GMT (by XXNOVA24 at TORVMCOP) Subject: Customer visits Ref: Append at 13:14:30 on 92/06/05 GMT (by EDSIMON at TOROLAB4) Way to go guys! I'm impressed with the offer itself. Just like a costumer driven company! unfortunately I'm still using the beta CSET , but with 399CDN I'll order it for home. Ye, one more thing: What is the Tech Ref books? is it the same than the INF files? Its a printed READ/2 document? Is it a tutorial\DEEP reference ? Geza Szivos NOVACOR Chemicals (403)-290-6583 ----- C-SET2 CFORUM appended at 19:11:08 on 92/06/05 GMT (by UDSS013 at OS2CUST) Subject: PM Debugger (IPMD) can't load source code I am trying to load the IPMD debugger on my code. I start the debugger and select my program to debug in the Startup Information dialog. When I press OK, I can see the Threads listbox get initialized. The Program Parts listbox fills with the system DLLs (e.g. DOSCALL1), then I see it fill with the names of the source code in my application. The window to hold the source code for the main() opens, but before the source code appears, the window closes and IPMD terminates with no error messages, abends or any other kind of diagnostic info. As far as I can tell, I have specified all of the correct switches for compile and link to give me symbolic debugging information. I am concurrently developing this and another PM application. The other application gets into the debugger OK. Any ideas? ----- C-SET2 CFORUM appended at 21:54:53 on 92/06/05 GMT (by WEEKS at AUSVM2) - Subject: PM Debugger (IPMD) can't load source code Ref: Append at 19:11:08 on 92/06/05 GMT (by UDSS013 at OS2CUST) I had this happen to me and the fix was a new C Set/2 .DLL file - in other words a real bug. I'll see if it's OK for me to get it to you - it's definitely not fully tested, certified, etc. code that I'm using. You might try invoking IPMD from a REXX .CMD file and printing out the return code you get from IPMD. I was getting 99 as the return code. Craig Weeks OS/2 Application Development Center Austin, Texas ----- C-SET2 CFORUM appended at 22:05:01 on 92/06/05 GMT (by XXPRMN01 at TORVMCOP) Subject: PM Debugger (IPMD) can't load source code Ref: Append at 19:11:08 on 92/06/05 GMT (by UDSS013 at OS2CUST) Are you using the debugger in Async mode? I have had occasions where the debugger would do what you mention when I set the debugger to Async mode instead of Sync mode (Aysnc allows messages to still be sent when the debugger has control whereas Sync stops all messages except for itself) Matt Smith, Prominare Inc. ----- C-SET2 CFORUM appended at 12:00:34 on 92/06/06 GMT (by HSB1038 at OS2CUST) Subject: IPMD crashing whenever I exit I finally got my database manager application to work(somewhat). The problem w as with the last parameter of the WinDlgBox function and not the compile option s. But whenever I leave the debugger to try and correct a program error, or w henever I leave the debugger period, my machine is locked up solid with OS/2 te lling me that the application I was debugging is notresponding. When I press < Enter> to kill it, the machine simp¢ly stays in this loop. Should I be debugg ing syncronously or asynchronously?? The debugger did not seem to hang with th e sample apps but with mine in particular. Any thoughts on how to track this d own?? ----- C-SET2 CFORUM appended at 12:02:15 on 92/06/06 GMT (by HSB1038 at OS2CUST) Subject: Database manager APP finally works Just want to say thanks to those that responded to my question. The problem wa s the WinDlgBox function and not the compile options. This was a tough one to find. ----- C-SET2 CFORUM appended at 17:13:26 on 92/06/06 GMT (by BACKER at DFWVM04) Subject: EDC0069 & EDC0173 errors on SQL.H and SQLENV.H Ref: NONE Can anyone suggest a reason why I'm getting these errors on compile? Here's my compiler invocation: ICC /Ss /Sm /DES32TO16 /FlDBSERVER /Ls /Li /FoDBSERVER /Gm /Gt /FeDBSERVER DBSERVER.C Please help, fairly urgent! Thanks!!! Warren Backer ----- C-SET2 CFORUM appended at 13:26:03 on 92/06/08 GMT (by MOONEY at TOROLAB6) Subject: C-Set/2 question Ref: Append at 16:58:33 on 92/06/01 GMT (by V$IBTIGA at BCRVMPC1) There isn't a way to do this with C Set/2 yet, but we're fixing that for next release. In the mean time, you'll have to write an external .ASM routine to do it for you. dave ----- C-SET2 CFORUM appended at 13:34:26 on 92/06/08 GMT (by V$IBTIGA at BCRVMPC1) Subject: Bug in IPMD? A customer brought this to my attention and I wanted to forward this in case this is a valid bug. For IMPD, the customer was debugging HELLO.EXE, which came with the toolkit. He would press 'O' to step over the functions. This ran fine until he came up to WinRegisterClass, located on line 132. If he pressed 'O', instead of stepping over this API, he would go into it. The next thing he knew, he was looking at assembly code for this API. I tried it myself, and I could recreate it. This is IPMD for OS/2 GA. If this is not a bug, why can't one simply step over this API? Larry Moore PSPC-Boca Tech Interface Group ----- C-SET2 CFORUM appended at 17:19:27 on 92/06/08 GMT (by AOI1075 at OS2CUST) Subject: Syntax for casting a watched variable? Allow me to apologize for having to ask this question. We received the beta C-Set/2 compiler, and I cannot find the answer in the beta documentation. We await the GA documentation. When the debugger cannot resolve the type of a watched variable to a supported type, the help documentation says to 'cast the variable to a supported type'. I take this to mean that you can specify a cast to the debugger. If I have made a correct assumption, then what syntax must I use? J.Farmer IBMMAIL(USAOIXGW) ----- C-SET2 CFORUM appended at 20:14:27 on 92/06/08 GMT (by EDSIMON at TOROLAB4) Subject: Customer visits Ref: Append at 16:22:23 on 92/06/05 GMT (by XXNOVA24 at TORVMCOP) Thanks for the endorsement. I'm not sure what you mean by the "Tech Ref" but I'll make a guess that its the OS/2 Toolkit Technical Reference you are referring to. The OS/2 Toolkit used to come with a large number of books. For this version, they have supplied a lot of online reference material instead (see the Toolkit Information folder in the Toolkit folder). If you want the info in hardcopy, you order it separately. The Toolkit info (both online and hardcopy) describes the PM function calls, Toolkit utilities, etc. It contains no additional information about the WorkFrame/2 or C Set/2 products that you wouldn't find in the information sent out with those products. Ed Simon ----- C-SET2 CFORUM appended at 20:24:15 on 92/06/08 GMT (by UDSS013 at OS2CUST) Subject: PM Debugger (IPMD) can't load source code Ref: Append at 21:54:53 on 92/06/05 GMT (by WEEKS at AUSVM2) - Thanks for the information. I was also able to circumvent the problem by turning on the option to "Debug application initialization". I will remember the return code suggestion for future problems. Gary Murphy ----- C-SET2 CFORUM appended at 21:24:41 on 92/06/08 GMT (by XXNOVA24 at TORVMCOP) Subject: Customer visits Ref: Append at 20:14:27 on 92/06/08 GMT (by EDSIMON at TOROLAB4) Ed, Yes, I meant the 'OS/2 Toolkit Technical Reference' . You just saved a tree , and 300$ for me. If you come over to the Wild-West, I invite you for an Alberta Steak. I used to be happy with the Online Documentation , I prefere it over the printed one. If the 'OS/2 Toolkit Technical Reference' is just a printout I don't need it. Thanks, Geza Szivos NOVACOR Chemicals (403)-290-6583 ----- C-SET2 CFORUM appended at 15:00:39 on 92/06/09 GMT (by GERSTLE at LEXVMK) Subject: Syntax for casting a watched variable? Ref: Append at 17:19:27 on 92/06/08 GMT (by AOI1075 at OS2CUST) We need to know more details as to how you are getting an unsupported type. This should not be possible for C-Set/2 generated code. Some types are not supported when you are debugging Microsoft generated code (bit fields, 16 bit pointers, etc.). Send me a testcase if you have something to demonstrate your problem. Pat Gerstle ----- C-SET2 CFORUM appended at 15:01:48 on 92/06/09 GMT (by GERSTLE at LEXVMK) Subject: Bug in IPMD? Ref: Append at 13:34:26 on 92/06/08 GMT (by V$IBTIGA at BCRVMPC1) I have not been able to duplicate this - please send a copy of the files for which it fails. Pat Gerstle ----- C-SET2 CFORUM appended at 15:03:42 on 92/06/09 GMT (by GERSTLE at LEXVMK) Subject: IPMD crashing whenever I exit Ref: Append at 12:00:34 on 92/06/06 GMT (by HSB1038 at OS2CUST) I am sending you a new debugger DLL which should help with your problem. Pat Gerstle ----- C-SET2 CFORUM appended at 12:16:05 on 92/06/10 GMT (by AOI1075 at OS2CUST) Subject: Syntax for casting a watched variable? Ref: Append at 15:00:39 on 92/06/09 GMT (by GERSTLE at LEXVMK) The fellow that encountered this problem will return from vacation Monday, June 15. I'll see about making a test case then. The variable that caused the trouble was a plain type (the memory is the second thing to go, but I believe, after resolving the definitions it was an int). J.Farmer IBMMAIL(USAOIXGW) ----- C-SET2 CFORUM appended at 03:18:53 on 92/06/11 GMT (by MARYAN at TOROLAB3) Subject: seg16 structure inside structure Folks, Could somebody explain this to me. Assume declaration as follows: struct cat_tag { ... }; struct dog_tag { ... }; typedef struct cat_tag { ... } cat16; typedef struct cat_tag { ... } cat32; typedef struct dog_tag { ... } dog16; typedef struct dog_tag { ... } dog32; #pragma seg16( cat16 ) #pragma seg16( dog16 ) struct pet_tag { cat32 Puffy; cat16 Purr; dog32 Whisky; dog16 Bill; } pet; How the whole structure is affected ? How particular members are affected ? My assumption is that Purr and Bill will be placed the way so they will not cross 64k boundary, even if there will be some holes in the structure pet. Jacek P. Maryan ----- C-SET2 CFORUM appended at 11:50:26 on 92/06/11 GMT (by MOONEY at TOROLAB6) Subject: seg16 structure inside structure Ref: Append at 03:18:53 on 92/06/11 GMT (by MARYAN at TOROLAB3) The compiler can't guarantee that substructs will be laid out so that they don't cross 64K boundaries, so it should do the next best thing: to ensure that the *entire* struct doesn't cross a 64K boundary. But O Tempora! O Mores!, it doesn't even do that, which I would call a bug. I'll open a PTR for next release. For now, I wouldn't worry about it, since OS/2 2.0 lays out *all* variables so that they don't cross 64K boundaries, I believe. dave ----- C-SET2 CFORUM appended at 12:06:39 on 92/06/11 GMT (by KOLSKY at HAIFASC3) ..... C-SET2 CFORUM modified at 12:21:51 on 92/06/11 GMT (by KOLSKY at HAIFASC3) Subject: 'Arrrgh' or 'Can it be that I've started using C-SET/2?' Moved to C-SET2 FORUM by KOLSKY at HAIFASC3 ----- C-SET2 CFORUM appended at 14:23:39 on 92/06/12 GMT (by ALVIN at TOROLAB3) Subject: seg16 structure inside structure Ref: Append at 11:50:26 on 92/06/11 GMT (by MOONEY at TOROLAB6) Dave, Are you saying that the compiler can not garantee _Seg16 for an *entire* structure will work propery? Thanks. Alvin. ----- C-SET2 CFORUM appended at 16:24:52 on 92/06/12 GMT (by MOONEY at TOROLAB6) Subject: seg16 structure inside structure Ref: Append at 14:23:39 on 92/06/12 GMT (by ALVIN at TOROLAB3) I'm saying that given typedef struct { int a; } s1; #pragma seg16( s1 ) struct { int b; s1 s; } s2; the compiler can't guarantee that the s1 inside s2 will be aligned properly, so it is supposed to make *all* of s2 to be aligned properly. It doesn't do that right no, and that's a bug. dave ----- C-SET2 CFORUM appended at 17:25:07 on 92/06/15 GMT (by JSCOTT at CHGVMIC1) Subject: 32->16 How to approach the environment. I would like some advise on how to code/approch this environment. I am writing a 32bit multi-threaded(object windows) PM application that needs to call 16 bit database routines. The first pass at this was based on reading everything I could find on the topic of 32/16. In a fashion I have made some progress. But I am curious about what the reccommended approach should be. Structurally, I have a PM interface thread that uses containers and notebooks. One object window, in a second thread, that make database calls using an OEM database product. (?ybase) This database product consists of a OBJECT library, a IMPLIB for it single DLL, and a HEADER file. All components of this library set are 16bit. I had thought that I could simply modify their header file to declare their function as CDECL16, and any pointers present as _Seg16, etc. Then write little IO modules using C-SET2 that would call those 16bit routines To my suprise that approch seemed to work fine, until now. As I get into their more advance routines that apparently do a great deal of internal memory allocation, I am having problems. Using debug I have followed a problem three call levels into their code; it finally fails while performing what looks like a memcpy. Before I dig in deeper I thought I would ask someone what my options are. I USE IBM C-SET/2 WITH STANDARD LIBRARIES, IBM WORKFRAME/2, IBM TOOLKIT/2 Question 1: Should I be using the Migration Libraries ? - To make calls to 16bit libraries from a 32bit program. - I am using the c-set standard libraries and os2386.lib Question 2: Should I place the 32bit (I/O mods) functions that make these 16bit calls in a DLL? A. Does a DLL buy me anything against the 32->16 issue? B. Should these I/O mods be written as 16bit functions, to further isolate the vendors code? Interfacing to mycode may be easier than interfacing to their code. I realize this is barely enough information to base your reply, but try any way. Tell me what to tell you if neccasary. This whole issue seemed simple enough, however I have the feeling I am missing something. Just knowing what the basic packaging options are would help(32-16DLL, MY16DLL, 32-16EXE(migration), 32-16EXE(standard), 32-16EXE(C-lib, OS2386 or OS2286), etc... Thanks, James Scott Jr. 8/688-4213 ----- C-SET2 CFORUM appended at 21:44:02 on 92/06/15 GMT (by OCANUC at BETASVM2) Subject: 32->16 How to approach the environment. Ref: Append at 17:25:07 on 92/06/15 GMT (by JSCOTT at CHGVMIC1) I did the following (and it worked): 1.Used the stack16 pragma. 2.Changed APIENTRY (= _System) to APIENTRY16 (= _Far16 _Pascal) on the function prototypes of the 16 bit calls. 3.Used /Sm (migration) on the compile. 4.Linked in the import library for the DLL containing the 16 bit calls. C-Set/2 and the Linker figured everything else out. I got this all out of chapter 16 of the C-Set/2 Users Guide. Brandon Booth Advanced Programming - ICSRS ----- C-SET2 CFORUM appended at 17:04:59 on 92/06/16 GMT (by AOI1075 at OS2CUST) Subject: Syntax for casting a watched variable? Ref: Append at 12:16:05 on 92/06/10 GMT (by AOI1075 at OS2CUST) OOPS -- I talked with the fellow who had the problem with the 'watch variable' problem. Turns out it was a 16-bit application, done with Microsoft C6.0. Sorry for not checking this before I asked the question. J.Farmer IBMMAIL(USAOIXGW) ----- C-SET2 CFORUM appended at 20:44:37 on 92/06/16 GMT (by UDSS013 at OS2CUST) Subject: IPMD crashing whenever I exit Ref: Append at 15:03:42 on 92/06/09 GMT (by GERSTLE at LEXVMK) Pat, I am also having problems with IPMD locking up the desktop on exit. Can you send me the new DLL as well? Thanks. Gary Murphy ----- C-SET2 CFORUM appended at 12:25:27 on 92/06/17 GMT (by GERSTLE at LEXVMK) Subject: IPMD crashing whenever I exit Ref: Append at 20:44:37 on 92/06/16 GMT (by UDSS013 at OS2CUST) Gary, I am unable to send code updates through this system - send me your phone number and I'll contact you concerning getting the update. Thanks, Pat Gerstle ----- C-SET2 CFORUM appended at 13:16:33 on 92/06/17 GMT (by BIGBILL at TOROLAB6) Subject: 32->16 How to approach the environment. Ref: Append at 17:25:07 on 92/06/15 GMT (by JSCOTT at CHGVMIC1) No and No. You probably just missed declaring some pointer as _Seg16 (actually probably not the pointer but the pointer pointed at by another pointer). You may not have 'tiled' the storage for it either. Bill Sarantakos OS/2 Compiler Development Toronto, Ontario ----- C-SET2 CFORUM appended at 13:39:15 on 92/06/17 GMT (by JONATHAN at LEXVMK) Subject: Where'd this come from? Ref: None I am getting the following run-time error run-time error R6000 - stack overflow This doesn't look like a C Set/2 message. Does anyone recognize it? (Background: my application interfaces with TCP/IP using thunks from Yorktown. Maybe the MS C library routines are complaining about something? I specify /ST:0x10000 or higher when I link, so it's very unlikely the stack has actually overflowed...) ----- C-SET2 CFORUM appended at 16:09:54 on 92/06/17 GMT (by MOONEY at TOROLAB6) Subject: Where'd this come from? Ref: Append at 13:39:15 on 92/06/17 GMT (by JONATHAN at LEXVMK) That's a message generated by code compiled with C/2 and/or MSC. If your code is compiled with CSet, then the stack overflow is probably happening inside TCP/IP itself. dave ----- C-SET2 CFORUM appended at 19:38:32 on 92/06/17 GMT (by PETT at TOROLAB6) Subject: Where'd this come from? Ref: Append at 13:39:15 on 92/06/17 GMT (by JONATHAN at LEXVMK) That looks like a Microsoft Compiler runtime message. It is generated by their runtime when it detects an out-of-stack condition. Roger Pett ----- C-SET2 CFORUM appended at 20:03:32 on 92/06/17 GMT (by UDSS013 at OS2CUST) Subject: IPMD crashing whenever I exit Ref: Append at 12:25:27 on 92/06/17 GMT (by GERSTLE at LEXVMK) Thanks Pat. I can be reached at (913) 345-6558. My mailing address is: Sprint 5454 W. 110th St. Overland Park, KS 66211 MS: KSOPKR0103 By the way, is there was way to send private mail to IBM'ers. It looks like the mail on this BBS is limited to customer accounts. Thanks. Gary Murphy ----- C-SET2 CFORUM appended at 21:14:15 on 92/06/17 GMT (by SBRZAYD at OS2CUST) Subject: IPMD's apparent dislike of MS compiled apps I'm having a lot of trouble getting IPMD to view 16-bit MS C 6.0A pointers. I remember reading somewhere (probably this CFORUM) that IPMD does not really support 16-bit Microsoft pointers (at least not casting them) and I would like a little more information. This is an absolutely intolerable situation, especially considering that our apps were originally coded in C/2 but then migrated to MS because C/2 simply couldn't do the things that we were asking of it. IF I CAN'T USE IPMD, WHAT ARE MY OPTIONS? Chris Corry American Management Systems ----- C-SET2 CFORUM appended at 00:55:54 on 92/06/18 GMT (by SBRZAYD at OS2CUST) Subject: Code works standard, but not migration I am trying to call a 16-bit function from 32-bit code. It works using standard libraries but when I use the migration libraries the arguments are not making it through quite right. Further investigation reveals that the address passed in for the AddofPoint argument described below is two bytes less than what it should be. That is to say, assuming a chunk of memory contains (in SD386 dump format) LOW HIGH 7F AB EC D0 2F 00 ----------- What should be =========== What is and the address passed in for AddofPoint is supposed to be 002F:D0EC, it ends up in the 16-bit DLL as being D0EC:7FAB. The substantially abreviated details: 32-Bit Compliant Prototypes (found in .H)... ======================================================================= typedef char STRTYPE1 ìSOME_NUM┘; typedef enum {elem1 = 0, elem2 = 1, elem_dummy = 32767 } MYENUM; typedef short (* _Seg16 _Far16 _Cdecl PROCTYPE) (<some args>); typedef LHANDLE MYHANDLE; SHORT _Far16 _Cdecl A16BitFunc (STRTYPE1 szFirstArg, MYENUM someElem, PROCTYPE NotifyProc, MYHANDLE * _Seg16 AddOfPoint); 16-Bit Code definition (found in .C)... ======================================================================= SHORT cdecl A16BitFunc (STRTYPE1 szFirstArg, MYENUM someElem, PROCTYPE NotifyProc, MYHANDLE * AddOfPoint){ ... } The Call ======================================================================= MYHANDLE AHandle; sRc = A16BitFunc ("A short string", elem1, AValidProc, &AHandle); I have tried virtually everything (including casting all arguments explicitly, etc.) and it still blows up. Is this a bug? Any help on this would be super-cool (I'll E-mail you a Fosters :-> ). Chris Corry American Management Systems ----- C-SET2 CFORUM appended at 05:27:17 on 92/06/18 GMT (by TMTRAN at SFOVMIC1) Subject: Memory Allocation Migration Hello, I have problems migrating DosSubAlloc and MAKEP from C/2 to C SET/2: ------------------------------------- SEL sel; USHORT offset; if (DosSubAlloc(sel, &offset, 1000)) return (NULL); else return(MAKEP(sel, offset)); -------------------------------------- Please HELP! THANK YOU HAVE A GOOD DAY ----- C-SET2 CFORUM appended at 12:44:15 on 92/06/18 GMT (by MARYAN at TOROLAB3) Subject: #pragma seg16( structure/union tag identifier ) Hi, I would like to suggest that in future release of C Set/2 compiler #pragma seg16( ) should also work with structure/union tag identifier. This means that: typedef struct Puddytat_tag { ... } Puddytat_t; #pragma seg16( Puddytat_tag ) struct Puddytat_tag MyCat; or typedef struct Puddytat_tag { ... } Puddytat_t; #pragma seg16( Puddytat_t ) Puddytat_t MyCat; or typedef struct Puddytat_tag { ... } Puddytat_t; #pragma seg16( MyCat ) struct Puddytat_tag MyCat; or typedef struct Puddytat_tag { ... } Puddytat_t; #pragma seg16( MyCat ) Puddytat_t MyCat; will produce the same results, i.e. MyCat will be seg16 object. Jacek P. Maryan ----- C-SET2 CFORUM appended at 12:50:57 on 92/06/18 GMT (by GERSTLE at LEXVMK) Subject: IPMD's apparent dislike of MS compiled apps Ref: Append at 21:14:15 on 92/06/17 GMT (by SBRZAYD at OS2CUST) Chris, The following is the only "more information" I have been able to dig up: - IPMD does a fair job of handling MSC far pointers - we can display and dereference them. - IPMD does not handle MSC near pointers, primarily because of the time and expense of determining/tracking the segment. We were simply unable to get this function into the code due to other priorities. Pat Gerstle ----- C-SET2 CFORUM appended at 13:33:32 on 92/06/18 GMT (by BIGBILL at TOROLAB6) Subject: Memory Allocation Migration Ref: Append at 05:27:17 on 92/06/18 GMT (by TMTRAN at SFOVMIC1) Unless you have a very specific reason for going to Dos...() APIs for memory allocation, I suggest you change your code to use malloc(). It's a lot better implementation that in the 16-bit world and the debug memory allocation routines are provided in the product already. Bill Sarantakos OS/2 Compiler Development Toronto, Ontario ----- C-SET2 CFORUM appended at 14:12:36 on 92/06/18 GMT (by MOONEY at TOROLAB6) Subject: Code works standard, but not migration Ref: Append at 00:55:54 on 92/06/18 GMT (by SBRZAYD at OS2CUST) The problem is that enum parameter that you are passing. When compiling with -Se, it is of size 2 on both sides of the function call. When compiling with -Sm, it is of size 4 on the 32-bit side and size 2 on the 16-bit side. This gets the stack misaligned, and boom. If you want to stick with -Sm, change your 32-bit prototype to make a someElem a short rather than a MYENUM . Would you rather see enum size controlled by a separate option (rather than by -Sm)? (We're trying to decide if this is worthwhile for our next release.) (And btw, I'm not a big Foster's fan... do you think that you could Email me a Smithwick's instead?) dave ----- C-SET2 CFORUM appended at 14:14:55 on 92/06/18 GMT (by MOONEY at TOROLAB6) Subject: Memory Allocation Migration Ref: Append at 05:27:17 on 92/06/18 GMT (by TMTRAN at SFOVMIC1) That looks OK to me... how is your testcase failing? What is the type of the value you are returning from the function? (Ie, what is the prototype for the function?) dave ----- C-SET2 CFORUM appended at 14:28:23 on 92/06/18 GMT (by SBRZAYD at OS2CUST) Subject: IPMD's apparent dislike of MS compiled apps Ref: Append at 12:50:57 on 92/06/18 GMT (by GERSTLE at LEXVMK) Pat, Well thanks for the response, anyway. I appreciate the fact that there are some IBMers who want to help out customers, even when there isn't a whole lot that they can do :-). I have a copy of SD386 now anyway and it works great; since SD86 was my debugger under OS/2 1.3 it's like going back to an old friend. Thanks again for your help!! Chris Corry AMerican Management Systems ----- C-SET2 CFORUM appended at 17:35:57 on 92/06/18 GMT (by TMTRAN at SFOVMIC1) Subject: Dos...APIs versus Malloc Ref: Append at 18:08:18 on 92/04/10 GMT (by XXTCAN06 at TORVMCOP) Hi, The reason I want to keep DosSubAlloc instead of malloc is that I can DosFreeSeg to free up the allocated memory at once. Are there any similar non-DOS...API functions available? Tran THANK YOU HAVE A GOOD DAY ----- C-SET2 CFORUM appended at 19:34:28 on 92/06/18 GMT (by BILLH at SBRYVM4) Subject: Dos...APIs versus Malloc Ref: Append at 17:35:57 on 92/06/18 GMT (by TMTRAN at SFOVMIC1) There are no more selectors in OS/2 2.0. DosAllocSeg has been replaced by DosAllocMem. You sub allocate with DosSubAllocMem. You can free it all with DosFreeMem. There are a whole bunch of new memory functions. If you have the toolkit you can look in the control program reference (view guiref20) under memory management. MAKEP is not needed because the functions use real pointers rather than selectors. ================================================================ Bill Hegarty - BILLH at SBRYVM4 Emerging Business Systems - ISSC Southbury Ct. 203-262-4984 T/L 376-4984 ----- C-SET2 CFORUM appended at 19:46:01 on 92/06/18 GMT (by SHERRATT at RCHVMP3) Subject: OS2.H I am just getting started with C-SET. I am trying to compile one of the samples, but OS2.H is nowhere to be found on my system. WHERE can I get a copy of this ? ----- C-SET2 CFORUM appended at 03:02:08 on 92/06/19 GMT (by BIGBILL at TOROLAB6) ..... C-SET2 CFORUM modified at 12:52:42 on 92/06/24 GMT (by BIGBILL at TOROLAB6) Subject: Dos...APIs versus Malloc Ref: Append at 17:35:57 on 92/06/18 GMT (by TMTRAN at SFOVMIC1) The _heapmin() function is what you want. However, it tries to return all storage that has been free()'d by the user back to the OS. As suggested, DosAllocMem() would work too. I think the problem you are having with DosAllocSeg() is that you have to prototype it yourself as a 16-bit function AND if you are using os2386.lib to link, you need to call Dos16AllocSeg() instead. Bill Sarantakos OS/2 Compiler Development Toronto, Ontario ----- C-SET2 CFORUM appended at 03:02:57 on 92/06/19 GMT (by BIGBILL at TOROLAB6) Subject: OS2.H Ref: Append at 19:46:01 on 92/06/18 GMT (by SHERRATT at RCHVMP3) It's provided in the toolkit in the \toolkt20\c\os2h subdirectory. Bill Sarantakos OS/2 Compiler Development Toronto, Ontario ----- C-SET2 CFORUM appended at 16:59:02 on 92/06/19 GMT (by V$IBTIGA at BCRVMPC1) Subject: max size for STACK and HEAP I am just asking for a verification on the following: that the maximum stack size is still 64K, but the maximum heap size can be larger than 64K, due to the 32-bit addressing. Is this true? If so, how come the stack cannot be greater than 64K? Larry Moore PSPC-Boca Tech Interface Group ----- C-SET2 CFORUM appended at 18:47:57 on 92/06/19 GMT (by SBRZAYD at OS2CUST) Subject: Code works standard, but not migration Ref: Append at 14:12:36 on 92/06/18 GMT (by MOONEY at TOROLAB6) Dave, THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU THANK YOU That one was really driving my nuts; knowing what I know now I NEVER would have figured that out on my own. The answer to your question is YES, the enum size should definitely be setable from the command line if the compiler is going to have the ability to change it. One question still kind of bugs me; why is the size of an enum 4-bytes when linking with the migration libaries instead of two? In order to help facilitate the calling of 16-bit code doesn't it make more sense to keep it at the C/2 size of 2-bytes? Anyway, thank you very much for your response. It was a tremendous help. Chris Corry American Management Systems ----- C-SET2 CFORUM appended at 19:05:02 on 92/06/19 GMT (by SBRZAYD at OS2CUST) Subject: 16-bit and 32-bit stack sizes I have a mid-size 32-bit application that is calling a large number of 16-bit DLLs. Under 1.3, apps that used these DLLs typically had to have a stack size of at least 50K. True to form, my 32-bit app has problems with a stack much smaller than that. Now the DLLs started running out of stack, which required a #pragma stack16() entry in my app. This needs to be set to about 50K or the DLLs will not function. However, in this case, then my 32-bit code stops working. Does 16-bit and 32-bit code share the same stack or something? What is the relationship between the two, if any? Should I be placing multiple #pragma stack16()s into my code, instead of one on the first line of the program? Thanks for all the help. Chris Corry American Management Systems ----- C-SET2 CFORUM appended at 19:15:46 on 92/06/19 GMT (by JONATHAN at LEXVMK) Subject: max size for STACK and HEAP Ref: Append at 16:59:02 on 92/06/19 GMT (by V$IBTIGA at BCRVMPC1) I have successfully linked applications with stacks larger than 64K: ICC /B"/ST:0x10000" ... ----- C-SET2 CFORUM appended at 19:40:30 on 92/06/19 GMT (by MOONEY at TOROLAB6) Subject: max size for STACK and HEAP Ref: Append at 16:59:02 on 92/06/19 GMT (by V$IBTIGA at BCRVMPC1) Not true. The stack can be anywhere up to, and including, (and I'm not making this number up,) one bazillion bytes in size. The compiler itself is built with a 128K stack, so I know that the limit is not 64K. dave ----- C-SET2 CFORUM appended at 19:48:21 on 92/06/19 GMT (by OCANUC at BETASVM2) Subject: max size for STACK and HEAP Ref: Append at 16:59:02 on 92/06/19 GMT (by V$IBTIGA at BCRVMPC1) Where did you hear that that stack size is restricted to 64K? The linker doc says it can be "any postive number" and in particular our software has it set >200K. Brandon Booth Advanced Programming - ICSRS ----- C-SET2 CFORUM appended at 19:55:33 on 92/06/19 GMT (by MOONEY at TOROLAB6) Subject: 16-bit and 32-bit stack sizes Ref: Append at 19:05:02 on 92/06/19 GMT (by SBRZAYD at OS2CUST) You only need to specify one #pragma stack16() in your code. Set it as the high water mark for your 16-bit code. Yes, the 16-bit stack gets allocated out of the 32-bit stack. Before the 16-bit routine gets called, the compiler asks Is stack16size + parameter save area + register save area (used by compiler) >= amount of room left in current 64K block? If yes, then move 16-bit stack area to the beginning of the next 64K block The compiler uses the stack16 value you give it part of the calculation to ensure that your 16-bit stack will not cross a 64K block. If you set it too high, you won't really lose anything, but you might cause yourself to run out of 32-bit stack area a little bit faster. To increase your 32-bit stack, link with /STACK:0x20000 or so. (0x20000 will give you 128K of stack space.) I believe that when you ask for a big stack, the memory doesn't actually get committed, only address slots, so you can't really hurt yourself by asking for too big a 32-bit stack either. dave ----- C-SET2 CFORUM appended at 20:44:41 on 92/06/19 GMT (by KURTIS at RCHVMV3) Subject: IPMD question Will IPMD let me debug programs that can be debugged using CODEVIEW? Thanks... Kurt Ruby Rochester, MN ----- C-SET2 CFORUM appended at 20:53:36 on 92/06/19 GMT (by SBRZAYD at OS2CUST) Subject: 16-bit and 32-bit stack sizes Ref: Append at 19:55:33 on 92/06/19 GMT (by MOONEY at TOROLAB6) Dave, Daammmmnnn. You are saving my butt all over the place this week. Granted you apparently helped to build the compiler but is that support or WHAT. Thanks again. Chris Corry American Management Systems ----- C-SET2 CFORUM appended at 21:56:47 on 92/06/19 GMT (by OCANUC at BETASVM2) Subject: 16-bit and 32-bit stack sizes Ref: Append at 20:53:36 on 92/06/19 GMT (by SBRZAYD at OS2CUST) Internally we're fans of dave's as well. Brandon Booth Advanced Programming - ICSRS ----- C-SET2 CFORUM appended at 14:07:55 on 92/06/20 GMT (by SBRZAYD at OS2CUST) Subject: Passing pointers back to 32-bit code from 16-bit code OK, here's the next one. I have a piece of 16-bit code that is sending a message to a window procedure in a piece of 32-bit code. Like so... WinSendMsg(hwnd, WM_MYMESS, MPFROM2SHORT(num1, num2), (MPARAM) pStuff); If, for example, the address of pStuff is 0137:1480 the 32-bit window procedure receives mp2 as a 32-bit pointer that points to 01371480. This makes a certain amount of sense but since the pointer is 32-bit it (obviously) does not point to the right place. How do I "unthunk" a 16-bit 4-byte pointer value into its true 32-bit counterpart? Since the MPARAM is returned to the 32-bit code through a window proc I can't pass a 16/32 _Seg16 pointer into the 16-bit code. I tried declaring a local _Seg16 pointer and then setting mp2 to it and the address of the _Seg16 pointer was not 01371480 (it was something like 09E45...) but the new address wasn't right either. Any ideas? Chris Corry American ManagementSystems ----- C-SET2 CFORUM appended at 14:34:03 on 92/06/21 GMT (by KOLSKY at HAIFASC3) Subject: Passing pointers back to 32-bit code from 16-bit code Ref: Append at 14:07:55 on 92/06/20 GMT (by SBRZAYD at OS2CUST) DosSelToFlat will turn a selector type pointer to a flat address. DosFlatToSel will do the opposite. Amir Kolsky ----- C-SET2 CFORUM appended at 06:14:04 on 92/06/22 GMT (by WITMOND at UITVM1) Subject: max size for STACK and HEAP Ref: Append at 19:40:30 on 92/06/19 GMT (by MOONEY at TOROLAB6) > The stack can be anywhere up to, and including, (and I'm not > making this number up,) one bazillion bytes in size. Allright, I'll bite. I don't know the word 'bazillion', neither does my friendly online dictionary GRAND. Would you care to tell me what it is? Jeroen Witmond ----- C-SET2 CFORUM appended at 13:19:10 on 92/06/22 GMT (by MOONEY at TOROLAB6) Subject: max size for STACK and HEAP Ref: Append at 06:14:04 on 92/06/22 GMT (by WITMOND at UITVM1) OK, I lied. I made that number up. It means "more that a zillion, but less than a gargazillion" (also made-up numbers :-). dave ----- C-SET2 CFORUM appended at 13:30:21 on 92/06/22 GMT (by MOONEY at TOROLAB6) Subject: Passing pointers back to 32-bit code from 16-bit code Ref: Append at 14:07:55 on 92/06/20 GMT (by SBRZAYD at OS2CUST) You can either use routines supplied by OS/2 (which the compiler uses internally): ULONG _Optlink DosSelToFlat( ULONG ); ULONG _Optlink DosFlatToSel( ULONG ); or can use tricky casting to move pStuff into a 16-bit pointer unmolested: PVOID16 p16Stuff; p16Stuff = (PVOID16)(ULONG)p16Stuff; dave ----- C-SET2 CFORUM appended at 14:47:41 on 92/06/22 GMT (by EARLY at LEXVM2) - Subject: IPMD question Ref: Append at 20:44:41 on 92/06/19 GMT (by KURTIS at RCHVMV3) Kurt, You should be able to debug programs that you can debug with CODEVIEW. We have debugged code generated by IBM C/2 and Microsoft C 6.0. Roger ----- C-SET2 CFORUM appended at 15:08:21 on 92/06/23 GMT (by SBRZAYD at OS2CUST) Subject: VA_ARG 32-BIT TO 16-BIT I am calling 16-bit DLL functions from a 32 bit application. The DLL functions accept a variable number of optional parameters. When I try to pass SHORT, BOO LEAN, or ENUMERATED TYPES as a variable arguments, the 32-bit code puts them on the stack as four bytes and the 16-bit code is expecting two bytes. I am not a ble to change the DLL because it must support existing 16-bit applications. Th e only way I have found which allows me to pass a two byte parameter is to set up a structure with a USHORT in it and then pass this structure. This is absur dly awkward. How can I pass a two byte optional parameter? Michael C. Ryan American Management Systems ----- C-SET2 CFORUM appended at 16:35:46 on 92/06/23 GMT (by AMELINE at TOROLAB6) Subject: VA_ARG 32-BIT TO 16-BIT Ref: Append at 15:08:21 on 92/06/23 GMT (by SBRZAYD at OS2CUST) The shorts etc, are being widened using the default widening rules which apply to parameters which don't have their types explicitly stated in the prototype statement. It could be argued that these widening rules should be changed for calls to 16 bit functions, so that they are compatible with the rules used by the 16 bit compilers. Unfortunately this is working as designed right now. Again unfortunately this isn't mentioned in the user's guide, though I do remember this bouncing around in my head when I wrote that part of the compiler. I guess I didn't speak up loudly enough (or at all) in the reviews of the documention. 32 bit va_args functions cannot be called from 16 bit code at all. There's no way I know to make this work. Perhaps Dave Mooney would like to comment some more on the widening rules. Regards, Ian Ameline ----- C-SET2 CFORUM appended at 13:22:09 on 92/06/24 GMT (by FRYERK at TOROLAB6) Subject: Documentation Trends: Online vs Hardcopy I would like to get some opinions on the part of you, our customers, on the subject of online and hardcopy documentation. Your input is valuable to us, and will be considered as we decide what our documentation strategy should be. The situation is this: we expect to increase the amount of documentation in the future by quite a bit. Unfortunately, including lots of books means higher cost for us, higher cost for customers, a large overhead in storage for dealers and customers, and so on, not to mention the environmentally unfriendly use of trees. To reduce the amount of paper we ship with our product, we are turning to online information. We also feel that information online, in addition to allowing for context-sensitive help, is more easily accessible and also more usable through its capacities for searching, printing, cut and pasting panels, and so on. We are hoping to put our tutorials all online to start. When it comes to the other documentation, such as programming guides, language references, and so on, we are trying to find the right balance between online and hardcopy to suit our customers' needs. We have envisioned several scenarios: 1) All information is shipped online only. Hardcopy books can be ordered separately or as a library (like for the Developer's Toolkit). All online information is in .INF format (like the current C Set/2 Online Reference). 2) All *reference* information (language reference, library functions) is shipped online (.INF) only, with the hardcopy versions separately orderable. *Guidance* information (Programming Guide, Migration Guide, Debugger Guide) is provided in hardcopy (and the Reference Summary booklet too). 3) As in option (1), except that everything is provided in BookManager format. Reference information would also be available in .INF format to allow for context-sensitive help. (NOTE: if we decided to go this route we would also provide a means of reading the BookManager books at no extra cost to the customer). 4) Provide all information in hardcopy format. Also provide reference information in .INF format for contextual help. Virtual bookcases included. :) 5) Provide reference information in .INF format and in hardcopy. Provide guidance information online only (in BookManager or .INF format), with hardcopy separately orderable. Please help us in our quest to improve our documentation. What are your requirements? Which of the above scenarios best represents what you need? If the answer is "none", please tell us what you're looking for. Please append your answers to this forum. Thanks for your help. Kathryn Fryer Toronto Information Development ----- C-SET2 CFORUM appended at 20:43:57 on 92/06/24 GMT (by XXNOVA24 at TORVMCOP) Subject: Documentation Trends: Online vs Hardcopy Ref: Append at 13:22:09 on 92/06/24 GMT (by FRYERK at TOROLAB6) My choice is (1) everything is on-line, with no more than 10 pages of read.me file AND the proper index files for epm . If anyone needs 10 kg of paper, order it for extra costs. The .INF files must be complete with the bitmaps or metafiles in it.(Like printed.) I never tried the Bookmanager \ Read/2 but if it is provided the option (3) is OK to me. We can save on printing and on shipping costs. Geza Szivos NOVACOR Chemicals (403)-290-6583 ----- C-SET2 CFORUM appended at 14:47:43 on 92/06/25 GMT (by SBRZAYD at OS2CUST) Subject: 16-Bit MS DLLs Things are going pretty well and we are getting close to turning over our code for GA. This will be our first release where our APIs support 32-bit code and this is LARGELY due to the wonderful support we have been able to receive on this BBS. Thanks everyone!! (particularly Dave and Ian). Now to our latest (and hopefully last, knock on wood) problem. In this release we have moved our 16-bit DLLs from IBM C/2 to MS C 6.0. We really had little choice in this matter; the C/2 DLLs simply could not be called by other systems (Smalltalk, Easel, etc.) without blowing up, the MS stuff could be. However, although the vast majority of our stuff is working, we have problems with our MS DLLs blowing up in our OWN programs (32-bit & 16-bit) where the older C/2 DLLs would not die. I realize that this is too vague a description to be of any real use to anyone so instead my question is: Is thereanything I should be aware of when migrating 16-bit C/2 code to 16-bit MS C 6.0? We are apparently having the same problems under 1.3 so this situation is not 2.0 specific. Has anyone out there been in the same position as us, or has anyone had any aggravatingexperiences that may apply to our situation? I'm very tempted to call MS tech support but I've heard that once they realize you are coding for OS/2 they clam up and refuse to help! Anyway, thanks one and all, and we VERY MUCH appreciate your help. Chris Corry American Management Systems ----- C-SET2 CFORUM appended at 12:00:51 on 92/06/26 GMT (by SDETWEIL at DETVMIC4) Subject: 16-Bit MS DLLs Ref: Append at 14:47:43 on 92/06/25 GMT (by SBRZAYD at OS2CUST) I've never had any problems like this and have ported some 50 C/2 DLLs to MS C6. Can you tell us anything about the kind of problem you're having? Are these multi-threaded, DosLoadModuled, etc? Sam ----- C-SET2 CFORUM appended at 18:40:06 on 92/06/26 GMT (by XXCDSX26 at TORVMCOP) Subject: Documentation Trends: Online vs Hardcopy Ref: Append at 13:22:09 on 92/06/24 GMT (by FRYERK at TOROLAB6) Unlike Geza, my choice would be for option 2. I find the PC screen very inappropriate for guidance information. This material I like in book format where I can take to the bedroom, on the commuter train, etc. One variant I would like is all the code examples in INF format so that I can cut and paste them into my programmes (also, so that I don't have all those ridiculous directories strewn across my disk). Ideally, I would like sometime like the V2 Master Index where I can alphabetically tab through a description before obtaining the example. Michael Harper - Cdn Depository for Securities, Ltd ----- C-SET2 CFORUM appended at 00:14:54 on 92/06/27 GMT (by SBRZAYD at OS2CUST) Subject: 16-Bit MS DLLs Ref: Append at 12:00:51 on 92/06/26 GMT (by SDETWEIL at DETVMIC4) What a pain in the butt this has become! This is what we've been able to determine, and we have managed to work around it. We have kept our PROGRAMS compiled in IBM C/2 even though we have moved all of our DLLS to MS C 6.0. We have to do this because we have an installed base that we told two years ago that if you wanted to develop apps for our product the only compiler we would actively support would be C/2. We cannot tell the existing installed base that they must all run out and buy MS C 6.0 just to take advantage of our next release. What happens is that the C/2 program calls one of our MS API functions and registers a callback function with us (note that the callback is in the C/2 compiled executable). Now, when we call the callback function (MS going back to C/2) we get into the function fine but when, in the callback handler, the program tries to do a sprintf everything blows up. We have ruled out stack problems (we have a 59K stack) and believe that the problem has to do with either the fact that we are "mixing" run time libraries or the fact that sprintf is not reentrant. Either way, when we rewrote the sprintf calls to use just strcpy and strcat they worked fine. We are less than pleased with having to go to our clients and telling them that they MAY have to re-compile and re-link their apps, but its better than telling them that they MUST go out and buy MS C 6.0. Chris Corry American Management Systems ----- C-SET2 CFORUM appended at 00:18:04 on 92/06/27 GMT (by SBRZAYD at OS2CUST) Subject: Documentation Trends: Online vs Hardcopy Ref: Append at 18:40:06 on 92/06/26 GMT (by XXCDSX26 at TORVMCOP) I agree with Michael. The INF stuff is great for on-the-fly reference and quick lookups but if I had to go to the online stuff for extended examples and explanations I think I would go nuts. My 2 cents. Chris Corry American Management Systems ----- C-SET2 CFORUM appended at 15:01:42 on 92/06/28 GMT (by IL78568 at OS2CUST) Subject: Documentation Trends: Online vs Hardcopy Ref: Append at 00:18:04 on 92/06/27 GMT (by SBRZAYD at OS2CUST) Chris, I agree with you and Mark that I want to be able to see a lot of programming reference and code samples in hard-copy format. But I am assuming that any properly implemented online documentation in INF, BookManager, or other format, can be easily printed for off-line perusal. I just think so much documentation is NOT read, plus online documentation is much easier to update and keep current. Brooks McNeely - Martin Marietta Energy Systems, Inc. ----- C-SET2 CFORUM appended at 05:32:08 on 92/06/29 GMT (by XXNOVA24 at TORVMCOP) Subject: Documentation Trends: Online vs Hardcopy Ref: Append at 15:01:42 on 92/06/28 GMT (by IL78568 at OS2CUST) To keep the costs down and save the trees , the printed documentations should be optional for extra order and charge (like redbooks.) BUT I'd like to see the savings in the price. Geza Szivos NOVACOR Chemicals (403)-290-6583 ----- C-SET2 CFORUM appended at 11:57:49 on 92/06/30 GMT (by XXCDSX26 at TORVMCOP) Subject: Documentation Trends: Online vs Hardcopy Ref: Append at 05:32:08 on 92/06/29 GMT (by XXNOVA24 at TORVMCOP) Geza: If C/Set 2 msrp is $100 less than it's competitors I would agree with you, i.e. the cost savings is reflected back to the customer. However if the cost savings is just to increase vendors margin then I would have a problem. Michael Harper - Cdn Depository for Securities, Ltd ----- C-SET2 CFORUM appended at 14:38:45 on 92/06/30 GMT (by A157623 at OS2CUST) Subject: File Handling Restrictions In an old copy of the C Set/2 Migration Guide, dated Aug 8, 1991, it stated that spawned programs could NOT inherit the file handles of its parent. This is a major restirction for my application. Can someonecomment if this is still the case? If so, any plans to correct? ----- C-SET2 CFORUM appended at 15:54:23 on 92/06/30 GMT (by CHFAN at DALHQIC2) Subject: Global variables The sample code "sample04.h" comimg with the TOOLKIT showes that a global variable "foo1" is owned by a DLL and shared by an EXE. My knowledge may be out of date; however I always think that you can't have shared global variables between an EXE and a DLL. Pointers are used to overcome this problem... Can someone help... Thanks... Chung-Ho Fan ----- C-SET2 CFORUM appended at 17:17:31 on 92/06/30 GMT (by XXNOVA24 at TORVMCOP) Subject: Documentation Trends: Online vs Hardcopy Ref: Append at 11:57:49 on 92/06/30 GMT (by XXCDSX26 at TORVMCOP) Agree, I'd like to see the costs saving in my pocket. Geza Szivos NOVACOR Chemicals (403)-290-6583 ----- C-SET2 CFORUM appended at 18:23:06 on 92/06/30 GMT (by SDETWEIL at DETVMIC4) Subject: Global variables Ref: Append at 15:54:23 on 92/06/30 GMT (by CHFAN at DALHQIC2) Things you can export from a DLL are BOTH code AND DATA. Thus in your C EXE file extern int counter; can be located in a DLL. C-SET/2 provides a NEW facility along with OS/2 2.0 for this very function. If you (in 1.x) did this data sharing between an EXE and DLL there was NO protection against the EXE writing TO as well as READING from the data area. There is a NEW DLL type in C-SET/2 called Protected (Workframe lists this as one of the options) This allows this data sharing to be READ ONLY. Thus the only way to UPDATE the field is to define a callable API into the DLL... Sam ----- C-SET2 CFORUM appended at 20:42:24 on 92/06/30 GMT (by MOONEY at TOROLAB6) Subject: Global variables Ref: Append at 15:54:23 on 92/06/30 GMT (by CHFAN at DALHQIC2) No, it's allowed, all right. As far as the compiler and linker are concerned, foo1 is just like any old address which needs to be resolved from somewhere else. The linker discovers from the import library that the the resolution comes from a dynamic link library which is to be resolved at load time. No problem. I don't think, on the other hand, that it is possible to resolve an external reference *from* a DLL *to* an EXE. From an EXE to a DLL is OK, but not the other way around. dave ----- C-SET2 CFORUM appended at 20:54:29 on 92/06/30 GMT (by SBRZAYD at OS2CUST) Subject: Freeing a MS halloc in 32-bit code If its not one thing, its another... * SIGH * We are having a number of strange thunking/unthunking problems when calling MS 16-bit code that allocates a large block of memory (>64K) with halloc and then returns the memory to a 32-bit C Set/2 application. We can get to the memory fine (this might be material for a second post, come to think of it) but when we try to free the memory in our 32-bit app the walls come crumbling down. As a test, we replaced the MS hallocs with mallocs and made sure that the images we were moving around were <64K. In one case the free worked but in the others it PE'd. Does anyone have any ideas? Since we are passing in double pointers to the MS DLL routines that allocate the memory (and do a lot of other things) do we need only one level of _Seg16s (* _Seg16 *)? Two (* _Seg16 * _Seg16)? Currently we have one under the reasoning that a 16-bit huge pointer is the same as a normal C Set/2 char pointer. Is this accurate? As usual, I am deeply thankful for all help. Chris Corry American Management Systems ----- C-SET2 CFORUM appended at 01:14:05 on 92/07/01 GMT (by SDETWEIL at DETVMIC4) Subject: Freeing a MS halloc in 32-bit code Ref: Append at 20:54:29 on 92/06/30 GMT (by SBRZAYD at OS2CUST) As the memory pool is NOT shared between the EXE and DLL runtime environments, one CANNOT malloc() (halloc) in one place and free() in another. Using MS C, to accomplish this you MUST use the CRTLIB.DLL which is the C RunTime DLL and SHARE the SAME runtime heap space between EXE and DLL. This requires linking the EXE with CRTEXE.OBJ adn the DLL with CRTDLL.OBJ as documented in the MS C manuals. ONLY EXEs created in this way can access the DLL, period. Using C-SET/2 you can do the SAME thing, by using Workframe to set DYNAMICALLY linked runtime between the EXE and DLL, BUT they BOTH MUST BE C-SET/2, just as MS MUST BE BOTH MS C. So, The ONLY way I can think of to FIX this, is provide YOUR OWN myfree() api in the DLL that the 32 bit EXE calls to actually FREE the memory allocated in the 16 bit DLL.. Sam ----- C-SET2 CFORUM appended at 14:38:26 on 92/07/01 GMT (by PNWB016 at HONE86) Subject: File Handling Restrictions Ref: Append at 14:38:45 on 92/06/30 GMT (by A157623 at OS2CUST) Don't know about the spawn family of functions, but we use the DosExecPgm API to start another process where we want it to inherit the file handes. I just checked in the GA version of the C/Set migration guide and here is what I found on page 134.... "Files that are open when a swpan call is made remain open in the child process. In the spawnl, spawnlp, spawnv, and spawnp calls, the child process inherits the environment of the parent." Is this different from what was said in the prerelease version of the migration guide? Hope this helps... if the spawn family of C runtime calls isn't doing the job for you let me know and I can post a code stub we have that uses DosExecPgm. Wayne "I hope this helps" Holmes U S WEST Communications ----- C-SET2 CFORUM appended at 15:23:19 on 92/07/01 GMT (by SC036696 at AUSVM1) Subject: Debugging DosExec'd processes with 'ipmd' I'm trying to debug into a 'DosExec'd process but am unable to. I cannot find reference anywhere to this type of debugging. Has anyone discovered how to accomplish this? ----- C-SET2 CFORUM appended at 18:38:59 on 92/07/01 GMT (by SC036696 at AUSVM1) Subject: C SET/2 DEBUGING OF 'EXECED' PROCESSES I AM ATTEMPTING TO DEBUG INTO A PROCESS ASYNCHRONOUSLY INITIATED WITH A 'DOSEXECPGM' BUT HAVE BEEN UNSUCCESSFUL AT DOING SO. I CANNOT STOP THE ASYNCHRONOUS PROCESS ONCE IT IS EXECED. HAS ANYONE HAD SUCH EXPERIENCE USING THE DEBUGGER. THANKS. ----- C-SET2 CFORUM appended at 04:26:53 on 92/07/02 GMT (by BIGBILL at TOROLAB6) Subject: Freeing a MS halloc in 32-bit code Ref: Append at 20:54:29 on 92/06/30 GMT (by SBRZAYD at OS2CUST) Ref: Append at 01:14:05 on 92/07/01 GMT (by SDETWEIL at DETVMIC4) As Sam says, the runtime environment that allocates the memory MUST free the memory, unless that runtime environment is shared by the EXE and DLL AND is from the same compiler. In fact, we ran into this situation in the WorkFrame. We have an API back into the DLL that we pass a pointer to which actually frees the allocated structure (it does multiple frees since the structure contains multiple allocated objects). A 16-bit huge pointer is not the same as a 32-bit char pointer. They may be both 32-bits, but that's were the similarity ends. I believe you need the second level. If you are passing these pointers through a function declared with a 16-bit calling convention, then the compiler takes care of the first level of indirection. So you're one level may actually be two (I always forget which side those _Seg16 things apply to ;-). Bill Sarantakos OS/2 Compiler Development Toronto, Ontario ----- C-SET2 CFORUM appended at 13:39:54 on 92/07/03 GMT (by PETT at TOROLAB6) Subject: File Handling Restrictions Ref: Append at 14:38:45 on 92/06/30 GMT (by A157623 at OS2CUST) handles are inherited in a spawned program, with one difference from the MS compilers. The handles inherited are the handles in effect when the spawning program started. The effects of the freopen() function are not inherited by a spawned program. There is a way to redirect standard I/O files, which I described some time ago in this forum. It's a bit messy, but it works. Roger Pett ----- C-SET2 CFORUM appended at 20:15:54 on 92/07/03 GMT (by XXNOVA24 at TORVMCOP) Subject: SOM compiler settings. I'm looking for the C-set/2 compiler settings to compile a class to a DLL and invoke it from a regular program. There is a good article in the Winter 1992 of IBM Personal Systems Developer. : Object-Oriented Programming in OS/2 2.0 (p107) If I compile the classes to a DLL and using the main.c example: I get an error message during execution about the object was NULL (?) Does anyone can help me with a compiler-linker options or with a make file? Geza Szivos NOVACOR Chemicals (403)-290-6583 ----- C-SET2 CFORUM appended at 00:57:04 on 92/07/05 GMT (by U6200 at BTVLABVM) Subject: Documentation Trends: Online vs Hardcopy Ref: Append at 05:32:08 on 92/06/29 GMT (by XXNOVA24 at TORVMCOP) I'm really an internal but thought I'd express my opinion to. I work in a technical environment where I have to keep technical manuals around for a lot of different tools/systems. My office just isn't big enough for all the paper manuals. Documentation on some sort of on-line mass storage (CD-Rom?) is the only practical solution for my storage requirements. Gary Coryer ----- C-SET2 CFORUM appended at 13:01:00 on 92/07/06 GMT (by OLEG at YKTVMV) -- Subject: question from a customer I've got a question that I was hoping some other C Set/2 users or perhaps some friendly C Set/2 developer could help me with. I'm compiling a project using C Set/2 and need to issue IOCtl's to reach a 16-bit device driver. The parameter packets that are passed in to the driver can contain either normal values, or pointers to other data. In general, what I've been trying to do is to cast the pointer to the parameter structure itself to a _Seg16 pointer, and also define the pointers within the structure as _Seg16 pointers, setting them to a value passed in from a piece of 32-bit code. For example, the calling routine may have: main() { char buffer[100]; CallDriver(buffer,sizeof(buffer)); } and the routine that interfaces with the driver has: CallDriver (char *buffer, int buflen) { struct iobuf { short buflen; /* 16-bit integer */ char * _Seg16 buf; /* 16-bit usable buffer */ } iobuf; iobuf.buflen = buflen; iobuf.buf = (char * _Seg16)buffer; DosDevIOCtl(handle,category,func, (char * _Seg16)&iobuf,parmlen,&parminout, NULL,datalen,&datainout); } The above pseudo-code is pretty simplified, but that's the basic picture. The device driver is not being called from 16-bit code, so C Set/2 is not doing any automatic 16-bit manipulation. I've dumped out the results of casting my 32-bit pointers to _Seg16 pointers and it is different than the 32-bit format, although I guess I can't guarantee that it's been thunked correctly since I don't know what the 16-bit pointers are supposed to look like. In general, I find that the cast value has a different high order 16-bits (I assume segment in the _Seg16 value), but the same low order 16-bits. Now this is actually the second program of this type I'm trying to build. The first had to do a similar operation (and I was successful building it), but I had a fixed data buffer, which I made a global variable and specified in a #pragma seg16. I then set the data pointer (buf) to point to that global variable. This seemed to work fine. However, in this new program, trying to set the data pointer to the pointer supplied to the function (cast to a _Seg16 pointer) is failing (well, it's hanging my machine in reality - but I presume that's because the device driver got a pointer it was unable to use - and it doesn't do the most extensive checking the in the world for addressability) My question is that why shouldn't the simple cast work. In general, my impression of the #pragma seg16 and _Seg16 keyword was that the _Seg16 keyword, when used on a 32-bit pointer, thunked that pointer into a value that could be used by 16-bit code. However, if the data the pointer was pointing at was originally allocated by 32-bit code, there was no guarantee that the thunked pointer could address the entire data block without rolling over a 64K boundary. By defining a variable with #pragma seg16(), the initial allocation of that variable would be such that a thunked pointer to it would not roll-over (presuming the variable was <64K in size). [As an aside - there's no discussion of the scoping of #pragma seg16 - if I use it for a variable name, do all such variables (global and local at any scope) get tiled?] Given this interpretation, I figured that passing a pointer supplied to my routine (buffer in the example above) that had been cast to a _Seg16 pointer would give the device driver a valid pointer, but there was the possibility that it would cross a 64K boundary. For debugging I've been dumping the pointer value, and the low-order 16-bits were never close enough to FFFF to require rolling over to address the entire data. (In fact, my original plan was to check for this and if it would roll-over, copy the data into a global buffer that had been tiled using #pragma seg16). Of course, it doesn't seem to be working out that way, but I'm not sure why. Is there something I'm missing in all of this - the few pages in the C Set/2 User's Guide are useful, but not really as detailed as I'd like, and they seems geared to handling calls between 32-bit and 16-bit code with a DLL interface in-between, not an IOCtl. Am I misinterpreting what is happening with my cast to a _Seg16 pointer and/or why would things be different if I first transfer the data to a global buffer tiled with #pragma seg16, and then used the address of that buffer (as a _Seg16 pointer) in the structure? Maybe part of my problem is not understanding any manipulations being done to the IOCtl parameters on the way to the driver. I happen to have the driver source, but it's not my code and I don't yet have my copy of the device driver development guide. Of course - my previous project made similar calls (using the global buffer) and things worked out fine, with the device driver having proper addressability to the data pointed to by the field within the structure. ----- C-SET2 CFORUM appended at 14:52:42 on 92/07/06 GMT (by PNWB016 at HONE85) Subject: Debugging DosExec'd processes with 'ipmd' Ref: Append at 15:23:19 on 92/07/01 GMT (by SC036696 at AUSVM1) I asked this question at the OS/2 Tools Conference. The easiest way to accomplish this is to specify a debugging type option in your program. When enabled, instead of starting your program (call it "FOO.EXE" for the sake of argument) it starts IMPD with a parameter of FOO.EXE. Personally I don't consider this a very elegant solution, but it does work. I would MUCH prefer the ability to set a debugger option and directly debug any child processes. Wayne Holmes U S WEST Communications ----- C-SET2 CFORUM appended at 17:31:30 on 92/07/06 GMT (by A157623 at OS2CUST) Subject: File Handling Restrictions Thanks to Wayne Holmes ("I hope this helps", yes it did). The beta-release migration guide, pg 12, stated C SET/2 could spawn programs but they would NOT inherit the file handles of the parent. Glad the production release fixed it. We use a mixture of spawn and DosExecPgm, so any code stubs would be appreciated if the behavior has changed. Thanks in advance. Larry Mason Texas Instruments ----- C-SET2 CFORUM appended at 22:55:26 on 92/07/06 GMT (by MIKEK at DALHQIC2) Subject: Coverting Integer to Ascii I understand I am supposed to use sprintf to convert integer to ascii. My question is how the !@#$%¢&*() do I use it? It returns an int. Why isn't there a simple SAA function that looks like this? char * itoa( int ) Michael Kaply Team OS/2 Dallas PRODIGY MVMF10A ----- C-SET2 CFORUM appended at 00:40:15 on 92/07/07 GMT (by KEENLEY at TOROLAB6) Subject: Coverting Integer to Ascii Ref: Append at 22:55:26 on 92/07/06 GMT (by MIKEK at DALHQIC2) Use sprintf( buffer, "%d", someint ) or if you don't care about SAA portability you can use _itoa (see stdlib.h). John Keenleyside OS/2 Compiler Dev. ----- C-SET2 CFORUM appended at 14:09:22 on 92/07/07 GMT (by PNWB016 at HONE82) Subject: Coverting Integer to Ascii Ref: Append at 22:55:26 on 92/07/06 GMT (by MIKEK at DALHQIC2) Michael: I use _itoa and _ltoa. Is that what you are looking for? (Check the online help for the C/Set.) I STUMBLED across these functions a while back. Wayne "Still waiting for some fixes" Holmes Prodigy: CPJW60A ----- C-SET2 CFORUM appended at 16:55:51 on 92/07/07 GMT (by MIKEK at DALHQIC2) Subject: Coverting Integer to Ascii Ref: Append at 14:09:22 on 92/07/07 GMT (by PNWB016 at HONE82) I saw those Wayne but why the blazes do they take an int value, a char string and an int radix? Let's say I want to convert the number 6 which is in a variable Num to a string in the variable String. What does the call look like? Michael Kaply Team OS/2 Dallas PRODIGY MVMF10A ----- C-SET2 CFORUM appended at 21:25:39 on 92/07/07 GMT (by TMTRAN at SFOVMIC1) Subject: Stack Segment Problem Hello, I have migrating a program that works with IBM/C2 compiler, and I get SYS0189 error when I run it after compiling with IBM C SET/2. Please help!! Tran THANK YOU HAVE A GOOD DAY ----- C-SET2 CFORUM appended at 14:30:43 on 92/07/08 GMT (by PNWB016 at HONE82) Subject: Coverting Integer to Ascii Ref: Append at 16:55:51 on 92/07/07 GMT (by MIKEK at DALHQIC2) Michael: Code stub follows: { char szWorkì10┘; int nValue = 4; /* After execution szWork will contain the string "4" */ _itoa(nValue,szWork,10); } The 3rd parameter indicates the base that the string value should represent. Normally I use base 10 for numbers I want people to understand. If you wanted the hex value you would specify 16 as the 3rd argument, for binary you would specify a 2. I have no idea what the history is of all the parameters to itoa. It probably has something to do with the "dark ages" of C (the days before function prototypes were allowed) and has now become some kind of standard. Wayne "Not a 'C' historian" Holmes ----- C-SET2 CFORUM appended at 22:33:02 on 92/07/08 GMT (by MARTZ at GDLVM2) - Subject: Bookmanager documentation -- how do customers use it? How does a customer go about getting a copy of READ/2 so s/he can use the BookManager format documentation provided with Cset/2? I'm thinking of a customer who does *NOT* have a marketing rep (and never plans to get one either). John Martz "Better products through conferencing!" MARTZ at GDLVM2 tie 852-5979 Prodigy: CCCR60A Glendale Lab/Endicott, NY ----- C-SET2 CFORUM appended at 23:24:52 on 92/07/08 GMT (by BYRNEJ at FSHVMCC) Subject:DOS_API Can any one tell me where I can get any info on DOS_API calls, if there are any. In the DOS settings of OS/2 2.0 there is a setting for DPMI_DOS_API, for DOS API translation, does this mean there are DOS_API's. Any help would be appreciated Joe Byrne ----- C-SET2 CFORUM appended at 18:03:27 on 92/07/09 GMT (by WZ00622 at OS2CUST) Subject: Calling 16-bit assembly routines from 32-bit C code I have a 32-bit program that calls a 16-bit assembly language routine. If the routine is called from the main thread I go through the _EDCThunkProlog and execute the routine without any problem. If I call the routine from another thread upon entry to the routine that calls the 16-bit routine I get an access violation in the _EDCThunkProlog at the REP MOVSW line in the prolog code. Is there something special I must do to call 16-bit routines from threads other then the main thread? It appears that the prolog code is trying to move data onto a non-existent stack area. Brad Pollack ----- C-SET2 CFORUM appended at 18:34:29 on 92/07/09 GMT (by FRYERK at TOROLAB6) Subject: Bookmanager documentation -- how do customers use it? Ref: Append at 22:33:02 on 92/07/08 GMT (by MARTZ at GDLVM2) Did s/he try the 1-800 number? I thought one could order just about anything through that. And if not, they should be able to tell you how you can. Kathryn Fryer Toronto Information Development ----- C-SET2 CFORUM appended at 18:59:13 on 92/07/09 GMT (by AMELINE at TOROLAB6) Subject: Calling 16-bit assembly routines from 32-bit C code Ref: Append at 18:03:27 on 92/07/09 GMT (by WZ00622 at OS2CUST) How large is the stack on the thread? Remember that the 16 bit stack (specified on #pragma stack16 (default 4K)) comes from your 32 bit stack. That value must be at least 8K smaller than the thread's stack size. Regards, Ian Ameline ----- C-SET2 CFORUM appended at 21:08:16 on 92/07/09 GMT (by WZ00622 at OS2CUST) Subject: Calling 16-bit assembly routines from 32-bit C code Ref: Append at 18:59:13 on 92/07/09 GMT (by AMELINE at TOROLAB6) I increased the threads stack size and is seems to have worked. I didn't realize that the stack had to be 8K larger than the 16-bit stack. Where in the documentation does it say this? Thanks for the info. Brad Pollack Brad Pollack ----- C-SET2 CFORUM appended at 21:37:03 on 92/07/09 GMT (by MARTZ at GDLVM2) - Subject: Bookmanager documentation -- how do customers use it? Ref: Append at 18:34:29 on 92/07/09 GMT (by FRYERK at TOROLAB6) "S/he" did not try 1-800-3IBM-OS2. I just did. The person at the other end was very confused by my request for information about BookManager READ/2 (73F6023). She suggested I call the number for PS/2 Books (1-800-426-7282). The lady at that number suggested I try the Tech Support line (1-800-237-5511). At that point, I gave up. The people at Tech Support are too busy for me to play the "Can you help me?" game. I guess the answer is you get it through your marketing rep or you don't get it. :-( John Martz "Better products through conferencing!" MARTZ at GDLVM2 tie 852-5979 Prodigy: CCCR60A Glendale Lab/Endicott, NY ----- C-SET2 CFORUM appended at 12:45:45 on 92/07/10 GMT (by FRYERK at TOROLAB6) Subject: Bookmanager documentation -- how do customers use it? Ref: Append at 21:37:03 on 92/07/09 GMT (by MARTZ at GDLVM2) John, I'm looking into it. Hopefully I can come up with an answer for you. Stay tuned.... Kathryn Fryer Toronto Information Development ----- C-SET2 CFORUM appended at 13:41:39 on 92/07/14 GMT (by FRYERK at TOROLAB6) Subject: Documentation Trends: Online vs Hardcopy Ref: Append at 13:22:09 on 92/06/24 GMT (by FRYERK at TOROLAB6) My thanks to all who responded to my request for views/wants/needs in regards to the documentation format. There were 20 responses in all, and so you're not left hanging, here is how they break down: Option #1: 3 (all books in .INF format only, hardcopy orderable) Option #2: 12 (including one second choice) (reference books in .INF format, guidance books hardcopy) Option #3: 2 (all books in BookManager format only, hardcopy orderable) Option #4: 3 (all books shipped in hardcopy) There were also a few suggestions not on the menu, namely: a) put all reference material in hardcopy and online, and all other documents online only (2 suggestions) b) put everything you need a lot in hardcopy, and things you rarely use (like tutorials) online (1) c) pass the savings on to the customer (2) d) ship BookManager books on CD-ROM (3) You'll notice the total count exceeds 20, but some people had two choices, or suggestions in addition to their choice. Thank you very much for your participation in our survey. Your preferences and suggestions are very helpful, and we are giving them careful consideration. (Sorry to be so non-committal, but I'd hate to promise something now and renege later for some unforeseen reason!) Kathryn Fryer Toronto Information Development ----- C-SET2 CFORUM appended at 21:11:53 on 92/07/15 GMT (by MELGAR at RALYDPD4) Subject: Questions Ref: Append at 13:41:39 on 92/07/14 GMT (by FRYERK at TOROLAB6) - What routines do you use to work with pipes and named pipes in OS/2? Is there a c-set2 library routine for it? - Do I really have to install TOOLKIT to be able to develop C programs? It seems large. Thanks David Melgar ----- C-SET2 CFORUM appended at 12:49:57 on 92/07/16 GMT (by KOLSKY at HAIFASC3) Subject: Questions Ref: Append at 21:11:53 on 92/07/15 GMT (by MELGAR at RALYDPD4) If you have the function prototypes you don't need the toolkit. It is much better, however, to have the toolkit :-) The API is basically for creating the pipe and changing its state. The actual manipulation can be done with file I/O (as it was designed to be). Amir Kolsky ----- C-SET2 CFORUM appended at 18:27:12 on 92/07/16 GMT (by FRYERK at TOROLAB6) Subject: Bookmanager documentation -- how do customers use it? Ref: Append at 12:45:45 on 92/07/10 GMT (by FRYERK at TOROLAB6) My thanks to Tracey Scheyer-Nolander of BookManager Support for this answer: BookManager READ/DOS and READ/2 are available to customers through any IBM authorized dealer. And there are thousands of IBM Authorized Dealers - to find the one closest to you you can call 1-800-IBM-2468. They will ask for your zip code and then provide you with the list of IBM Authorized dealers closest to your location. The part numbers for BookManager are: BookManager READ/DOS - 73F6022 BookManager READ/2 - 94F0562 Or, to order the product internally from an IBM Marketing Rep: BookManager READ/DOS - 5601-453 BookManager READ/2 - 5601-454 I hope this clears up the confusion. We really need to get this word out to our customers. Not only can they purchase BookManager software from IBM Authorized Dealers, they can purchase any of IBM's workstation hardware and software products as well. Kathryn Fryer Toronto Information Development ----- C-SET2 CFORUM appended at 11:23:43 on 92/07/17 GMT (by JSI at SDFVM1) --- Subject: Debug Memory Management Functions The Compiler Tool provides a set of functions to find where memory is being improperly allocated ( _debug_malloc,...). Has anybody tried these functions in a PM application (OS/2 2.0) ? I tried the example as described in the book in a normal C - programm with success. I got a correct error messgage on the screen. But the same example in a PM application has no result. Juergen Schimpf ----- C-SET2 CFORUM appended at 11:57:34 on 92/07/17 GMT (by KEENLEY at TOROLAB6) Subject: Debug Memory Management Functions Ref: Append at 11:23:43 on 92/07/17 GMT (by JSI at SDFVM1) The output from the debug memory management functions goes to stderr. When using these functions in a PM application you must either redirect stderr to a file or use some other tool to pipe the output to a PM window. John Keenleyside OS/2 Compiler Dev. ----- C-SET2 CFORUM appended at 18:23:08 on 92/07/17 GMT (by WZ00541 at OS2CUST) Subject: Link error L2003 with C Set/2 We are trying to create a 32-bit DLL with 16-bit entry points. Everything seems compile fine, but the linker gives the following error message: DDE4SBS.LIB (EDCMGS.ASM): error L2003: intersegment self-relative fix-up at 16 in segment CODE32. target external 'DosGetMessage' Anybody have any suggestions on this error. Thanks, Joel Rosenberger, Attachmate Corporation ----- C-SET2 CFORUM appended at 19:26:41 on 92/07/17 GMT (by V$IPAULD at BCRVMPC1) Subject: Link error L2003 with C Set/2 Ref: Append at 18:23:08 on 92/07/17 GMT (by WZ00541 at OS2CUST) The message implies that you are trying to the 16-bit DosGetMessage from 32-bit code or vice-versa. This can happen depending on whether you link with OS2286.LIB or OS2386.LIB - the header files help you out with this if you are programming on C by renaming the calls to Dos32GetMessage or Dos16GetMessage explicitly, but there is no assember support in the include files. Try changing the assember source to call Dos16 or Dos32 dependant on your intention. Paul Devriendt ----- C-SET2 CFORUM appended at 23:44:12 on 92/07/17 GMT (by SHAKOOR at DALHQIC2) Subject: EDC0805 and EDC0816 I have a client who is a bit concerned about these two diagnostics in the following scenarios: if (( a=func(x) )) cause EDC0816 (assignment found in a control expr) while, if (( b=func(x) ) > 0) does not. EDC0805 (automatic variable set but no reference) is also generated if either variables 'a' or 'b' in above examples are not referenced anywhere else. His concern is that the variable is referenced by the conditional expression itself, otherwise the compiler has a BIG problem, especially in second example if the compiler does NOT reference 'b' like it should. Any comments from C-SET/2 dev. team ??.. Thanks! Shahab Shakoor. ----- C-SET2 CFORUM appended at 07:12:07 on 92/07/20 GMT (by 40953586 at EHONE) Subject: EDC0805 and EDC0816 Ref: Append at 23:44:12 on 92/07/17 GMT (by SHAKOOR at DALHQIC2) Reply-to: Jurrie Lulofs <LULOFS@NLVM1> While I'm not a member of the C Set/2 development team, I can provide the information that you've requested. Please note that both of these messages are warnings that were enabled by your client's use of the /Kb option. >> if (( a=func(x) )) Will cause the EDC0816 message to be generated because the compiler is warning you that you may have coded "if (( a=func(x) ))" instead of "if (a==func(x))". If you do intend for the assignment to "a" to take place then you can ignore the message. If you'd like to suppress the message then you could code "if (a=func(x) != 0)" instead. > if (( b=func(x) ) > 0) This will not cause an EDC0816 message to be generated because there is an explicit comparison operator used to determine result of the expression. This is different from the case above, where the value of 'a' is used (instead of the result of a comparison) to determine whether the following code block should be executed or not. > EDC0805 (automatic variable set but no reference) This message is generated because 'a' or 'b' are not used anywhere else in the program/function. The compiler is merely pointing out that since the variable in question is not used anywhere else that you may remove the variable altogether if you'd like. > His concern is that the variable is referenced by the conditional > expression itself, otherwise the compiler has a BIG problem, especially > in second example if the compiler does NOT reference 'b' like it should Relax, there's no problem here. The compiler will reference the variable in question. I'm curious though why your client is concerned about this. Since his program doesn't access the variable anywhere else, it doesn't really matter whether the compiler accesses the varariable or not. In fact, I would expect an optimizing compiler to not make the assignment. I would also expect the compiler not to allocate any resources for the variable at all. Why allocate resources and generate instructions for something that's not used? Let us know if you and/or your client have any further questions. jurrie ----- C-SET2 CFORUM appended at 15:01:12 on 92/07/20 GMT (by PNWB016 at HONE82) Subject: Bookmanager documentation -- how do customers use it? Ref: Append at 18:27:12 on 92/07/16 GMT (by FRYERK at TOROLAB6) Kathryn: Thanks for the info on Bookmanager. Do you happen to have a price handy? I would also be interested in the DSLO cost, as well as a Basic License. Thanks in advance... Wayne Holmes U S WEST Communications ----- C-SET2 CFORUM appended at 15:39:23 on 92/07/21 GMT (by FRYERK at TOROLAB6) Subject: Bookmanager documentation -- how do customers use it? Ref: Append at 15:01:12 on 92/07/20 GMT (by PNWB016 at HONE82) The price of BookManager READ/2 is $194 US for the initial license. After that, if you want additional licenses for other workstations, the cost is $99 apiece (that's for proof-of-license only...the product and docs are not reshipped). Kathryn Fryer Toronto Information Development ----- C-SET2 CFORUM appended at 13:10:05 on 92/07/22 GMT (by F065430 at ESONVM1) Subject: use ES/2 and DBM with C-SET/2 I want to migrate an application from OS/2 1.3 to OS/2 2.0. My application use Database manager, and C/PM. after the command SQLPREP, I compile the file with C-set/2 with the declaration ES32TO16, no problem. After a link, I have my exe file, no problem too. But during the execution of my program, I have a trap ╢D, when I want to call a function which call SQL functions. If I look, in assembler mode, I trap with the call __EDCThunkProlog can anyone help me?? or can anyone send me a sample which use SQL and c-set/2 thanks in advances SEMUR Christophe Devt DVI - IBM FRANCE F065430 at ESONVM1 ----- C-SET2 CFORUM appended at 14:58:23 on 92/07/22 GMT (by MOONEY at TOROLAB6) Subject: use ES/2 and DBM with C-SET/2 Ref: Append at 13:10:05 on 92/07/22 GMT (by F065430 at ESONVM1) Try increasing the amount of stack which you have, by linking with /ST:0x4000 or so. dave ----- C-SET2 CFORUM appended at 15:32:01 on 92/07/22 GMT (by AMELINE at TOROLAB6) Subject: use ES/2 and DBM with C-SET/2 Ref: Append at 13:10:05 on 92/07/22 GMT (by F065430 at ESONVM1) Try expanding your stack using the /ST linker option. It should be *at least* 12K, or 16K if you call PM API's. If this is on a thread other than thread 1, add 4K to those numbers. (If you don't call 16 bit code, these numbers can be reduced by 4K) Stack size for threads other than thread 1 is set on the _beginthread call. Don't use DosCreateThread. Regards, Ian Ameline ----- C-SET2 CFORUM appended at 20:33:59 on 92/07/22 GMT (by SBRZAYD at OS2CUST) Subject: Multiple possible C/Set2 Bugs I have experienced several problems. I believe they are bugs, but I hope I am wrong. My compiler switches are as follows: /Sm /Ss /Ti /Gm+ /Ge+ /C /Fd- $*.c For DLLs, I use /Ge- instead of /Ge+. My only link option is /CO. I specify my module type in a .def file for each EXE or DLL. In addition, I have been linking explicitly with DDE4MBM.lib. Problem 1: strupr () does not capitalize a string, but places a NULL character in the string's first character. Problem 2: I recoded DosGetPID () to call the new OS/2 function DosGetInfoBlocks (). This way, I didn't have to rewrite code which called DosGetPID (). When the code DosGetPID () routine appears in the same .c file as the calling routine, it works great.. When the DosGetPID () function body is placed within another .c file within the same module, it blows up (protection exception) when the routine calls DosGetInfoBlocks (). Problem 3: One of my programs calls a routine in a DLL that in turn called malloc (). Malloc () is also called from several places within the code for the EXE and at other points within routines in the DLL. After several successful calls to malloc (), a particular call causes a protection exception. The same call blows up at the same point every time, even after several successful calls to malloc () within the EXE and the DLL. I decided to recode the DLL .c files using the /Ge- option and to statically link in the .obj files rather than link with the DLL's .lib file. When relinked and rerun without a DLL, the exact same code worked fine. Problem 4: _heap_check () blows up, although I am not sure how to use it. According to malloc.h, the routine takes no parameters and returns a void. There is also no documentation for this routine, although I believe it is part of the standard C library. Conclusion: Am I doing something wrong? If not, is the compiler stable enough to use in a large development project? Are bug fixes forthcoming? For your information, I love the product. I sincerely hope I am able to use it in my project. Thanks for your support. Stuart Hoffman (301-571-2996 ... IBM in Gaithersburg, Maryland) ----- C-SET2 CFORUM appended at 21:04:45 on 92/07/22 GMT (by IL13970 at OS2CUST) Subject: GPF when _Seg16 pointer used with sprintf With a variable declared as char *_Seg16, calling any of the formatted print functions results in a General Protection Fault. Example: char *_Seg16 string = "Hello World"; printf ("%s\n", string); causes a GPF, terminates the process containing the above statements, and results in a register dump. Is the compiler failing to automatically convert the 16-bit segmented pointer to a 32-bit near pointer, or is there something else we should be doing to make this work? Paul Vandenberg ----- C-SET2 CFORUM appended at 12:40:28 on 92/07/23 GMT (by MOONEY at TOROLAB6) Subject: GPF when _Seg16 pointer used with sprintf Ref: Append at 21:04:45 on 92/07/22 GMT (by IL13970 at OS2CUST) The compiler doesn't know if the 16-bit pointer is going to be interpreted as 16-bit or 32-bit on the other side of the call, so it just leaves it alone. Do an explicit cast to a 32-bit type on the call: printf ("%s\n", (char *)string); dave ----- C-SET2 CFORUM appended at 15:28:02 on 92/07/23 GMT (by FRYERK at TOROLAB6) Subject: Multiple possible C/Set2 Bugs Ref: Append at 20:33:59 on 92/07/22 GMT (by SBRZAYD at OS2CUST) I can help you on problem #4 (_heap_check)...this function is documented both in the C Set/2 User's Guide and in the Online Reference in the chapter on Debug Memory Management Functions. In order to use this function, you must define the macro __DEBUG_ALLOC__ either on the command line or with a #define in your source. Sorry I don't have a line on your other problems. Kathryn Fryer Toronto Information Development ----- C-SET2 CFORUM appended at 16:52:20 on 92/07/23 GMT (by OCANUC at BETASVM2) Subject: Multiple possible C/Set2 Bugs Ref: Append at 20:33:59 on 92/07/22 GMT (by SBRZAYD at OS2CUST) _heap_check() is described in chapter 13 of the c-set/2 user's guide. Brandon Booth Advanced Programming - ICSRS ----- C-SET2 CFORUM appended at 17:22:51 on 92/07/23 GMT (by TCC3824 at OS2CUST) Subject: Could not demand load applcn segment I have compiled and linked my application with no errors with static link. I receive the following error when I run: Could not demand load the applications segment. DDE4SBS.RENAME Rename is defined in stdio.h which is included in my code. In the listing Rename is Class = external refernce type = _Optlink function returning signed i I am stuck. Any ideas on how to resolve this error?? Kevin McConnell 512-338-7457 Continuum Austin Tx ----- C-SET2 CFORUM appended at 17:45:32 on 92/07/23 GMT (by WTRACEY at BCRVMPC1) ..... C-SET2 CFORUM modified at 18:00:55 on 92/07/23 GMT (by WTRACEY at BCRVMPC1) Subject: Could not demand load applcn segment Ref: Append at 17:22:51 on 92/07/23 GMT (by TCC3824 at OS2CUST) Are you linking with the /NOI (noignorecase) option? Bill Tracey ----- C-SET2 CFORUM appended at 21:05:23 on 92/07/23 GMT (by TCC3824 at OS2CUST) ..... C-SET2 CFORUM modified at 14:22:04 on 92/07/24 GMT (by TCC3824 at OS2CUST) Subject: Could not demand load applcn segment This APPEND was deleted at 10:22:03 on 07/24/92 EST. ----- C-SET2 CFORUM appended at 16:58:58 on 92/07/24 GMT (by KEENLEY at TOROLAB6) Subject: Fixes contained in CSD0008 Ref: None. C SET/2 PROBLEMS FIXED BY CSD0008 _________________________________ +-----------+---------------------------------------------------------------+ | APAR | PROBLEM DESCRIPTION | | NUMBER | | +-----------+---------------------------------------------------------------+ | PJ03523 | Optimization problem: bad register selection causes general | | | protection fault at runtime. | +-----------+---------------------------------------------------------------+ | PJ03662 | Optimization problem: bad register selection around a call | | | causes incorrect output at runtime. | +-----------+---------------------------------------------------------------+ | PJ03682 | Optimization problem: tail call optimization was altering a | | | register erroneously. | +-----------+---------------------------------------------------------------+ | PJ03767 | The compiler could not open files with names containing DBCS | | | characters where the second byte of the characters was 0x5C. | +-----------+---------------------------------------------------------------+ | PJ03923 | Optimization problem: generated floating-point code was | | | causing the floating point register stack to overflow or | | | underflow. | +-----------+---------------------------------------------------------------+ | PJ03948 | Optimization problem: multiplying by constant negative | | | numbers which are powers of 2, or multiplying by constants | | | that are near powers of 2 will cause incorrect code to be | | | generated. | +-----------+---------------------------------------------------------------+ | PJ03957 | Compiler was emitting object records longer than the linker's | | | 1024 byte limit. This causes the linker to produce the | | | message "L1057: data record too large". | +-----------+---------------------------------------------------------------+ John Keenleyside OS/2 Compiler Dev. ----- C-SET2 CFORUM appended at 18:10:38 on 92/07/24 GMT (by MOONEY at TOROLAB6) Subject: Fixes contained in CSD0008 Ref: Append at 16:58:58 on 92/07/24 GMT (by KEENLEY at TOROLAB6) PJ03923 had a couple of other fixes in it which weren't listed in the offical APAR description. These were various I/O fixes which improved compile time by about 10%, and a fix to the problem where the compiler was unable to find files in the sys/ directory on LAN drives. dave ----- C-SET2 CFORUM appended at 19:53:02 on 92/07/24 GMT (by IL62623 at OS2CUST) Subject: can I get rid of access violation alert box? My application uses DosSetMem to set pages inaccessible, and then handles the resulting exceptions in a handler and continues execution. Its nearly impossible to debug it with ipmd, since every time one happens I get an alert box. Is there any way out? ----- C-SET2 CFORUM appended at 02:20:52 on 92/07/26 GMT (by SDETWEIL at DETVMIC4) Subject: use ES/2 and DBM with C-SET/2 Ref: Append at 13:10:05 on 92/07/22 GMT (by F065430 at ESONVM1) You must also use /Sm and /Gt as well as /DES32TO16 for DBM compiles in C-SET/2... Sam ----- C-SET2 CFORUM appended at 17:59:05 on 92/07/27 GMT (by PNWB016 at OS2CUST) Subject: Fixes contained in CSD0008 Ref: Append at 16:58:58 on 92/07/24 GMT (by KEENLEY at TOROLAB6) Where can customers get these fixes? I have some code that doesn't work when optimization is turned on, and would like to try these fixes before I build YATC (Yet Another Test Case) for level 2. Thanks! Wayne "I have a directory FULL of test cases" Holmes U S WEST Communications ----- C-SET2 CFORUM appended at 19:13:52 on 92/07/27 GMT (by TCC3824 at OS2CUST) Subject: DosStartSession rc=127 I am receiving this error when trying to start the debugger. What is this error and where can I find it defined? Kevin McConnell 512-338-7457 Continuum Austin Tx ----- C-SET2 CFORUM appended at 19:37:34 on 92/07/27 GMT (by GERSTLE at LEXVMK) Subject: DosStartSession rc=127 Ref: Append at 19:13:52 on 92/07/27 GMT (by TCC3824 at OS2CUST) Kevin, This error means that the debugger can't find one (or more) of the DLL's referenced by your program. Check all your paths, locations of DLL's, etc. If you still can't get it running, send me your phone number and we'll pursue further. Pat Gerstle <IBM> ----- C-SET2 CFORUM appended at 19:55:55 on 92/07/27 GMT (by TCC3824 at OS2CUST) Subject: DosStartSession rc=127 Ref: Append at 19:37:34 on 92/07/27 GMT (by GERSTLE at LEXVMK) thanks. I figured it out. I was not linking in the (dll member).lib One more ? How do I get the debugger to display the DLL code once it is called from the .EXE? Kevin McConnell 512-338-7457 Continuum Austin Tx ----- C-SET2 CFORUM appended at 20:12:33 on 92/07/27 GMT (by WEEKS at AUSVM2) - Subject: DosStartSession rc=127 Ref: Append at 19:13:52 on 92/07/27 GMT (by TCC3824 at OS2CUST) It's in the Toolkit header file BSEERR.H. It means that an entry point in a .DLL could not be found. Have you tried simply running the program you are trying to debug to see if the OS/2 loader will tell you which entry point it can't find? Craig Weeks LAN Systems Performance (DCE) Austin, Texas ----- C-SET2 CFORUM appended at 20:24:14 on 92/07/27 GMT (by GERSTLE at LEXVMK) Subject: DosStartSession rc=127 Ref: Append at 19:55:55 on 92/07/27 GMT (by TCC3824 at OS2CUST) When the DLL is loaded, the parts within it will appear in the parts box in the Debug Sessions Control window IF the DLL was built with debug information. Then you can select the parts in the DLL, set breakpoints in them, etc. Pat Gerstle ----- C-SET2 CFORUM appended at 21:13:08 on 92/07/27 GMT (by BRENT at DALVM41B) Subject: Fixes contained in CSD0008 Ref: Append at 17:59:05 on 92/07/27 GMT (by PNWB016 at OS2CUST) The C Set/2 CSD is now available for download from the OS/2 BBS. Look in the Corrective Service Diskette section of the Software Library. Please note that there are TWO versions available. CS00008 is the OFFICIAL CSD being shipped by the normal support channels. Download the appropriate disk image file (3.5 or 5.25") and use LOADDSKF to unpack it to diskette. Also available now is an interim version of the CSD, CS00009, which is only being made available electronically on a "beta" basis. CS00009 contains all of the fixes in CS00008 plus some more, newer fixes. CS00009 has not been fully tested at this time so please use it with caution. Any questions or bugs found with CS00009 should be reported in this forum. Brent Allen - IBM OS/2 Base Services Support ----- C-SET2 CFORUM appended at 15:35:13 on 92/07/28 GMT (by PNWB016 at HONE84) Subject: Fixes contained in CSD0008 Ref: Append at 21:13:08 on 92/07/27 GMT (by BRENT at DALVM41B) Brent: Thanks! I don't know what others think, but having fixes quickly available is one of my favorite things about this BBS. (It ranks right up there with my constant "whining" about not having ENOUGH of the RIGHT fixes.) Wayne "Some customers are never satisified" Holmes ----- C-SET2 CFORUM appended at 17:48:31 on 92/07/28 GMT (by PNWB016 at HONE82) Subject: Fixes contained in CSD0008 Ref: Append at 21:13:08 on 92/07/27 GMT (by BRENT at DALVM41B) Brent: Well, the good news is that I downloaded the fixes and got the service disk built. When I run the "Service" program it tells me that there is nothing to update on my machine. The problem is that the version of the C/Set I want to upgrade is on a LAN drive, and the "Drives" option only lists my local harddrive. Do you, or anyone, know of a way that we can apply the CSD to our LAN drives? (We all run the C-Set off a LAN drive due to lack of space for the C-Set on our local disks.) Wayne "Typing this from a 60meg HD machine" Holmes U S WEST Communications ----- C-SET2 CFORUM appended at 20:31:24 on 92/07/29 GMT (by CHENJE at SJEVM13) Subject: Query Manager Callable Interface and C/Set2 When compiling a C application program that interacts with Query Manager, it gives the following errors: "error L2029: '_DSQCIC': unresolved extern" "error L2029: '_DSQCICE': unresolved extern" "NMAKE: fatal error U1077: 'C:\OS@\CMD.EXE': return code 2" I'm compiling with /DES32TO16, /Sm, /Gt options, have linked to the dsqci.lib, included the dsqcomm.h header file in the source code and it still does not work. What am I doing wrong??? Other than DBM Programming Guide and QM Programming Guide, where can can I find the explanation for these error messages?? Jennie Chen (CHENJE at SJEVM13 276-1642) ----- C-SET2 CFORUM appended at 15:42:01 on 92/07/30 GMT (by BRENT at DALVM41B) Subject: Fixes contained in CSD0008 Ref: Append at 17:48:31 on 92/07/28 GMT (by PNWB016 at HONE82) Wayne, I really don't know about the CSD install on a LAN. This looks like a brand new installation program so I'm not sure what it can or can't do. I haven't even had a chance to try it myself. I've forwarded your append to the guy in Toronto who provided me with the CSD's. Maybe he can help us out. He's been out of the office, but I think he's back in today. We'll see. Brent Allen - IBM OS/2 Base Services Support ----- C-SET2 CFORUM appended at 15:59:06 on 92/07/30 GMT (by PNWB016 at OS2CUST) Subject: Fixes contained in CSD0008 Ref: Append at 15:42:01 on 92/07/30 GMT (by BRENT at DALVM41B) Brent: Thanks for passing on my question. I'm not sure, but I THINK the service program is the same one that was used for OS/2 1.3 CSDs. I really want to try out these fixes and see if they resolve some code problems we are having when optimization is turned on. I look forward to a response. Wayne "Wanting to install the fixes I have" Holmes U S WEST Communications ----- C-SET2 CFORUM appended at 17:56:24 on 92/07/30 GMT (by UDSS013 at OS2CUST) Subject: Bookmanager documentation -- how do customers use it? | Kathryn: Thanks for the info on Bookmanager. Do you happen to have | a price handy? I would also be interested in the DSLO cost, as | well as a Basic License. Wayne, We got a deal on a BookManager Starter Kit. It is a CD-ROM with quite a few IBM manuals on it (mainly host-based) and the rights for a corporate wide use of the READ/2 product. Gary Murphy ----- C-SET2 CFORUM appended at 19:29:10 on 92/08/03 GMT (by PNWB016 at OS2CUST) Subject: Fixes contained in CSD0008 Ref: Append at 15:42:01 on 92/07/30 GMT (by BRENT at DALVM41B) Brent: Have you heard anything about how to install this CSD to our LAN? At this point I would settle for instructions on how to do this by hand. Wayne "It's hard to move bits just using your hands" Holmes U S WEST Communications ----- C-SET2 CFORUM appended at 20:57:00 on 92/08/03 GMT (by BRENT at DALVM41B) Subject: Fixes contained in CSD0008 Ref: Append at 19:29:10 on 92/08/03 GMT (by PNWB016 at OS2CUST) Wayne, I received the following reply.... ------------------------------------------------------------------------ The "service" program is the OS/2 CSD installation utility -- it has some problems -- one of them is that it won't install across a LAN. it must be run on the machine which has the copy of C-Set on it. The files can be manually unpacked using the UNPACK command if service.exe is acting up. ------------------------------------------------------------------------ If it helps any, you can use a wildcard with Unpack to speed things up. You might want to try: UNPACK *.EX@ x:\IBMC\BIN UNPACK *.DL@ x:\IBMC\DLL UNPACK *.LI@ x:\IBMC\LIB At least that will cut it down to only three commands. Brent Allen - IBM OS/2 Base Services Support ----- C-SET2 CFORUM appended at 14:55:25 on 92/08/04 GMT (by PNWB016 at HONE83) Subject: Fixes contained in CSD0008 Ref: Append at 20:57:00 on 92/08/03 GMT (by BRENT at DALVM41B) Brent: Thanks! I have printed your instructions and will get the fixes installed today. Are there plans to fix this problem? I would like to know if this will be a problem with the other software that we have LAN available. (Workframe, Toolkit, etc..) Wayne "Unpacking" Holmes U S WEST Communications ----- C-SET2 CFORUM appended at 15:08:21 on 92/08/04 GMT (by BIGBILL at TOROLAB6) Subject: Fixes contained in CSD0008 Ref: Append at 14:55:25 on 92/08/04 GMT (by PNWB016 at HONE83) Any particular reason why you didn't run the CSD on the server itself? I think that one reason for not allowing the LAN update to the server is that the file that contains the SYSLEVEL information is placed on the boot drive of the system. If it was allowed, then that information would be placed on the requester machine instead of the server. Bill Sarantakos OS/2 C Compiler Development Toronto, Ontario ----- C-SET2 CFORUM appended at 18:13:33 on 92/08/04 GMT (by PNWB016 at OS2CUST) Subject: Fixes contained in CSD0008 Ref: Append at 15:08:21 on 92/08/04 GMT (by BIGBILL at TOROLAB6) Bill (or is that BIG Bill... what a GREAT ID you have!): There are a couple of reasons for not running the CSD on the server. 1) The C/Set installation program allows for installation to a LAN redirected drive, so I assumed (silly me) that the service program would allow the same thing. 2) I thought about running the SERVICE program on the server, but since our server is still running OS/2 1.3 I didn't want to take the risk of messing up something because I was installing 32-bit "stuff" on a 16-bit machine. 3) A more fundamental problem is how do we install service if our server is running NetWare? (Kind of tough to run the "service" program from NetWare. <g>) Am I missing something, or is this a "hole" in the service program? Thanks for any comments.... Wayne ----- C-SET2 CFORUM appended at 20:32:44 on 92/08/04 GMT (by BRENT at DALVM41B) Subject: Fixes contained in CSD0008 Ref: Append at 14:55:25 on 92/08/04 GMT (by PNWB016 at HONE83) Wayne: I don't know about any plans for the Service program (I'm just the middle man here). Based on the reply I received from the guy in Development, it certainly appeared that they are aware of these sorts of problems but who knows what plans there are (if any) to change them. Doesn't anyone watching this forum in the Toronto Lab know anything about this? Brent Allen - IBM OS/2 Base Services Support ----- C-SET2 CFORUM appended at 21:33:51 on 92/08/04 GMT (by PNWB016 at OS2CUST) Subject: Fixes contained in CSD0008 Ref: Append at 20:32:44 on 92/08/04 GMT (by BRENT at DALVM41B) Brent: The good news is that I did get the C/Set fixes on and they did fix some of the problems we were having... the BAD news is that I still have a case where the optimizer breaks our code. (Sigh! Looks like I need to try and figure out how to build a test case.) Wayne "There I go breaking software again" Holmes ----- C-SET2 CFORUM appended at 00:41:51 on 92/08/05 GMT (by BIGBILL at TOROLAB6) Subject: Fixes contained in CSD0008 Ref: Append at 18:13:33 on 92/08/04 GMT (by PNWB016 at OS2CUST) I'm not sure how the CSD is packaged, which program it uses to update, etc. I just wanted to get a little more info so that maybe I could offer some advice. Guess its time to start talking to some people around here to see what can be done. I don't see that running NetWare would cause a problem since the 'service' program is actually on the diskette (or at least should be). Bill Sarantakos OS/2 C Compiler Development Toronto, Ontario ----- C-SET2 CFORUM appended at 15:02:33 on 92/08/05 GMT (by PNWB016 at HONE85) Subject: Fixes contained in CSD0008 Ref: Append at 00:41:51 on 92/08/05 GMT (by BIGBILL at TOROLAB6) Bill: You would not be able to "boot up" the service program on the server since the file formats between NetWare and OS/2 are incompatible. (This is normally handled by the redirector.) Personally I find it mildly amusing that the C/Set installation program seems to understand LANs just fine, but the service program does not. BTW... I unpacked the fixes on CSD0008 and the compiler looks real good. I still have a problem when optimization is turned on. I was looking in IBMLink and found that APAR PJ03952 hasn't been picked up yet. Do you happen to have more info on what type of code causes the problem described in PJ03952? The problem I'm seeing is when an EXPENTRY receives a WM_COMMAND, I pass the command to a subroutine and then try to use the COMMNDMSG macro to extract the command id. (The value extracted is invalid when optimization is turned on.) Wayne ----- C-SET2 CFORUM appended at 02:34:41 on 92/08/06 GMT (by BIGBILL at TOROLAB6) ..... C-SET2 CFORUM modified at 15:26:05 on 92/08/06 GMT (by BIGBILL at TOROLAB6) Subject: Fixes contained in CSD0008 Ref: Append at 15:02:33 on 92/08/05 GMT (by PNWB016 at HONE85) Wayne, I found out that the 'service' program is a common program used to ship all CSDs. Unfortunately, we here in Toronto didn't write the program, but we are trying to get the people who did write it to make some fixes. We may even update our install program to allow it to install fixes (and therefore be able to work across the LAN). I can't help you with the APAR stuff, but I hope someone that can is watching (knudge, knudge). Bill Sarantakos OS/2 C Compiler Development Toronto, Ontario ----- C-SET2 CFORUM appended at 14:05:41 on 92/08/06 GMT (by V$IBTIGA at BCRVMPC1) Subject: IOPL question in C Set/2 I have a customer using a C app that calls an assembler routine. He says that everything compiles and links fine, but when he runs the app, he a system error at OUTDX, saying that it is a priveleged instruction. Both the assembler and C code is very basic. All the C code does is call the assembler code to send a character out, and all the assembler code does is use OUTDX to send the character out. Below is some excerpts from various files: CONFIG.SYS: IOPL=YES ASM file: SEGMENTS TextA PUBLIC MOV DX MOV AL OUTDX DEF file: SEGMENTS _TextA IOPL STACKSIZE 8192 From the above information, is he doing anything wrong, or is there a bug? If you need more info, let me know and I'll get it. Larry Moore PSPC-Boca Tech Interface Group ----- C-SET2 CFORUM appended at 14:10:53 on 92/08/06 GMT (by KEENLEY at TOROLAB6) Subject: IOPL question in C Set/2 Ref: Append at 14:05:41 on 92/08/06 GMT (by V$IBTIGA at BCRVMPC1) You should check with the developers in BOCA but I think instructions requiring IOPL must be run at ring 0 on OS/2 2.0. John Keenleyside OS/2 Compiler Dev. ----- C-SET2 CFORUM appended at 16:26:38 on 92/08/06 GMT (by WEEKS at AUSVM2) - Subject: IOPL question in C Set/2 Ref: Append at 14:05:41 on 92/08/06 GMT (by V$IBTIGA at BCRVMPC1) At the risk of showing my ignorance: what about that underscore character in the definitions file? C Set/2 does not prepend an underscore to global variables like MS C 6.00 does. Ask the customer to make the name in the .C, .DEF and .ASM files match precisely to see if that helps. Craig Weeks LAN Systems Performance (DCE) Austin, Texas ----- C-SET2 CFORUM appended at 19:45:01 on 92/08/06 GMT (by V$IBITG7 at BCRVMPC1) Subject: System Hangs I am working with a developer that is using a Data World Notebook computer. He is using C-SET/2 and notices that if he does a compile and then opens and closes DOS and OS/2 sessions running apps. After opening 3 or 4 sessions the machine will hang with an hour glass trying to start an application.He has 8 meg of memory and sufficient harddisk. He only sees the problem if he runs C-SET/2. Are you aware of any problems that could cause this?(he is using OS/2 GA and C-SET/2 GA) Thanks, Mike Jasinski PSPC-Boca Tech Interface Group ----- C-SET2 CFORUM appended at 21:18:25 on 92/08/06 GMT (by MOONEY at TOROLAB6) Subject: System Hangs Ref: Append at 19:45:01 on 92/08/06 GMT (by V$IBITG7 at BCRVMPC1) C Set/2 uses a *lot* of memory and is very CPU-intensive. C Set's resource requirements probably hose the OS/2 scheduler. dave ----- C-SET2 CFORUM appended at 21:26:57 on 92/08/06 GMT (by PNWB016 at OS2CUST) Subject: Fixes contained in CSD0008 Ref: Append at 02:34:41 on 92/08/06 GMT (by BIGBILL at TOROLAB6) Bill: Thanks for checking on the SERVICE problem. Looks like it is time to WYAPASR (Write Yet Another PASR). Wayne "Now where did I put that form?" Holmes U S WEST Communications ----- C-SET2 CFORUM appended at 21:29:01 on 92/08/06 GMT (by PNWB016 at OS2CUST) Subject: Fixes contained in CSD0008 Ref: Append at 02:34:41 on 92/08/06 GMT (by BIGBILL at TOROLAB6) Bill: I just noticed that your tagline says "OS/2 C++ Compiler Development"... is this an announcement? <grin> Wayne "A 'C' programmer who want an OS/2 'C++' compiler" Holmes ----- C-SET2 CFORUM appended at 22:20:41 on 92/08/06 GMT (by XXNOVA24 at TORVMCOP) Subject: Fixes contained in CSD0008 Ref: Append at 21:29:01 on 92/08/06 GMT (by PNWB016 at OS2CUST) OK. How do I obtain the C-Set /2 CSD ? Is there any special phone lines? Geza Szivos NOVACOR Chemicals (403)-290-6583 NHO-32 801-7th Ave Calgary, Alberta, CANADA T2P 2N6 ----- C-SET2 CFORUM appended at 02:20:16 on 92/08/07 GMT (by BIGBILL at TOROLAB6) Subject: IOPL question in C Set/2 Ref: Append at 16:26:38 on 92/08/06 GMT (by WEEKS at AUSVM2) You may be able to do the following: 1) Put your assembler code in a unique segment. 2) Using a .DEF file, specify that that segment should have IOPL priviledge. 3) Link with the above .DEF file. This should put the asm code in a segment that has IOPL priviledge but I haven't done this so I can't say for sure. I do recall that Ring 2 was removed (the minimum level in 1.X where you could have IOPL priviledge), however, 2.0 only has levels 0 and 3. So as John stated you would need Ring 0 code which you can do only in a device driver. Bill Sarantakos OS/2 C Compiler Development Toronto, Ontario ----- C-SET2 CFORUM appended at 02:30:53 on 92/08/07 GMT (by BIGBILL at TOROLAB6) Subject: Fixes contained in CSD0008 Ref: Append at 21:29:01 on 92/08/06 GMT (by PNWB016 at OS2CUST) What tag line? No. ;-) Bill Sarantakos OS/2 C Compiler Development Toronto, Ontario ----- C-SET2 CFORUM appended at 11:33:56 on 92/08/07 GMT (by XXCDSX26 at TORVMCOP) Subject: Fixes contained in CSD0008 Ref: Append at 22:20:41 on 92/08/06 GMT (by XXNOVA24 at TORVMCOP) Geza: I hate to say this but Iam Ameline has just posted CS0011 on Compuserve .... Michael Harper - Cdn Depository for Securities, Ltd ----- C-SET2 CFORUM appended at 13:20:04 on 92/08/07 GMT (by V$IPAULD at BCRVMPC1) Subject: IOPL question in C Set/2 Ref: Append at 02:20:16 on 92/08/07 GMT (by BIGBILL at TOROLAB6) OS/2 2.0 does have ring 2 - you need to be at ring 2 or ring 0 to use IOPL instructions. I don't think that the C compiler will assist with getting to ring 2 as you need to go through a call gate (ie change to a ring 2 CS). You should be able to do these bits in assembler without difficulty. Paul Devriendt ----- C-SET2 CFORUM appended at 13:50:25 on 92/08/07 GMT (by XXSUNL45 at TORVMCOP) Subject: Fixes contained in CSD0008 Ref: Append at 22:20:41 on 92/08/06 GMT (by XXNOVA24 at TORVMCOP) Try calling the IBM Canada BBS @ (416)946-4244 (14.4 HST DS modem). This is a Toronto number, but still cheaper than C$. There's a Vancouver node too but I don't know its number. regards, Wilf Lee ----- C-SET2 CFORUM appended at 21:21:08 on 92/08/07 GMT (by PNWB016 at OS2CUST) Subject: Fixes contained in CSD0008 Ref: Append at 22:20:41 on 92/08/06 GMT (by XXNOVA24 at TORVMCOP) CSD0008 is available on this BBS. (That is where I got it.) Now it looks like I CSD0008 is already out of date... hopefully it will be made available here as well as CIS and the Toronto BBS. Wayne "How fast can YOU put on fixes! Hey, but at least we are GETTING them for C/Set! :-)" Holmes ----- C-SET2 CFORUM appended at 23:13:16 on 92/08/07 GMT (by BRENT at DALVM41B) Subject: Fixes contained in CSD0008 Ref: Append at 21:21:08 on 92/08/07 GMT (by PNWB016 at OS2CUST) CSD00011 is now available for download. This is another one of the interim CSD versions that Toronto is making available. Have fun Wayne :-) Brent Allen - IBM OS/2 Base Services Support ----- C-SET2 CFORUM appended at 13:08:22 on 92/08/10 GMT (by BIGBILL at TOROLAB6) Subject: IOPL question in C Set/2 Ref: Append at 13:20:04 on 92/08/07 GMT (by V$IPAULD at BCRVMPC1) Are you sure that a 32-bit app can do this? I'm sure ring 2 is there for 16-bit apps for compatability, but unless things have changed from early on (which they have for many other things) I don't think that this has continued for 32-bit mode. Bill Sarantakos OS/2 C Compiler Development Toronto, Ontario ----- C-SET2 CFORUM appended at 14:49:01 on 92/08/10 GMT (by PNWB016 at HONE82) Subject: Fixes contained in CSD0008 Ref: Append at 23:13:16 on 92/08/07 GMT (by BRENT at DALVM41B) Brent: Thanks! ... and speaking of fixes <grin> how about the one for PJ03080. The APAR says that the module will be make available on some internal disk... can that be "legally" made available here? Wayne "PJ03080 is one of my MANY 2.0 fixes I need" Holmes ----- C-SET2 CFORUM appended at 18:30:06 on 92/08/10 GMT (by IL22868 at OS2CUST) Subject: C Set/2 Optimization GOTCHA! Here's a C Set/2 Optimization (/O Option) GOTCHA: ULONG counter; BOOL running; void _Optlink Thread (void * arg) { while (running) counter++ _endthread(); } main() { SHORT i; running = TRUE; counter = 0L; _beginthread (Thread, NULL, 8192, NULL); for (i=0; i<60; i++) { DosSleep (1000L); printf ("Counter=%lu", counter); } running = FALSE; } The printed value of counter will never change from 0. Why? Because the optimization figures "counter" in the Thread "while" loop will never be used until the "while" loop completes, hence the counter is incremented in a register (EDX) and only is stored in "counter" when the loop is exited (when "running" becomes FALSE). The optimization was "fooled" (to do what was needed) by creating a (local) variable "ulCounter" and changing the "counter++;" line to: "counter = ++ulCounter". Ken Singer, Shell Oil, Houston ----- C-SET2 CFORUM appended at 18:31:23 on 92/08/10 GMT (by BRENT at DALVM41B) Subject: Fixes contained in CSD0008 Ref: Append at 14:49:01 on 92/08/10 GMT (by PNWB016 at HONE82) Hmmmm. The OS2CSD disk is where the selective fixes are kept for internal users. ALL of the fixes available on OS2CSD are on the BBS (none are being held back). My guess is that the APAR was written up with the anticipation that a selective fix would be made available sometime in the future. The APAR was last changed on 08/06 so perhaps there is a little delay for testing or something. Anyway, I haven't seen this one yet but if I do it will certainly be made available. Brent Allen - IBM OS/2 Base Services Support ----- C-SET2 CFORUM appended at 18:40:03 on 92/08/10 GMT (by MOONEY at TOROLAB6) Subject: C Set/2 Optimization GOTCHA! Ref: Append at 18:30:06 on 92/08/10 GMT (by IL22868 at OS2CUST) Declare counter as volatile ULONG counter; and it should get reloaded every time through the loop. dave ----- C-SET2 CFORUM appended at 18:55:11 on 92/08/10 GMT (by 40953586 at EHONE) Subject: C Set/2 Optimization GOTCHA! Ref: Append at 18:30:06 on 92/08/10 GMT (by IL22868 at OS2CUST) Reply-to: Jurrie Lulofs <LULOFS@NLVM1> Have you tried making counter volatile? jurrie ----- C-SET2 CFORUM appended at 21:14:19 on 92/08/10 GMT (by IL22868 at OS2CUST) Subject: C Set/2 Optimization GOTCHA! Ref: Append at 18:40:03 on 92/08/10 GMT (by MOONEY at TOROLAB6) Many thanks. Guess I'd better read the manual some more! Ken Singer, Shell Oil, Houston ----- C-SET2 CFORUM appended at 18:08:35 on 92/08/11 GMT (by PNWB016 at HONE86) Subject: Fixes contained in CSD0008 Ref: Append at 18:31:23 on 92/08/10 GMT (by BRENT at DALVM41B) Brent: OK... I will TRY and be patient. <grin> Wayne "Patience is not one of character attributes :-)" Holmes ----- C-SET2 CFORUM appended at 14:45:55 on 92/08/12 GMT (by RGREEN at DETVMIC6) Subject: LINK386 ERROR I am migrating a microsoft 6.00 16-bit application. During the link, I get a link error as follows: LINK386:error L2050:use16/use32 attribute conflict - segment:_DATA in group:DGROUP LINK386:error L2050:use16/use32 attribute conflict - segment:CONST in group: DGROUP LINK386:error L2050:use16/use32 attribute conflict - segment:_BSS in group: DGROUP Is there a compile or link flag that I am missing? Rob Green 8/652-7689 Services and Solutions Cleveland, Ohio ----- C-SET2 CFORUM appended at 13:10:27 on 92/08/13 GMT (by BIGBILL at TOROLAB6) Subject: LINK386 ERROR Ref: Append at 14:45:55 on 92/08/12 GMT (by RGREEN at DETVMIC6) Your trying to link 16-bit objects and 32-bit objects in the same module. If you still need to have the 16-bit objects, put them in a DLL separately. Bill Sarantakos OS/2 C Compiler Development Toronto, Ontario ----- C-SET2 CFORUM appended at 14:11:14 on 92/08/13 GMT (by A157623 at OS2CUST) Subject: Code Behavior I hope this is simple. I need to know if the debugger can process/debug a child task of the one I first startde debugging. So I wrote a simple task X that spawns task Y. In task Y I simply print "Hello world". A no-brainer. Before I start the debugger I verify the programs work. Well no output appears on the screen| Executing Y directly does produce output. Hmmm. So I start the debugger on X and step over the code, all one line of it. And what to my wonderous eyes appear, but the output from Y| Yikes, the programs work with the debugger mode but not without it| Does this make any sense to anyone? I have the GA version of the toolkit and compiler. And the bigger question, how can I debug the child task? Our PM application is made up of several executables as well as DLLs are started from a single EXE. These other tasks are started and finish according to what needs to be done. A particular child task may be started several times during the normal course of work but is never executing in memory more than once at a time. This is CRITICAL for us. Thanks in advance. Larry Mason Texas Instruments ----- C-SET2 CFORUM appended at 14:53:36 on 92/08/13 GMT (by GERSTLE at LEXVMK) Subject: Code Behavior Ref: Append at 14:11:14 on 92/08/13 GMT (by A157623 at OS2CUST) Debugging child processes: This is not a directly supported function but it can be done (and a lot of users have done it). Change your code which starts the child process to start the debugger with the child process as the parameter to the debugger. In other words, change "DosExecPgm <child name>" to "DosExecPgm ipmd <child name>". I don't have any ideas as to why your code only seems to work when executed in the debugger - anyone else? Pat Gerstle ----- C-SET2 CFORUM appended at 19:34:27 on 92/08/14 GMT (by PENNING at DALVM41B) Subject: LINKER Error L2012 Once again, I seem to have encountered a problem linking code to static libraries. We are receiving error L2012 when linking against a .LIB (static, not import) of 368k or so. The text of the error message is "ERROR L2012 @BSS321 array element size mismatch. Objet file offset: 1ef12 Record Type:b0" Record type B0 is a communal definition record, and in this case contains an array of pointers to pointers to structures that we have declared in our application. @BSS321 appears to be a compiler (CSET) generated variable that has been placed in our array, at the end. I have not been able to determine exactly what @BSS321 contains, but it appears to be 18 bytes long (determined from .MAP file). We're stumped, and stopped dead until we can find a solution or work- around to this one. Not quite sure where to take problem isolation next, please call, send the mounties, or at least the boy scouts. Dave Raymer, Suite Software, (214)980-9900. Addendum: Error occurs with both IBM LIB.EXE and MS 32bit LIB.EXE from MASM 6.0. Library source is entirely C. ----- C-SET2 CFORUM appended at 14:46:47 on 92/08/16 GMT (by BIGBILL at TOROLAB6) Subject: Code Behavior Ref: Append at 14:11:14 on 92/08/13 GMT (by A157623 at OS2CUST) I assume that the main EXE is a PM program. If so, PM is not opening or 'stealing' the std* streams from your program since it is started in the PM session and is a child of a PM program. Might want to use DosStartSession instead. However, since your only interested in debugging the app (not it output to stdout, right?), use Pat's suggested method. You could also pipe/redirect the output of the program to a file. Bill Sarantakos OS/2 C Compiler Development Toronto, Ontario ----- C-SET2 CFORUM appended at 15:03:37 on 92/08/17 GMT (by IL03484 at OS2CUST) Subject: Migrating from MSC 6.0 with respect to Library Once again, we are posting this to find out how to migrate a user library to C set/2. Previously we used the lib util provided by MSC 6.0 and now are wonderi ng what to do in C set/2. In the doc's I haven't found anything to assist me i n this change. Any help would be appreciated Tom Hobbs Bituminous Insurance Co. ----- C-SET2 CFORUM appended at 16:26:14 on 92/08/17 GMT (by MOONEY at TOROLAB6) Subject: Migrating from MSC 6.0 with respect to Library Ref: Append at 15:03:37 on 92/08/17 GMT (by IL03484 at OS2CUST) The LIB utility comes with WorkFrame/2. dave ----- C-SET2 CFORUM appended at 16:43:36 on 92/08/17 GMT (by PETT at TOROLAB6) Subject: Migrating from MSC 6.0 with respect to Library Ref: Append at 15:03:37 on 92/08/17 GMT (by IL03484 at OS2CUST) The LIB utility is part of Workframe/2. Roger Pett ----- C-SET2 CFORUM appended at 16:59:04 on 92/08/17 GMT (by JYFREEMA at ATLVMIC1) Subject: printf() discussion Ref: None Where do I find a discussion of printf that explains that <\n> is required at end of each string. I have experienced odd behavior with the function when not including the newline character. Now I would like an explanation of why? Neither the online doc nor C-set user guide offers any insight. Jennifer Y. Freeman NSC Mktg Support Rep Networking Unit ----- C-SET2 CFORUM appended at 18:19:07 on 92/08/17 GMT (by A157623 at OS2CUST) Subject: Code Behavior I don't really want to change the code at all and printf statements are not an option to re-introduce into a several hundred thousand line system| What we expect is functionality similar to Codeview. I have brought my system to its knees running one debug session, can I really afford to start a new debug session for each child task under my main (several are started)? As for the callee-caller problem, these are simple spawn and printf programs - a single line of code each, no PM involved. Under the debugger I can see the output of the called task but not if executed from the command line. Perhaps the CSD would help. How can I get it sent to me? Larry Mason Texas Instruments ----- C-SET2 CFORUM appended at 23:24:03 on 92/08/17 GMT (by BIGBILL at TOROLAB6) Subject: printf() discussion Ref: Append at 16:59:04 on 92/08/17 GMT (by JYFREEMA at ATLVMIC1) It's not really odd behaviour, look for something about 'buffering' in the library section. In particular, the setbuf() and setvbuf() functions. Bill Sarantakos OS/2 C Compiler Development Toronto, Ontario ----- C-SET2 CFORUM appended at 15:09:28 on 92/08/18 GMT (by GERSTLE at LEXVMK) Subject: Code Behavior Ref: Append at 18:19:07 on 92/08/17 GMT (by A157623 at OS2CUST) Larry, Send me your phone number and we can pursue this a little more directly (and hopefully more efficiently). Pat Gerstle ----- C-SET2 CFORUM appended at 17:22:55 on 92/08/18 GMT (by PNWB016 at HONE84) Subject: _msize Is there a function in C/Set equilivant to the _msize function in Microsoft C 6.0? (For those who don't know, _msize returns the size of a malloced area.) Thanks in advance. Wayne Holmes U S WEST Communications ----- C-SET2 CFORUM appended at 19:16:32 on 92/08/18 GMT (by WZ00533 at OS2CUST) Subject: Setting the time Is there a function call in C that will allow me to set the system time and date? Thanks, Dave Ferrey - Bethlehem Steel Corp - Bethlehem PA ----- C-SET2 CFORUM appended at 22:26:58 on 92/08/18 GMT (by TCSC086 at OS2CUST) Subject: SOM compiler settings. Ref: Append at 20:15:54 on 92/07/03 GMT (by XXNOVA24 at TORVMCOP) Was scanning the forum and ran across this thread: IS there a RECOMMENDED profile for the creation of SOM Classes?? How about Som applications? Better yet, how about Workplace Profile Options?? I pieced mine together from the examples. I also spent an inordinate amount of time attempting to compile the Redbook SOM example (PWFolder). I finally just threw it away and started from scratch. Highly recommended. EVEN BETTER: How about SOMe PROFILES placed here on the forum?? Stumbling around in the darkness is fun until you see a deadline approaching fast. Ideally, profiles for SOM Class, SOM Dll, WPShell Class, SQL/DBM compilation, etc. It seems I run my code (SOM, DBM, COMMangler) through so many PREcompilers -- it looks a bit worn by the time it makes it to C! Dan Lundy Time Customer Service, Inc. Tampa, Fl ----- C-SET2 CFORUM appended at 22:28:59 on 92/08/18 GMT (by TCSC086 at OS2CUST) Subject: CSD 11 Has anyone here USED it??? Dan Lundy Time Customer Service, Inc. Tampa, Fl ----- C-SET2 CFORUM appended at 12:27:06 on 92/08/19 GMT (by MOONEY at TOROLAB6) ..... C-SET2 CFORUM modified at 13:00:04 on 92/08/20 GMT (by MOONEY at TOROLAB6) Subject: _msize Ref: Append at 17:22:55 on 92/08/18 GMT (by PNWB016 at HONE84) | Bzzzzt, but thanks for playing, dave. Wrong: #define _msize(p) ((unsigned)((char *)(p)-16)) | Right: | | #define _msize(p) (*((unsigned *)p - 4)) dave ----- C-SET2 CFORUM appended at 14:09:31 on 92/08/19 GMT (by PNWB016 at HONE85) Subject: CSD 11 Ref: Append at 22:28:59 on 92/08/18 GMT (by TCSC086 at OS2CUST) Dan: We have it installed here... so far it SEEMS to be working fine. (At least all the bugs we have found so far have been bugs in our code, not in the compiler.) Wayne "But we keep a copy of the origional C/Set just in case" Holmes ----- C-SET2 CFORUM appended at 14:09:58 on 92/08/19 GMT (by PNWB016 at HONE85) Subject: _msize Ref: Append at 12:27:06 on 92/08/19 GMT (by MOONEY at TOROLAB6) Dave: Thanks! I forwarded your message to the programmer who asked the question and he is VERY grateful. Wayne "Chalk up another one for the OS2BBS" Holmes U S WEST Communications ----- C-SET2 CFORUM appended at 15:57:09 on 92/08/19 GMT (by AMELINE at TOROLAB6) Subject: CSD 11 Ref: Append at 14:09:31 on 92/08/19 GMT (by PNWB016 at HONE85) We're *very* careful about what changes to the code go into the CSD. Every change has to be inspected by at least 2 other developers before it gets integrated. The resulting compiler then undergoes quite extensive testing. We have a 30 step checklist to make sure that we don't forget anything. We want to be as sure as we can that a CSD will not cause any new bugs. Regards, Ian Ameline ----- C-SET2 CFORUM appended at 16:36:18 on 92/08/19 GMT (by TCSC086 at OS2CUST) Subject: CSD 11 Ref: Append at 15:57:09 on 92/08/19 GMT (by AMELINE at TOROLAB6) Ian, I DO appreciate the care and attention devoted to the CSDs. I intend to apply #11 but, like Wayne, KEEP a previous version safely tucked away. I think the word BETA had its desired effect on me: caution! Dan Lundy Time Customer Service, Inc. Tampa, Fl ----- C-SET2 CFORUM appended at 21:57:22 on 92/08/19 GMT (by XXPRMN01 at TORVMCOP) Subject: CSD 11 Ref: Append at 16:36:18 on 92/08/19 GMT (by TCSC086 at OS2CUST) Yep, applied it last week and have run close to 250,000 lines of code through it without problem. In fact the last couple of CSD's have resulted in the code coming in exactly at the same size with just a run through which tends to indicate that the stuff that was working correctly before didn't break. Hope this helps alleviate some fears. And, the C Set crew is pretty ruthless when it comes to clean builds and tight code. It is an attitude that is pretty amazing. Matt Smith, Prominare Inc. ----- C-SET2 CFORUM appended at 00:08:27 on 92/08/21 GMT (by UDSS013 at OS2CUST) Subject: Setting the time | Is there a function call in C that will allow me to set the system time a | | date? | | | | Thanks, | The OS/2 API DosSetDateTime will do the trick. Note that this isn't a C library call, but is part of the OS/2 API that is callable from C. Perhaps I'm picking nits, but it will make a difference when looking for the Gary Murphy ----- C-SET2 CFORUM appended at 14:50:16 on 92/08/24 GMT (by WZ00533 at OS2CUST) Subject: Setting the time Ref: Append at 00:08:27 on 92/08/21 GMT (by UDSS013 at OS2CUST) Thanks for the tip, I just found DosSetDateTime in the referecnce. Thanks again. ----- C-SET2 CFORUM appended at 15:33:17 on 92/08/25 GMT (by A157623 at OS2CUST) Subject: Code Behavior Has anyone had problems with scanf? I have tried fscanf and sscanf with the first format being %s. The resultant variable contains 2 nulls at the beginning and then the rest of the data (ie, the first 2 bytes are nulled out). Consistent and predictable. For Pat Gerstle : (214)575-2483 Larry Mason Texas Instruments ----- C-SET2 CFORUM appended at 18:10:38 on 92/08/25 GMT (by PRCI041 at OS2CUST) Subject: Service not recogizing LAN Drives I just attempted to install the 8B CSD to my copy of C Set/2 that is installed on my T: LAN drive. The drive itself is private to me and C Set/2 installed on it very nicely. However when I run A:\Service to install the CSD, it finds only my C: D: and E: drives. As a result, it states that there is nothing to Service. (I am logged on to the LAN have have access to the T:\IBMC directory.) I checked the os2.ini file and found an entry for IBMCINST. The value for DIR is T:\IBMC. One other thing. I originally had the compiler on S:\IBMC and recently moved it to T:. I updated os2.ini to reflect this. Are there other install files or logs that need to be updated? The file SYSLEVEL.CS2 is located in the T:\IBMC directory. Will Service support LAN drives? It seems it ought to for this type of product. Mark Polly - Progressive Insurance ----- C-SET2 CFORUM appended at 18:32:09 on 92/08/25 GMT (by SDETWEIL at DETVMIC4) Subject: Migrating from MSC 6.0 with respect to Library Ref: Append at 15:03:37 on 92/08/17 GMT (by IL03484 at OS2CUST) LIB is there in IBMWF/BIN just like always.. Sam ----- C-SET2 CFORUM appended at 20:06:08 on 92/08/25 GMT (by PNWB016 at HONE84) Subject: Service not recogizing LAN Drives Ref: Append at 18:10:38 on 92/08/25 GMT (by PRCI041 at OS2CUST) Mark: I ran into the same thing... the current word is that the "service" program does NOT support LAN drives. I wrote up a PASR and had my SE submit it. If we are lucky this will be fixed before the next century. <g> Wayne "Are PASRs just a way for customers to take out their frustrations?" Holmes ----- C-SET2 CFORUM appended at 20:12:28 on 92/08/25 GMT (by V$I33246 at AUSVMV) Subject: MKTEMP??? In C/2, there was the mktemp function, which would create a unique filename from a given template. Is there anything like that available in C-Set or OS/2? Or does someone have an routine that does this? Tmpnam anf tempnam are not acceptable; the file needs to be permanent instead of temporary. Mike Zrubek Austin, Texas ----- C-SET2 CFORUM appended at 21:01:04 on 92/08/25 GMT (by FWBROWN at CARVM3) Subject: C Set/2 Installation I got the CSETA PACKAGE from the OS2PROD2 disk a couple of weeks ago and just had the opportunity to unpack the files and install it today. When I ran INSTALL.EXE, a message box was displayed on the screen with the following message: No files were found for the option <A:\INCLUDE.1>, or the files cannot be decompressed with this version of UNPACK.EXE, UNPACK.EXE return code = 1. There is no INCLUDE.1 file on my diskette, so either that file was omitted or is not being unpacked from one of the other files. If it is the latter, can anyone tell me where to get the appropriate version of UNPACK.EXE? Thanks for any help you can provide. Regards, Fred Brown Cary ID ----- C-SET2 CFORUM appended at 02:40:48 on 92/08/26 GMT (by BIGBILL at TOROLAB6) Subject: C Set/2 Installation Ref: Append at 21:01:04 on 92/08/25 GMT (by FWBROWN at CARVM3) Please (re)read the package file, you forgot the -d option when creating the diskettes. Bill Sarantakos OS/2 C Compiler Development Toronto, Ontario ----- C-SET2 CFORUM appended at 14:15:34 on 92/08/28 GMT (by MIKEK at DALHQIC2) Subject: Customer testimonials I need testimonials from people who use OS/2 as a development platform. I would like to hear from people who program for DOS, Windows, and OS/2 and why they use OS/2 2.0 as their platform of choice. Customer or IBMer testimonials are welcome. Please append the information on to the forum or send it directly to me if you can. Thanks a lot. Michael Kaply Team OS/2 Dallas PRODIGY MVMF10A ----- C-SET2 CFORUM appended at 14:46:48 on 92/08/28 GMT (by SC036696 at AUSVM1) Subject: Kernel scheduling problems maybe I have developed a DLL which acts as a server, processing messages passed from one or more client processes which attach themselves to this DLL. This DLL initialization routine creates two queues for each process which attaches itself to this. As one can imagine, one queue receives trans- action messages from the client process; the second returns transaction result messages to that respective process. I have been performing ex- haustive testing against this DLL, using various distributions and so to simulate read-world conditions. All tests allow multiple processes to simultaneously use the DLL. My second to last test simply floods the DLL with messages, one after the other, with a 'DosSleep (1)' spacing out time between each transaction being sent by each client. Everything works fine. When I remove this sleep statement, the test fails. I have experienced similar problems when starting multiple processes in a tight loop. Things work fine when the loop is slowed down by a DosSleep, if even for a single clock tick. But remove the sleep and things are un- predictable. I have been unable to find anything I am doing incorrectly, which doesn't necessarily mean anything, but is there something I am missing. Thanks for any response. ----- C-SET2 CFORUM appended at 17:38:53 on 92/08/28 GMT (by IL53645 at OS2CUST) Subject: Minimum Install Size What is the smallest amount of disk space used to install the Workframe 2 envir onment with C/2? I need to compile a small model short C program for OS/2. I am about out of disk space as I am running OS/2 V2.0, Extended Services, PC Sup port (AS400 connectivity), 5250 Emulation, Lan Server, and TCP/IP. I have the old C2 V1.10, Quick C 2.5 and Turbo C++ V3.0 along with the Workframe. Incidently, are there any CSD's out against C2 V1.10 that any one might know about? ----- C-SET2 CFORUM appended at 18:50:46 on 92/08/28 GMT (by FRANCIS at TOROLAB6) Subject: Minimum Install Size Ref: Append at 17:38:53 on 92/08/28 GMT (by IL53645 at OS2CUST) From: Tim Francis -- WorkFrame/2 development The recommended minimum disk space for installing WorkFrame is 2 MB. (That doesn't include space for the compiler, but assuming you have the compiler already loaded a new language profile is only 100 bytes or so). I'm not aware of any CSDs for the old C/2. -tim ----- C-SET2 CFORUM appended at 19:19:25 on 92/08/28 GMT (by WEEKS at AUSVM2) - Subject: CSDs for C/2 1.1 Ref: Append at 17:38:53 on 92/08/28 GMT (by IL53645 at OS2CUST) It is my understanding that C/2 has alway been as ASIS product, no support supplied or planned (from the very beginning). Craig Weeks LAN Systems Performance (DCE) Austin, Texas ----- C-SET2 CFORUM appended at 20:11:30 on 92/08/28 GMT (by UDSS013 at OS2CUST) Subject: MKTEMP??? | In C/2, there was the mktemp function, which would create a unique | | filename from a given template. Is there anything like that available | | in C-Set or OS/2? Or does someone have an routine that does this? | Take a look at the OS/2 API 'DosEditName'. Gary Murphy ----- C-SET2 CFORUM appended at 22:20:16 on 92/08/28 GMT (by XXNOVA24 at TORVMCOP) Subject: MKTEMP??? Ref: Append at 20:11:30 on 92/08/28 GMT (by UDSS013 at OS2CUST) Use the'tmpnam' from the <stdio.h> It is an SAA Level 2 function. Geza Szivos NOVACOR Chemicals (403)-290-6583 NHO-32 801-7th Ave Calgary, Alberta, CANADA T2P 2N6 ----- C-SET2 CFORUM appended at 04:23:16 on 92/08/29 GMT (by SDETWEIL at DETVMIC4) Subject: Kernel scheduling problems maybe Ref: Append at 14:46:48 on 92/08/28 GMT (by SC036696 at AUSVM1) What do you mean by "doesn't work", what are the symptoms of the problem? Sam ----- C-SET2 CFORUM appended at 15:46:46 on 92/08/29 GMT (by TCSC086 at OS2CUST) Subject: CSDs for C-SET2 Redux I recently grabbed the (BETA) CSD11 from the library. However, there is a CSD13 on Compuserve. Did I miss something or am I just confusing the various products and their CSDs??? C-S-D (Confusing Software Developers #xx)<g>! Dan Lundy Time Customer Service, Inc. Tampa, Fl ----- C-SET2 CFORUM appended at 16:18:13 on 92/08/29 GMT (by BIGBILL at TOROLAB6) Subject: CSDs for C-SET2 Redux Ref: Append at 15:46:46 on 92/08/29 GMT (by TCSC086 at OS2CUST) I know they've been trying to get CSD013 out recently, so it sounds like it was put out there between the time you got 11 and when you checked on Compuserve. Bill Sarantakos OS/2 C Compiler Development Toronto, Ontario ----- C-SET2 CFORUM appended at 11:44:13 on 92/08/31 GMT (by XXCDSX26 at TORVMCOP) Subject: CSDs for C-SET2 Redux Ref: Append at 15:46:46 on 92/08/29 GMT (by TCSC086 at OS2CUST) Dan: Nope, you are not confusing products. BTW, CSD13 never made it to Compuserve, but CS0014 will be there tomorrow. Michael Harper - Cdn Depository for Securities, Ltd ----- C-SET2 CFORUM appended at 15:28:39 on 92/08/31 GMT (by XXNOVA24 at TORVMCOP) Subject: CSDs for C-SET2 Redux Ref: Append at 11:44:13 on 92/08/31 GMT (by XXCDSX26 at TORVMCOP) Would it be possible to post the fixed bugs here with every upload, than we can save some time and money by downloading only the important CSD-s? PS: at least the Toronto guys are posting CSD-s . wouls be nice to see this from other teams too. Geza Szivos NHO-32 801-7th Ave Calgary, Alberta, CANADA T2P 2N6 ----- C-SET2 CFORUM appended at 18:58:30 on 92/08/31 GMT (by BRENT at DALVM41B) Subject: CSD0014 Ref: Append at 15:28:39 on 92/08/31 GMT (by XXNOVA24 at TORVMCOP) C Set/2 CSD0014 is now available on the OS/2 BBS for download. This version includes fixes for the following APAR's (list taken from CSDFIXES.LST file on disk #1): C SET/2 RELEASE 1.0 FIXES _________________________ +-----------+---------------------------------------------------------------+ | APAR | PROBLEM DESCRIPTION | | NUMBER | | +-----------+---------------------------------------------------------------+ | PJ03523 | Optimization problem: bad register selection causes general | | | protection fault at runtime. | +-----------+---------------------------------------------------------------+ | PJ03662 | Optimization problem: bad register selection around a call | | | causes incorrect output at runtime. | +-----------+---------------------------------------------------------------+ | PJ03682 | Optimization problem: tail call optimization was altering a | | | register erroneously. | +-----------+---------------------------------------------------------------+ | PJ03767 | The compiler could not open files with names containing DBCS | | | characters where the second byte of the characters was 0x5C. | +-----------+---------------------------------------------------------------+ | PJ03923 | Optimization problem: generated floating-point code was | | | causing the floating point register stack to overflow or | | | underflow. | +-----------+---------------------------------------------------------------+ | PJ03948 | Optimization problem: multiplying by constant negative | | | numbers which are powers of 2 was causing incorrect code to | | | be generated. | +-----------+---------------------------------------------------------------+ | PJ03952 | Optimization problem: multiplying by constants that are near | | | powers of 2 was causing incorrect code to be generated. | +-----------+---------------------------------------------------------------+ | PJ03957 | Compiler was emitting object records longer than the linker's | | | 1024 byte limit. This causes the linker to produce the | | | message "L1057: data record too large". NOTE: There is more | | | than one cause for this symptom and there is another fix | | | coming soon. | +-----------+---------------------------------------------------------------+ | NOAPAR | Compile time performance was improved. | +-----------+---------------------------------------------------------------+ | NOAPAR | The compiler was unable to find files in a subdirectory on a | | | LAN drive. | +-----------+---------------------------------------------------------------+ | NOTE: The fixes listed above were included in CSD0008. | +-----------+---------------------------------------------------------------+ | PJ04295 | The kbhit library function was not working. | +-----------+---------------------------------------------------------------+ | NOTE: The fixes listed above were included in CSD0009. | +-----------+---------------------------------------------------------------+ | PJ04465 | The cprintf, fprintf, printf, and sprintf functions were not | | | printing floating-point values between 0.5 and 1.0 correctly | | | when zero precision was specified. | +-----------+---------------------------------------------------------------+ | NOTE: The fixes listed above were included in CSD0010. | +-----------+---------------------------------------------------------------+ | PJ04602 | Optimization problem: simple loops with induction variable | | | increments greater than one were being incorrectly turned | | | into memset or memcpy builtin function calls. | +-----------+---------------------------------------------------------------+ | PJ04604 | When the compiler turned switch statements into jump tables, | | | the default code segment was always being referenced even if | | | the function containing the switch statement was specified in | | | an alloc_text pragma. | +-----------+---------------------------------------------------------------+ | PJ04652 | Optimization problem: the stack pointer was not being decre- | | | mented before an indirect _Optlink call where the return | | | value was being used as a parameter to a tail call. | +-----------+---------------------------------------------------------------+ | PJ04674 | When #pragma handler was specified for a 32-bit callback | | | function the compiler generated bad code for copying the | | | parameters from the 16-bit stack to the 32-bit stack. | +-----------+---------------------------------------------------------------+ | NOTE: The fixes listed above were included in CSD0011. | +-----------+---------------------------------------------------------------+ | PJ04811 | Incorrect code was being generated for a complicated | | | expression where a short variable was being added to the | | | address of an element of an array of structures. | +-----------+---------------------------------------------------------------+ | PJ05088 | Optimization problem: the compiler was trapping when opti- | | | mizing a loop containing a divide and modulo operation with | | | the same operands. | +-----------+---------------------------------------------------------------+ | PJ05100 | Optimization problem: incorrect code was being generated for | | | a switch statement containing a case zero where the switch | | | variable had to be converted to an int from an unsigned char. | +-----------+---------------------------------------------------------------+ | PJ05124 | Incorrect code was being generated when the result of com- | | | paring two shorts with less than or greater than operators | | | was stored into an integer variable. | +-----------+---------------------------------------------------------------+ | PJ05140 | Incorrect code was being generated for _Optlink functions | | | that have a number of floating-point or aggregate parameters | | | followed by integer parameters. | +-----------+---------------------------------------------------------------+ | NOTE: The fixes listed above were included in CSD0012. | +-----------+---------------------------------------------------------------+ | PJ05013 | The compiler was trapping when trying to compile a compli- | | | cated expression where the address of an element of an array | | | of structures was indexed and then a member of the structure | | | was accessed. | +-----------+---------------------------------------------------------------+ | PJ04674 | The problem with #pragma handler on callback functions was | | | really only a problem with _Far16 _Cdecl callback functions. | | | So the fix in CSD0011 broke the case where #pragma handler | | | was used on a _Far16 _Pascal callback function. Now both | | | work. | +-----------+---------------------------------------------------------------+ | PJ04390 | The C runtime termination routine was not freeing all storage | | | allocated during initialization. | +-----------+---------------------------------------------------------------+ | PJ05087 | Partial static initialization of a structure containing a | | | union containing a structure containing bitfields was not | | | working. | +-----------+---------------------------------------------------------------+ | NOAPAR | Some enhancements were made to the compiler to reduce memory | | | usage during compilation and therefore reduce compile times. | +-----------+---------------------------------------------------------------+ | NOTE: The fixes listed above were included in CSD0013. | +-----------+---------------------------------------------------------------+ | PJ05087 | The assembler listing was incorrect after the real problem | | | was fixed in CSD0013. | +-----------+---------------------------------------------------------------+ | PJ05225 | Optimization problem: the compiler was trapping when opti- | | | mizing a procedure containing a loop nested within another | | | loop where an invariant in the inner loop was an induction | | | variable for the outer loop. | +-----------+---------------------------------------------------------------+ | PJ05230 | Optimization problem: incorrect code was generated for an | | | _Optlink function containing a loop where an invariant was a | | | register parameter and it was used in a conditional | | | expression within the loop. | +-----------+---------------------------------------------------------------+ | PJ05393 | Optimization problem: the compiler was trapping when com- | | | piling code with consecutive calls to strcat with the same | | | first parameter. | +-----------+---------------------------------------------------------------+ | PJ05431 | Optimization problem: the compiler was incorrectly removing a | | | store to a local variable before a loop. | +-----------+---------------------------------------------------------------+ | PJ05450 | The thunk prolog routine was using 64K too much stack in | | | certain situations, and missing a stack probe in certain | | | situations. | +-----------+---------------------------------------------------------------+ | NOTE: The fixes listed above were included in CSD0014. | +---------------------------------------------------------------------------+ Brent Allen - IBM OS/2 Base Services Support ----- C-SET2 CFORUM appended at 21:33:01 on 92/08/31 GMT (by XXNOVA24 at TORVMCOP) Subject: CSD0014 Ref: Append at 18:58:30 on 92/08/31 GMT (by BRENT at DALVM41B) Thank you. I'll download it. this listing shows that They are working hard to fix them all. Just one more question. How the CSD-s are organized? Is it still like in the old way that appending one after the other? I mean if I have the CSD0011, (one and half disk) is it enough to down- load the second part since they just appending more and more? Geza Szivos NOVACOR Chemicals (403)-290-6583 NHO-32 801-7th Ave Calgary, Alberta, CANADA T2P 2N6 ----- C-SET2 CFORUM appended at 21:42:16 on 92/08/31 GMT (by AMELINE at TOROLAB6) Subject: CSD0014 Ref: Append at 21:33:01 on 92/08/31 GMT (by XXNOVA24 at TORVMCOP) No. We completely rebuild the compiler, and all modules which have changed are put on the CSD. In this case, you need the complete CSD. In any case, taking parts from one CSD and mixing them with parts from others is unsupported. Ian Ameline ----- C-SET2 CFORUM appended at 21:59:38 on 92/08/31 GMT (by XXNOVA24 at TORVMCOP) Subject: CSD0014 Ref: Append at 21:42:16 on 92/08/31 GMT (by AMELINE at TOROLAB6) Thanks, I keep this in mind. Geza Szivos NOVACOR Chemicals (403)-290-6583 NHO-32 801-7th Ave Calgary, Alberta, CANADA T2P 2N6 ----- C-SET2 CFORUM appended at 13:15:26 on 92/09/02 GMT (by WZ00545 at OS2CUST) Subject: CSD0014 PROBLEM When attempting to apply csd0014 the service program rejects the second disk. It is looking for csd00013 vol 2, the CSF$DISK file on volume 2 says it's CS00014 but Volume 1 say CS00013. I now have a machine stuck halfway through the install and nowhere to go.............HELP!!!!! BRIAN K. SPEARS - KONICA BUSINESS MACHINES USA. INC. ----- C-SET2 CFORUM appended at 13:19:46 on 92/09/02 GMT (by IL54396 at OS2CUST) ..... C-SET2 CFORUM modified at 13:29:24 on 92/09/02 GMT (by IL54396 at OS2CUST) Subject: _msize This APPEND was deleted at 09:29:24 on 09/02/92 EST. ----- C-SET2 CFORUM appended at 14:59:15 on 92/09/03 GMT (by XXSUNL45 at TORVMCOP) Subject: Customer testimonials Ref: Append at 14:15:34 on 92/08/28 GMT (by MIKEK at DALHQIC2) I maintain a PC front end of a host based E-Mail system. The program is written in assembler and C for DOS. It communicates with PC/3270 v2 through HLLAPI and runs in various environments including Software Carousel. Reason why I'm using OS/2 is because it runs MSC 6.00AX without a problem and program bugs that used to hang the system don't. I'm also able to simulate various environments the program runs in without the need to reboot the machine to load new environments. It's like having multiple PCs in one. A great time saver. regards, Wilf Lee ----- C-SET2 CFORUM appended at 15:06:39 on 92/09/03 GMT (by XXSUNL45 at TORVMCOP) Subject: CSD availability How about the Toronto C team also post CSD on the Toronto IBM BBS? Wilf Lee ----- C-SET2 CFORUM appended at 18:04:37 on 92/09/03 GMT (by V$IBTIGA at BCRVMPC1) Subject: Multiple symbols I have a customer who is creating some functions that have the same name as some of the OS/2 APIs. For example, he is creating his own function called DosOpen. During link, he is naturally getting an L2025 error (multiple symbols). He is aware why he is getting the error and he wouldn't tell me why he needs to name his functions the same as the APIs. He has used /NOI /NOD and /NOE, but with no success. Is there any way to tell the linker to ignore the APIs in the library if his function uses the same name? Larry Moore PSPC-Boca Tech Interface Group ----- C-SET2 CFORUM appended at 21:35:53 on 92/09/03 GMT (by XXBCTE25 at TORVMCOP) Subject: C Set/2 special price? Is there any plan to re-introduce or extend the special offer for the OS/2 tools? I thought IBM Canada was offering more or less the same deal as the U.S., but was informed that the offer expired 3 days ago! The amount being charged for the whole package would require I submit a business case, which means I can't get it. Under the special offer I would have been able to expense it. Claude Biron ----- C-SET2 CFORUM appended at 11:38:18 on 92/09/04 GMT (by WRL0001 at OS2CUST) Subject: Documentation Trends: Online vs Hardcopy Ref: Append at 13:22:09 on 92/06/24 GMT (by FRYERK at TOROLAB6) Obviously there are times for hardcopy documentation and times for online. For normal working conditions, when I need specific information about an API call, a standard function, or point of language, thoroughly cross-referenced (!!!) online help is a great time saver. The BIG advantage of hardcopy documentation is that it is so much more amenable to browsing. I find it very valuable to be able to flip through a book now and then. It allows me to become aware of issues, options, and features that I would otherwise not think of looking for. I think that you can accomplish your documentation goals by providing all of it (except instructions on how to get to it initially!) online with the hardcopy being available as an option. This puts the choice where it belongs -- with the person who has to use it in order to use your product effectively. The only caveat I offer is that it would be important to make the manner and the terms on which the documentation is offered ABSOLUTELY clear UP FRONT -- BEFORE the user gets the package in the front door and tries to implement it. If he finds out that there is an additional, unexpected step needed to put the product into service he will probably not be a happy customer. Buzz Cruise - Western Reserve Life ----- C-SET2 CFORUM appended at 15:40:24 on 92/09/04 GMT (by PNWB016 at OS2CUST) Subject: Documentation Trends: Online vs Hardcopy Ref: Append at 11:38:18 on 92/09/04 GMT (by WRL0001 at OS2CUST) Buzz: What would you think if IBM gave the the documentation in "softcopy" and then delivered the ability to print out an EXACT copy of the manual? (This facility should support LAN attached laser printers for the "little iron" installation and AFP printers for the "big iron" shops.) I have been talking with some of our accounts IBMers about this idea. It has the advantage of taking the burden off of IBM of having to deal with paper manuals, and makes the customer responsible for keeping all the "paper stuff" up to date. (The customer can also make as many copies as they want, as long as they are willing to pay for the paper and don't violate the copyright laws.) The problem for IBM is that they would need to develop a ROBUST printing ability for the BookManager .BOO files... something similar to the printing that IPF in OS/2 2.0 has. (The IPF printouts are good on an impact printer and BEAUTIFUL on a laser.) Wayne "Floating a trial balloon" Holmes U S WEST Communications ----- C-SET2 CFORUM appended at 22:39:23 on 92/09/06 GMT (by THRUMD at SYDVM1) Subject: Documentation Trends: Online vs Hardcopy Ref: Append at 15:40:24 on 92/09/04 GMT (by PNWB016 at OS2CUST) Yes! Dave ----- C-SET2 CFORUM appended at 13:04:11 on 92/09/08 GMT (by FRYERK at TOROLAB6) Subject: Documentation Trends: Online vs Hardcopy Ref: Append at 15:40:24 on 92/09/04 GMT (by PNWB016 at OS2CUST) Actually, the online documentation will be in IPF format, to allow contextual help through the EPM interface. (BookManager format will also be available.) Are you saying that IPF, as it is today, prints well enough on most printers to create a decent hardcopy version? (That's not disbelief in my "voice"...but I have heard some comments to the contrary.) What about time? Some of the documents are quite large (300 pages), and would take some time to print. Would this be a problem for you? Thanks for your input. Kathryn Fryer Toronto Information Development ----- C-SET2 CFORUM appended at 14:24:27 on 92/09/08 GMT (by PNWB016 at HONE81) Subject: Documentation Trends: Online vs Hardcopy Ref: Append at 13:04:11 on 92/09/08 GMT (by FRYERK at TOROLAB6) Kathryn: For printing out a couple of pages the IPF print format seems fine. We have never printed an entire document, so I can't speak for that. (Normally we just print out a couple of pages of one of the reference manuals.) The problem with IPF is that it isn't "what you see is what you get" when printing. OTOH, the documents themselves look very nice when they are printed. (Read/2 appears to do the OS/2 equilivant of an IEBGENER to the printer. <g>) Wayne "I want it all" Holmes ----- C-SET2 CFORUM appended at 14:43:49 on 92/09/08 GMT (by PETT at TOROLAB6) Subject: Multiple symbols Ref: Append at 18:04:37 on 92/09/03 GMT (by V$IBTIGA at BCRVMPC1) Assuming that there is no need to call the OS/2 API's from user code, the only way to avoid name conflicts with the API names is to put the C Set/2 runtime library into a DLL. Roger Pett ----- C-SET2 CFORUM appended at 14:58:23 on 92/09/08 GMT (by XXCDSX26 at TORVMCOP) Subject: Documentation Trends: Online vs Hardcopy Ref: Append at 13:04:11 on 92/09/08 GMT (by FRYERK at TOROLAB6) Kathryn: On a laser print the V2.0 IPF does a wonderful job on text. Try it you might like it. Michael Harper - Cdn Depository for Securities, Ltd ----- C-SET2 CFORUM appended at 15:07:33 on 92/09/08 GMT (by XXNOVA24 at TORVMCOP) Subject: Documentation Trends: Online vs Hardcopy Ref: Append at 13:04:11 on 92/09/08 GMT (by FRYERK at TOROLAB6) I'm satisfied with the quality of IPF printing too. I never measured the time ,or printed anything more than ten pages. Geza Szivos NOVACOR Chemicals (403)-290-6583 NHO-32 801-7th Ave Calgary, Alberta, CANADA T2P 2N6 ----- C-SET2 CFORUM appended at 21:19:02 on 92/09/08 GMT (by THRUMD at SYDVM1) Subject: Documentation Trends: Online vs Hardcopy Ref: Append at 14:58:23 on 92/09/08 GMT (by XXCDSX26 at TORVMCOP) IPF prints nice headings, but still uses fixed pitch font (courier) for the body text. Use of a proportional font (preferably user selectable typeface and size) would save a lot of paper. Dave ----- C-SET2 CFORUM appended at 02:59:39 on 92/09/09 GMT (by WZ00730 at OS2CUST) Subject: DO I NEED CSD's 09/08/92 WorkFrame/2 1.0 just arrived from the factory. Does this version require any fixes (ie CS00008) ? A. Pechinski CTA, Inc. ----- C-SET2 CFORUM appended at 06:10:48 on 92/09/09 GMT (by XXNOVA24 at TORVMCOP) Subject: DO I NEED CSD's Ref: Append at 02:59:39 on 92/09/09 GMT (by WZ00730 at OS2CUST) CSD-s are released to the C-set/2 only. (CSD0014 is the latest what I knew.) Geza Szivos NOVACOR Chemicals (403)-290-6583 NHO-32 801-7th Ave Calgary, Alberta, CANADA T2P 2N6 ----- C-SET2 CFORUM appended at 17:00:56 on 92/09/09 GMT (by IL53645 at OS2CUST) Subject: AS400 Install Has anyone installed the Workframe product on an AS400 using the PC Support product for OS2 (also DOS)? I have Workframe and would like to put it over on the AS400 where there is en ough disk space. I already have C/2 and Turbo C++ 3.0 installed there, and whi le performance is a little slow, the extra disk space and a 16 MHz token ring h elp the speed. I am currently trying to install Microsoft C(++) V7.0, but the token ring con nection drops when I get about half way through. IBM says it might have a prob lem with the micro code in the token ring cards at 16 MHz on the AS400. Thanks. ----- C-SET2 CFORUM appended at 18:12:13 on 92/09/09 GMT (by FORD at BCRVMPC1) Subject: Documentation Trends: Online vs Hardcopy Ref: Append at 14:24:27 on 92/09/08 GMT (by PNWB016 at HONE81) Wayne, Why do you say that IPFs printing is not WYSIWYG? That is EXACTLY what it is designed to be. Ann Ford IPF Development ----- C-SET2 CFORUM appended at 18:16:23 on 92/09/09 GMT (by FORD at BCRVMPC1) Subject: Documentation Trends: Online vs Hardcopy Ref: Append at 21:19:02 on 92/09/08 GMT (by THRUMD at SYDVM1) Dave, IPF uses the "default font" to display and/or print normal text. We have to let the printer define what is its own default font and use that. Your results will vary depending on the printer. Choosing fonts for each every printer is a very difficult task. Ann Ford ----- C-SET2 CFORUM appended at 19:28:16 on 92/09/09 GMT (by V$IRUSSB at BCRVMPC1) Subject: Multiple symbols Ref: Append at 18:04:37 on 92/09/03 GMT (by V$IBTIGA at BCRVMPC1) First, within the include files that come with the toolkit the OS/2 functions are already defined. This alone will cause you problems when compiling (unless you avoid including the header files that define functions that you are re-defining). If you get beyond that, then you can specify the /NOD (for no Default Library search) option to the linker, and then include your own library specification before the OS2386.LIB Library. This should allow you to have your version of system functions used instead of those provided with OS/2. -Russ ----- C-SET2 CFORUM appended at 22:26:48 on 92/09/09 GMT (by THRUMD at SYDVM1) Subject: Documentation Trends: Online vs Hardcopy Ref: Append at 18:16:23 on 92/09/09 GMT (by FORD at BCRVMPC1) Ann, Thanks for the clarification. That explains why the body text that I get is fixed pitch (?courier), but IPF must do something else to choose a proportional font (Times Roman for me) for the headings. Nevertherless, the next question is how to define the default printer font - I have hunted through the printer settings without success. (Whoops, apologies for getting off the forum subject) Dave ----- C-SET2 CFORUM appended at 01:15:00 on 92/09/10 GMT (by PNWB016 at OS2CUST) Subject: Documentation Trends: Online vs Hardcopy Ref: Append at 18:12:13 on 92/09/09 GMT (by FORD at BCRVMPC1) The "problem" (and not a bit one at that) is that the :h1 and :h2 type headers are not displayed in the same font as when they are printed. (To be honest they look NICER when they are printed, especially with the nice BIG font used for the :h1 tags with the underline separator.) Additionally the words in the body text flow around the visible help window then flow differently when printed. Again... these are NOT complaints, my point is that IPF is not WYSIWYG like a DeScribe word processor... and I DO NOT expect it to be. OTOH, a product that is used to view books SHOULD display those books in EXACTLY the format the author intended and then print them in that SAME format. Does this make more sense? Sorry for any confusion. Wayne "IPF ALMOST makes it fun to write application help" Holmes U S WEST Communications ----- C-SET2 CFORUM appended at 12:36:31 on 92/09/11 GMT (by FORD at BCRVMPC1) Subject: Documentation Trends: Online vs Hardcopy Ref: Append at 22:26:48 on 92/09/09 GMT (by THRUMD at SYDVM1) Sorry, but I don't know any way for the end user to alter the font. I'm not a printer person so I can't answer for how to change the printer fonts - maybe someone more knowledgable with that aspect can answer it for you. Ann Ford ----- C-SET2 CFORUM appended at 12:44:23 on 92/09/11 GMT (by FORD at BCRVMPC1) Subject: Documentation Trends: Online vs Hardcopy Ref: Append at 01:15:00 on 92/09/10 GMT (by PNWB016 at OS2CUST) Yes, Wayne, given that definition of WYSIWYG I have to agree with you. I believe that is what they call "true print fidelity". I labeled it WYSIWYG because it now shows all the font changes and the pictures (which it didn't before), BUT it doesn't do full book print formatting, like paginiation, page numbering, headers and footers, etc. OTOH, I see what IPF does as an advantage - it formats the information for the device it is displaying on - i.e. it reflows the text depending on the visible width of the display window, or the printer, rather than truncating the text on a printer that is not wide enough, or not filling the page on a printer that is wider than the 40 column help window. This is what it used to do. It has always had the facility to reflow the text when the window is resized and I see this as a strong advantage. Anyway, thanks for your input and your support. Ann Ford IPF Development. ----- C-SET2 CFORUM appended at 15:02:26 on 92/09/11 GMT (by TCSC086 at OS2CUST) Subject: Documentation Trends: Online vs Hardcopy Ref: Append at 01:15:00 on 92/09/10 GMT (by PNWB016 at OS2CUST) Okay Wayne, >>> a product that is used to view books SHOULD display those books in EXACTLY the format the author intended and then print them in that SAME format. >>> You get the credit. I believe that your statement above is the first formal insistence on the workstation industry's equivalent of : THE LETTERBOX ARGUMENT It had to happen. Hollywood has been making noises for years about LETTERBOX format (you know, the image on the tv that has black at the top and bottom) because is allows the viewer to see the movie the way the Director/Author desired!!!! And, OF COURSE, we all know that IPF documents are MUCH better on Laser Disk/CD Rom than Tape/Diskette!!! <Poke Poke Grin!!> "This document has NOT been colorized so as to preserve the quality and richness of the original Sepia(phosphor) tones"!!! Dan Lundy Time Customer Service, Inc. Tampa, Fl ----- C-SET2 CFORUM appended at 19:17:38 on 92/09/11 GMT (by CHERNOCK at FSHVMX) ..... C-SET2 CFORUM modified at 19:26:16 on 92/09/11 GMT (by CHERNOCK at FSHVMX) Subject: _beginthread and ACCESS VIOLATION | OOPS - meant to go into C-SET2 FORUM Rich ----- C-SET2 CFORUM appended at 15:00:03 on 92/09/14 GMT (by UNMT067 at OS2CUST) Subject: CSD0014 PROBLEM Ref: Append at 13:15:26 on 92/09/02 GMT (by WZ00545 at OS2CUST) (no text entered) ----- C-SET2 CFORUM appended at 15:10:09 on 92/09/14 GMT (by UNMT067 at OS2CUST) Subject: CSD0014 PROBLEM Ref: Append at 13:15:26 on 92/09/02 GMT (by WZ00545 at OS2CUST) I think IBM blew it on the CSD #14. It looks like CSD #14 made no changes to the first diskette of CSD #13, so they left the disk id as CSD00013. If you type the files CSF$DISK on both diskettes you will see that one is labeled CSD00013 and the other is CSD00014. You can use something like Norton Utilities to updated the "CSF$DISK" file on diskette 1 to CSD00014 and the CSD will apply fine. Mack McDowell, Unum Life Insurance Co of America ----- C-SET2 CFORUM appended at 18:48:02 on 92/09/14 GMT (by PNWB016 at HONE85) Subject: Documentation Trends: Online vs Hardcopy Ref: Append at 12:44:23 on 92/09/11 GMT (by FORD at BCRVMPC1) Ann: Glad my message came through. I REALLY like IPF, and it seems that my positive experience with IPF set some VERY high expectations for BookManager. To be fair the BM people have the cross-platform issue, but at the same time I'm sure every user wants BM to exploit their specific platform "to the max". Wayne ----- C-SET2 CFORUM appended at 18:48:28 on 92/09/14 GMT (by PNWB016 at HONE85) Subject: Documentation Trends: Online vs Hardcopy Ref: Append at 15:02:26 on 92/09/11 GMT (by TCSC086 at OS2CUST) Ready for a TOTAL tangent???? Speaking of "letterboxing", I took my 9 year old son to see the origional Star Wars movie in 70 MM about a month ago (it was a 1 week limited release at a HUGE theater in Seattle with GREAT picture and sound.) He really didn't want to go, since he had "seen" the movie lots of time on our 19 inch TV with a 1 inch speaker. Right after the scene when the star destroyer rolled onto the screen (about 30 seconds after the credits end) he leaned over and said "This is COOL!". He sat MOTIONLESS for the rest of the movie. Wayne "I had forgotten how GREAT Star Wars was" Holmes ----- C-SET2 CFORUM appended at 18:48:53 on 92/09/14 GMT (by PNWB016 at HONE85) Subject: CSD0014 PROBLEM Ref: Append at 15:10:09 on 92/09/14 GMT (by UNMT067 at OS2CUST) Mack: Apparently the ones on CIS were messed up too. Does anyone know if this is going to be fixed on this BBS? (Lots cheaper to download here than off of CIS.) Wayne ----- C-SET2 CFORUM appended at 21:34:12 on 92/09/14 GMT (by IL41468 at OS2CUST) Subject: CSD0014 PROBLEM Ref: Append at 18:48:53 on 92/09/14 GMT (by PNWB016 at HONE85) I download the csd00014 3.5 diskettes date 92/8/31 a couple of days ago and applied the service to my C Set/2 with no problem. Do you need 5.25 could the problem only be there? If not 5.25 why don't you just retransmit the CSD00014 John M. Schaeffer (AIMS - Sandy, Utah) ----- C-SET2 CFORUM appended at 22:26:12 on 92/09/14 GMT (by TCSC086 at OS2CUST) Subject: Documentation Trends: Online vs Hardcopy Ref: Append at 18:48:28 on 92/09/14 GMT (by PNWB016 at HONE85) Wayne, This is highly appropriate since you have screamed about messages and appends not appearing as well. You replied to my "Letterbox post" which was (inserting copy...) Ref: Append at 15:02:26 on 92/09/11 GMT (by TCSC086 at OS2CUST) Welllll....guess what. I can't find it now! Along with several other suspected missing posts of mine...this one you actually responded to and I CAN'T FIND IT! Would you please scan back through the forum and see if YOU can find it. This would confirm my "personal pointers" idea about how messages keep having problems (especially MINE! Paranoia again....<G>) The Letterbox post was IMHO rather distinct....and now EXTINCT! Let me know...I'll go gripe on the "about this BBS forum" Dan "They keep eating my posts" Lundy Dan Lundy Time Customer Service, Inc. Tampa, Fl ----- C-SET2 CFORUM appended at 22:27:32 on 92/09/14 GMT (by TCSC086 at OS2CUST) Subject: Documentation Trends: Online vs Hardcopy Ref: Append at 18:48:28 on 92/09/14 GMT (by PNWB016 at HONE85) BTW, a motionless 9 year old??! Amazing..... The BIG SCREEN is awesome. I want one at home <G!!> Dan Dan Lundy Time Customer Service, Inc. Tampa, Fl ----- C-SET2 CFORUM appended at 23:22:06 on 92/09/14 GMT (by AMELINE at TOROLAB6) Subject: CSD0014 PROBLEM Ref: Append at 15:10:09 on 92/09/14 GMT (by UNMT067 at OS2CUST) Well, *I* blew it. I packed the wrong disk. (There were several in the pile, and I could have sworn I picked up Disk 1 of CSD 14, but I picked up Disk 1 of CSD 13 instead.) This situation should be corrected as of a few days ago. The bungle on CIS was a different thing altogether -- I left out an EXE which hadn't changed since the first CSD. I test installed it on a system which already had a CSD on it. This worked fine -- If I had tested it on a GA level C-Set, I would have caught it. Just used up my annual quota of stupid mistakes in 1 day. Regards, Ian Ameline ----- C-SET2 CFORUM appended at 03:52:47 on 92/09/15 GMT (by PNWB016 at OS2CUST) Subject: CSD0014 PROBLEM Ref: Append at 23:22:06 on 92/09/14 GMT (by AMELINE at TOROLAB6) Ian: Thanks for the clarification. I have NO PROBLEM with this kind of mixup... especially since it is VERY apparent that your working hard to get the fixes for the C-Set out as quickly as possible. I applied the CSD to our system by directly unpacking the files onto our LAN drives (per our earlier conversation the SERVICE program doesn't deal with LAN drives), so I didn't realize this was a problem until we applied the CSD to some additional standalone machines we have the C Set on. BTW... I wrote up a PASR on the SERVICE problem and had my SE submit it to the black hole that all such requirements enter. Hopefully this will be fixed sometime before I retire. <grin> Thanks again for a GREAT product and a COMMITMENT to providing service. Wayne "See, I really CAN be resonable <g>" Holmes ----- C-SET2 CFORUM appended at 04:00:33 on 92/09/15 GMT (by PNWB016 at OS2CUST) Subject: Documentation Trends: Online vs Hardcopy Ref: Append at 22:26:12 on 92/09/14 GMT (by TCSC086 at OS2CUST) Dan: I can't see your append when I look on the OS2BBS. The only way I know that you DID send the message is because I am testing some software that keeps a copy of the appends on my PC. Humm... maybe some editing software put the kibosh on your post for being "off topic". <<<< GRIN >>>>> Of course if talking about "Star Wars" in the IBM C Set/2 forum isn't off topic I'm not sure what is! :-) Seriously, maybe your append being lost was associated with the system being down for most of Friday, all weekend and part of Monday. You should probably send a message to Brent on OS2BBS... especially since I have PROOF that your not going crazy. Wayne ----- C-SET2 CFORUM appended at 05:34:27 on 92/09/15 GMT (by XXNOVA24 at TORVMCOP) Subject: CSD0014 PROBLEM Ref: Append at 23:22:06 on 92/09/14 GMT (by AMELINE at TOROLAB6) Don't worry Ian, you at least distributing CSD-s. and since you admitted the error, you corrected it. You've got another half years quota.<g> Geza Szivos NOVACOR Chemicals (403)-290-6583 NHO-32 801-7th Ave Calgary, Alberta, CANADA T2P 2N6 ----- C-SET2 CFORUM appended at 20:21:09 on 92/09/16 GMT (by V$IBTIGA at BCRVMPC1) Subject: comments NOTE: LONG APPEND Can anybody comment on this? ----------------------------------------------------------------------- SIGBREAK and SIGINT should not have a default handler 1. SIGBREAK and SIGINT should not have any default handler. I notice that programs compiled with CSet/2 always install their own default handlers for SIGBREAK and SIGINT. This is very bad idea, given OS/2 simplistic stack-oriented interrupt handling in a text window. What happens is that the last guy to register an interrupt handler gets the signal. So you can get bizarre results with pipes, e.g., a ┘ b Depending on the order in which they're started (which might not be the same fo all command processors) a ^C will be delivered to either a or b but never both. The other may eventually notice that the pipe has broken, but that could be several seconds or more. (And even then, if it's a that got the signal and died, b's response would not be to exit unless that's its normal response to reaching end-of-file.) To kill the whole pipe, you have to type ^C twice (or even more if it's a pipeline of more stages). Another problem with these default handlers is that it makes it difficult to "put them in the background" in UNIX terms. Under my C shell, for example, it' convenient to start a simple that might take a while such a utility to copy a whole directory with an ampersand at the end of the line meaning start the thin going but don't wait for it to complete before prompting for the next command. Here's an example of what that might look like: cp \doug a: & Stdout & stderr would still be tied to that same text window so (by design) if that background app produced any output, it would show up intermixed on the screen with any other output. (Again, that's by design and, even if it sounds strange, believe me, it is what people who use this facility do want.) But these background children should definitely not be responding to ^C. The convention established (albeit never well-documented) under OS/2 1.x was that "simple" applications should not establish signal handlers, thus allowing ^C to be delivered to the command processor, which would then walk down the lis of its children, killing them all. Doing it that way ensures that ^C works as expected. It also, from a practical standpoint, makes UNIX-style background operations possible since the C shell simply skips any of those children when i walks down it's list in response to a ^C. (Obviously, if the background child did register a signal handler, we're back to the same problem but since most of the kinds of things people do in the background are relatively simple and do no have signal handlers, this is not a frequent problem in practical terms.) 2. Exit codes 99 and 3 already have defined meanings. The default signal handlers cause exits with code 3 (SIGABRT) and code 99 (SIBBREAK, SIGFPE, SIGILL, SIGINT, SIGSEGV, SIGTERM). This usage conflicts wit other assignments as documented in bseerr.h: #define ERROR_PATH_NOT_FOUND 3 #define ERROR_DEVICE_IN_USE 99 Please, let's try to follow the conventions, can we? E.g., there already *are* a couple appropriate definitions: #define ERROR_INTERRUPT 95 /* SIGBREAK or SIGINT */ #define ERROR_INVALID_ADDRESS 487 /* SIGSEGV */ I admit I don't see any right off for SIGABRT, SIGFPE, SIGILL or SIGTERM, but you could define some, adding them to bseerr.h or adding them to the ERROR_USER_DEFINED_BASE value. 3. There's really no reason for those silly "Process was terminated by SIGxxx" messages. Regards, Doug Hamilton Larry Moore PSPC-Boca Tech Interface Group ----- C-SET2 CFORUM appended at 03:44:59 on 92/09/17 GMT (by HNDERSON at AUSVM8) Subject: CSD0014 PROBLEM Ref: Append at 15:10:09 on 92/09/14 GMT (by UNMT067 at OS2CUST) Mack, the problem has been fixed, the correct files have been reloaded to the various BBS. We are sorry that it occurred. We are working to make sure that it will not happen again. __ __ ___ __ __ _ _ | |_| | / \ | \| | | |./ / Hank Henderson HNDERSON at AUSVM8 | _ | / _~_ \ Sincerely | . < Staff OSS to OS/2 BBS (TEAMOS2) |__| |__| /_/ \_\ |__|\__| |_| \_\ Tie:8-793-8647 Austin, Texas LNK1SM7 @ IBMLINK - OS/2 BBS ----- C-SET2 CFORUM appended at 17:42:25 on 92/09/18 GMT (by PNWB016 at OS2CUST) Subject: CSD0014 PROBLEM Ref: Append at 03:44:59 on 92/09/17 GMT (by HNDERSON at AUSVM8) Hank: A couple of questions to make sure I'm understanding what is going on. 1) Was CSD14 EVER incorrect on the OS2BBS? (I downloaded it from here, but couldn't use the service program to install it... as a result I didn't see the problem others were reporting.) 2) If the answer to #1 is YES, then have the images on the OS2BBS indeed been updated? (The reason I ask is that the menu when you go into the CSD section indicates an update in the last couple of days, but CSD14 still shows its origional date.... and no file in the CSD section has an update date that matches the date on the "files" screen.) Thanks in advance... I just want to make ABSOLUTELY SURE that we are running with the "right" fixes to the C Set. Wayne "I'm glad its Friday" Holmes ----- C-SET2 CFORUM appended at 14:56:00 on 92/09/19 GMT (by HNDERSON at AUSVM8) Subject: CSD0014 PROBLEM Ref: Append at 17:42:25 on 92/09/18 GMT (by PNWB016 at OS2CUST) Hi Wayne, When I first read about this I went and checked the 2 diskettes, of course I wasn't (red face on) pulling them from same source and they were ok. I pulled them from the BBS and found the problem (red face off). One of my co-horts showed me my error. Just goes to show the young can teach a old dogs a thing or two. (Thanks Ryan). Anyway the right ones on on the BBS, I goofed, they threaten me with not being able to signon to the BBS if I did it again, and I couldn't handle that, its kinda like a habit you know. So I promise to not repeat that goof for awhile. __ __ ___ __ __ _ _ | |_| | / \ | \| | | |./ / Hank Henderson HNDERSON at AUSVM8 | _ | / _~_ \ Sincerely | . < Staff OSS to OS/2 BBS (TEAMOS2) |__| |__| /_/ \_\ |__|\__| |_| \_\ Tie:8-793-8647 Austin, Texas LNK1SM7 @ IBMLINK - OS/2 BBS ----- C-SET2 CFORUM appended at 22:48:29 on 92/09/19 GMT (by HNDERSON at AUSVM8) Subject: IBM partication in the CFROUM Ref: Various appends by IBMer I strongly recommend that all IBMer take time to READ THE HEADERS of THIS AND ALL OTHER CFORUMs. This Cforum and all other Cforums are for Customers to ask questions offer views, suggestion, etc. TO other customers, and to IBMers. They are NOT TO CONTAIN references to IBM Internal USE Only products. They are not to reference IBM INTERNAL minidisk that are not available to customers. They are not to contain reference to unannounced products. __ __ ___ __ __ _ _ | |_| | / \ | \| | | |./ / Hank Henderson HNDERSON at AUSVM8 | _ | / _~_ \ Sincerely | . < Staff OSS to OS/2 BBS (TEAMOS2) |__| |__| /_/ \_\ |__|\__| |_| \_\ Tie:8-793-8647 Austin, Texas LNK1SM7 @ IBMLINK - OS/2 BBS ----- C-SET2 CFORUM appended at 00:23:49 on 92/09/20 GMT (by PNWB016 at OS2CUST) Subject: CSD0014 PROBLEM Ref: Append at 14:56:00 on 92/09/19 GMT (by HNDERSON at AUSVM8) Hank: No problem... I will download the images and reapply the fixes to our system. Thanks for checking this out. Wayne ----- C-SET2 CFORUM appended at 03:24:55 on 92/09/20 GMT (by UNMT067 at OS2CUST) Subject: CSD0014 PROBLEM Ref: Append at 03:44:59 on 92/09/17 GMT (by HNDERSON at AUSVM8) Hank, thanks for your quick response. Since I have made similar mistakes many times before, I can definitely understand how it can happen. I will download the new images and apply them. Mack McDowell, Unum Life Insurance Co of America ----- C-SET2 CFORUM appended at 13:47:02 on 92/09/21 GMT (by N$DEANS at RALVM29) Subject: CSD0014 PROBLEM Ref: Append at 03:24:55 on 92/09/20 GMT (by UNMT067 at OS2CUST) I'm compiling and linking 19 files into one DLL. Everything compiles OK, but when LINK386 steps in, I get the following error: Operating System/2 LX (Linear Executable) Linker Version 2.00.000 Feb 25 1992 Copyright (C) IBM Corporation 1988-1992. Copyright (C) Microsoft Corp. 1988-1992. All rights reserved. LINK386 : fatal error L1022: response line too long I'm defining three lists of object files in the following format: obj1 = <filename.obj> \ <filename.obj> \ <filename.obj> obj2 = <filename.obj> \ <filename.obj> \ <filename.obj> obj3 = <filename.obj> \ <filename.obj> \ <filename.obj> and I'm using these compile and link options: #-------------------------------------------------------------- # set link options: # /NOL no logo # /NOI preserve case sensitivity on external names # /NOE no extended dictionary search #-------------------------------------------------------------- lOPTS = /NOL /NOI /NOE cOPTS = /Ss /Q /Ge- /Gd- /C /Ms /Rn My LINK386 line looks like this: LINK386 $(lOPTS) \ $(obj1)+ $(obj2)+ $(obj3), \ <my dll filename>, \ , \ $(lLIBS),\ <my def file>; When I reduce the number of files that I'm linking together, it seems to work. However, I need to be able to link ALL of these files (and probably more). Does anyone know how I can link everything without this error? ----- C-SET2 CFORUM appended at 14:04:20 on 92/09/21 GMT (by 86672308 at WARVM2) Subject: CSD0014 PROBLEM Ref: Append at 13:47:02 on 92/09/21 GMT (by N$DEANS at RALVM29) You could change your link line in your makefile to look like this: link386 @<< ¢(OBJ) est2pmw.exe /align:4 /exepack /base:65536 /De est2pmw.map /NOI y:\lib2\libsmall.lib est2pmw.def << This will cause MAKE to create a temporary response file that the linker reads. Cheers, Graham Perks - UK - graham@vnet.ibm.com ----- C-SET2 CFORUM appended at 03:33:37 on 92/09/23 GMT (by WZ00574 at OS2CUST) Subject: Problems with NMAKE (new version) Had been using old MS C6.0 NMAKE, so don't know if this is a new problem. The current problem occurs in Mar 27 version of NMAKE. Makefiles showing problem: /incl/mystuff.h mystuff.h copy mystuff.h \incl\mystuff.h Fixes needed:ncl\mystuff.h prog.c 1. NMAKE should consider target/dependents equal dates as up-to-date. 2. After executing the commands, NMAKE should query from disk the new modify date of the target, not assume that it is the current time.ng the the file Does anyone have an idea for a workaround to this problem for here and now. I I've been using old MS C6.0 NMAKE, so I don't know if this is a new problem. Cow, every target depending on \incl\mystuff.h get rExample makefile is: When NMAKE runs, it sees the dates of mystuff.h and \incl\mystuff.h as identical. This should be okay, but NMAKE calls target out of date and executes the copy. No problem with an extra copy at every make, but internally NMAKE appears to set the date of \incl\mystuff.h as the current time anddate, not the date on the file after the copy. By making Michael Thompson - Cornell University ----- C-SET2 CFORUM appended at 14:16:59 on 92/09/23 GMT (by DEV0159 at OS2CUST) Subject: C Set/2 and Link386 problems We have a very large application that we are migrating to C Set/2. We have observed the following problems: 1) Link386 L1108 invalid debug format error As far as we can tell, there is a fix available. How do we get a hold of it? 2) We have had certain global and static variables getting improperly initialized. What is the problem and is there a fix for it? Thank you. Dmitry Farberov ----- C-SET2 CFORUM appended at 17:38:44 on 92/09/23 GMT (by AMELINE at TOROLAB6) ..... C-SET2 CFORUM modified at 02:51:08 on 92/09/25 GMT (by HOPKINS at AUSVM8) Subject: C Set/2 and Link386 problems Ref: Append at 14:16:59 on 92/09/23 GMT (by DEV0159 at OS2CUST) Those are APARs PJ05162 (initialize variables to 0 doesn't always work) and PJ04741 (Linker can't handle >64K debug info in an OBJ) Both are bugs in LINK386.EXE, and fixes should be available for both. If you call 1-800-237-5511, identify yourself as a C-Set/2 user, and tell them the APAR numbers,they should ship the fixed linker to you. > To save time, OS2BBS folks may also use the IBM Support option from the > from the Main Menu to request the fixes electronically. We can only > send the fixes directly to a HONE ID, but not yet to a BBS ID (WZ, etc) > either way, we'll get the fixes to you. > Ken Hopkins, OS/2 Software Service and Support Ian Ameline ----- C-SET2 CFORUM appended at 20:48:41 on 92/09/24 GMT (by PNWB016 at OS2CUST) Subject: Static vs. Dynamic linking of Runtime We have an application that we are considering converting to use the dynamic linking runtime. We understand that the NEGATIVE of the dynamic link runtime is the DLL overhead on every call, and the POSITIVE is that the runtime is only loaded once for the entire system. Our application consists of about 15 EXE files that communicate with various OS/2 CM components and between themselves (using DDE, shared memory and every other API we found <grin>). My question is are there any guidelines on when the tradeoff between the dynamic runtime and the static runtime occurs? (We currently link using the static multithreaded library.) Also... if we use the dynamic runtime can we ship the DLL as part of our product? (Which DLL is required, assuming we are using the multithreaded dynamic linking runtime.) Thanks for any advice. The manual goes over HOW this is done, but really doesn't make any recommendations. Wayne "Trying to reduce our working set" Holmes ----- C-SET2 CFORUM appended at 11:30:25 on 92/09/25 GMT (by KEENLEY at TOROLAB6) Subject: Static vs. Dynamic linking of Runtime Ref: Append at 20:48:41 on 92/09/24 GMT (by PNWB016 at OS2CUST) No you cannot ship the runtime DLLs we ship with C Set/2 (the lawyers said so). That is why we provide the instructions in the manual and in this forum on how to build your own runtime DLL. I don't understand your comment about there being an overhead on every call to the DLL. Once the DLL is loaded and initialized, it's as if the runtime were statically linked. The benefit of having one instance of the runtime per process instead of 15 will far outweigh the loading and initializing cost of the runtime DLL. John Keenleyside OS/2 Compiler Dev. ----- C-SET2 CFORUM appended at 15:09:04 on 92/09/25 GMT (by PNWB016 at HONE86) Subject: Static vs. Dynamic linking of Runtime Ref: Append at 11:30:25 on 92/09/25 GMT (by KEENLEY at TOROLAB6) John: Thanks for the info... I figured I couldn't ship the IBM C Runtime, and it looks like I totally missed the part of the manual that talks about how to build a C runtime DLL from the IBM runtime. (Another case of me looking in the wrong place in the manual.) Now for a couple of questions... 1) You mentioned that the instructions on how to build your own runtime DLL were in this forum. Were you specifically talking about how to build a runtime DLL from the IBM supplied library? (I'm at home today and don't have my paper documentation with me.) I looked in the online reference, but can't find anything significant when I search on DLL. 2) My question about DLL overhead had to do with any performance penalty associated with calling a DLL (which I understand goes through a call gate) vs directly calling the library routine conventionally. There are several places in our code where we very rapidly call various functions that are NOT inlined when optimization is turned on. My question boils down to "Does anybody have figures on any performance penalty associated with going through the call gate to a DLL vs. calling a subroutine conventionally?" (Maybe this isn't an issue in OS/2 2.0, but it was in 1.3 due to extra segment setups that needed to be done.) Thanks for you patience.... Wayne "Always more to learn" Holmes U S WEST Communications ----- C-SET2 CFORUM appended at 17:06:11 on 92/09/25 GMT (by KEENLEY at TOROLAB6) Subject: Static vs. Dynamic linking of Runtime Ref: Append at 15:09:04 on 92/09/25 GMT (by PNWB016 at HONE86) Sorry, I got confused about the instructions. I actually appended them in the internal forum but you can get them from the end of Chapter 15 of the user's guide. I can assure you that when a call is made to the runtime DLL it is not going through a call gate. John Keenleyside OS/2 Compiler Dev. ----- C-SET2 CFORUM appended at 17:12:38 on 92/09/25 GMT (by PNWB016 at OS2CUST) Subject: Static vs. Dynamic linking of Runtime Ref: Append at 17:06:11 on 92/09/25 GMT (by KEENLEY at TOROLAB6) John: NEAT! Looks like I will be reading up in Chapter 15. Thanks. Wayne "Off to read the RIGHT chapter this time" Holmes U S WEST Communications ----- C-SET2 CFORUM appended at 16:36:58 on 92/09/26 GMT (by WZ00574 at OS2CUST) Subject: Problem with NMAKE (readable) #1 Clearly I need to figure out how to use this editor - no instructions. Is behavior of (1) identifying identical dates as out-of-date and (2) setting modify date to current rather than actual file timestamp correct. No UNIX systems have exhibited this behavior in makefiles. cp mystuff.h \incl\mystuff.h myprog.obj : myprog.c \incl\mystuff.h \incl\morestuff.h icc ..... When NMAKE runs, even if mystuff.h and \incl\mystuff.h are identical, the same date is taken to be out-of-date and the copy is executed. Internally, NMAKE then marks the date of \incl\mystuff.h as the current time/date rather than the actual date of the file. This causes all other routines depending on \incl\mystuff.h to be considered out-of-date also, and are remade. I could touch \incl\mystuff.h after copying, but I am reluctant to show the files as different dates since they are really identical. Michael Thompson - Cornell University ----- C-SET2 CFORUM appended at 18:38:01 on 92/09/28 GMT (by N$DEANS at RALVM29) Subject: Unresolved external with ceil() I'm using the ceil() function from <math.h>, but LINK386 complains that it is an unresolved external reference at the end of linking. I'm compiling with system linkage, and ceil() wants _Optlink linkage. I've tried : #pragma linkage (ceil, optlink) but it still complains. I am #including <math.h>. What am I missing? Do I have to link with a particular library to use the math functions? Scott Deans ----- C-SET2 CFORUM appended at 20:21:51 on 92/09/28 GMT (by PETT at TOROLAB6) Subject: Unresolved external with ceil() Ref: Append at 18:38:01 on 92/09/28 GMT (by N$DEANS at RALVM29) ceil() is present in the standard libraries (DDE4SBS.LIB and DDE4MBS.LIB). It is not present in the subsystems programming library (DDE4NBS.LIB). Are you compiling with the /Rn switch? If so, either remove it, or find some way not to use the ceil() function. Roger Pett ----- C-SET2 CFORUM appended at 20:43:44 on 92/09/28 GMT (by N$DEANS at RALVM29) Subject: Unresolved external with ceil() Ref: Append at 20:21:51 on 92/09/28 GMT (by PETT at TOROLAB6) Thanks for your reply. The answer does pose a problem for us, however. Our code needs the /Rn switch (to generate a subsystem), but I also need the ceil() function for an important calculation. Is there any way around this? Could our group obtain a copy of the source code for ceil() (or a DLL to link in) to solve this problem? Scott Deans MWave Audio, Video, and Speech RTP, NC N$DEANS at RALVM29 ----- C-SET2 CFORUM appended at 00:16:28 on 92/09/29 GMT (by PNWB016 at HONE84) Subject: Static vs. Dynamic linking of Runtime Ref: Append at 17:06:11 on 92/09/25 GMT (by KEENLEY at TOROLAB6) John: Wanted to let you know that I dug through Chapter 15 and we now have our runtime in a DLL. Thanks for pointing me in the right direction! Wayne "It is amazing how an EXE will shrink when it doesn't have to include any C runtime" Holmes ----- C-SET2 CFORUM appended at 05:32:34 on 92/09/29 GMT (by DEV3543 at HONE81) Subject: C Set/2 and Link386 problems Ref: Append at 17:38:44 on 92/09/23 GMT (by AMELINE at TOROLAB6) Hi there! And you thought you could hide over on this side of the World! If I get this software setup, I might be using this a lot more, glad that you are here already, I don't have to whine to John Soyring about support for the C Set/2 on here...<g> Alan DuBoff - Bunker Hill Software ----- C-SET2 CFORUM appended at 13:09:46 on 92/09/29 GMT (by PETT at TOROLAB6) Subject: Unresolved external with ceil() Ref: Append at 20:43:44 on 92/09/28 GMT (by N$DEANS at RALVM29) If you know that the number in question will fit into an integer, the following macro should do what you want: #define ceil(x) ((double)(1 + (int)(x))) If not - contact me offline, and we'll see if we can get you the library code. Roger Pett ----- C-SET2 CFORUM appended at 18:53:03 on 92/09/29 GMT (by AMELINE at TOROLAB6) Subject: C Set/2 and Link386 problems Ref: Append at 05:32:34 on 92/09/29 GMT (by DEV3543 at HONE81) Alan, Good to see you here -- as you can see, the entire development team has access here -- if the node is TOROLAB6, chances are good that the person is on the team. Regards, Ian Ameline ----- C-SET2 CFORUM appended at 00:24:30 on 92/09/30 GMT (by XXPRMN01 at TORVMCOP) Subject: Variable list arguments Ian, I am wondering if the va_arg features are working properly. Consider the following: VOID WriteData(PSZ pszFmt, ...) { va_list arglist; CHAR szBuffer[512]; ULONG cb; va_start(pszFmt, arglist); DosWrite(hpWrite, (PVOID)szBuffer, sprintf(szBuffer, pszFmt, arglist), &cb); va_end(arglist); } if you call the function as thus: WriteData("Hello %s", "Ian"); it don't wanna work!! This is also a multithreaded app and it is running in thread 3 (as reported by IPMD). Even if I try to grab the argument like in the online example, nada, still don't get the address of the "Ian" argument. Wadda ya think?? Matt Smith, Prominare Inc. ----- C-SET2 CFORUM appended at 04:34:19 on 92/09/30 GMT (by BIGBILL at TOROLAB6) Subject: Variable list arguments Ref: Append at 00:24:30 on 92/09/30 GMT (by XXPRMN01 at TORVMCOP) Try vsprintf(). ;-) Bill Sarantakos OS/2 C++ Compiler Development Toronto, Ontario ----- C-SET2 CFORUM appended at 05:14:55 on 92/09/30 GMT (by DEV3543 at HONE83) Subject: C Set/2 and Link386 problems Ref: Append at 18:53:03 on 92/09/29 GMT (by AMELINE at TOROLAB6) > Good to see you here -- as you can see, the entire development team >has access here -- if the node is TOROLAB6, chances are good that the >person is on the team. I'm glad to be here, now that you guys have some software to accesss with <g> Seriously, I'm am very happy to see decent software to access IBMLink with, you probably know that I have beat up on Lee Reiswig and John Soyring several times because the support for developers has been very poor with IBMLink up until now. I plan to use IBMLink more and CI$ less, was just concerned that support wouldn't be a good over here, it's finally getting good on CI$. I can assume from your message that support for C Set/2 will be good and I assume C++ will be handled here also. Really looking forward to seeing your C++ compiler, I have already seen some of the competition and had luke warm feelings towards it. I am waiting to see the type of support you add in the classes, one of the competition didn't have SOM yet, and won't comment on it. I just got a BETA of ObjectPM that looks pretty good. Hey, I am going to get to do a project in C in a few weeks. It is only a 2 or 3 week project, but I hear it is in OS/2 2.0 and it is in C. It is for the Vancouver Police. I guess I'm going to write a prototype for something. I would like to fly up there, but it sounds like I'm going to be working down in L.A. for this project. I have to work in EASEL til the end of November which is when a large OS/2 project is coming up. I pi$$ and moan so much they are throwing this C project to me...<g> I just tell them like it is, EASEL is the absolute worst development environment I have ever worked in for my entire career in OS/2, I was on the verge of leaving the company over it...<g> then I would get more time for Bunker Hill...:-) Alan DuBoff - Bunker Hill Software ----- C-SET2 CFORUM appended at 05:16:02 on 92/09/30 GMT (by DEV3543 at HONE83) Subject: Variable list arguments Ref: Append at 04:34:19 on 92/09/30 GMT (by BIGBILL at TOROLAB6) >Bill Sarantakos OS/2 C++ Compiler Development Toronto, Ontario Yes, glad to see you here. I'm waiting for your C++ compiler, and don't think for one minute that I'm patient to get it...<g> Will C++ support be done on this forum as well (I hope, since C Set/2 would be a subset of C++ I imagine) ? Alan DuBoff - Bunker Hill Software ----- C-SET2 CFORUM appended at 12:43:35 on 92/09/30 GMT (by NR28045 at ATLVM2) Subject: Variable list arguments Ref: Append at 00:24:30 on 92/09/30 GMT (by XXPRMN01 at TORVMCOP) > va_start(pszFmt, arglist); > DosWrite(hpWrite, (PVOID)szBuffer, > sprintf(szBuffer, pszFmt, arglist), &cb); > va_end(arglist); > } > if you call the function as thus: > WriteData("Hello %s", "Ian"); Shouldn't va_start(pszFmt, arglist) be va_start(arglist, pszFmt)? Also, don't you need to use va_arg() to pull in the next argument from the args passed to WriteData? Sudy ----- C-SET2 CFORUM appended at 13:25:01 on 92/09/30 GMT (by BIGBILL at TOROLAB6) Subject: Variable list arguments Ref: Append at 05:16:02 on 92/09/30 GMT (by DEV3543 at HONE83) More than likely, it will be a different forum to separate it from the product that is already available (since it'll be a beta). Bill Sarantakos OS/2 C++ Compiler Development Toronto, Ontario ----- C-SET2 CFORUM appended at 20:17:20 on 92/09/30 GMT (by IL54396 at HONE82) Subject: Unresolved external with ceil() Ref: Append at 20:43:44 on 92/09/28 GMT (by N$DEANS at RALVM29) If you need source code for ceil() or any other C run time library function I strongly suggest the book _The_Standard_C_Library_ by P.J. Plauger. P.J. Plauger chaired the Library Subcomittee of X3J11 (ANSI C), so if anyone knows ANSI C, it should be him. The book contains the complete ANSI document on the Library, plain english translations and sample code for the entire library. I have to say that this book is the best investment in a computer book I have ever made. The pertinent facts are Title: _The_Standard_C_Library_ Author: P.J. Plauger Publishers: Prentice Hall Price: forgotten, but believe it was app. $35 US Chris Breisch, Pritsker Corp. ----- C-SET2 CFORUM appended at 04:48:02 on 92/10/01 GMT (by DEV3543 at HONE83) Subject: Variable list arguments Ref: Append at 13:25:01 on 92/09/30 GMT (by BIGBILL at TOROLAB6) BigBill, I'll be in that forum when it starts, you can be sure of that. I'm anxiously waiting for Comdex... Alan DuBoff - Bunker Hill Software ----- C-SET2 CFORUM appended at 18:37:30 on 92/10/01 GMT (by IL43706 at OS2CUST) Subject: SYS3171 ERROR I am trying to convert an OS/2 1.3 16 bit program that we have written to an OS/2 2.0 32 bit program. I keep geting a sys3171 error at a number of places when running the program. The program consists of 4 dll's and a number of exe's: mdicore.dll - handles putting up screens and displaying the data. mdislq.dll - handles getting data from the database. It makes 16 bit calls to MS_SQL routines. These routines are declared as as _Far16 _Cdecl and pointers are passed as _Seg16 pointers. ccap.dll - has code for customizing the behavior of each exe. ccapsql.dll - has code for getting custom data for each exe using rountines in mdisql.dll. *.exe - The exe consists of one function call to mdicore.dll that starts an application and a number of include files that contain tables that the various exe's run off of. I keep getting sys3171 errors when some functions are called. The error doesn't happen every time the function is called but only after a certain sequence of events. I have looked at the registers for one of these functions just before it executes both when it succeeds and when it fails. Below are the contents of the registers that are different between the two instances of one of these function calls: WORKS FAILS EAX 00451B02 00441B02 EDX 00451002 00441002 ESP 00451B24 00441B24 EBP 00451B30 00441B30 ESI 00450000 00440000 EDI 00450000 00440000 The above error occurs when a call is made to a mdisql.dll function that makes a 16 bit MS_SQL call. The debugger breaks in _EDCThunkProlog at the start of the mdisql function. I also get sys3171 error after certain sequences of events after making calls to WinSetFocus and WinCreateWindow. I am compiling with C/SET2 with CSD000014. The Linker is link386.exe dated 3/30/92. The stack size for the applications is set to 125K and the stack for the 16 bit calls is set by #pragma stack16(51200) in the module that makes the 16 bit calls. I have tried changing the value in the #pragma stack16 but this doesn't seem to make nay difference. If anyone can see a pattern in this info or can point at something else to look at I would appreciate it. Dan Paulson --- CCAP. ----- C-SET2 CFORUM appended at 19:27:49 on 92/10/01 GMT (by POSTER at LSAVMIC1) Subject: Problem using fopen function I am converting a multithreaded program that was developed using C/2 under OS/2 1.3 to C-Set/2 under OS/2 2.0. A problem occurs when opening a stream uning the fopen function in a thread other than thread one. The error message that appears in the OS/2 window is: General protection fault exception occurred at EIP=000154F3 on thread 0003. The error message that comes up in the dialog box is: SYS3175 I called the same fopen library function successfully in thread one. Any suggestions? Any help would be greatly appreciated. Pam Osterhout. ----- C-SET2 CFORUM appended at 21:52:41 on 92/10/01 GMT (by PNWB016 at HONE83) Subject: Problem using fopen function Ref: Append at 19:27:49 on 92/10/01 GMT (by POSTER at LSAVMIC1) Pam: Are you linking with the multithreaded library support? (I got caught by this one when converting our MSC 6.0 programs to C Set/2.) Wayne "Now using the Workframe to prevent this type of error" Holmes ----- C-SET2 CFORUM appended at 16:16:20 on 92/10/02 GMT (by KILLBECK at HOUVMSCC) Subject: Unresolved external with ceil() Ref: Append at 13:09:46 on 92/09/29 GMT (by PETT at TOROLAB6) Doesn't that fail if x has a fraction part of zero? E.g., it would give ceil(1.0) ==> 2.0 instead of 1.0. Lynn Killingbeck ----- C-SET2 CFORUM appended at 19:54:51 on 92/10/05 GMT (by IL48672 at HONE82) Subject: Function prototyping w/ coercion Given: double foo (char); /* function prototype */ double bar; /* variable declaration */ bar = foo (0.0); /* Is this legal? */ C Set/2 sems to think that this is legal, even at /W3. If you add the /Ka option you get something to the effect of "Precision may be lost". Now, according to K&R Second Edition, function coercion is performed on prototyped function calls. The example given in the book, seems fairly reasonable: double sqrt(double); double root2; root2 = sqrt(2); The argument 2 can be promoted from an int to a double. But, as in my first example, should a double be DEmoted to a char? The entire practice seems dubious at best, but I would be interested in knowing what the ANSI Standard and the C Set/2 development team has to say about it. Chris Breisch NT means Not Tested Pritsker Corporation ----- C-SET2 CFORUM appended at 20:07:24 on 92/10/05 GMT (by MCCRADY at TOROLAB6) Subject: Function prototyping w/ coercion Ref: Append at 19:54:51 on 92/10/05 GMT (by IL48672 at HONE82) A character and a double are both arithmetic types (ANSI 3.1.2.5, "Types", which states The type char, the signed and unsigned integer types, and the enumerated types are collectively called integral types. ... Integral and floating types are collectively called arithmetic types. The rules for argument/parameter compatibility are the same as for the assignment operator, as stated by ANSI 3.3.2.2 (Function Calls): If the expression that denotes the called function has a type that includes a prototype, the arguments are implicitely converted, _as if by assignment_, to the types of the corresponding parameters. (Highlighting is mine). The type compatibility rules for the assignment operator are in ANSI 3.3.16.1, which states One of the following shall hold: - the left operand has qualified or unqualified arithmetic type and the right has arithmetic type. - etc... Thus, assignment to and from char and double is allowed (although dubious when going from double to char, as you pointed out). That's why C Set/2 gives a warning when truncation occurs; it can't be a severe error, since ANSI requires this to be legal. ++don; ----- C-SET2 CFORUM appended at 21:58:58 on 92/10/06 GMT (by AMELINE at TOROLAB6) Subject: Prices. Ref: None ABSTRACT: For a limited time only, all customers can acquire IBM Developer's WorkSet/2 (10G2995) (3.5-inch); (10G3363) (5.25-inch) for a one-time charge of only $375 -- a $520 savings off the normal $895 one-time charge. Orders must be placed on or before April 6, 1993, if using a credit card by calling 1-800-3IBM-OS2 (9 a.m. to 9 p.m. Eastern time). Orders must be placed on or after October 13, 1992, but no later than April 6, 1993, if using a purchase order by calling 1-800-IBM-CALL (6 a.m. to 5 p.m. Mountain time). This discount cannot be combined with any other promotions. IBM reserves the right to modify or withdraw this promotion at any time. Regards, Ian Ameline ----- C-SET2 CFORUM appended at 23:56:33 on 92/10/06 GMT (by MOONEY at TOROLAB6) Subject: Prices. Ref: Append at 21:58:58 on 92/10/06 GMT (by AMELINE at TOROLAB6) Canadian customers can call 1-800-465-7999. The price is CDN$ 445. Buy early and buy often. dave ----- C-SET2 CFORUM appended at 17:55:48 on 92/10/08 GMT (by XXWESB07 at TORVMCOP) Subject: No machine-state dump on access violation According to chapter 9 of the C Set/2 User's Guide, when a C program causes an access violation exception, the run-time library maps this to the SIGSEGV signal. The default behavior for this is to produce a machine-state dump and exit with code 99. I do not use any signal handlers or use the raise() function yet I rarely get this machine-state dump (I assume this to mean the PM window with the register dump). My program just terminates on an access violation. At least IPMD is able to catch the access violation. I am using CSD00014. My programs are single or multiple threaded PM applications. Is there something I should be doing in these PM programs to get the machine-state dump or do I have to set up signal handers and do it myself? Craig Knelsen, Information Systems Management Corp. (ISM) One Research Drive, Regina, SK Canada S4S 7H1 (306) 781-5320 ----- C-SET2 CFORUM appended at 21:44:46 on 92/10/08 GMT (by BRENT at DALVM41B) Subject: C Set/2 CSD00022 The latest C Set/2 CSD00022 is now available in 3.5" format for download from the OS/2 BBS. The 5.25" disk images are not available yet but I expect to get them soon. The following APARS have been added since the previous CSD00014. (Diskette 1 contains the complete list of all APARS in the file CSDFIXES.LST) +-----------+---------------------------------------------------------------+ | APAR | PROBLEM DESCRIPTION | | NUMBER | | +-----------+---------------------------------------------------------------+ | PJ05225 | The original fix for this problem may have caused other opti- | | | mization problems. Now we believe that we have a complete | | | fix for this problem. | +-----------+---------------------------------------------------------------+ | PJ05303 | Optimization problem: a parameter in an _Optlink function | | | that was assigned to a global register was not being kept | | | alive long enough. | +-----------+---------------------------------------------------------------+ | PJ05737 | A "data record too large" message from the linker was being | | | generated when a union where the first member was more than | | | 1024 bytes smaller than another member was being initialized | | | OR when an aggregate within a user data segment was unini- | | | tialized. | +-----------+---------------------------------------------------------------+ | PJ05722 | The compiler was generating an IMUL instruction with an | | | operand size prefix but the constant was 32 bits long instead | | | of 16-bits long. | +-----------+---------------------------------------------------------------+ | PJ05723 | Optimization problem: the compiler was trapping when trying | | | to optimize a floating-point intensive procedure where | | | floating-point spills and reloads were necessary. | +-----------+---------------------------------------------------------------+ | PJ05716 | The compiler was emitting stack probes when the size of all | | | local variables was greater than 4K instead of when the size | | | is greater than 2K. In some cases, stack probes were being | | | emitted in the wrong place as well. This would cause strange | | | traps to occur in multi-threaded programs. | +-----------+---------------------------------------------------------------+ | PJ05728 | Stack probes were not enabled during compilation of multi- | | | threaded runtime library code. | +-----------+---------------------------------------------------------------+ | PJ05556 | The runtime library termination routine was not checking to | | | make sure runtime initialization had completed. | +-----------+---------------------------------------------------------------+ | NOAPAR | Provides a means to set the number of spaces to be inserted | | | when tabs are encountered in the source file. The default | | | tab expansion is 8 spaces, as it was in the original IPMD. A | | | new environment variable, PMDTAB, is now available to cus- | | | tomize the tab expansion constant. For example, "SET | | | PMDTAB=5" causes 5 spaces to be inserted for every tab. | +-----------+---------------------------------------------------------------+ | PJ05863 | In multithreaded applications, the debugger would perform a | | | "Run" when a "Step over" or a "Step debug" was requested. | +-----------+---------------------------------------------------------------+ | PJ05148 | Internal debugger errors were sometimes reported when per- | | | forming a "Find" and when scrolling the source view. | +-----------+---------------------------------------------------------------+ | PJ05117 | Occasionally the debugger would automatically shut itself | | | down when creating or scrolling a source view. Included in | | | this APAR is a problem in which the application is left | | | active when the debugger terminates after an exception. | +-----------+---------------------------------------------------------------+ | NOAPAR | General internal PM debugging enhancements | +-----------+---------------------------------------------------------------+ | NOAPAR | General internal storage window enhancements | +-----------+---------------------------------------------------------------+ | NOAPAR | The name displayed for a subscripted array (i.e., x(i)) is | | | not always updated - if the value remains the same while the | | | name changes, the name is not updated. | +-----------+---------------------------------------------------------------+ | NOAPAR | If the stack window is open and data is entered in the appli- | | | cation window, the stack view can display the wrong part name | | | for a function name. This can also cause the debugger to | | | crash if the focus is changed between the source, the stack, | | | and the application several times. | +-----------+---------------------------------------------------------------+ | NOTE: The fixes listed above were included in CSD0022. | +---------------------------------------------------------------------------+ Brent Allen - IBM LAN Systems Integration Services Southlake, TX ----- C-SET2 CFORUM appended at 22:31:21 on 92/10/08 GMT (by KUO at MANVM1) --- Subject: MAKE file document Hi. Does anbody have document on how to prepare the input file for NMAKE utility ? thanks so much. Shu-Rong Kuo MANVMD1(KUO) ----- C-SET2 CFORUM appended at 13:07:56 on 92/10/09 GMT (by BIGBILL at TOROLAB6) Subject: No machine-state dump on access violation Ref: Append at 17:55:48 on 92/10/08 GMT (by XXWESB07 at TORVMCOP) The dump is written to stderr, which for a PM program is by default the great bit-bucket (to be recycled of course!). Redirect stderr to a file when starting the app, you should then see the dump. Bill Sarantakos OS/2 C++ Compiler Development Toronto, Ontario ----- C-SET2 CFORUM appended at 15:14:05 on 92/10/09 GMT (by PNWB016 at HONE82) Subject: C Set/2 CSD00022 Ref: Append at 21:44:46 on 92/10/08 GMT (by BRENT at DALVM41B) Brent: Thank-you! Hopefully this CSD will help with some of the problems we are seeing running IPMD. Wayne "Time to do a download" Holmes ----- C-SET2 CFORUM appended at 17:32:53 on 92/10/09 GMT (by IL53645 at OS2CUST) ..... C-SET2 CFORUM modified at 21:22:05 on 92/10/09 GMT (by IL53645 at OS2CUST) Subject: TCP/IP Support I am on a crusade to find some IBM supported C Compiler which will compile the programs in the TCP/IP pgmmrs toolkit ($500). I have C/2 V1.1, Workset/2, MS C /C++ V7.0, Turbo C++, Quick C 2.5.............. IBM requires Microsoft C Versi on 6.0a (not a current release) in order to compile the programs. I bought bot h programmers toolkits ($500 per pop) for OS/2 and DOS because I need socket pr ograms on both ends. Originally I bought C/2 V1.1 because it develops programs for both platforms. How about some support here for an unnecessary limitation? This is a very interesting portability issue, when a particular downlevel compi ler is required and is no longer available. + 2 hours later...... After opening a PMR, the Level II support guy gave me an APAR number dealing with MS C/C++ V7.0. For those using this see 'PJ04082' ----- C-SET2 CFORUM appended at 14:38:50 on 92/10/11 GMT (by PETT at TOROLAB6) Subject: No machine-state dump on access violation Ref: Append at 17:55:48 on 92/10/08 GMT (by XXWESB07 at TORVMCOP) Dirty tricks to get the C Set/2 dump from a PM program; invoke the PM program, and redirect handle 2 to a file, like this: pmprgm 2> dump.log Your C Set/2 termination dump will be left in dump.log. You can do the same thing from within the program by forcing file handle 2 to point to a dump file. A simple way to do this is as follows: int handle = open("dump.log", O_WRONLY | O_CREAT, S_IREAD | S_IWRITE); if (handle != -1 && 2 != handle) { dup2(handle,2); close(handle); } '{' and '}' are open and close braces respectively. Roger Pett ----- C-SET2 CFORUM appended at 12:33:09 on 92/10/12 GMT (by HARGRAVE at BCRVMPC1) Subject: TCP/IP Support Ref: Append at 17:32:53 on 92/10/09 GMT (by IL53645 at OS2CUST) Although I am not a TCP/IP expert, the OS/2 TCP/IP 1.2 libraries are built with MS C 6.0 (and for some reason the stack probe calls were left in.) If you use IBM C/2 1.1 (not C Set/2) to build your TCP/IP app then the name of the stack probe routine is different than MS C 6.0. The following assembly routine I wrote, when assembled and linked in, will allow an IBM C/2 1.1 program to use the static OS/2 TCP/IP 1.2 libraries. (This is for the large code models only.) EXTRN __chkstk:FAR _TEXT SEGMENT WORD PUBLIC 'CODE' ASSUME CS: _TEXT PUBLIC __aFchkstk __aFchkstk PROC FAR jmp FAR PTR __chkstk __aFchkstk ENDP _TEXT ENDS END I hope this solves your problem. BJ Hargrave ----- C-SET2 CFORUM appended at 18:11:43 on 92/10/12 GMT (by IL03421 at OS2CUST) Subject: C Set/2 CSD CS00022 Installation Problem I downloaded C Set/2 CSD CS00022 from this BBS and tried to run the SERVICE.EXE program. The program then started the PM screen and prompted me to insert CSD 00013 Disk 2. I inserted the second disk and it gave me the same message. Is this the right CSD or is there some mixup with the SERVICE.EXE parameters? What is the recommened method for installing CS00022? ----- C-SET2 CFORUM appended at 21:25:21 on 92/10/12 GMT (by BRENT at DALVM41B) Subject: C Set/2 CSD CS00022 Installation Problem Ref: Append at 18:11:43 on 92/10/12 GMT (by IL03421 at OS2CUST) Sounds like computer gremlins. The files on the BBS and running SERVICE should work. I'm not sure what the problem might be other than a bad diskette or something like that. I've installed this CSD myself and I also re-downloaded the files to verify that they are correct on the BBS. About the only thing I could suggest is that you reformat those diskettes (make sure you don't have any bad sectors) then rebuild the disks. Brent Allen - IBM LAN Systems Integration Services Southlake, TX ----- C-SET2 CFORUM appended at 21:48:51 on 92/10/12 GMT (by CRUISE at YKTVMH) Subject: C Set/2 CSD CS00022 Installation Problem Ref: Append at 21:25:21 on 92/10/12 GMT (by BRENT at DALVM41B) Did you run service. or A:\service. If the first you could have gotten an old copy of service and if this was the one for cs00013. Gotcha!!! Anth ----- C-SET2 CFORUM appended at 22:44:58 on 92/10/12 GMT (by BIGBILL at TOROLAB6) Subject: C Set/2 CSD CS00022 Installation Problem Ref: Append at 21:48:51 on 92/10/12 GMT (by CRUISE at YKTVMH) ...or thought you wrote CSD 22 over disk 1 of CSD 13 but didn't (for any number of reasons). Bill Sarantakos OS/2 C++ Compiler Development Toronto, Ontario ----- C-SET2 CFORUM appended at 15:46:24 on 92/10/14 GMT (by IL03421 at OS2CUST) Subject: C Set/2 CSD CS00022 Install Problems I read all the messages and decided to re-download. This is what I did: o Loged on to the OS2BBS via my IIN modem connection to IBMLink o Moved to the corrective service library o Selected the C Set/2 CSD file CS00022 o Selected the fist and second 3.5inch disks for downloading o Selected download selected items and proceeded with the download o Opened an OS/2 window and recieved the SHOWTOPC.CMD file into a new empty directory o Once recieved the SHOWTOPC.CMD needs to be edited to remove the main frame drive specification A: (I have not been able to recieve a file without doing this) o executed the SHOWTOPC.CMD from the new directory and waited for the download to complete (in my case this is nearly eight hours) o The two files were recieved and compared to the original download and found to be the same name and size CSET2CB1.DSK 1470049 CSET2CB2.DSK 1306721 o I noticed that the files were not the size indicated on the OS2BBS download screens (1470139 and 1306801 respectively) o I then rebuilt the disk images using the LOADDSKF.EXE utility o The root directory of disk 1 was the same o I made sure I was loged off the network and ran SERVICE by typing at A:¢ >A:¢SERVICE.EXE o The program jumped to the PM screen as before and gave the same message to remove the disk from drive A and insert the IBM C Set/2 Corrective Service Level #CS00013 Diskett 2 into Drive A. I can only conclude that somehow I am getting the wrong files. This has now cost our company a great deal of time and money. I would appreciate a phone call to help clear up this problem. I can be reached at my desk at (414) 673-8733 7:30a to 5:00p central time. I need theses fixes and I need them now! ----- C-SET2 CFORUM appended at 17:04:27 on 92/10/14 GMT (by KDDD7A4 at OS2CUST) Subject: C Set/2 Debugger and DLLs I have written a REXX function in a DLL using IBM C SET/2. How do I debug the DLL with the Debugger facility? Kevin D. Doglio ----- C-SET2 CFORUM appended at 19:15:48 on 92/10/14 GMT (by BRENT at DALVM41B) Subject: C Set/2 CSD CS00022 Install Problems Ref: Append at 15:46:24 on 92/10/14 GMT (by IL03421 at OS2CUST) It sounds like you've done everything correctly and the file sizes you report are correct. The file size listed on the Tagged Items Screen is just a close approximation based on the record length and number of records in the file as it exists on the VM system (the Package Description screen lists the actual PC file size). The only suggestion I have would be to call the Support Center at 1-800-237-5511. They could contact the appropriate developers to have the problem looked at. Sorry I don't have a better answer for you. Brent Allen - IBM LAN Systems Integration Services Southlake, TX ----- C-SET2 CFORUM appended at 00:17:07 on 92/10/16 GMT (by NAAO3IY at HONE82) Subject: C Set/2 DDE4SBS missing stuff? Ref: Append at 19:15:48 on 92/10/14 GMT (by BRENT at DALVM41B) I'm just beginning to learn how to use C Set/2, and I seem to have a problem -- if I compile with /Gd+, I frequently get an EXE that will not load because it wants something (_matherr and exit are examples) not in DDE4SBS.DLL. SYS127. CS00022 is on. John Kennedy, Hoechst Celanese (The OS/2 Hobbit) ----- C-SET2 CFORUM appended at 11:58:46 on 92/10/16 GMT (by KEENLEY at TOROLAB6) Subject: C Set/2 DDE4SBS missing stuff? Ref: Append at 00:17:07 on 92/10/16 GMT (by NAAO3IY at HONE82) Please make sure you link with /NOI when you dynamically link the C runtime. If you don't the linker converts everything to upper case. John Keenleyside OS/2 Compiler Dev. ----- C-SET2 CFORUM appended at 16:22:28 on 92/10/16 GMT (by IL03421 at OS2CUST) Subject: CSD CS00022 Install Fix Thanks to an OS/2 user I resolved my installation problem. It turns out that SERVICE.EXE builds a temp file on the root directory of the hard disk that was left there because the CSD 13 install failed. When the CSD 13 install failed I got the files off Compuserv and installed them with the PKUnzip and XCOPY. The temp file was never deleted. To solve the problem delete the file namedCSF$_SEL.000 in the root directory of the hard disk. The SERVICE.EXE and install for CSD 22 then ran fine. To IBM SERVICE.EXE developers: The SERVICE.EXE program should check to see if the temp file is still there and if a CSD install is not complete, but since all CSD are accumulative, give the user the option to ignore the old CSD and install the new one. ----- C-SET2 CFORUM appended at 16:39:28 on 92/10/16 GMT (by V2TE4RP at POKVMCP2) Subject: L2029 Error From: Roy R. Pineda(V2TE4RP at POKVMCP2,Tieline 532-5635) I am compiling and linking a program that calls a PS+ API. I received this error: Testlog.obj(Testlog.c) : error L2029 : 'ALOGOn' : unresolved external When I compile and link this same program on my co-worker's machine it compiles and links correctly. I have copied his config.sys file, and I have created the same directories as him. We have compared the ALOGON.DLL & ALOGON.LIB files, and they both are the same. We also use the same exact makefile. Please, tell me what is going on and how it can be resolved??? I would like to use C-SET2 as soon as possible... Anxiously Awaiting, Roy