Wireshark mailing list archives
Re: Having the buildbot build Wireshark 64-bit for Mac OS X (was Re: [Wireshark-bugs] [Bug 4115] 32-bit Wireshark crashes while opening large trace files)
From: Guy Harris <guy () alum mit edu>
Date: Tue, 27 Apr 2010 13:05:33 -0700
On Apr 27, 2010, at 12:37 PM, Jeff Morriss wrote:
Guy Harris wrote:On Apr 27, 2010, at 11:36 AM, Jeff Morriss wrote:Given that the MacOS buildbot (at least the Intel one) is so fast, would it make sense to also build a 64-bit version of Wireshark?As long as we make sure it works on Leopard before we offer it to Leopard users.Well, yes :-). I guess I had assumed that most of the developers were using 64-bit, it was just a question of what is being built by the buildbot.
I don't know how many of the developers using OS X are using Tiger, Leopard, Snow Leopard, or earlier releases, but, unless they've made an effort to build 64-bit, only the developers using Snow Leopard are using 64-bit (unless they have 32-bit-only machines, i.e. Intel Core Duo or Core Solo, rather than Core 2 or Core i[0-9] or the later Xeons).
Ah, so MacOS doesn't have, say, "/usr/lib/" and "/usr/lib64/" for 32- and 64-bit libraries?
Nope: $ file /usr/lib/libpcap.dylib /usr/lib/libpcap.dylib: Mach-O universal binary with 3 architectures /usr/lib/libpcap.dylib (for architecture x86_64): Mach-O 64-bit dynamically linked shared library x86_64 /usr/lib/libpcap.dylib (for architecture i386): Mach-O dynamically linked shared library i386 /usr/lib/libpcap.dylib (for architecture ppc7400): Mach-O dynamically linked shared library ppc That's *the* libpcap for both 32-bit and 64-bit binaries (as well as for PowerPC binaries run under the Rosetta binary-to-binary translator, although, in the particular case of libpcap, that wouldn't work - Rosetta doesn't support BPF ioctls). Mac OS X uses the "fat binary" mechanism from NeXTStEP: http://en.wikipedia.org/wiki/Fat_binary (at least according to the article, originally called "multi-architecture binaries", now called "universal binaries", but with the tool to manipulate them called "lipo", I suspect the notion of fatness is in there and was probably in there from Day One...) to handle 32-bit vs. 64-bit as well as PowerPC vs. x86 (as the article notes, it was originally put there for 68k vs. x86, to support both NeXT's hardware and NeXTStEP-on-PCs).
Or is this because we're shipping glib, not using one from the OS?
If OS X shipped with GLib, Apple would have to build it fat too.
But: would the header files have to be different? Linux and Solaris seem get away with one set of header files for both the 32- and 64-bit libraries.
I'm not sure how they handle 32-bit vs. 64-bit GLib, given that the 64-bit /usr/local/lib/glib-2.0/include/glibconfig.h installed on my machine has #defines and typedefs such as typedef signed long gint64; typedef unsigned long guint64; #define G_GINT64_CONSTANT(val) (val##L) #define G_GUINT64_CONSTANT(val) (val##UL) #define G_GINT64_MODIFIER "l" #define G_GINT64_FORMAT "li" #define G_GUINT64_FORMAT "lu" #define GLIB_SIZEOF_VOID_P 8 #define GLIB_SIZEOF_LONG 8 #define GLIB_SIZEOF_SIZE_T 8 in it. Those would work in 64-bit mode, but not in 32-bit mode. The 32-bit versions of *some* of them would probably work in 64-bit mode: typedef signed long long gint64; typedef unsigned long long guint64; #define G_GINT64_CONSTANT(val) (val##LL) #define G_GUINT64_CONSTANT(val) (val##ULL) #define G_GINT64_MODIFIER "ll" #define G_GINT64_FORMAT "lli" #define G_GUINT64_FORMAT "llu" but you couldn't handle the GLIB_SIZEOF_ definitions without #ifdefs. They might either manually, or with a tool that makes "fat" versions of header files given two different versions of the header file for different platforms, do it with #ifdefs, or they might have different include directories for 32-bit and 64-bit. OS X doesn't support different include directories for 32-bit and 64-bit, so that option isn't open to OS X. ___________________________________________________________________________ Sent via: Wireshark-dev mailing list <wireshark-dev () wireshark org> Archives: http://www.wireshark.org/lists/wireshark-dev Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev mailto:wireshark-dev-request () wireshark org?subject=unsubscribe
Current thread:
- Re: [Wireshark-bugs] [Bug 4115] 32-bit Wireshark crashes while opening large trace files Jeff Morriss (Apr 27)
- Having the buildbot build Wireshark 64-bit for Mac OS X (was Re: [Wireshark-bugs] [Bug 4115] 32-bit Wireshark crashes while opening large trace files) Guy Harris (Apr 27)
- Re: Having the buildbot build Wireshark 64-bit for Mac OS X (was Re: [Wireshark-bugs] [Bug 4115] 32-bit Wireshark crashes while opening large trace files) Jeff Morriss (Apr 27)
- Re: Having the buildbot build Wireshark 64-bit for Mac OS X (was Re: [Wireshark-bugs] [Bug 4115] 32-bit Wireshark crashes while opening large trace files) Guy Harris (Apr 27)
- Re: Having the buildbot build Wireshark 64-bit for Mac OS X (was Re: [Wireshark-bugs] [Bug 4115] 32-bit Wireshark crashes while opening large trace files) Jeff Morriss (Apr 27)
- Re: Having the buildbot build Wireshark 64-bit for Mac OS X (was Re: [Wireshark-bugs] [Bug 4115] 32-bit Wireshark crashes while opening large trace files) Guy Harris (Apr 27)
- Re: Having the buildbot build Wireshark 64-bit for Mac OS X (was Re: [Wireshark-bugs] [Bug 4115] 32-bit Wireshark crashes while opening large trace files) Jeff Morriss (Apr 28)
- Re: Having the buildbot build Wireshark 64-bit for Mac OS X (was Re: [Wireshark-bugs] [Bug 4115] 32-bit Wireshark crashes while opening large trace files) Jeff Morriss (Apr 27)
- Having the buildbot build Wireshark 64-bit for Mac OS X (was Re: [Wireshark-bugs] [Bug 4115] 32-bit Wireshark crashes while opening large trace files) Guy Harris (Apr 27)
- Re: Having the buildbot build Wireshark 64-bit for Mac OS X (was Re: [Wireshark-bugs] [Bug 4115] 32-bit Wireshark crashes while opening large trace files) Michael Tüxen (Apr 27)
- Re: Having the buildbot build Wireshark 64-bit for Mac OS X (was Re: [Wireshark-bugs] [Bug 4115] 32-bit Wireshark crashes while opening large trace files) Guy Harris (Apr 27)
- Re: Having the buildbot build Wireshark 64-bit for Mac OS X (was Re: [Wireshark-bugs] [Bug 4115] 32-bit Wireshark crashes while opening large trace files) Michael Tüxen (Apr 27)
- Re: Having the buildbot build Wireshark 64-bit for Mac OS X (was Re: [Wireshark-bugs] [Bug 4115] 32-bit Wireshark crashes while opening large trace files) Gerald Combs (Apr 28)
- Re: Having the buildbot build Wireshark 64-bit for Mac OS X (was Re: [Wireshark-bugs] [Bug 4115] 32-bit Wireshark crashes while opening large trace files) Michael Tüxen (Apr 28)
- Re: Having the buildbot build Wireshark 64-bit for Mac OS X (was Re: [Wireshark-bugs] [Bug 4115] 32-bit Wireshark crashes while opening large trace files) Guy Harris (Apr 28)
- Re: Having the buildbot build Wireshark 64-bit for Mac OS X (was Re: [Wireshark-bugs] [Bug 4115] 32-bit Wireshark crashes while opening large trace files) Michael Tüxen (Apr 29)