Skip to content

Conversation

glaubitz
Copy link
Contributor

@glaubitz glaubitz commented Jul 12, 2016

Hello!

This pull request adds generic Linux/m68k platform support to Firebird 2.5. The first patch by me just adds the necessary platform definitions for Linux/m68k while the second patch by Michael Karcher fixes the alignment of 'sem_t' on m68k which is different to the alignment of 'long long' which resulted in the futex system call failing with "The futex facility returned an unexpected error code.Aborted".

See Debian bug report 828141 [1] for more details.

These two patches currently address Firebird 2.5 only since this is the currently used version of Firebird in Debian unstable. We have 3.0 in Debian experimental, but I haven't found the time yet to test Firebird 3.0 on Linux/m68k. However, I am planning to do this within the next days so that I can provide patches against the 3.0 branch and hopefully also master.

Thanks,
Adrian

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=828141

glaubitz and others added 2 commits July 12, 2016 09:40
…ALIGN

On m68k, 'long long' is 16-bit aligned while 'sem_t' is 32-bit aligned
and we must therefore include 'sem_t' when determining the values for
FB_ALIGNMENT and FB_DOUBLE_ALIGN. Otherwise, the futex system call
will fail on these systems.
@AlexPeshkoff
Copy link
Member

The only problem remaining to merge your pull request is same job for FB3

@AlexPeshkoff AlexPeshkoff self-assigned this Jul 12, 2016
@glaubitz
Copy link
Contributor Author

Of course, I just haven't got around yet working on FB3.0 and the master branch. I just opened this PR already because this code has already been verified to work :).

@AlexPeshkoff
Copy link
Member

We usually do not accept branch-only ports if there is no port for the
master

@glaubitz
Copy link
Contributor Author

I understand that and never asked for that. It's just that I had tested 2.5 first because that's what Debian unstable currently has. As I said, 3.0 and master will follow suit.

@@ -217,6 +217,7 @@ enum info_db_implementations
isc_info_db_impl_linux_alpha = 83,
isc_info_db_impl_linux_arm64 = 84,
isc_info_db_impl_linux_ppc64el = 85,
isc_info_db_impl_linux_m68k = 86,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

isc_info_db_impl_linux_m68k = 87

https://github.com/glaubitz/firebird/blob/eedb1ed9f0f01d146dca1c804e30590494de142a/src/jrd/inf_pub.h#L244

must add both
isc_info_db_impl_linux_ppc64 = 86,
isc_info_db_impl_linux_m68k = 87,

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi Mariuz!

This was for Firebird2.5 which did not have any support for ppc64 back then, but it was added to FB3.0.

I can backport the ppc64 changes to 2.5 if you want to and update this PR accordingly.

Adrian

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants