Subject: 1.5X/i386 Linux emulation, X11, and locales
To: None <current-users@netbsd.org>
From: Amitai Schlair <schmonz@schmonz.com>
List: current-users
Date: 09/16/2001 22:12:01
I just set up a new i386 with a build from yesterday's sources, and
encounter the following error when attempting to run Netscape:

/usr/pkg/lib/netscape/navigator-4.78/netscape: error in loading shared
libraries: /mnt/wd0e/usr/X11R6/lib/libX11.so.6: undefined symbol:
__mb_cur_max

A similar error ensues when attempting to run a "Hello world" Java class
using Swing:

Exception in thread "main" java.lang.UnsatisfiedLinkError:
/usr/pkg/java/jre/lib/i386/libawt.so: /mnt/wd0e/usr/X11R6/lib/libX11.so.6:
undefined symbol: __mb_cur_max
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1382)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1298)
        at java.lang.Runtime.loadLibrary0(Runtime.java:749)
        at java.lang.System.loadLibrary(System.java:820)
        at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:53)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.awt.NativeLibLoader.loadLibraries(NativeLibLoader.java:41)
        at sun.awt.DebugHelper.<clinit>(DebugHelper.java:29)
        at java.awt.Component.<clinit>(Component.java:356)

I haven't seen this error from any other programs, so I suspect the
problem is somewhere between Linux emulation, X, and locale support. (It
also occurred in the 20010827-1.5X snapshot, FWIW.)

The symbol in question is defined in
/usr/src/lib/libc/locale/__mb_cur_max.c.

How to fix? Suggestions welcome. :-)

- Amitai