ifconfig-i386 on 8-STABLE/amd64

John Baldwin jhb at freebsd.org
Fri Apr 16 12:22:29 UTC 2010


On Thursday 15 April 2010 8:06:02 pm Jonathan Chen wrote:
> On Thu, Apr 15, 2010 at 04:12:11PM -0700, Xin LI wrote:
> > Hi,
> > 
> > On Thu, Apr 15, 2010 at 2:59 PM, Jonathan Chen <jonc at chen.org.nz> wrote:
> > > ?? ??$ /compat/i386/sbin/ifconfig
> > > ?? ??: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST>
> > > ?? ?? ?? ??inet 192.168.1.10 netmask 0xffffff00 broadcast 192.168.1.255
> > > ?? ?? ?? ??inet 192.168.1.11 netmask 0xffffffff broadcast 192.168.1.11
> > > ?? ?? ?? ??inet 192.168.2.1 netmask 0xffffff00 broadcast 192.168.2.255
> > > ?? ?? ?? ??inet 192.168.2.10 netmask 0xffffffff broadcast 192.168.2.10
> > > ?? ?? ?? ??inet 192.168.2.12 netmask 0xffffffff broadcast 192.168.2.12
> > > ?? ?? ?? ??inet 127.0.0.1 netmask 0xff000000
> > > ?? ??ifconfig: ioctl(SIOCGIFINFO_IN6): Device not configured
> > >
> > > Why is the output from the 32-bit ifconfig severely mangled?
> > 
> > My understanding is that 32-bit management tools like ifconfig is not
> > supported on 64-bit FreeBSD.  Someone has to sit down and write a
> > compatibility layer for translating back and forth :(
> 
> Ah. The reason I ask is because wine's (32-bit) network-i/f iteration code
> is breaking when running under amd64. It uses code similar to
> ifconfig's to determine available network interfaces. I didn't expect
> the read-only interface would break when crossing the 32 to 64 barrier.

You could patch the kernel backend to support 32-bit processes, it's just a 
bit of work to do so.  Can you find the specific sysctl or syscall that wine 
is invoking?  You can then just fix that handler to support 32-bit processes 
which should fix wine.

-- 
John Baldwin


More information about the freebsd-stable mailing list