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
