I have tried to build the Xorg server with "#define Int10SubLibs" in the hope that the same IA32 server can then be used on linux-i686 and linux-x86_64 systems (the default version uses vm86 but the ia32 emulation of linux-x86_64 lacks the vm86 syscall). However, loading the libint10.so module failed with these messages in Xorg.0.log: (II) Loading sub module "int10" (II) LoadModule: "int10" (II) Loading /usr/X11R6/lib/modules-6.9.0/linux/libint10.so dlopen: /usr/X11R6/lib/modules-6.9.0/linux/libint10.so: undefined symbol: Int10Current (EE) Failed to load /usr/X11R6/lib/modules-6.9.0/linux/libint10.so (II) UnloadModule: "int10" Looking at the three modules libint10.so, libvm86.so, and libx86emu.so I noticed that the symbol Int10Current is defined in libvm86.so and libx86emu.so but not defined in libint10.so. I think it ought to be the other way around, although this certainly doesn't matter when libvm86 is integrated into libint10, and equally doesn't matter when building with "#undef Int10SubLibs". Repeating the build with "define MakeDllModules NO" (noy the default) everything works fine: (II) Loading sub module "int10" (II) LoadModule: "int10" (II) Loading /usr/X11R6/lib/modules-6.9.0/linux/libint10.a (II) Module int10: vendor="X.Org Foundation" ... (II) Loading sub module "vm86" (II) LoadModule: "vm86" (II) Loading /usr/X11R6/lib/modules-6.9.0/linux/libvm86.a (II) Module vm86: vendor="X.Org Foundation" ...
Sorry about the phenomenal bug spam, guys. Adding xorg-team@ to the QA contact so bugs don't get lost in future.
I had a patch to fix this with modular at some point (http://git.debian.org/?p=pkg-xorg/xserver/xorg-server.git;a=blob;f=debian/patches/42_build_int10_submodules.diff;h=483308a2a58a09babf4d2a90102d50123d96cbc5;hb=cc67cc3b25c78cfc6bf11c78ab563b7f8e4190ee) but then switched to x86emu for all archs (which is also the default nowadays). Is this bug still relevant? The modular build has never supported the equivalent of Int10SubLibs afaict.
I'd say with x86emu as default for all archs the original problem is gone. All we needed back in 2006 (and still want to have today) is an IA32 Xserver binary, that can run under both x86_64-linux and i686-linux (one of the few Pentium4 left or an x86_64 booted into 32bit mode). We thought that vm86 might be somewhat more efficient in 32bit mode than x86emu, but this should hardly matter with today's hardware.
(In reply to comment #3) > I'd say with x86emu as default for all archs the original problem is gone. > ok, let's close this then. thanks!
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.