Closed
Bug 878171
Opened 11 years ago
Closed 11 years ago
Fix xptcall build on OpenBSD/amd64 after bug 864774
Categories
(Firefox Build System :: General, defect)
Tracking
(Not tracked)
RESOLVED
FIXED
mozilla24
People
(Reporter: gaston, Assigned: gaston)
References
Details
Attachments
(1 file, 1 obsolete file)
1007 bytes,
patch
|
ted
:
review+
|
Details | Diff | Splinter Review |
Bug 864774 broke OpenBSD/amd64 builds in xpcom/reflect/xptcall : previous code in Makefile.in was doing : ifneq (,$(filter NetBSD OpenBSD GNU,$(OS_ARCH))) ifeq (86,$(findstring 86,$(OS_TEST))) CPPSRCS := xptcinvoke_gcc_x86_unix.cpp xptcstubs_gcc_x86_unix.cpp endif endif newer moz.build does : if CONFIG['OS_ARCH'] in ('NetBSD', 'OpenBSD', 'GNU'): if CONFIG['OS_TEST'].find('86') != -1: CPP_SOURCES += [ 'xptcinvoke_gcc_x86_unix.cpp', 'xptcstubs_gcc_x86_unix.cpp' ] I have no idea if this code is supposed to be included on i386/x86 only or also x86_64/amd64, but the build is broken with multiple declarations of functions : :../../../../../../dist/include/xptcstubsdef.inc:252: first defined here ../../xpcom/reflect/xptcall/src/md/unix/xptcstubs_amd64_openbsd.o(.text+0x66): In function `PrepareAndDispatch': ../../../../../../dist/include/mozilla/mozalloc.h:213: multiple definition of `nsXPTCStubBase::Stub4()' ../../xpcom/reflect/xptcall/src/md/unix/xptcstubs_gcc_x86_unix.o(.text+0x18):/src/mozilla-central/xpcom/reflect/xptcall/src/md/ unix/xptcstubs_gcc_x86_unix.cpp:28: first defined here ../../xpcom/reflect/xptcall/src/md/unix/xptcstubs_amd64_openbsd.o(.text+0x6e): In function `PrepareAndDispatch': ../../../../../../dist/include/mozilla/mozalloc.h:213: multiple definition of `nsXPTCStubBase::Stub5()' ../../xpcom/reflect/xptcall/src/md/unix/xptcstubs_gcc_x86_unix.o(.text+0x20):/src/mozilla-central/xpcom/reflect/xptcall/src/md/ unix/xptcstubs_gcc_x86_unix.cpp:28: first defined here dunno what changed in the machinery from the previous makefile infrastructure.
Comment 1•11 years ago
|
||
I see what happened here. The original Makefile is using "CPPSRCS :=" everywhere, so later declarations *overwrite* previous ones. Thus both of these conditionals evaluate true, but the second one overrides the first: http://hg.mozilla.org/mozilla-central/annotate/97e443115162/xpcom/reflect/xptcall/src/md/unix/Makefile.in#l54 http://hg.mozilla.org/mozilla-central/annotate/97e443115162/xpcom/reflect/xptcall/src/md/unix/Makefile.in#l82 The moz.build conversion is using "CPP_SOURCES +=", so they're still both true, but they now append: http://hg.mozilla.org/mozilla-central/annotate/4755d50e2402/xpcom/reflect/xptcall/src/md/unix/moz.build#l22 http://hg.mozilla.org/mozilla-central/annotate/4755d50e2402/xpcom/reflect/xptcall/src/md/unix/moz.build#l49 I think we could just replace those "CONFIG['OS_TEST'].find('86') != -1" tests with "CONFIG['CPU_ARCH'] == 'x86'".
Assignee | ||
Comment 2•11 years ago
|
||
Fixes the build on openbsd/amd64 - netbsd will probably need it too.i386 unaffected since it's supposed to use that file anyway.
Assignee: nobody → landry
Attachment #756727 -
Flags: review?(ted)
Comment 3•11 years ago
|
||
Comment on attachment 756727 [details] [diff] [review] only use xptc*_gcc_x86_unix.cpp on Open/NetBSD/i386, not amd64/x86_64 Review of attachment 756727 [details] [diff] [review]: ----------------------------------------------------------------- ::: xpcom/reflect/xptcall/src/md/unix/moz.build @@ +19,5 @@ > 'xptcstubs_gcc_x86_unix.cpp', > ] > > if CONFIG['OS_ARCH'] in ('NetBSD', 'OpenBSD', 'GNU'): > + if CONFIG['OS_TEST'] == 'i386': Change this to CONFIG['CPU_ARCH'] == 'x86'.
Attachment #756727 -
Flags: review?(ted) → review-
Assignee | ||
Comment 4•11 years ago
|
||
Attachment #756727 -
Attachment is obsolete: true
Attachment #756906 -
Flags: review?(ted)
Updated•11 years ago
|
Attachment #756906 -
Flags: review?(ted) → review+
Assignee | ||
Comment 5•11 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/77a0a9374c66
Comment 6•11 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/77a0a9374c66
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla24
Updated•6 years ago
|
Product: Core → Firefox Build System
You need to log in
before you can comment on or make changes to this bug.
Description
•