> ... this MT and "debugging" naming convention exists exclusively in
> compiler driver's mind, cl.exe in Microsoft case, and applies
                    ^^^^ I naturally meant ""mind"" in quotes:-)

> > Added to this problem, we have the different register sizes on
> > different CPUs (32-bit, 64-bit, and whatever will follow), which seems
> > to be difficult to intermix in the same library,
>         ^^^^^^^^^??? It's impossible. You can't intermix 64- and 32-bit
> objects in same library nor in address space of any particular process.
> Well, the latter is possible from hardware point of view, but it
> requires kernel support and there is no any [as far as I know].

To avoid possible confusion. You don't need kernel support to perform
the switch itself, as it's performed totally in user-land. But(!) the
kernel has to be aware of such possibility and act accordingly at next
context switch (be it system call, page miss or something else). This is
what is missing in kernel. Well, in Windows such switches are taking
place in user-land, but they are allowed only in explicitly "authorized"
code segments, most notably in 32-bit NTDLL.DLL, and never in user
supplied code segments. In other words you *can* write a code in
assembler and switch say from 32- to 64-bit instruction set, but the
program will most likely crash shortly after that in a mysterious way.
A.
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to