Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2.45 fails to build on bionic/ppc64el #2035

Closed
mbanck opened this issue Mar 27, 2023 · 6 comments
Closed

2.45 fails to build on bionic/ppc64el #2035

mbanck opened this issue Mar 27, 2023 · 6 comments
Assignees
Labels

Comments

@mbanck
Copy link

mbanck commented Mar 27, 2023

Please provide the following information when submitting an issue (feature requests or general comments can skip this):

  1. pgBackRest version: 2.45

  2. PostgreSQL version: n/a

  3. Operating system/version - if you have more than one server (for example, a database server, a repository host server, one or more standbys), please specify each: Ubuntu 18.04 LTS (bionic)

  4. Did you install pgBackRest from source or from a package? Trying to build the .deb package

  5. Please attach the following as applicable: n/a

  6. Describe the issue:

When trying to build the 2.45 Debian/Ubuntu packages, we see the following build error in the new block-incremental code:

19:44:28 gcc  -g -O3 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -std=c99 -Wall -Wextra -Wno-missing-field-initializers -Wno-implicit-fallthrough -Wno-clobbered -O2 -Wdate-time -D_FORTIFY_SOURCE=2 -D_POSIX_C_SOURCE=200809L -I. -I/usr/include/postgresql -I/usr/include/libxml2 -I. -I. -c -o .build/common/crypto/xxhash.o common/crypto/xxhash.c -MMD -MP -MF .build/common/crypto/xxhash.dep
19:44:28 In file included from common/crypto/xxhash.c:17:0:
19:44:28 ./common/crypto/xxhash.vendor.c.inc: In function ‘XXH3_accumulate_512_vsx’:
19:44:28 ./common/crypto/xxhash.vendor.c.inc:4148:9: error: invalid parameter combination for AltiVec intrinsic __builtin_vec_ld
19:44:28          xxh_u64x2 acc_vec        = vec_xl(0, xacc + 2 * i);
19:44:28          ^~~~~~~~~
19:44:28 ./common/crypto/xxhash.vendor.c.inc:4158:9: error: invalid parameter combination for AltiVec intrinsic __builtin_vec_st
19:44:28          vec_xst(acc_vec, 0, xacc + 2 * i);
19:44:28          ^~~~~~~
19:44:28 Makefile:291: recipe for target '.build/common/crypto/xxhash.o' failed
19:44:28 make[2]: *** [.build/common/crypto/xxhash.o] Error 1
19:44:28 make[2]: Leaving directory '/<<PKGBUILDDIR>>/src'

The full log is here, I hope it is accessible: https://pgdgbuild.dus.dg-i.net/job/pgbackrest-binaries/110/architecture=ppc64el,distribution=bionic/console

@dwsteele
Copy link
Member

dwsteele commented Mar 28, 2023

I have confirmed this issue. We only regularly test ppc64le on 20.04 which works fine.

Not quite sure what to do here. This is due to a bug in ppc64le gcc but they have worked around it recently in the xxHash project here Cyan4973/xxHash@ad63946. The current release is pretty old and this commit sits on top of a large amount of refactoring in HEAD, so I'm pretty doubtful it can be applied safely to the release version we are using. I'll give it a try, but even if it does apply, I'd worry about making random changes to the hash function which could have unintended consequences. We could update to the version in HEAD, but not too satisfied with that, either.

Is the build on Debian 10 working OK? I think that is the next oldest version after 18.04 expires in April.

@dwsteele
Copy link
Member

I did try to apply the xxHash patch that seems to fix this issue but I was not successful. There has been too much churn in the 15 months since the last release.

I was able to get a few tests through, but now Github actions has gone into a scheduled brownout for Ubuntu 18.04 since they are removing it in a few days.

@mbanck
Copy link
Author

mbanck commented Mar 28, 2023

Is the build on Debian 10 working OK? I think that is the next oldest version after 18.04 expires in April.

Yes, buster is fine; it has gcc-8 whereas bionic has gcc-7.4, maybe due to that.

@dwsteele
Copy link
Member

Yes, buster is fine; it has gcc-8 whereas bionic has gcc-7.4, maybe due to that.

Well, that's good at least. Honestly I'm not inclined to spend time working on an issue for a version that will be EOL in a month. Especially since the only fixes I can think of might be destabilizing.

Any chance we can make 2.44 the last release for 18.04? The major new feature in 2.45 is the block incremental beta and that won't end up in 18.04 anyway. There were no significant bug fixes.

@mbanck
Copy link
Author

mbanck commented Mar 28, 2023

Yes, I that's fine I think - I thought it was worthwhile to report this in case it was an easy fix. As this is not the case, we will drop bionic for 2.45.

@dwsteele
Copy link
Member

Sounds like a plan to me. Thanks!

@github-actions github-actions bot locked and limited conversation to collaborators Jul 2, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

2 participants