Issue Details (XML | Word | Printable)

Key: CORE-2559
Type: New Feature New Feature
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Alexander Peshkov
Reporter: Dan Horak
Votes: 0
Watchers: 0

If you were logged in you would be able to see more operations.
Firebird Core

add support for Linux/s390x platform - patch exists

Created: 16/Jul/09 02:48 PM   Updated: 12/Nov/09 05:30 PM
Component/s: Build Issues / Porting
Affects Version/s: 2.1.2
Fix Version/s: 2.5 RC1

File Attachments: 1. Text File firebird-2.1.2-s390x.patch (6 kB)
2. Text File firebird2-HEAD-s390x-part-1.patch (5 kB)
3. Text File firebird2-HEAD-s390x-part-2.patch (3 kB)

Environment: Linux/s390x - Fedora 11

 Description  « Hide
I have created a patch that adds support for the Linux/390x platform (IBM mainframe zSeries) and I would like to see it in the official sources.

 All   Comments   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Dan Horak added a comment - 16/Jul/09 02:57 PM
I will open a thread on firebird-devel mailing list to discuss the support.

Alexander Peshkov added a comment - 17/Jul/09 02:05 AM - edited
Thank you, patch is appreciated.

I will commit it right after 2.1.3 release (sorry, afraid that for 2.1.3 it's already too late). Can you also provide patch for HEAD?

One question about a patch. I'm not familiar with s390 architecture. How strong alignment requirements does it have? I.e. will it work (like x86) or fail (like sparc) if int is placed on odd address? If yes, we must also define RISC_ALIGNMENT for it.

Dan Horak added a comment - 17/Jul/09 03:33 AM
The s390x arch is 64-bit CISC and has byte-addressable memory, so there is no need for RISC_ALIGNMENT.

Rebased patch fill follow soon.

Dan Horak added a comment - 17/Jul/09 08:48 AM - edited
firebird2-HEAD-s390x-part-1.patch = the "magic constants" and buildsys part against HEAD

Dan Horak added a comment - 20/Jul/09 10:19 AM - edited
firebird2-HEAD-s390x-part-2.patch = implementation of atomic primitives in src/common/classes/fb_atomic.h using libatomic_ops

Alexander Peshkov added a comment - 21/Jul/09 01:20 AM
I've tried libatomic_ops(). And telling true much surprised that is works for s390. It happened to be useless for sparc - only extra-old CPUs support, therefore poor-man implementation of many functions.

What version of library did you use?

Alexander Peshkov added a comment - 31/Jul/09 06:00 AM
Port appears to be complete in HEAD currently