Hi all,

Please code review the following change:
http://cr.opensolaris.org/~aragorn/6851099-mutt/

Apart from trivial changes like 1.5.19 -> 1.5.20 there are three additional
changes I would like to describe in detail:

1. usr/share/doc/mutt/security.html was added to the SUNWmutt package. This is
just new chapter in the manual added by upstream in mutt-1.5.20.

2. "CONFIGURE_OPTIONS += --with-wc-funcs" was added to the Makefile.sfw.
Because of the situation described in CR 6806390 mutt's configure command was
not able to detect presence of wide char functions on Solaris. This caused to
compile mutt's replacements of those functions (please scan sources for
HAVE_WC_FUNCS). --with-wc-funcs forces the HAVE_WC_FUNCS to be defined and mutt
now uses Solaris implementation of the wide char functions instead of it own.

3. "sparc_COPTFLAG = -xO4" was added to the Makefile.sfw file. This is just a
workaround for the problem described in CR 6892994[*]. The problem in mutt is
caused by newly added wcscasecmp.c source file by upstream to mutt-1.5.20. The
wcscasecmp.c file is compiled for Solaris because we do not have our own
wcscasecmp() implementation (see CR 6275498). The wcscasecmp.c file itself
includes (indirectly) ascii.h where static inline ascii_strlower() function is
implemented, referring to ascii_tolower(). The ascii_tolower symbol is not
linked into pgpewrap binary. This caused failing build of pgpewrap on sparc. I
created ticket #3347 upstream (http://dev.mutt.org/trac/ticket/3347).


Thank you for your time.


[*] Because the CR 6892994 is not visible externally, here is the problem
description:

========================================8<=========================================
Let have the following test.c file:

$ cat test.c 
void f1(void);
static void f2(void) {f1();}
int main() {return 0;}
$

This file will compile/link with following error:

$ cc test.c 
Undefined                       first referenced
 symbol                             in file
f1                                  test.o
ld: fatal: symbol referencing errors. No output written to a.out
$

To have the file compiled/linked properly we need to turn on some optimization,
for example:

$ cc -xO4 test.c 
$

The problem is that for i386 the -xO1 is enough, while sparc requires at least
-xO4:

(i386)

$ cc -V
cc: Sun C 5.9 SunOS_i386 Patch 124868-10 2009/04/30
usage: cc [ options] files.  Use 'cc -flags' for details
$ cc -xO1 test.c 
$

(sparc)

$ cc -V
cc: Sun C 5.9 SunOS_sparc Patch 124867-11 2009/04/30
usage: cc [ options] files.  Use 'cc -flags' for details
$ cc -xO1 test.c 
Undefined                       first referenced
 symbol                             in file
f1                                  test.o
ld: fatal: symbol referencing errors. No output written to a.out
$ cc -xO3 test.c 
Undefined                       first referenced
 symbol                             in file
f1                                  test.o
ld: fatal: symbol referencing errors. No output written to a.out
$ cc -xO4 test.c 
$
========================================8<=========================================


-- 
Marcel Telka
Solaris RPE

Reply via email to