Date: Thu, 23 Dec 2004 00:04:20 EST-10EDT,10,-1,0,7200,3,-1,0,7200,3600 Subject: [UnixOS2_Archive] No. 481 ************************************************** Wednesday 22 December 2004 Number 481 ************************************************** Subjects for today 1 _fmutex error in LIBC for GCC 3.3.5 : lsunley at mb.sympatico.ca 2 chkdll32 & libc06b2.dll : John Poltorak 3 Re: Possible GCC errors was Re: postgreSQL v8.0 rc1 beta is released : lsunley at mb.sympatico.ca 4 Re: chkdll32 & libc06b2.dll : Knut St. Osmundsen" 5 Re: chkdll32 & libc06b2.dll : Henry Sobotka 6 Re: chkdll32 & libc06b2.dll : Steven Levine" 7 Re: chkdll32 & libc06b2.dll : Steven Levine" 8 Possible symlink problem with earlier kernel : lsunley at mb.sympatico.ca 9 Re: Debugging DLLs : Henry Sobotka **= Email 1 ==========================** Date: Tue, 21 Dec 2004 07:49:16 -0500 From: lsunley at mb.sympatico.ca Subject: _fmutex error in LIBC for GCC 3.3.5 Hi I have this report of an error using postgreSQL that appears to point to a GCC 3.3.5 LIBC problem Lorne ===========during normal operation ============== LOG: select() failed in statistics collector: Invalid argument LOG: disabling statistics collector for lack of working socket LOG: database system was shut down at 2004-12-21 08:18:48 CET LOG: checkpoint record is at 0/A2A574 LOG: redo record is at 0/A2A574; undo record is at 0/0; shutdown TRUE LOG: next transaction ID: 544; next OID: 17230 LOG: database system is ready _fmutex operation failed: LIBC Heap request Abnormal program termination - pid=0x75 - tid=0x02 - E:\OS2PROG\UTILITY\PGSQL\BIN\POSTMASTER.EXE And when I press CTRL-C in the console after this _fmutex error I get: ============= pressing CTRL-C in postmaster ================== LOG: checkpoints are occurring too frequently (3 seconds apart) HINT: Consider increasing the configuration parameter "checkpoint_segments". LIBC: internal error!! signal sem is dead/deadlocked!!! Process terminated by SIGTERM - pid=0x75 - tid=0x01 - E:\OS2PROG\UTILITY\PGSQL\BIN\POSTMASTER.EXE -- ----------------------------------------------------------- lsunley at mb.sympatico.ca ----------------------------------------------------------- **= Email 2 ==========================** Date: Tue, 21 Dec 2004 13:58:52 +0000 From: John Poltorak Subject: chkdll32 & libc06b2.dll Is this to expected? :- C:\usr\lib>chkdll32 libc06b2.dll File is not a valid OS/2 .EXE or .DLL file -- John **= Email 3 ==========================** Date: Tue, 21 Dec 2004 07:51:32 -0500 From: lsunley at mb.sympatico.ca Subject: Re: Possible GCC errors was Re: postgreSQL v8.0 rc1 beta is released Hi Knut In <41C81097.70708 at anduin.net>, on 12/21/04 at 01:01 PM, "Knut St. Osmundsen" said: >lsunley at mb.sympatico.ca wrote: >> In <20041221024632.11083BDB6A at generation.lgisp.net>, on 12/20/04 >> at 06:46 PM, "Dave Yeo" said: >> >> >>>On Tue, 21 Dec 2004 02:16:58 +0000, John Poltorak wrote: >> >> >>>>Hmmm... >>>> >>>>Similar result when running the new NTPD:- >>>> >>>>http://hobbes.nmsu.edu/pub/new/ntp-4.2.0-b2-os2-emx.zip >>>> >>>> >>>>G:\eval\ntp>ntpd.exe >>>> >>>>Process terminated by SIGILL - pid=0x01bb - tid=0x01 - >>>>G:\EVAL\NTP\NTPD.EXE >>>> >>>> >>>>This looks gcc/libc related. >> >> >>>I was getting similar results with a few things that I traced down to DLL >>>conflicts. Some other things are also doing this for I don't know why. >>>Dave >> >> >> Thanks... >> >> When I run the thing I have the GCC 3.3.5 stuff at the front of path and >> libpath. >> >> When I test on a eCS system I don't set anything in beginlibpath or >> endlibpath and have .\. in LIBPATH. >> >> There also appears to be a bug in GCC3.3.5 setlocale(LC_MESSAGES, NULL) >> always returns a null string rather than the messages language setting. >As far as I can tell it's returning the current locale for the >LC_MESSAGES category, and that should work. The code updating it looks >fine too... I will have to test this. setlocale() shouldn't return NULL >unless the category is invalid. OK then the problem is in the postgreSQL code which I thought it would be. >> I don't know if that is a GCC bug or postgreSQL does some bad things > > when it finds that and does not recognize the set LANG value. > > >> When set lang=de_DE initdb will work fine. When set LANG=de_DE_EURO initdb >> fails... >> >> Is that trailing _EURO part of the standard for language settings? >No, there is no de_DE_EURO locale for libc afaik. LIBC is using the the >OS/2 unicode library, which takes it's data from :\language. >IIRC there are only a handful locales for the OS/2 unicode library, and >they are all encoded in a single dll. I'm not sure if there might be a >euro modifier or the de_DE locale, you'll have to experiment with that. I am going to do that tonight. >Btw. keep in mind that LANG affects all C applications, and there are >watcom, emx, vac365, vac308, various older ibm C version, and libc, >which all may have their own set of locales. >Kind Regards, > knut >PS. Do me a favor and don't call LIBC GCC. I mean there are no setlocale >in GCC. setlocale is in the CRT, which is LIBC. So, refere to >LIBC+versions, just the LIBC DLL. Will do... Lorne -- ----------------------------------------------------------- lsunley at mb.sympatico.ca ----------------------------------------------------------- **= Email 4 ==========================** Date: Tue, 21 Dec 2004 15:45:07 +0100 From: "Knut St. Osmundsen" Subject: Re: chkdll32 & libc06b2.dll John Poltorak wrote: > > Is this to expected? :- > > > C:\usr\lib>chkdll32 libc06b2.dll > File is not a valid OS/2 .EXE or .DLL file > All evidence is aginst chkdll32 here. :-) Kind Regards, knut **= Email 5 ==========================** Date: Tue, 21 Dec 2004 09:52:36 -0500 From: Henry Sobotka Subject: Re: chkdll32 & libc06b2.dll John Poltorak wrote: > > Is this to expected? :- > > > C:\usr\lib>chkdll32 libc06b2.dll > File is not a valid OS/2 .EXE or .DLL file Yes, if the DLL or .EXE has been lxlite'd. h~ **= Email 6 ==========================** Date: Tue, 21 Dec 2004 09:54:22 -0800 From: "Steven Levine" Subject: Re: chkdll32 & libc06b2.dll In <20041221135851.E80 at warpix.org>, on 12/21/04 at 01:58 PM, John Poltorak said: >Is this to expected? :- Funny you should ask. >C:\usr\lib>chkdll32 libc06b2.dll >File is not a valid OS/2 .EXE or .DLL file This is expected. chkdll32 does not understand DLLs without an MZ header. Pmdll works a bit better, but may trap if you enable the "Test load DLLs" options. Knut and I discussed this on the innotek gcc support list if you want to understand the details. Regards, Steven -- ---------------------------------------------------------------------- "Steven Levine" MR2/ICE 2.60b #10183 Warp4/FP15/14.100c_W4 www.scoug.com irc.fyrelizard.com #scoug (Wed 7pm PST) ---------------------------------------------------------------------- **= Email 7 ==========================** Date: Tue, 21 Dec 2004 11:41:59 -0800 From: "Steven Levine" Subject: Re: chkdll32 & libc06b2.dll In <41C838B4.4040709 at axess.com>, on 12/21/04 at 09:52 AM, Henry Sobotka said: >> File is not a valid OS/2 .EXE or .DLL file >Yes, if the DLL or .EXE has been lxlite'd. The compression is not the problem. The missing header is the problem. By default lxlite applies the /T option to DLLs. To use chkdll32 on libc0x, restore the header with: ren libc05.dll libc05.dlx lxlite -t:stub_min.bin -b- -zs libc05.dlx which allows: [j:\tmp\0]chkdll32 libc05.dlx Loading DLL 'doscalls' --> loaded. Loading DLL 'nls' --> F:\OS2\DLL\NLS.DLL. Loading DLL 'uconv' --> F:\OS2\DLL\UCONV.DLL. Loading DLL 'libuni' --> F:\OS2\DLL\LIBUNI.DLL. Loading DLL 'kbdcalls' --> F:\OS2\DLL\KBDCALLS.DLL. Loading DLL 'viocalls' --> F:\OS2\DLL\VIOCALLS.DLL. Steven -- ---------------------------------------------------------------------- "Steven Levine" MR2/ICE 2.60b #10183 Warp4/FP15/14.100c_W4 www.scoug.com irc.fyrelizard.com #scoug (Wed 7pm PST) ---------------------------------------------------------------------- **= Email 8 ==========================** Date: Tue, 21 Dec 2004 18:42:47 -0500 From: lsunley at mb.sympatico.ca Subject: Possible symlink problem with earlier kernel Hi All I had someone report a problem with postgreSQL initdb failing with an error about "file already exists" in code in postgreSQL that uses symlinks. He was running kernel version 14.062. I had him update to 14.100c and the problem went away. Watch out for that. Lorne -- ----------------------------------------------------------- lsunley at mb.sympatico.ca ----------------------------------------------------------- **= Email 9 ==========================** Date: Tue, 21 Dec 2004 23:25:33 -0500 From: Henry Sobotka Subject: Re: Debugging DLLs Dave Yeo wrote: > Lately been playing a bit with SD386. Couple of questions > How do you link to the debug version of libc? Link as usual, then backup the LIBC DLL and rename the debug DLL so that it gets loaded at runtime is the first thing I'd try. > How to get sdd to follow a function call into a DLL (where the program is in src and the DLL is in lib)? Haven't used SD386 much but simple step-into should take you into the DLL. h~