Linux PowerPC 32 ELF ABI

From Devpit
Jump to: navigation, search

SGML and Stylesheets

This section enumerates stylesheet changes and what you can expect from the SGML:

<figure CONDITION="ATR-LINUX"><screen> This figure will only show up in the Linux document. </screen></figure>

<emphasis role="strikethrough">Text to be stricken through</emphasis> <emphasis role="bold">Bold Text</emphasis> <emphasis>Italic Text</emphasis> <emphasis role="italicbold">Italic Bold Text</emphasis>

Setting up Bazaar-NG on your system

1. If you need to install Bazaar-NG follow the direction on the following website:

http://bazaar-vcs.org/InstallationFaq

2. Get the Bazaar-NG Source Code Repository on your system: On Ubuntu Edgy this is the (bzr) application provided in the following packages:

bzr
bzrtools

3. Set your EDITOR env variable to your favorite editor (better yet, add it to your shell resource file):

$ export EDITOR=vim

4. Download and install the bzr-tags plugin:

$ bzr branch http://bzr.freestandards.org/unofficial/bzr-tags bzr-tags
$ cd bzr-tags
$ mkdir -p $HOME/.bazaar/plugins/tags
$ cp __init__.py tests.py $HOME/.bazaar/plugins/tags

5. Set your email address in ~/.bazaar/bazaar.conf. Note that [DEFAULT] is case sensitive:

[DEFAULT]
email = Joe Public <joep@company.com>

Getting the PowerPC 32 Bit ELF ABI SGML Sources

1. We're going to want to use the concept of a pristine tree to track the bundles that people send out. This tree only has bundles applied to it. You don't do work in this tree. You use it for branching other trees. Branching is a verb in the bzr world.

  • Get a branch from freestandards.org for a pristine tree (where you don't do any work):
$ bzr branch http://bzr.freestandards.org/lsbspec-powerpc/devel/lsbspec lsbspec-pristine

Apply Bundles To Your Pristine Tree

Bazaar-NG has the concept of bundles that will allow us to push our changes to freestandards.org. Their generic documentation on this process is located here:

http://www.freestandards.org/en/Bazaar-NG_Patch_Queue_Manager#Alternative_Workflow

The following directions show how to apply a bundle to a pristine tree.

1. Pull the ppc32.clone.bundle.patch bundle into this new pristine tree

$ cd lsbspec-pristine
$ bzr pull /path-to/ppc32.clone.bundle.patch

2. Commit the bundle(s) into the pristine tree: [Depending on the version of bzr this stage probably won't be necessary.]

$ bzr commit -m "Merge Ryan's bundle into my pristine branch"
  • People who just want to apply the two bundles we've created need only branch a pristine tree, and apply each bundle via a pull, commiting after each 'pull'.

Making Changes

You don't want to make actual changes in your pristine tree or you won't have anything to create the bundles against. For this reason you want to branch your pristine tree into a working tree.

1. Branch the pristine tree into a new working tree:

$ cd ../
$ bzr branch lsbspec-pristine/ lsbspec-working

2. Make changes in the new working tree:

$ cd lsbspec-working
<edit your sources>
$ bzr commit;

3. Create a bundle to apply against the pristine tree from within the working tree. Notice we're in the lsbspec-working directory but we're creating the bundle against the lsbspec-pristine tree. This makes the bundle apply against the current revision level of the pristine tree:

$ cd lsbspec-working
$ bzr bundle ../lsbspec-pristine --output ../new.bundle.patch

4. Apply the bundle to the pristine tree:

$ cd lsbspec-pristine
$ bzr pull ../new.bundle.patch

5. Commit the new bundle to the pristine tree:

$ bzr commit -m "Apply new bundle to my pristine tree"

6. Distribute the bundle to other members of the team with an indication on it's dependencies [i.e. which bundles were applied to your pristine tree before you created your bundle].

Changelog format

Your editor will be invoked and you will be asked to provide a changelog. Please use the following template:

year-mm-dd<two-spaces>submitter's full name<two-space><email address>
<empty line>
<tab--->[BZ #number]<optional>
<tab--->* path/and/filename: description of the change.
<tab--->continue the desc.  Notice no * char on the continuation line.
<tab--->* next/path/and/filename: description, etc.
  • Example (from the ppc32-clone-bundle).
2007-01-08  Ryan S. Arnold  <nospam@my.company.com>

	* ELF/ppc32/ : Cloned ELF/ppc64 directory.
	* ELF/ppc32/PPC-elf32abi-0.1.txt : Generated initial version.
	* ELF/ppc32/PPC-elf32abi.sgml : Cloned from ELF/ppc64, renamed, and
	changed chapter links to reflect elf32.
	* ELF/ppc32/chap1-elf32abi.sgml : Cloned from ELF/ppc64.
	* etc...
  • NOTE: Please include all the files that you modified in the changelog.

Generated formatted output files from the SGML files

1. Install the following programs:

jw
jade
docbook2pdf
docbook2html
docbook2txt
  • On my system (Ubuntu Linux: Edgy Release) these were provided by the following packages:
docbook
docbook-utils
jade

2. In the ELF/ppc32 directory you'll see the 'makefile', which automates the building of the target files. Execute the following:

$ make onehtmlspec
$ make pdfspec
$ make txtspec
  • The result will be the files:
PPC-elf32abi.html
PPC-elf32abi.pdf
PPC-elf32abi.txt

3. In the cloned ELF/ppc32 bundle I generated and renamed these and provided initial 0.1 versions as follows:

PPC-elf32abi-0.1.html
PPC-elf32abi-0.1.pdf
PPC-elf32abi-0.1.txt