From: Jarkko Hietaniemi Date: Mon, 2 Jun 2003 16:08:22 +0000 (+0000) Subject: U/WIN: final (for now) touches from John P. Linderman; X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=cd19b65c5ecbc051ae6b3ed0644e976003b04fce;p=p5sagit%2Fp5-mst-13.2.git U/WIN: final (for now) touches from John P. Linderman; now we get 97% success rate, the remaining failures are quite obscure. p4raw-id: //depot/perl@19662 --- diff --git a/hints/uwin.sh b/hints/uwin.sh index c05d9eb..1c64a8f 100644 --- a/hints/uwin.sh +++ b/hints/uwin.sh @@ -1,36 +1,134 @@ # -# hint file for U/WIN (UNIX for Windows 95/NT) -# -# created for U/WIN version 1.55 -# running under Windows NT 4.0 SP 3 -# using MSVC++ 5.0 for the compiler -# -# created by Joe Buehler (jbuehler@hekimian.com) -# -# for information about U/WIN see www.gtlinc.com -# +# The lines starting with #b that follow are the uwin.sh +# file from Joe Buehler. Some lines are, themselves, +# commented out. If an uncommented line disappears +# altogether, it means it didn't seem to be needed any more, +# to get a proper build on the following machine. +# UWIN-NT korn-7200 3.19-5.0 2195 i686 +# But maybe they'll be useful to others on different machines. + +#b # hint file for U/WIN (UNIX for Windows 95/NT) +#b # +#b # created for U/WIN version 1.55 +#b # running under Windows NT 4.0 SP 3 +#b # using MSVC++ 5.0 for the compiler +#b # +#b # created by Joe Buehler (jbuehler@hekimian.com) +#b # +#b # for information about U/WIN see www.gtlinc.com +#b # +#b +#b #ccflags=-D_BSDCOMPAT +#b # confusion in Configure over preprocessor +#b cppstdin=`pwd`/cppstdin +#b cpprun=`pwd`/cppstdin +#b # pwd.h confuses Configure +#b d_pwcomment=undef +#b d_pwgecos=define +#b # work around case-insensitive file names +#b firstmakefile=GNUmakefile +#b # avoid compilation error +#b i_utime=undef +#b # compile/link flags +#b ldflags=-g +#b optimize=-g +#b static_ext="B Data/Dumper Digest/MD5 Errno Fcntl Filter::Util::Call IO IPC/SysV MIME::Base64 Opcode PerlIO::scalar POSIX SDBM_File Socket Storable Unicode::Normalize attrs re" +#b #static_ext=none +#b # dynamic loading needs work +#b usedl=undef +#b # perl malloc will not work +#b usemymalloc=n +#b # cannot use nm +#b usenm=undef +#b # vfork() is buggy (as of 1.55 anyway) +#b usevfork=false + +# __UWIN__ added so it could be used in ext/POSIX/POSIX.xs +# to protect against either tzname definition. According to Dave Korn + +#dgk gcc on uwin also predefined _UWIN as does the borland and digital +#dgk mars compiler. +#dgk +#dgk Only ncc does not define _UWIN and this is intentional. ncc is used +#dgk to build binaries that do not require the uwin runtime. +#dgk This could be used for building a native win32 perl using unix +#dgk makefiles. However, in this case you don't wan't _UWIN defined. +#dgk +#dgk I have used _UWIN everywhere else in any uwin specific changes. +#dgk and _WIN32 on windows specific changes, and _MSVC on any compiler +#dgk Visual C specific changes. We also define _WINIX for any unix +#dgk on windows implementation so that _UWIN or __cygwin__ imply _WINIX. + +# I left __UWIN__ as is, since I had already filed a patch, +# and it might be useful to distinguish perl-specific tweaks +# from generic uwin ones. + +ccflags="$ccflags -D__UWIN__" + +# This from Dave Korn +#dgk Windows splits shared libraries into two parts; the part used +#dgk for linking and the part that is used for running. +#dgk Given a library foo, then the part you link with is named +#dgk foo.lib +#dgk and is in the lib directory. The part that you run with +#dgk is named +#dgk foo.dll or foo#.dll +#dgk and is in the bin directory. This way when you set you PATH +#dgk variable, it automatically does the library search. +#dgk +#dgk Static libraries use libfoo.a. +#dgk By the way if you specify -lfoo, then it will first look for foo.lib +#dgk and then libfoo.a. If you specify +lfoo, it will only look for +#dgk static versions of the library. + +# So we use .lib as the extension, and put -lm in, because it is a .a +# This probably accounts for the comment about dynamic libraries +# needing work, and indeed, the build failed if I didn't undef it. + +lib_ext=".lib" +libs="-lm" +so=dll +# dynamic loading still needs work +usedl=undef -#ccflags=-D_BSDCOMPAT # confusion in Configure over preprocessor cppstdin=`pwd`/cppstdin cpprun=`pwd`/cppstdin -# pwd.h confuses Configure -d_pwcomment=undef -d_pwgecos=define + +# lest it default to .exe, and then there's no perl in the test directory, +# t, just a perl.exe, and make test promptly dies. _exe gets set to .exe +# by Configure (on 5/23/2003) if exe_ext is merely null, so clean it out, too.! exe_ext='' +_exe='' + # work around case-insensitive file names firstmakefile=GNUmakefile -# avoid compilation error -i_utime=undef # compile/link flags ldflags=-g optimize=-g -static_ext="B Data/Dumper Digest/MD5 Errno Fcntl Filter::Util::Call IO IPC/SysV MIME::Base64 Opcode PerlIO::scalar POSIX SDBM_File Socket Storable Unicode::Normalize attrs re" -#static_ext=none -# dynamic loading needs work -usedl=undef + +# Original, with :: separators, cause make to choke. +# No longer seems to be necessary at all. +# static_ext="B Data/Dumper Digest/MD5 Errno Fcntl Filter/Util/Call IO IPC/SysV MIME/Base64 Opcode PerlIO/scalar POSIX SDBM_File Socket Storable Unicode/Normalize attrs re" + # perl malloc will not work usemymalloc=n # cannot use nm usenm=undef # vfork() is buggy (as of 1.55 anyway) usevfork=false + +# Some other comments: +# If you see something like + +# got: '/E/users/jpl/src/cmd/perl/t' +# expected: '/e/users/jpl/src/cmd/perl/t' +# Failed test (../ext/Cwd/t/cwd.t at line 88) + +# when running tests under harness, try the simple expedient of +# changing to directory +# /E/users/jpl/src/cmd/perl/t # note the leading capital /E +# before running the tests. UWIN is a bit schizophrenic about case. +# It likes to return an uppercase "disk" letter for the leading directory, +# but your home directory may well have that in lower case. +# In most cases, they are entirely interchangeable, but the perl tests +# don't ignore case. If they fail, change to the directory they expect. diff --git a/lib/locale.t b/lib/locale.t index 2143b9f..a294d2f 100644 --- a/lib/locale.t +++ b/lib/locale.t @@ -45,6 +45,9 @@ eval { # and mingw32 uses said silly CRT $have_setlocale = 0 if (($^O eq 'MSWin32' || $^O eq 'NetWare') && $Config{cc} =~ /^(cl|gcc)/i); +# UWIN seems to loop after test 98, just skip for now +$have_setlocale = 0 if ($^O =~ /^uwin/); + my $last = $have_setlocale ? &last : &last_without_setlocale; print "1..$last\n";