Difference between revisions of "Porting to x86-64 (AMD64, EM64T)"

From Apache OpenOffice Wiki
Jump to: navigation, search
m (removed historical page from its category list)
 
(23 intermediate revisions by 13 users not shown)
Line 1: Line 1:
 +
{{historical}}
 +
 
== Current status ==
 
== Current status ==
  
The x86-64 port is work in progress. It is not ready for use yet, but it compiles (with quite large set of patches), and performs basic operations.  '''It is of no use for non-developers.'''
+
The x86-64 port is essentially complete, modulo possible bugs. But between releases, during the development cycle, it is always likely that for a given milestone that OOo fails to build on x86_64, or that new 32bit-isms are introduced. Help is always appreciated to catch these problems early, or to recognize that there are other more subtle problems that we're unaware of.
 
 
Help is appreciated, join the project! :-)
 
  
The work is based on ''ooo64bit02'' [[CWS|Child Workspace (CWS)]], and most of the patches are committed back there nowThe problem is that this CWS is too huge to be integrated - it would be an incredible task for the QA.  The idea is to split it to smaller CWSes and get them integrated one by one.
+
The work was originally based on ''ooo64bit02'' [[CWS|Child Workspace (CWS)]].  It was too huge to be integrated as a whole, so it was split to various smaller CWS'es, and integrated to SRC680 (HEAD); then more fixes were introduced.
  
 
More info:
 
More info:
Line 14: Line 14:
 
== How to get it ==
 
== How to get it ==
  
All the available and the most recent patches are in [[ooo-build]]; you can see them [http://cvs.gnome.org/viewcvs/ooo-build/patches/64bit/ here].  See the general [[Getting It]], [[Building]], [[Installing]], [[Running]] sections for ooo-build.
+
Get the latest SRC680 development sources, and follow the general [[Getting It]], [[Building_with_ooobuild|Building]], [[Installing]], [[Running]] sections.  Don't forget to use --with-system-libs while configuring.
 +
 
 +
It is recommended to use a recent distro for building, like SUSE 10.1 or newer.  gcc should be at least 3.4.1 with enum+visibility patches, 4.x is probably the best choice.
 +
 
 +
It is very probable that you'll have problems with Java - some of the VM's have problems to build OOo on x86-64.
 +
 
 +
== Java ==
  
Be sure to specify one of the 64bit distros (like ''NLD64'', ''Debian64'', etc.) during the ''./configure'' time (''--with-distro='' configure switch), it will apply the 64bit patches then.
+
You have to have a 64bit Java installed.  The following are known to work:
 +
* gcj 4.0.1 - e.g. in SUSE 10.1 installation, works out of the box
 +
* [http://www.blackdown.org/ Blackdown Java] - reported to work
  
 
== How to help ==
 
== How to help ==
Line 25: Line 33:
 
* Find a bug (crash, missing functionality, ...)
 
* Find a bug (crash, missing functionality, ...)
 
* Fix it ;-)  It might be either in the ooo-build patches, or up-stream
 
* Fix it ;-)  It might be either in the ooo-build patches, or up-stream
* [http://qa.openoffice.org/issue_handling/submission_gateway.html#code_module File] the problem & the solution to the IssueZilla if it is up-stream, or send it to openoffice@lists.ximian.com if it is in the ooo-build patches
+
* [http://qa.openoffice.org/issue_handling/submission_gateway.html#code_module File] the problem & the solution to the [http://www.openoffice.org/issues/query.cgi Issuezilla] if it is up-stream, or send it to openoffice@lists.ximian.com if it is in the ooo-build patches
** Ensure that you CC 'kendy' and 'pjanik' on the report to get a quick response
+
** Ensure that you CC 'kendy', 'pjanik', and 'cmc' on the report to get a quick response
 
* If the underlying problem is a new problem archetype - try to find & fix all other instances of it
 
* If the underlying problem is a new problem archetype - try to find & fix all other instances of it
  
The most important task now is to isolate fixes from ''ooo64bit02'', and get them up-stream.  Once the official OpenOffice.org builds on x86-64, it will be much easier to get more people involved, and to fix bugs more effectively.
+
Should you have questions, please contact ''caolan'', ''kendy'', ''martink'', or ''paveljanik'' on [[IRC_Communication|IRC]].
 
 
The other task is to get it work with a JVM - for example with Sun Java 1.5.0 for x86-64, or any other.
 
 
 
Should you have questions, please contact ''kendy'', ''martink'', or ''paveljanik'' on [[IRC_Communication|IRC]].
 
 
 
== Java related issues during porting==
 
* First, remove the --without-java line in distro-config/NLD64.conf.in file, and give the option of --with-distro=NLD64 while configuring.
 
* Encountered problem & solution
 
{| border="1" cellspacing="1"
 
!|OSD
 
!|Source tag
 
!|Configuration Option
 
!|Phenomenon
 
!|Solution
 
!|Note
 
|-
 
|SuSe9.3
 
|m136
 
|  --with-distro=NLD64 --with-tag=src680-m136
 
|xmlhelp module failed because the Berkeley DB 4.2 on suse9.3 doesn't have db.jar instlled, ie. the java option isn't turned on when the db42 rpm package is builded, and this causes some java programs which use the calss of com.sleepycat.db.Db fail.
 
|manually recompile the BerkeleyDB 4.2 with java option turned on and configure --with-db-jar=/usr/local/BerkeleyDB.4.2/lib/db.jar;remove the --with-system-db line in distro-config/NLD64.conf.in file; add /usr/local/BerkeleyDB.4.2/lib/db.jar to $CLASSPATH; finally re-configure the whole building process.
 
|BerkeleyDB.4.4 changed the API of java, please DON'T use the 4.4 version of Berkeley DB.
 
|-
 
|}
 

Latest revision as of 07:49, 22 June 2012

This page is archived for historical reasons only. It is no longer maintained and information may not be current.

Current status

The x86-64 port is essentially complete, modulo possible bugs. But between releases, during the development cycle, it is always likely that for a given milestone that OOo fails to build on x86_64, or that new 32bit-isms are introduced. Help is always appreciated to catch these problems early, or to recognize that there are other more subtle problems that we're unaware of.

The work was originally based on ooo64bit02 Child Workspace (CWS). It was too huge to be integrated as a whole, so it was split to various smaller CWS'es, and integrated to SRC680 (HEAD); then more fixes were introduced.

More info:

How to get it

Get the latest SRC680 development sources, and follow the general Getting It, Building, Installing, Running sections. Don't forget to use --with-system-libs while configuring.

It is recommended to use a recent distro for building, like SUSE 10.1 or newer. gcc should be at least 3.4.1 with enum+visibility patches, 4.x is probably the best choice.

It is very probable that you'll have problems with Java - some of the VM's have problems to build OOo on x86-64.

Java

You have to have a 64bit Java installed. The following are known to work:

  • gcj 4.0.1 - e.g. in SUSE 10.1 installation, works out of the box
  • Blackdown Java - reported to work

How to help

Generally

  • Compile it
  • Find a bug (crash, missing functionality, ...)
  • Fix it ;-) It might be either in the ooo-build patches, or up-stream
  • File the problem & the solution to the Issuezilla if it is up-stream, or send it to openoffice@lists.ximian.com if it is in the ooo-build patches
    • Ensure that you CC 'kendy', 'pjanik', and 'cmc' on the report to get a quick response
  • If the underlying problem is a new problem archetype - try to find & fix all other instances of it

Should you have questions, please contact caolan, kendy, martink, or paveljanik on IRC.

Personal tools