Closed
Bug 404256
Opened 16 years ago
Closed 16 years ago
OpenBSD xptcall files for trunk
Categories
(Core :: XPCOM, defect, P4)
Tracking
()
RESOLVED
FIXED
mozilla1.9beta3
People
(Reporter: martynas, Assigned: martynas)
Details
Attachments
(1 file, 2 obsolete files)
115.67 KB,
patch
|
benjamin
:
review+
brendan
:
approval1.9+
|
Details | Diff | Splinter Review |
Good day, Attached are updated xptcall files for the new API for trunk. I don't have all of the platforms, so they are still being tested. I'll reply when the testing is finished.
Flags: blocking1.9?
Comment 1•16 years ago
|
||
martynas - why do you want this to block the Gecko1.9 release?
Assignee | ||
Comment 2•16 years ago
|
||
Because Gecko1.8 already supports OpenBSD (files needed to be adjusted for the new API). It's a follow-up from bug #236599.
Updated•16 years ago
|
Flags: blocking1.9? → blocking1.9+
Priority: -- → P4
Assignee | ||
Comment 3•16 years ago
|
||
Contains a few fixes. Tested on alpha, amd64, arm, macppc and sparc64.
Attachment #289234 -
Attachment is obsolete: true
Updated•16 years ago
|
Attachment #290403 -
Flags: review?(timeless)
Assignee | ||
Comment 4•16 years ago
|
||
Comment on attachment 290403 [details] [diff] [review] OpenBSD xptcall files for trunk, v2 Searching for someone who cares.
Attachment #290403 -
Flags: review?(timeless) → review?(benjamin)
Comment on attachment 290403 [details] [diff] [review] OpenBSD xptcall files for trunk, v2 can you explain why you force this: +CXXFLAGS += -O2 could you possibly fix the C++ files to match the declared indentation (2 or 4 spaces), and also make the assembly reasonably aligned (some limited examples follow) this doesn't seem properly aligned: + "ldr ip, [r1, r2] \n\t" /* get method adress from vtable */ ... + "cmp r4, #12 \n\t" /* more than 3 arguments??? */ this i assume is ok'ish: + "ldmgtia sp!, {r1, r2, r3}\n\t" /* yes: load arguments for r1-r3 */ + lwz r4,4(r30) # load GP regs with method parameters + lwz r5,8(r30) +XPTC_InvokeByIndex: + save %sp,-(64 + 16),%sp ! room for the register window and + ! struct pointer, rounded up to 0 % 16 ... + sll %o0,2,%l0 ! number of bytes + sub %sp,%l0,%sp ! create the additional stack space ... + add %l0,%i0,%i0 ! adjust this + ld [%l1 + 4],%l0 ! target address + case nsXPTType::T_U8 : *((uint32*) l_d) = l_s->val.u8; break; + case nsXPTType::T_U16 : *((uint32*) l_d) = l_s->val.u16; break; ... + case nsXPTType::T_CHAR : *((uint32*) l_d) = l_s->val.c; break; + * This routine makes assumptions about the vtable layout of the c++ compiler. It's implemented + * for arm-linux GNU g++ >= 2.8.1 (including egcs and gcc-2.95.[1-3])! can you convert /equate this into a #if to force failure outside this range? +/* solaris defines __sparc for workshop compilers and + linux defines __sparc__ */ i don't understand this. solaris and linux (better capitalized Solaris/Linux) aren't things and don't really relate to compilers. If this means Sun Workshop (now Sun Studio), and GCC, then can we change this to indicate that? What happens if I use Studio for Linux or GCC for Solaris? +// caller. The rest of the parameters are passed in the callers stack caller's + dispatchParams = new nsXPTCMiniVariant[paramCount]; + else + dispatchParams = paramBuffer; + NS_ASSERTION(dispatchParams,"no place for params"); + + PRUint64* ap = args; this instance isn't checking dispatchparams for alloc failure, some do, please make sure they all do. i'm very sorry that we've only recently tried to fix this. (actually, there are at least 2 that don't, and i saw at least one that did)
Updated•16 years ago
|
Attachment #290403 -
Flags: review?(benjamin) → review+
![]() |
||
Comment 6•16 years ago
|
||
So what's keeping this from landing? Does it just need to be checked in?
Comment 7•16 years ago
|
||
Well, shouldn't timeless comments be addressed? I think those are valid remarks even if he wasn't the reviewer.
Assignee | ||
Comment 8•16 years ago
|
||
Incorporated from comment #5.
Attachment #290403 -
Attachment is obsolete: true
Attachment #293823 -
Flags: review?(benjamin)
Updated•16 years ago
|
Attachment #293823 -
Flags: review?(benjamin) → review+
Assignee | ||
Updated•16 years ago
|
Attachment #293823 -
Flags: approval1.9?
Assignee | ||
Updated•16 years ago
|
Whiteboard: [checkin needed]
Updated•16 years ago
|
Attachment #293823 -
Flags: approval1.9? → approval1.9+
Comment 9•16 years ago
|
||
Note: checkin-needed is a keyword now, instead of a magical status whiteboard string.
Keywords: checkin-needed
Whiteboard: [checkin needed]
Comment 10•16 years ago
|
||
Checking in xpcom/reflect/xptcall/src/md/unix/Makefile.in; /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in,v <-- Makefile.in new revision: 1.97; previous revision: 1.96 done RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_alpha_openbsd.cpp,v done Checking in xpcom/reflect/xptcall/src/md/unix/xptcinvoke_alpha_openbsd.cpp; /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_alpha_openbsd.cpp,v <-- xptcinvoke_alpha_openbsd.cpp initial revision: 1.1 done RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_amd64_openbsd.cpp,v done Checking in xpcom/reflect/xptcall/src/md/unix/xptcinvoke_amd64_openbsd.cpp; /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_amd64_openbsd.cpp,v <-- xptcinvoke_amd64_openbsd.cpp initial revision: 1.1 done Checking in xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm_openbsd.cpp; /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm_openbsd.cpp,v <-- xptcinvoke_arm_openbsd.cpp new revision: 1.2; previous revision: 1.1 done Checking in xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc_openbsd.s; /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc_openbsd.s,v <-- xptcinvoke_asm_ppc_openbsd.s new revision: 1.2; previous revision: 1.1 done Checking in xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_sparc64_openbsd.s; /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_sparc64_openbsd.s,v <-- xptcinvoke_asm_sparc64_openbsd.s new revision: 1.2; previous revision: 1.1 done RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_sparc_openbsd.s,v done Checking in xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_sparc_openbsd.s; /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_sparc_openbsd.s,v <-- xptcinvoke_asm_sparc_openbsd.s initial revision: 1.1 done Checking in xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc_openbsd.cpp; /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc_openbsd.cpp,v <-- xptcinvoke_ppc_openbsd.cpp new revision: 1.2; previous revision: 1.1 done Checking in xpcom/reflect/xptcall/src/md/unix/xptcinvoke_sparc64_openbsd.cpp; /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_sparc64_openbsd.cpp,v <-- xptcinvoke_sparc64_openbsd.cpp new revision: 1.2; previous revision: 1.1 done RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_sparc_openbsd.cpp,v done Checking in xpcom/reflect/xptcall/src/md/unix/xptcinvoke_sparc_openbsd.cpp; /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_sparc_openbsd.cpp,v <-- xptcinvoke_sparc_openbsd.cpp initial revision: 1.1 done RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_alpha_openbsd.cpp,v done Checking in xpcom/reflect/xptcall/src/md/unix/xptcstubs_alpha_openbsd.cpp; /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_alpha_openbsd.cpp,v <-- xptcstubs_alpha_openbsd.cpp initial revision: 1.1 done RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_amd64_openbsd.cpp,v done Checking in xpcom/reflect/xptcall/src/md/unix/xptcstubs_amd64_openbsd.cpp; /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_amd64_openbsd.cpp,v <-- xptcstubs_amd64_openbsd.cpp initial revision: 1.1 done Checking in xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm_openbsd.cpp; /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm_openbsd.cpp,v <-- xptcstubs_arm_openbsd.cpp new revision: 1.2; previous revision: 1.1 done Checking in xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc_openbsd.s; /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc_openbsd.s,v <-- xptcstubs_asm_ppc_openbsd.s new revision: 1.2; previous revision: 1.1 done RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_sparc64_openbsd.s,v done Checking in xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_sparc64_openbsd.s; /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_sparc64_openbsd.s,v <-- xptcstubs_asm_sparc64_openbsd.s initial revision: 1.1 done RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_sparc_openbsd.s,v done Checking in xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_sparc_openbsd.s; /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_sparc_openbsd.s,v <-- xptcstubs_asm_sparc_openbsd.s initial revision: 1.1 done Checking in xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc_openbsd.cpp; /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc_openbsd.cpp,v <-- xptcstubs_ppc_openbsd.cpp new revision: 1.2; previous revision: 1.1 done Checking in xpcom/reflect/xptcall/src/md/unix/xptcstubs_sparc64_openbsd.cpp; /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_sparc64_openbsd.cpp,v <-- xptcstubs_sparc64_openbsd.cpp new revision: 1.2; previous revision: 1.1 done RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_sparc_openbsd.cpp,v done Checking in xpcom/reflect/xptcall/src/md/unix/xptcstubs_sparc_openbsd.cpp; /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_sparc_openbsd.cpp,v <-- xptcstubs_sparc_openbsd.cpp initial revision: 1.1 done
Status: ASSIGNED → RESOLVED
Closed: 16 years ago
Component: Build Config → XPCOM
Keywords: checkin-needed
QA Contact: build-config → xpcom
Resolution: --- → FIXED
Target Milestone: --- → mozilla1.9 M11
You need to log in
before you can comment on or make changes to this bug.
Description
•