Closed Bug 552032 Opened 15 years ago Closed 15 years ago

fix unify error "copyIfIdentical: files differ" when building i386/x86_64 UB

Categories

(Firefox Build System :: General, defect)

x86_64
macOS
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: Nomis101, Assigned: ted)

References

Details

Attachments

(2 files)

After appling the patch from Bug 551941 and building a i386/x86_64 universal binarie you get the following error: /Volumes/Developer/temp/src/mozilla/build/macosx/universal/unify: copyIfIdentical: files differ: /Volumes/Developer/temp/src/mozilla/obj-x86_64-apple-darwin10.2.0/x86_64/dist/firefox/Minefield.app/Contents/MacOS/components/browser.xpt, /Volumes/Developer/temp/src/mozilla/obj-x86_64-apple-darwin10.2.0/i386/dist/firefox/Minefield.app/Contents/MacOS/components/browser.xpt make[1]: *** [postflight_all] Error 1 make: *** [build] Error 2
Blocks: 411588
FYI, I get the same error for Thunderbird: /Volumes/Developer/temp/src/mozilla/build/macosx/universal/unify: copyIfIdentical: files differ: /Volumes/Developer/temp/src/obj-x86_64-apple-darwin10.2.0/x86_64/mozilla/dist/thunderbird/Thunderbird.app/Contents/MacOS/components/mail.xpt, /Volumes/Developer/temp/src/obj-x86_64-apple-darwin10.2.0/i386/mozilla/dist/thunderbird/Thunderbird.app/Contents/MacOS/components/mail.xpt make[1]: *** [postflight_all] Error 1 make: *** [build] Error 2 I have compared both xpt's via FileMerge and HexEdit. The files are indeed not identical. But both files have the same size (479 KB).
Can you try running xpt_dump (should be in dist/bin or dist/host/bin) on the two xpt files, and see what the differences are? You can just attach the output here if you can't interpret it.
Attached file output from xpt_dump (deleted) —
(In reply to comment #2) >You can just attach the output > here if you can't interpret it OK, this are the outputs. You will find two differences. i386 has 1438 "Number of interfaces" and x86_64 "only" 1437. If you compare both files you will find the following additional lines in the i386 log (lacks in the x86_64 log): - ::nsIAppleFileDecoder (3a2bb280-64b8-11d5-9daa-bb433143c53c): Parent: ::nsIOutputStream Flags: Scriptable: TRUE Function: FALSE Methods: uint32 Initialize(in nsIOutputStream, in nsIFile); Constants: No Constants xpt_link was able to link both files...
Ah, ok, the source of that problem is the Makefile condition here: http://mxr.mozilla.org/mozilla-central/source/netwerk/streamconv/public/Makefile.in#59 Since we're only compiling that interface on i386, the resulting xpt files aren't the same. Josh: it should be fine to compile that interface on x86_64, just not the implementation, right?
(In reply to comment #4) > Ah, ok, the source of that problem is the Makefile condition here: > http://mxr.mozilla.org/mozilla-central/source/netwerk/streamconv/public/Makefile.in#59 > > Since we're only compiling that interface on i386, the resulting xpt files > aren't the same. Thats it, if I remove this ifneq x86_64 statement (for testing purpose), than I'am able to build successfully a i386/x86_64 universal binary :-)
(In reply to comment #4) > Josh: it should be fine to compile that interface on x86_64, just not the > implementation, right? Yes.
Simple patch.
Assignee: nobody → ted.mielczarek
Status: NEW → ASSIGNED
Attachment #433082 - Flags: review?(joshmoz)
Attachment #433082 - Flags: review?(joshmoz) → review+
Status: ASSIGNED → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: