Issue 84999 - ia64 port
Summary: ia64 port
Status: CLOSED FIXED
Alias: None
Product: porting
Classification: Code
Component: code (show other issues)
Version: 680m241
Hardware: All Linux, all
: P3 Trivial (vote)
Target Milestone: OOo 3.0
Assignee: Stephan Bergmann
QA Contact: issues@porting
URL:
Keywords:
Depends on:
Blocks: 86425
  Show dependency tree
 
Reported: 2008-01-04 17:37 UTC by caolanm
Modified: 2008-02-29 15:22 UTC (History)
4 users (show)

See Also:
Issue Type: TASK
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments
patch for reference (87.47 KB, patch)
2008-02-17 11:26 UTC, caolanm
no flags Details | Diff
proposed improvement (partial) (8.58 KB, patch)
2008-02-18 09:34 UTC, Stephan Bergmann
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this issue.
Description caolanm 2008-01-04 17:37:00 UTC
we should have an ia64 port
Comment 1 caolanm 2008-01-04 17:37:26 UTC
have a semi-working uno bridge
Comment 2 kendy 2008-01-05 11:55:53 UTC
You rock! :-)  Adding me & pmladek to Cc.
Comment 3 caolanm 2008-01-05 13:52:01 UTC
I believe what's currently committed will build and maybe install though I've
yet to complete a build.

I know on the other hand that I haven't implemented the rather complex return a
small struct in multiple registers thing or the even more hairy "returned struct
consists of multiple floats which are multiplexed in return registers" or
something baroque like that
Comment 4 caolanm 2008-02-16 17:36:15 UTC
real hardware from hp arrived last week, so struct returning rules figured out
and bridge completed.

=RANDBETWEEN(10;20) works, java wizards work. Looks good. Install set upload later.
Comment 5 caolanm 2008-02-17 11:26:40 UTC
Created attachment 51551 [details]
patch for reference
Comment 6 caolanm 2008-02-17 11:39:08 UTC
cmc->sb: As a new port this doesn't actually affect anything existing except for
a few small places. Do you see any problems with the following parts of the
patch ? ...

a) vtablefactory.cxx For every other platform a vtable slot is just a void*, for
ia64 it is a void* *and* a gp value. Its most convenient to just have a single
ifdef IA64 in the shared vtablefactory.cxx code to handle this oddity.

b) ifdef for IA64 and ARM in typesconfig.c because these platforms (sometimes in
the case of ARM) can allow some types of alignments, but really really don't
like to do it, so the alignment values auto-detected aren't ideal.

c) and add some tests to cppu/test for returning various sized structs which are
handled in registers on some archs, like the small struct on x86_64 and up to
the middle struct on ia64
Comment 7 Stephan Bergmann 2008-02-18 09:32:46 UTC
@cmc:  (b) and (c) look OK.  For (a) I would prefer to more cleanly abstract
over vtable slots, as sketched in the attached SRC680m247-bridges-sketch.patch
for the shared parts and the gcc3_linux_intel platform.  The downside is that it
requires trivial modifications to all platforms, but I could help take care of that.
Comment 8 Stephan Bergmann 2008-02-18 09:34:01 UTC
Created attachment 51561 [details]
proposed improvement (partial)
Comment 9 caolanm 2008-02-18 09:46:05 UTC
:-( having to make 20 blind changes to the other uno bridges was what I most feared.
Comment 10 caolanm 2008-02-18 11:21:19 UTC
ok, cmc->sb: how about that now ? Especially is the windows one right ?
Comment 11 Stephan Bergmann 2008-02-19 08:04:16 UTC
@cmc:  Looks good (from browsing the cvs commits).  Thanks a lot for actually
doing it.  I will check that the changes do work on
unxlngi6/unxmacxi/unxsoli4/unxsols4/wntmsci11, but probably not before next week.
Comment 12 caolanm 2008-02-19 09:42:02 UTC
Next week is fine by me. Do you mind then if I set you as qa for the workspace
and reassign this task to you for verification when you get the time ?
Comment 13 Stephan Bergmann 2008-02-19 10:59:37 UTC
fine with me
Comment 14 caolanm 2008-02-19 13:35:50 UTC
reassigning for qaing shared bridge changes
Comment 15 Stephan Bergmann 2008-02-26 16:54:03 UTC
In solenv/inc/unxlnga.mk:1.1.2.2 added stuff that will be necessary once CWS
sb83 is integrated (and is otherwise harmless until then).

Verified by code review and by checking changes to bridges code via testtools
tests on unxlngi6.pro, unxmacxi.pro, unxsoli4.pro, unxsols4.pro, wntmsci11.pro.
Comment 16 Stephan Bergmann 2008-02-29 15:22:59 UTC
.