printer / text mode version freeBSD/darwin

index
-summary
-history
-testscript
  perl / python
problems
-with callframes
-with structures
-largefile seeks
-broken builds
systems
-freeBSD/darwin
-linux/solaris
-64on32 mix
-distro makers
-win32/other (2)
libraries
-libc ..(3264)
-zlib ..(-32-)
-gtk2 ..(-64-)
converting
-old non-off_t code
-going largefile
-longlong default
-face dualmode
-make twinlibs
-and defend (it)
programming
-largefile default
-off_t in headers
-make export64
-find mismatch
-the autowrappers
-environ changes
-best practice?
old library
-dualmode renames
-the extra function
-largefile64_source
-glibc headers
-libgz example ***
new library
-dual export
-largefiles win32
-compat32 calls
-compat32 library
-long32 dualmode
links
-some quotes
-sitemap / mpl
-large.file Group*
-ac-archive Site*

 

 

 

(C) 2002-01-13 <guidod>
 Guido U. Draheim

FreeBSD / Darwin

The FreeBSD (and other BSD'ish systems like Darwin / MacOS-X) have done the step to start over with an incompatible system - they do simply define off_t to be always 64bit and that's about it. All the software must be recompiled, and it not supposed to take binary-only software from the old era to the new one.

That ensure that there can be no invalid mixture of 32bit and 64bit off_t-size applications, and even more all the software is fully 64bit-clean - making sure that no "long" is used where it is not appropriate. It may require a bit of porting but it makes for a lot less problems after that.

Note that all Unix98 system are required to support largefiles, and in fact the latest Linux and Solaris system actually do that - the kernel works with 64bit offsets anyway. The non-64 api-calls do only exist as wrappers that catch api-calls from old binaries and convert them to the new 64bit-off_t calls.

In effect, with a complete change to off_t of 64bit, the software will be smaller and faster as opposed to a dual-type system that tries to support non-largefile binaries in a largefile system. And furthermore, it can be seen as a general advice that software makers do always compile in largefile-mode as soon as it is available. It makes the software faster and less prone to errors.