diff --git a/libs/wine/ldt.c b/libs/wine/ldt.c index 5175e9cbf5e..0946407625e 100644 --- a/libs/wine/ldt.c +++ b/libs/wine/ldt.c @@ -92,6 +92,11 @@ static inline int set_thread_area( struct modify_ldt_s *ptr ) #include #endif /* __NetBSD__ || __FreeBSD__ || __OpenBSD__ */ +#ifdef __GNU__ +#include +#include +#endif + #ifdef __APPLE__ #include #endif @@ -203,6 +208,9 @@ static int internal_set_entry( unsigned short sel, const LDT_ENTRY *entry ) #elif defined(__APPLE__) if ((ret = i386_set_ldt(index, (union ldt_entry *)entry, 1)) < 0) perror("i386_set_ldt"); +#elif defined(__GNU__) + if ((ret = i386_set_ldt(mach_thread_self(), sel, (descriptor_list_t)entry, 1)) != KERN_SUCCESS) + perror("i386_set_ldt"); #else fprintf( stderr, "No LDT support on this platform\n" ); exit(1);