Re: SerialPort problems -- cygwin / win32 / *nix
- Original Message - From: robert johnson [EMAIL PROTECTED] I dont know why its not installing the API.pm i can't just copy the new API.pm into that directory can i? 'make install' should be overwriting any existing API.pm with the one in blib, but yes, you could try copying API.pm to the /usr/lib/perl5/site_perl/5.8/cygwin/Win32/ folder, so long as the Win32::API-0.21 binaries have been installed (they are the files in the 'auto/' folder). Maybe simpler to delete all of the Win32::API files from your perl installation, then re-run 'make install' and make sure it does the job properly. If the problem persists you might need to check some of the other @INC paths - maybe there's a Win32::API in one of them that's stuffing things up. The fact that 'perl -Mblib t/test.t' runs ok tells us that the problem is simply one of getting the files installed correctly. Then we'll be able to see just how much milage we get out of it and Win32::SerialPort on Cygwin. I think there's a good chance it will function just as well under Cygwin as under native Win32 - but I'm only guessing :-) just for the record, here is my perl -V return. maybe theres something obviously wrong in my setup, that im not aware of? Couldn't see any cause for concern - except for the reference to '64int'. I don't know how Win32::API would work on a 64-bit architecture not very well, I suspect, if at all . however the rest of 'perl -V' suggests that it's a 32-bit build, anyway. Cheers, Rob ___ Perl-Win32-Users mailing list Perl-Win32-Users@listserv.ActiveState.com To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
Re: SerialPort problems -- cygwin / win32 / *nix
- Original Message - ok, that fixes the test error, but its still not working. Heres what Im doing: perl Makefile.PL writes the Makefile make seems to work okay, except for the warnings that i noted above. make test now it passes both tests, after modifying test.t as you suggested. BUT, it does not print $lpbuffer, even though i put a line to do so. my entire line (print lpbuffer: $lpbuffer\n;) is just ignored (?!) Aaah, yes - it happens like that with 'make test'. One way to fix: remove your print statement and change the last line of the test script so it reads: print .(($lpbuffer !~ /TEMP/i)?$lpbuffer not : $lpbuffer ) . ok 3\n; That should make it visible. (Sorry, I shoulder been more explicit.) make install appears to install correctly. Installing /usr/lib/perl5/site_perl/5.8/cygwin/auto/Win32/API/API.dll Installing /usr/lib/perl5/site_perl/5.8/cygwin/auto/Win32/API/libAPI.dll.a Files found in blib/arch: installing files in blib/lib into architecture dependent library tree Writing /usr/lib/perl5/site_perl/5.8/cygwin/auto/Win32/API/.packlist Appending installation info to /usr/lib/perl5/5.8/cygwin/perllocal.pod I don't see any mention of API.pm having been installed ? I'm not really sure about Cygwin's perl directory structure - I think you should at least have the file X/Win32/API.pm where 'X' denotes one of the @INC directories (probably '/usr/lib/perl5/site_perl/5.8/cygwin/'). now when i run your simple test script, it still returns Sementation Fault. core dumped and when i attempt to run the test.t in perl: $ perl t/test.t 1..2 Segmentation fault (core dumped) Instead of running: $ perl t/test.t try: $ perl -Mblib t/test.t That will use the Win32::API that you have just built - if it works ok (and it should) then we know for sure you have built a functional Win32::API, and it just remains to get that properly built module, properly installed. It seems inconsistent that 'make test' doesn't segfault, but everything else does ... Cheers, Rob ___ Perl-Win32-Users mailing list Perl-Win32-Users@listserv.ActiveState.com To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
Re: SerialPort problems -- cygwin / win32 / *nix
--- Sisyphus wrote: Robert Johnson wrote: Installing /usr/lib/perl5/site_perl/5.8/cygwin/auto/Win32/API/API.dll Installing /usr/lib/perl5/site_perl/5.8/cygwin/auto/Win32/API/libAPI.dll.a Files found in blib/arch: installing files in blib/lib into architecture dependent library tree Writing /usr/lib/perl5/site_perl/5.8/cygwin/auto/Win32/API/.packlist Appending installation info to /usr/lib/perl5/5.8/cygwin/perllocal.pod I don't see any mention of API.pm having been installed ? I'm not really sure about Cygwin's perl directory structure - I think you should at least have the file X/Win32/API.pm where 'X' denotes one of the @INC directories (probably '/usr/lib/perl5/site_perl/5.8/cygwin/'). it is there, but it is the old one, not the one im trying to update to. [EMAIL PROTECTED] /usr/lib/perl5/site_perl/5.8/cygwin/Win32 $ ls -ltr -r--r--r-- 1 RJohnson mkgroup-l-d 15018 Feb 11 2002 API.pm Instead of running: $ perl t/test.t try: $ perl -Mblib t/test.t that works. it no longer segfaults, and also prints my print $lpbuffer line: [EMAIL PROTECTED] ~/Win32-API-0.21 $ perl -Mblib t/test.t 1..2 ok 1 ok 2 lpbuffer = c:\DOCUME~\RJohnson\LOCALS~\Temp\ make install still does the exact same thing as reported above. but your simple test script to test the use Win32::API still segfaults with a coredump. and the original problem, Win32::SerialPort still dies on all tests (coredumps). you suggest its probably not finding the (correct?) Win32 API. I dont know why its not installing the API.pm i can't just copy the new API.pm into that directory can i? just for the record, here is my perl -V return. maybe theres something obviously wrong in my setup, that im not aware of? - Summary of my perl5 (revision 5 version 8 subversion 6) configuration: Platform: osname=cygwin, osvers=1.5.12(0.11642), archname=cygwin-thread-multi-64int uname='cygwin_nt-4.0 loreley 1.5.12(0.11642) 2004-11-10 08:34 i686 unknown unknown cygwin ' config_args='-de -Dmksymlinks -Duse64bitint -Dusethreads -Doptimize=-O3 -Dman3ext=3pm' hint=recommended, useposix=true, d_sigaction=define usethreads=define use5005threads=undef useithreads=define usemultiplicity=define useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=define use64bitall=undef uselongdouble=undef usemymalloc=y, bincompat5005=undef Compiler: cc='gcc', ccflags ='-DPERL_USE_SAFE_PUTENV -fno-strict-aliasing -pipe -I/usr/local/include', optimize='-O3', cppflags='-DPERL_USE_SAFE_PUTENV -fno-strict-aliasing -pipe -I/usr/local/include' ccversion='', gccversion='3.4.1 (cygming special)', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12 ivtype='long long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='ld2', ldflags =' -s -L/usr/local/lib' libpth=/usr/local/lib /usr/lib /lib libs=-lgdbm -ldb -lcrypt -lgdbm_compat perllibs=-lcrypt -lgdbm_compat libc=/usr/lib/libc.a, so=dll, useshrplib=true, libperl=libperl.a gnulibc_version='' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' -s' cccdlflags=' ', lddlflags=' -s -L/usr/local/lib' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY USE_ITHREADS USE_64_BIT_INT USE_LARGE_FILES PERL_IMPLICIT_CONTEXT Built under cygwin Compiled at Jan 27 2005 11:10:54 %ENV: PERL5LIB=C:\Program Files\ActiveState Perl Dev Kit 6.0 Deployment\lib\;C:\Perl\lib;C:\Perl\site\lib CYGWIN= @INC: C \Program Files\ActiveState Perl Dev Kit 6.0 Deployment\lib\;C \Perl\lib;C \Perl\site\lib /usr/lib/perl5/5.8/cygwin /usr/lib/perl5/5.8 /usr/lib/perl5/site_perl/5.8/cygwin /usr/lib/perl5/site_perl/5.8 /usr/lib/perl5/site_perl/5.8 /usr/lib/perl5/vendor_perl/5.8/cygwin /usr/lib/perl5/vendor_perl/5.8 /usr/lib/perl5/vendor_perl/5.8 . __ Yahoo! Mail Mobile Take Yahoo! Mail with you! Check email on your mobile phone. http://mobile.yahoo.com/learn/mail ___ Perl-Win32-Users mailing list Perl-Win32-Users@listserv.ActiveState.com To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
Re: SerialPort problems -- cygwin / win32 / *nix
--- Sisyphus wrote: - Original Message - From: robert johnson youre right. during the make there were several warnings. API.c: In function `XS_Win32__API_LoadLibrary': API.c:90: warning: cast from pointer to integer of different size API.c: In function `XS_Win32__API_GetProcAddress': API.c:102: warning: cast to pointer from integer of different size API.c: In function `XS_Win32__API_FreeLibrary': API.c:121: warning: cast to pointer from integer of different size API.xs: In function `XS_Win32__API_PointerAt': API.xs:171: warning: cast to pointer from integer of different size API.xs: In function `XS_Win32__API_Call': API.xs:217: warning: cast to pointer from integer of different size They shouldn't matter. and it failed 1 out of 2 tests. t/testFAILED test 2 I think that might just be a poorly constructed test (also note that there's no segfault during the running of the tests - which is a good sign.) In test.t, at the very last line, change /TEMP/, to /TEMP/i . Hopefully that will then pass the test. In any case, have test.t print out $lpbuffer so that you can see that it does in fact contain the name of the temporary directory. ok, that fixes the test error, but its still not working. Heres what Im doing: perl Makefile.PL writes the Makefile make seems to work okay, except for the warnings that i noted above. make test now it passes both tests, after modifying test.t as you suggested. BUT, it does not print $lpbuffer, even though i put a line to do so. my entire line (print lpbuffer: $lpbuffer\n;) is just ignored (?!) make install appears to install correctly. Installing /usr/lib/perl5/site_perl/5.8/cygwin/auto/Win32/API/API.dll Installing /usr/lib/perl5/site_perl/5.8/cygwin/auto/Win32/API/libAPI.dll.a Files found in blib/arch: installing files in blib/lib into architecture dependent library tree Writing /usr/lib/perl5/site_perl/5.8/cygwin/auto/Win32/API/.packlist Appending installation info to /usr/lib/perl5/5.8/cygwin/perllocal.pod now when i run your simple test script, it still returns Sementation Fault. core dumped and when i attempt to run the test.t in perl: $ perl t/test.t 1..2 Segmentation fault (core dumped) i have no idea what to do. thanks again, rob __ Yahoo! Mail Mobile Take Yahoo! Mail with you! Check email on your mobile phone. http://mobile.yahoo.com/learn/mail ___ Perl-Win32-Users mailing list Perl-Win32-Users@listserv.ActiveState.com To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
Re: SerialPort problems -- cygwin / win32 / *nix
--- Sisyphus wrote: - Original Message - From: robert johnson So, now my question becomes trivial. How do I get Win32::SerialPort towork under cygwin? i tried installing this module but it dies miserably during the make. I therefore assumed it was incompatable with cygwin. I've installed it (win32:serial) and had it working just fine on my normal Windows perl build. Sorry for all the hand-holding, I'm feeling pretty incompetent about now. Installing the module is just a matter of running 'perl install.pl' (on the version I have, at least). If that doesn't work then you could manually copy the 2 '.pm' files to the appropriate perl folder. I expect the real problem will be that you don't have the prerequisite Win32::API - which used not to build straight out of the box on Cygwin, and I assume still doesn't. There is a version of Win32::API around somewhere that *does* build on Cygwin. I used to have it and may still do. See if you can Google it up - else, let me know, and I'll see if I can find it. (The only problem with Aldo's version of Win32::API is/was that the assembly code is/was written for MS compilers - and for Cygwin you need assembly code that gcc understands.) Rob, Bill, Ive installed Risacher's patched Win32::API as Rob suggested, and tried again to install Win32::SerialPort in my cygwin build. however, it (Win:Ser) still fails all tests. [EMAIL PROTECTED] ~/SerialPort-0.19 $ perl test.pl t/test1dubious Test returned status 0 (wstat 139, 0x8b) test program seems to have generated a core DIED. FAILED tests 1-275 Failed 275/275 tests, 0.00% okay (... ditto each test group ...) Failed 7/7 test scripts, 0.00% okay. 1749/1749 subtests failed, 0.00% okay. any suggestions? thanks, rob Just checked and managed to find the Cygwin-compatible versions of API-0.20 and 0.21. The gas assembly code was added by Daniel Risacher [EMAIL PROTECTED] . He may have something more recent if you want to check up on Google (or contact him) - though either of those 2 versions that I have should be quite adequate for Win32::SerialPort. Let me know if you want me to send 'em over. Cheers, Rob __ Yahoo! Mail Mobile Take Yahoo! Mail with you! Check email on your mobile phone. http://mobile.yahoo.com/learn/mail ___ Perl-Win32-Users mailing list Perl-Win32-Users@listserv.ActiveState.com To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
Re: SerialPort problems -- cygwin / win32 / *nix
- Original Message - From: robert johnson [EMAIL PROTECTED] Rob, Bill, Ive installed Risacher's patched Win32::API as Rob suggested, and tried again to install Win32::SerialPort in my cygwin build. however, it (Win:Ser) still fails all tests. [EMAIL PROTECTED] ~/SerialPort-0.19 $ perl test.pl t/test1dubious Test returned status 0 (wstat 139, 0x8b) test program seems to have generated a core DIED. FAILED tests 1-275 Failed 275/275 tests, 0.00% okay (... ditto each test group ...) Failed 7/7 test scripts, 0.00% okay. 1749/1749 subtests failed, 0.00% okay. any suggestions? I'm a little concerned that perhaps you didn't install Win32::API correctly. Can you confirm that you built and installed Win32::API by running (in succession): perl Makefie.PL make test make install and that each of the steps ran without error ? Afaict, the first test in SerialPort test1.t simply tries to load Win32::SerialPort . and that generated a core, which makes me suspect that there's something wrong with Win32::API. As another check, does the following script simply print done, and then exit: use Win32::API; print done\n; __END__ If that works ok, try changing the first line to use Win32::SerialPort; (without quotes) and see what happens. If everything is still ok maybe you can hack at test1.t to see just where the problem arises. That's about all I can come up with for the moment :-) Cheers, Rob ___ Perl-Win32-Users mailing list Perl-Win32-Users@listserv.ActiveState.com To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
Re: SerialPort problems -- cygwin / win32 / *nix
--- Sisyphus wrote: - Original Message - From: robert johnson Rob, Bill, Ive installed Risacher's patched Win32::API as Rob suggested, and tried again to install Win32::SerialPort in my cygwin build. however, it (Win:Ser) still fails all tests. [EMAIL PROTECTED] ~/SerialPort-0.19 $ perl test.pl t/test1dubious Test returned status 0 (wstat 139, 0x8b) test program seems to have generated a core DIED. FAILED tests 1-275 Failed 275/275 tests, 0.00% okay (... ditto each test group ...) Failed 7/7 test scripts, 0.00% okay. 1749/1749 subtests failed, 0.00% any suggestions? I'm a little concerned that perhaps you didn't install Win32::API correctly. Can you confirm that you built and installed Win32::API by running (in succession): perl Makefie.PL make test make install youre right. during the make there were several warnings. API.c: In function `XS_Win32__API_LoadLibrary': API.c:90: warning: cast from pointer to integer of different size API.c: In function `XS_Win32__API_GetProcAddress': API.c:102: warning: cast to pointer from integer of different size API.c: In function `XS_Win32__API_FreeLibrary': API.c:121: warning: cast to pointer from integer of different size API.xs: In function `XS_Win32__API_PointerAt': API.xs:171: warning: cast to pointer from integer of different size API.xs: In function `XS_Win32__API_Call': API.xs:217: warning: cast to pointer from integer of different size and it failed 1 out of 2 tests. t/testFAILED test 2 Afaict, the first test in SerialPort test1.t simply tries to load Win32::SerialPort . and that generated a core, which makes me suspect that there's something wrong with Win32::API. As another check, does the following script simply print done, and then exit: use Win32::API; print done\n; __END__ right again: Sementation Fault. core dumped. Yahoo! Mail Stay connected, organized, and protected. Take the tour: http://tour.mail.yahoo.com/mailtour.html ___ Perl-Win32-Users mailing list Perl-Win32-Users@listserv.ActiveState.com To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
Re: SerialPort problems -- cygwin / win32 / *nix
- Original Message - From: robert johnson [EMAIL PROTECTED] youre right. during the make there were several warnings. API.c: In function `XS_Win32__API_LoadLibrary': API.c:90: warning: cast from pointer to integer of different size API.c: In function `XS_Win32__API_GetProcAddress': API.c:102: warning: cast to pointer from integer of different size API.c: In function `XS_Win32__API_FreeLibrary': API.c:121: warning: cast to pointer from integer of different size API.xs: In function `XS_Win32__API_PointerAt': API.xs:171: warning: cast to pointer from integer of different size API.xs: In function `XS_Win32__API_Call': API.xs:217: warning: cast to pointer from integer of different size They shouldn't matter. and it failed 1 out of 2 tests. t/testFAILED test 2 I think that might just be a poorly constructed test (also note that there's no segfault during the running of the tests - which is a good sign.) In test.t, at the very last line, change /TEMP/, to /TEMP/i . Hopefully that will then pass the test. In any case, have test.t print out $lpbuffer so that you can see that it does in fact contain the name of the temporary directory. As another check, does the following script simply print done, and then exit: use Win32::API; print done\n; __END__ right again: Sementation Fault. core dumped. If 'make test' did not segfault, then that little script ought not segfault either. Did 'make install' fail to do what it should have ? Cheers, Rob ___ Perl-Win32-Users mailing list Perl-Win32-Users@listserv.ActiveState.com To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
Re: SerialPort problems -- cygwin / win32 / *nix
- Original Message - From: robert johnson [EMAIL PROTECTED] So, now my question becomes trivial. How do I get Win32::SerialPort towork under cygwin? i tried installing this module but it dies miserably during the make. I therefore assumed it was incompatable with cygwin. I've installed it (win32:serial) and had it working just fine on my normal Windows perl build. Sorry for all the hand-holding, I'm feeling pretty incompetent about now. Installing the module is just a matter of running 'perl install.pl' (on the version I have, at least). If that doesn't work then you could manually copy the 2 '.pm' files to the appropriate perl folder. I expect the real problem will be that you don't have the prerequisite Win32::API - which used not to build straight out of the box on Cygwin, and I assume still doesn't. There is a version of Win32::API around somewhere that *does* build on Cygwin. I used to have it and may still do. See if you can Google it up - else, let me know, and I'll see if I can find it. (The only problem with Aldo's version of Win32::API is/was that the assembly code is/was written for MS compilers - and for Cygwin you need assembly code that gcc understands.) Just checked and managed to find the Cygwin-compatible versions of API-0.20 and 0.21. The gas assembly code was added by Daniel Risacher [EMAIL PROTECTED] . He may have something more recent if you want to check up on Google (or contact him) - though either of those 2 versions that I have should be quite adequate for Win32::SerialPort. Let me know if you want me to send 'em over. Cheers, Rob ___ Perl-Win32-Users mailing list Perl-Win32-Users@listserv.ActiveState.com To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
Re: SerialPort problems -- cygwin / win32 / *nix
Hello Robert, In a message dated 4/29/2005 7:51:42 PM Eastern Daylight Time, [EMAIL PROTECTED] writes: checking the checking serial control via ioctl... no configure: WARNING: Without ioctl support, most serial control functions are missing. That is not quite as fatal as it sounds. Some functions will run without ioctl support. Although probably not enough to keep Device::Modem happy. well, thats not going to work. and Device::Modem has a dependency on Device::SerialPort. Or Win32::SerialPort. Although it is likely you will end up customizing Device::Modem and whichever of the SerialPort modules you use in any case. ive been all over the net, the boards, hassling the folks at cygwin and the author of the Devices::SerialPort module (Kees). Cygwin claims that the headers in quesion have never been in their distribution, and so the problem is in the application code. SerialPort.pm's author just said "hm, never tried it on Cygwin". I am one of the earlier authors of Device::SerialPort. But I use Win32::SerialPort under Cygwin (frequently). The real question for you is whether Posix.pm, which Device::SerialPort calls for its termio support, works fully under Cygwin. It didn't several years ago - and the "unsupplied headers" would suggest it still doesn't. But I don't know for sure. That is the first question you should ask. so... my task, should i accept it, is to port SerialPort.pm over to cygwin, by resolving the problems with the three missing header files. at least. and probably then some more. Oh yes, a whole lot more. The second question you should ask is whether the zmodem routines will compile and run under Cygwin. At all, freestanding, no Perl involved. The problems you will probably encounter (I have created "customized" versions of them on linux, so I know the compile issues) will probably lead you back to that first question - or some varient of it. which would be difficult if i knew what i was doing. But since I Have No Idea, it should be a breeze, right? My understanding of Cygwin is that it is an application layer environment. It is not (or at least none of the versions I have used have been) a complete virtual OS. Hence, you still need to use the driver level code from the basic OS. For you, that will mean Win32::SerialPort. I suspect the port of un*x zmodem to Cygwin will not be trivial. But that is the place to start, since the rest is irrelevant unless you get that working. -bill ___ Perl-Win32-Users mailing list Perl-Win32-Users@listserv.ActiveState.com To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
SerialPort problems -- cygwin / win32 / *nix
hello i have been using activestate's perl for win32 just fine, except that i cant do ZModem transfers. so I installed CYGWIN, and built a new perl in that environment, with the hopes i could use available zmodem routines built for *nix. problem is, whereas Win32::SerialPort worked just fine in windows, the corresponding Device::SerialPort is not working so well in Cygwin. the make complains that it cant find the following header files: /usr/include/sys/termiox.h /usr/include/sys/ttycom.h /usr/include/sys/modem.h and warns: checking the checking serial control via ioctl... no configure: WARNING: Without ioctl support, most serial control functions are missing. well, thats not going to work. and Device::Modem has a dependency on Device::SerialPort. ive been all over the net, the boards, hassling the folks at cygwin and the author of the Devices::SerialPort module (Kees). Cygwin claims that the headers in quesion have never been in their distribution, and so the problem is in the application code. SerialPort.pm's author just said hm, never tried it on Cygwin. so... my task, should i accept it, is to port SerialPort.pm over to cygwin, by resolving the problems with the three missing header files. at least. and probably then some more. which would be difficult if i knew what i was doing. But since I Have No Idea, it should be a breeze, right? anyone got any suggestions? thanks, Robert __ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com ___ Perl-Win32-Users mailing list Perl-Win32-Users@listserv.ActiveState.com To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs