-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Abe Timmerman wrote:
> Abe Timmerman wrote:
>> Automated smoke report for 5.10.0 patch 31938
>> wodan.test-smoke.org: Intel Pentium III (686-class) (i386/1 cpu)
>> on netbsd - 3.1
>> using cc version 3.3.3 (NetBSD nb3 20040520)
>> smoketime 10 hours 54 minutes (average 1 hour 21 minutes)
>
>> Summary: FAIL(F)
>
> [snip]
>
> That doesn't look good :(
>
> $ LC_ALL=en_US.UTF-8 ./perl -e '1'
> perl: warning: Setting locale failed.
> perl: warning: Please check that your locale settings:
> LC_ALL = "en_US.UTF-8",
> LANG = (unset)
> are supported and installed on your system.
> perl: warning: Falling back to the standard locale ("C").
>
> I reconfigured with:
> -A append:ccflags='-DNO_LOCALE_COLLATE -DNO_LOCALE_NUMERIC'
>
> now:
>
> $ LC_ALL=en_US.UTF-8 PERLUNICODE="" ./perl harness
>
> Yields the much better:
>
> Failed Test Stat Wstat Total Fail List of Failed
> -------------------------------------------------------------------------------
> ../lib/locale.t 117 10 2-9 15 54
> uni/overload.t 8 2048 208 8 34 38 40 44 46 50 52 56
> 71 tests and 889 subtests skipped.
> Failed 2/1461 test scripts. 18/184551 subtests failed.
> Files=1461, Tests=184551, 1803 wallclock secs (684.07 cusr + 129.90 csys =
> 813.97 CPU)
> Failed 2/1461 test programs. 18/184551 subtests failed.
>
>
> Looking at lib/locale.t, it looks like tainting is not turned on for the
> LC_CTYPE goup of functions.
>
> Looking at t/uni/overload.t, it looks like netbsd also has a broken
> 'en_GB.ISO8859-1', I can send a patch to add netbsd to the list.
>
>
> Now is it useful to try and make the locale work on NetBSD, without LC_COLLATE
> and LC_NUMERIC?
>
> If so, is there a way to add those NO_LOCALE_xxx macro's only for the
> compilation of locale.c (by default on NetBSD)?
The attached patch:
* adds $locale_cflags and $sv_cflags to hints/netbsd.sh with
- -DNO_LOCALE_COLLATE and -DNO_LOCALE_NUMERIC
* adds netbsd to the list of osses that have a broken 'en_GB.ISO8859-1'
HTH +
Good luck,
Abe
- --
Documenting bugs before they're found is kinda hard.
Can I borrow your time machine? Mine won't start.
-- Michael G. Schwern on p5p @ 2002-11-19
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFG9aE20u0nt7xxiCIRAnrKAJ0ZTvoW5fnFcWt7B3GHXu0PvOPxhQCfUWn0
wbnAFwPREFUjsE78TjVLfLU=
=dBGp
-----END PGP SIGNATURE-----
diff -ruaN perl-5.10.0/hints/netbsd.sh perl-current/hints/netbsd.sh
--- perl-5.10.0/hints/netbsd.sh 2007-09-06 16:15:11.000000000 +0200
+++ perl-current/hints/netbsd.sh 2007-09-22 23:49:23.000000000 +0200
@@ -103,6 +103,14 @@
;;
esac
+# @20070922: setlocale() doesn't support LC_COLLATE and LC_NUMERIC
+case "$osvers" in
+2.*|3.*|4.*)
+locale_cflags='ccflags="$ccflags -DNO_LOCALE_COLLATE -DNO_LOCALE_NUMERIC"'
+sv_cflags='ccflags="$ccflags -DNO_LOCALE_COLLATE"'
+ ;;
+esac
+
# These are obsolete in any netbsd.
d_setrgid="$undef"
d_setruid="$undef"
diff -ruaN perl-5.10.0/t/uni/overload.t perl-current/t/uni/overload.t
--- perl-5.10.0/t/uni/overload.t 2006-10-24 16:44:23.000000000 +0200
+++ perl-current/t/uni/overload.t 2007-09-22 20:10:52.000000000 +0200
@@ -101,7 +101,7 @@
skip "No setlocale", 24;
} elsif (!setlocale(&POSIX::LC_ALL, "en_GB.ISO8859-1")) {
skip "Could not setlocale to en_GB.ISO8859-1", 24;
- } elsif ($^O eq 'dec_osf' || $^O eq 'VMS') {
+ } elsif ($^O eq 'dec_osf' || $^O eq 'VMS' || $^O eq 'netbsd') {
skip "$^O has broken en_GB.ISO8859-1 locale", 24;
} else {
use locale;