Merge lp://qastaging/~percona-core/percona-xtrabackup/release-2.0.6 into lp://qastaging/percona-xtrabackup/2.0

Proposed by Ignacio Nin
Status: Merged
Approved by: Stewart Smith
Approved revision: no longer in the source branch.
Merged at revision: 527
Proposed branch: lp://qastaging/~percona-core/percona-xtrabackup/release-2.0.6
Merge into: lp://qastaging/percona-xtrabackup/2.0
Diff against target: 103 lines (+20/-11)
6 files modified
VERSION (+1/-1)
src/Makefile (+1/-1)
utils/build-binary.sh (+15/-6)
utils/build-dpkg.sh (+1/-1)
utils/build-rpm.sh (+1/-1)
utils/xtrabackup.spec (+1/-1)
To merge this branch: bzr merge lp://qastaging/~percona-core/percona-xtrabackup/release-2.0.6
Reviewer Review Type Date Requested Status
Stewart Smith (community) Approve
Alexey Kopytov Pending
Review via email: mp+156646@code.qastaging.launchpad.net

This proposal supersedes a proposal from 2013-03-20.

Description of the change

Resubmitting the proposal with the changes required for fixing the binary issues, and also using g++ now as default C++ compiler for all versions of Percona Server.

These changes are built on top of the changes for release 2.0.6 since it's already been released.

To post a comment you must log in.
Revision history for this message
Alexey Kopytov (akopytov) wrote : Posted in a previous version of this proposal

Are there any specific reasons to not just use "CXX=${CXX:-g++}" instead of introducing CXX_56?

review: Needs Information
Revision history for this message
Ignacio Nin (ignacio-nin) wrote : Posted in a previous version of this proposal

> Are there any specific reasons to not just use "CXX=${CXX:-g++}" instead of
> introducing CXX_56?

PS 5.1 and 5.5 are compiled with gcc by default, so CXX gets exported to CXX=gcc by default. However, 5.6 won't build with CXX=gcc so we need to default to CXX=g++ for it. I created CXX_56 so we can specifically override CXX for 5.6 separately from 5.5 and 5.1.

For example in CentOS 5 we want to compile 5.1 and 5.5 with CXX=gcc44, but 5.6 with CXX=g++44.

Revision history for this message
Alexey Kopytov (akopytov) wrote : Posted in a previous version of this proposal

Hi Ignacio,

On Thu, 21 Mar 2013 21:43:20 -0000, Ignacio Nin wrote:
>> Are there any specific reasons to not just use "CXX=${CXX:-g++}" instead of
>> introducing CXX_56?
>
> PS 5.1 and 5.5 are compiled with gcc by default, so CXX gets exported to CXX=gcc by default. However, 5.6 won't build with CXX=gcc so we need to default to CXX=g++ for it. I created CXX_56 so we can specifically override CXX for 5.6 separately from 5.5 and 5.1.
>

Are you saying that PS 5.1/5.5 will *not* compile with CXX=g++? As in,
what exactly is wrong with CXX=g++? I use it locally to build XB and
don't have any issues.

Revision history for this message
Alexey Kopytov (akopytov) wrote : Posted in a previous version of this proposal

It is in fact the reason for bug #1158948.

Our packaging scripts define CXX=gcc for some obscure reason. This worked for server versions < 5.6, but 5.6 doesn't build with CXX=gcc, it requires CXX=g++ (or just not overriding CXX, in which case CMake would use g++ anyway).

Now what the changes in release-2.0.6 do is that instead of changing CXX to g++ they introduce this CXX_56=g++ thing. But only in build-dpkg.sh and build-rpm.sh, not in build-binary.sh. And that's why innodb56 build fails when run from build-binary.sh. One would expect that build-binary.sh would fail in such a case. But we also have the code in build-binary.sh to suppress all build failures with the "( ... ) || false" construct. So build-binary.sh fails to build innodb56, but completes successfully.

Here's what I suggest we do:

- remove CXX_56, replace it with "CXX=g++" in all build-*.sh scripts
- remove that construct to suppress build failures

review: Needs Fixing
Revision history for this message
Stewart Smith (stewart) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
The diff is not available at this time. You can reload the page or download it.

Subscribers

People subscribed via source and target branches