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 Guido U. Draheim |
64on32 Mix SupportThe existance of LARGEFILE_SENSITIVE systems like Linux and Solaris have made for a special group of interest activity - the topic is known as "64on32", to use largefile binaries and libraries in an environment that is otherwise still handling files with max 2 GiB. One solution might be to ship two variants of libraries along, one for traditional style handling in 32bit-off_t, and the other the style of largefile software. In a way it does pick up the old DOS-modes of software (to some still known as "tiny", "small", "medium", "large" and "huge"). It was quite common to only mix binaries and libraries of the same type to ensure there are no call-mismatches or structure-mismatches. In the unix world however there is a problem about the DOS-model style: there is no hint in the compiled libraries as to what model they are in. The binary format was not developed with the fact of parallel 64bit/32bit off_t libraries around. Instead however, we see various attempts to support dualmode libraries. Where parallel libraries would carry the same symbol-name with a different call-synopsis, the dualmode libraries carry symbols for both modes. The 64bit-variant is supported through extra symbols - and there are #defines in the header that make every program source to link to the correct variant of them. All that however is pretty much dangerous - alteast for to the degree of largefile-seeks and filedescriptor-inheritance which can be avoided that simple. Furthermore note, that dualmode libraries are more heavy in maintainance cost - wrapper calls will need to be there in numbers. |