Subject: Re: Interix 3.5 on Win2k3 + pkgsrc - can't get past bootstrap
To: Joshua Coombs <jcoombs@gwi.net>
From: Todd Vierling <tv@duh.org>
List: tech-pkg
Date: 09/01/2005 16:12:10
On Wed, 31 Aug 2005, Joshua Coombs wrote:

> ===> Building libnbcompat
> ===> running: (cd work/libnbcompat; /bin/sh ./configure -C --prefix=/usr/pkg
> --sysconfdir=/usr/pkg/etc && make)
> configure: creating cache config.cache
> configure: error: cannot run /bin/sh ./config.sub
> Memory fault (core dumped)
> ===> exited with status 139
> aborted.
>
> So, getting more frustrated, I just pulled down the latest binary pkgsrc
> install for Interix and threw that on.  That lets me run bmake, but it
> randomly cores during builds as well.  I've run Interix before with pkgsrc and
> had a much easier go of it.  I don't get what I've done differently to break
> things.  I've tried clean installs of Interix and gotten the same results, so
> I'm not sure what to try next.
>
> Any suggestions on how to continue diag/debug?

You need to turn off Data Execution Prevention.  Interix is incompatible
with it, at least on *some* configurations; the AMD Sempron and Athlon 64
are notably problematic.  This is because of the gcc signal trampolines
which are -- drum roll please -- on the stack.  (Unfortunately, I forgot to
put this note in the pkgsrc Guide when I discovered it, but I'll fix that
this weekend.)

In WinXP and Win2k3, you can do this by logging in as a user in group
Administrators, then in Control Panel -> System, choose the Advanced tab,
click Settings under Performance, then choose the Data Execution Prevention
tab.  Choose "Turn on DEP for essential Windows programs and services only".

The worst part is that, at least on a Sempron system I have, even that
setting is not enough.  There's a system-level switch that can be set to
turn off DEP altogether in this case.  Edit C:\BOOT.INI in Notepad or
similar, and add the switch

    /NoExecute=OptOut

to the appropriate boot line under "[operating systems]", and reboot.

Once DEP is not impacting Interix, all should work correctly.  (But do be
aware that this means Windows will not use the hardware-supplemented stack
overflow protection.)

-- 
-- Todd Vierling <tv@duh.org> <tv@pobox.com> <todd@vierling.name>