Cannot create 16-bit LDT segments

Table of Contents

Description

Wine needs to be able to create 16-bit LDT segments in order to be able to run 16-bit applications. Note that quite a few applications that one would expect to be 32-bit actually involve some 16-bit code, in their launcher for instance.

However around version 3.14 the Linux kernel removed support for 16-bit segments on 64-bit systems pending resolution for a security issue, which is most likely the reason for this message.

Resolution

The best way to solve this issue is to upgrade to a Linux kernel where the related security issue has been fixed. This should mean 3.16 or greater. Barring that, the simplest solution is most likely to downgrade the Linux kernel to 3.13 or older.

For some Linux kernels another solution is to run the following command as root:

echo 1 >/proc/sys/abi/ldt16

However this means reopening the potential security issue in those kernels. Also this will need to be done again every time the computer is restarted so you may want to set up an init.d script to do so.

Next Step: pthread_cancel() does not work

Last modified on 2023-09-29 09:53:33 UTC by Andrew Balfour