Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 4 Jul 2007 17:13:06 -0700
From:      Peter Wemm <peter@wemm.org>
To:        current@freebsd.org
Subject:   HEADS UP: late change regarding syscalls in 7.0
Message-ID:  <200707041713.06197.peter@wemm.org>

next in thread | raw e-mail | index | archive | help
I've committed a series of changes to the tree that are aimed at fixing 
a few quirks left over from gcc-2.0 compatability in our syscall layer.

Specifically, key syscalls like mmap() had an extra argument, "int pad".  
The hacks to work around it were a problem for a number of things, and 
caused some sub-optimal circumstances for the amd64 platform.

I've committed some temporary workarounds to try and make sure that we 
don't loose the ability to boot kernel.old's, and to make sure that 
people who aren't paying attention don't get too badly hosed.

To that end, the old syscalls are compiled in (temporarily) regardless 
of whether you use the appropriate COMPAT_ kernel option.  (GENERIC has 
them all!).  libc will detect an old kernel and use the old syscalls if 
needed.

Once 7-stable begins, I'm intending to remove the forced 
anti-foot-shooting and turn off the glue in libc that enables post-7.0 
worlds to work on pre-7.0 kernels.

To that end.  Please make sure you have COMPAT_FREEBSD6 in your kernel 
configs!  It isn't important yet, but will be in a few months.

As a side note, amd64 machines need COMPAT_FREEBSD6 *now* if they want 
to run old 32 bit binaries.  If they crash with 'Illegal syscall', then 
that is what you've forgotten.

I'm fairly sure I have not broken anything, with the following caveats:

* I have not compile nor run tested ia64, powerpc or arm at all.

* I have compiled sparc64 and tested the libc changes on an old kernel.  
I wasn't able to boot a new kernel to test the 'new kernel' support.  I 
expect it will work, if only -current would boot on sun4v.

* I have compile and run tested amd64 and i386 fairly extensively.

* I have made some tweaks to the commit in preparing it for commit, so 
it is possible that I have broken something at the last second.  If so, 
I apologize in advance. 

* There will be more work on this over the coming months. Stay tuned.

-Peter
-- 
Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com
"All of this is for nothing if we don't go to the stars" - JMS/B5



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200707041713.06197.peter>