Talk:Universal binary

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

No title[edit]

This should be merged with Fat binary. The term "universal binary" appears to be an Apple-ism. Dysprosia 06:10, 28 August 2005 (UTC)[reply]

I disagree; this is to give information on a specific type of fat binary; the terms are not synonyms. Eg the line "Apple's Xcode 2.1 supports the creation of these files" refers only to Intel/PPC Fat Binaries for Mac OSX, it could not for instance create an Intel/Alpha Fat Binary for Windows NT. Therefore I think this page still has relevence. MrWeeble Talk Brit tv 12:18, 24 March 2006 (UTC)[reply]

Universal Applications?[edit]

Do we really need this section? I dont think anyone is interested in maintaining this information or reading it. At best it is just advertizing though I suppose it can be added into a List of Universal Applications. What would be more appropriate for this article is maybe a history of the term, when it was first used, which OSX version first supported this feature, etc. I am removing it but feel free to add it back in if you have a good reason.69.121.109.152 05:52, 15 May 2006 (UTC)[reply]

I am interested in reading it and I'm sure others are as well. —Tokek 11:13, 15 May 2006 (UTC)[reply]

Thanks to this section I could write material for my University thesis. Removing? Why? --MG55 18:16, 15 June 2006 (UTC)[reply]

Please, get rid of this section. XML-RPC Client? Who cares? What about Metro, Reason, Mathematica, MySQL, Finale? There are thousands of Universal binaries available; Intel is the future of the Mac, so pretty much every piece of software that hasn't been discontinued/abandoned should either have a Universal version available or be "in development". A few more links to Apple's website [1][2] would serve readers much better. — Miles←☎ 07:46, 14 July 2006 (UTC)[reply]
Who cares? I thought I already answered that question. I think the original intent may have been to show the progress or lack of progress of softwares switching to Universal. Also, albeit shocking, apparently some people use Wikipedia as a source for writing their thesis. If you don't want to read the section...—Tokek
You missed my point: I was asking "who cares" about XML-RPC Client, an obscure application from a minor freeware developer, when hundreds of more-used applications are missing from the table. — Miles←☎ 20:55, 18 July 2006 (UTC)[reply]
I agree with the above remark ; this list should be removed. There is no rationality in the selection and it sorely lacks content. The emptiness of the "development" section makes the two existing entries look like adverts. In comparison, the Apple-maintained page has more than 2500 entries... Orphu of Io 18:38, 20 July 2006 (UTC)[reply]
Could you provide a direct link to this page of more than 2500 entries? —Tokek 12:50, 21 July 2006 (UTC)[reply]
The start page is here : [3], and the full list can be obtained here : [4]Orphu of Io 12:27, 23 July 2006 (UTC)[reply]

Capitalization of Universal in Universal binary: Apple's convention[edit]

From looking at Apple's website, it is clear Universal in the sense of a Universal binary (or the Universal version of an application) is supposed to be capitalized. See Apple - Universal - Applications and Intel-based Mac: How to tell if an application is Universal for examples. 204.42.20.215 22:25, 15 May 2006 (UTC)[reply]

Shared code?[edit]

"If they are compiled and optimized for platforms as different as x86 and PowerPC, what binary code could they be sharing?"

applications do not consist only of compiled code, but generally include a number of non-executable resources such as bitmaps, audio files, text and data files, and in the case of games, huge amounts of texture, map, and model data. the claim you're responding to -- that multi-platform applications will usually share a significant amount of dependent data among platforms -- is completely reasonable. --G0zer 18:09, 29 June 2006 (UTC)[reply]

Microsoft's Office 2004 applications often hang or quit under Rosetta[edit]

What is the justification for this statement, accounts seem to contradict it. "Our one and only crash during the entire Office testing set was during a find and replace in Word. A quick re-launch, and everything proceeded as expected." http://www.mactech.com/articles/mactech/Vol.22/22.05/Office2004Benchmark/ Removing remark.


Compiler Stuff[edit]

It would be good if this page had more information about how stuff is compiled as a Universal Binary and what compilers support it.

What do you mean, what compilers support it? I believe it uses gcc to compile both ends, and uses a tool to join the Intel-only and the PowerPC-only code into one binary. As for what languages, XCode only come with C, C++, and Objective-C. There is a third-party addon for Fortran, but I don't know if it makes Universal Binaries. Madd the sane 05:30, 14 February 2007 (UTC)[reply]

Reducing size of univeral binaries[edit]

Some applications like Xslimmer can reduce the size of universal binaries by stripping either PPC or Intel code from the binary. Do you think it is relevant to include a section/paragraph/sentence to this article?

Jonathan2007 20:49, 1 February 2007 (UTC)[reply]

Yes, a small section would probably be a good idea. Madd the sane 05:32, 14 February 2007 (UTC)[reply]

Mach-O[edit]

Shouldn't this mention Mach-O since that's technically the executable format that the Universal Binary is in?

Yes. You know you can add stuff, right? Madd the sane 05:20, 14 February 2007 (UTC)[reply]
More correctly, universal binaries are NeXT/Apple multi-architecture binaries, which are an archive format that contains multiple Mach-O binaries. A multi-architecture binary begins with a header structure containing a magic number indicating that the file is a multi-architecture binary and a count of the number of architectures in the binary, followed by an array of per-architecture structures giving the CPU subtype for the binary or an "all CPU subtypes for this instruction set" value, the offset in the file and size of the Mach-O binary for that subtype, and the alignment requirement for that Mach-O binary, followed by the archived Mach-O binaries. So it's not itself a Mach-O file, it's a collection of Mach-O binaries in a single file.
The article's lede, and its History section, link to Fat binary § NeXTSTEP Multi-Architecture Binaries, which describes the original use of multi-architecture binaries in NeXTSTEP. That format carried over into macOS (and iOS and other OSes that, like macOS, have a Darwin base). Guy Harris (talk) 06:59, 14 June 2022 (UTC)[reply]

[edit]

I've created an SVG version of the universal binary logo (the cool yin-yang kind of thing shown here: http://www.apple.com/universal/.) ... but I'm not into the whole licensing thing with copyrights and such.

In fact, I barely knew how to post to this discussion board. Ha ha. All I know is that SVG is pretty much everywhere on Wikipedia, and I was bored one day so I made it using Inkscape.

So if anyone's interested in work with me on that, just post a reply or something, I'll check this discussion board every week or so.

Thanks for your help guys/girls. 66.130.16.181 (talk) 04:24, 15 July 2008 (UTC)[reply]

2010[edit]

It's 2010, aren't people dropping PPC now? I added the update tag because of this. Gigs (talk) 05:02, 26 January 2010 (UTC)[reply]

Mozilla, for one, "switched from a ppc/i386 universal binary to an i386/x86_64 universal binary" in Firefox 4. I couldn't find official documentation from Apple that this new type of fat binary can also be called Universal, but some people call it that. --asqueella (talk) 13:44, 30 December 2010 (UTC)[reply]

Universal[edit]

Mac And Windows And Universal Mkennedy00abc (talk) 04:26, 21 August 2014 (UTC)[reply]

And your point is? Guy Harris (talk) 05:57, 21 August 2014 (UTC)[reply]

External links modified[edit]

Hello fellow Wikipedians,

I have just modified 2 external links on Universal binary. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:

When you have finished reviewing my changes, please set the checked parameter below to true or failed to let others know (documentation at {{Sourcecheck}}).

checkY An editor has reviewed this edit and fixed any errors that were found.

  • If you have discovered URLs which were erroneously considered dead by the bot, you can report them with this tool.
  • If you found an error with any archives or the URLs themselves, you can fix them with this tool.

Cheers.—InternetArchiveBot (Report bug) 19:11, 21 July 2016 (UTC)[reply]

They seem to work. Guy Harris (talk) 20:51, 21 July 2016 (UTC)[reply]

Why the lipo command?[edit]

ditto is another command that is able to thin Universal Binaries, and included with MacOS/Mac OS X. Why is lipo the main command, when you need to install it separately? 24.22.108.174 (talk) 04:04, 30 August 2021 (UTC)[reply]

According to the NEXTSTEP/OpenStep FAQ, lipo dates back to NeXTSTEP when they added Multi-Architecture Binaries (Darwin fat binaries are the same as NeXTSTEP Multi-Architecture Binaries, both built out of multiple Mach-O binaries).
ditto is in the BomCmds project (according to the results of what run on its executable image); that doesn't appear to be an open-source project, so I can't find its source, but the "Bom" probably refers to bills of material. At least according to the bom(5) man page, the bill of materials format dates back to NeXTSTEP, so ditto may date back to NeXTSTEP as well. I also don't know whether thinning fat binaries was something that ditto supported from Day One, but it's probably something lipo supported from Day One.
lipo is a general tool for manipulating fat binaries; I don't know whether it originally just thinned them out, but it currently supports a lot more than than, including making a fat binary from multiple non-fat binaries. ditto does not support more than thinning, and that may only have been done as a convenience for copying a tree and thinning it out in one command.
What the article says is:

The main tool for handling (creating or splitting) universal binaries is the lipo command found in Xcode.

which is true - you can't use ditto to create a universal binary, and to extract all the executable types from a single universal binary into separate files, it might be more convenient to run lipo multiple times than to run ditto multiple times.
So, for many purposes, lipo, rather than ditto, is the primary tool because 1) some purposes aren't supported by ditto and 2) other purposes are more conveniently served by lipo. Guy Harris (talk) 09:28, 30 August 2021 (UTC)[reply]

article sounds like a methode used in history[edit]

Hi,

as the article is written it sounds like it is something that was used way in the past as apple switched from ppc to x86 based architectures, but it is the same principle used now where arm and x86 based system with apple-software are used at the same time. Here an example output of the file tool of such a binary...

/tmp/[...].app/Contents/MacOS$ file *

[...]: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit x86_64 executable, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL|PIE>] [arm64:Mach-O 64-bit arm64 executable, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL|PIE>] 89.246.192.145 (talk) 17:41, 27 February 2023 (UTC)[reply]

The first paragraph of the article mentions ARM64, and there's a "Universal 2" section. What parts imply this is only for PPC/x86 binaries? Guy Harris (talk) 21:56, 27 February 2023 (UTC)[reply]