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

MINOR: [R] Default to bundled re2 build #39514

Merged
merged 3 commits into from
Jan 8, 2024

Conversation

assignUser
Copy link
Member

@assignUser assignUser commented Jan 8, 2024

Rationale for this change

The CRAN check on fedora clang devel builds with clang against libc++ and has a system re2 installed that was build with C++11 ABI which causes linking to fail due to the [abi:cxx11]-symbol annotation on the system version.

A user could manually use the bundled build or path hint a clang version of the library. To avoid extra work for the CRAN maintainers we can just default to the bundled build. The re2 build is small enough that users building from source will not really feel the difference and can still opt to use the system re2 via EXTRA_CMAKE_FLAGS.

What changes are included in this PR?

Default to use our bundled build to prevent the problems.

Are these changes tested?

On a local dev container replicating the cran env.

Are there any user-facing changes?

Source build now default to use the bundled re2 version, this can be overridden.

@assignUser assignUser added Component: R Priority: Blocker Marks a blocker for the release labels Jan 8, 2024
@assignUser assignUser added this to the 15.0.0 milestone Jan 8, 2024
Copy link
Member

@paleolimbot paleolimbot left a comment

Choose a reason for hiding this comment

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

In my opinion this shouldn't be a MINOR (i.e., make an issue that summarizes the problem we had with CRAN and why this will fix that problem), but I have no problem with its content!

I would also check crossbow submit --group r to make sure it doesn't introduce problems there.

@@ -26,7 +26,7 @@ add_custom_target(toolchain-tests)
# Accumulate all bundled targets and we will splice them together later as
# libarrow_bundled_dependencies.a so that third party libraries have something
# usable to create statically-linked builds with some BUNDLED dependencies,
# including allocators like jemalloc and mimalloc
# including allocators like jllemalloc and mimalloc
Copy link
Member

Choose a reason for hiding this comment

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

Is this intentional?

Copy link
Member Author

Choose a reason for hiding this comment

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

oh no that's probably a rebase mix up, I'll remove it.

@github-actions github-actions bot added awaiting merge Awaiting merge and removed awaiting review Awaiting review labels Jan 8, 2024
@assignUser
Copy link
Member Author

crossbow submit --group r

@paleolimbot
Copy link
Member

@github-actions crossbow submit --group r

Copy link

github-actions bot commented Jan 8, 2024

Revision: d3044bf

Submitted crossbow builds: ursacomputing/crossbow @ actions-c0b42ace6a

Task Status
r-binary-packages GitHub Actions
test-fedora-r-clang-sanitizer Azure
test-r-arrow-backwards-compatibility GitHub Actions
test-r-depsource-bundled Azure
test-r-depsource-system GitHub Actions
test-r-dev-duckdb GitHub Actions
test-r-devdocs GitHub Actions
test-r-gcc-11 GitHub Actions
test-r-gcc-12 GitHub Actions
test-r-install-local GitHub Actions
test-r-install-local-minsizerel GitHub Actions
test-r-library-r-base-latest Azure
test-r-linux-as-cran GitHub Actions
test-r-linux-rchk GitHub Actions
test-r-linux-valgrind Azure
test-r-minimal-build Azure
test-r-offline-maximal GitHub Actions
test-r-offline-minimal Azure
test-r-rhub-debian-gcc-devel-lto-latest Azure
test-r-rhub-debian-gcc-release-custom-ccache Azure
test-r-rhub-ubuntu-gcc-release-latest Azure
test-r-rstudio-r-base-4.1-opensuse153 Azure
test-r-rstudio-r-base-4.2-centos7-devtoolset-8 Azure
test-r-rstudio-r-base-4.2-focal Azure
test-r-ubuntu-22.04 GitHub Actions
test-r-versions GitHub Actions
test-ubuntu-r-sanitizer Azure

@assignUser
Copy link
Member Author

The failures are due to #39518

@assignUser
Copy link
Member Author

I have added some more details and reasoning to the description/commit message for future me ^^

@assignUser assignUser self-assigned this Jan 8, 2024
This reverts commit 825956b.
@assignUser assignUser merged commit f60c281 into apache:main Jan 8, 2024
8 of 9 checks passed
@assignUser assignUser removed the awaiting merge Awaiting merge label Jan 8, 2024
@assignUser assignUser deleted the fix-re2-linkage branch January 8, 2024 23:38
raulcd pushed a commit that referenced this pull request Jan 9, 2024
### Rationale for this change

The CRAN check on `fedora clang devel` builds with clang against libc++ and has a system re2 installed that was build with C++11  ABI which causes  linking to fail  due to the [abi:cxx11]-symbol annotation on the system version.

A user could manually use the bundled build or path hint a clang version of the library. To avoid extra work for the CRAN maintainers we can just default to the bundled build. The re2 build is small enough that users building from source will not really feel the difference and can still opt to use the system re2 via `EXTRA_CMAKE_FLAGS`. 

### What changes are included in this PR?

Default to use our bundled build to prevent the problems. 

### Are these changes tested?

On a local dev container replicating the cran env.

### Are there any user-facing changes?

Source build now default to use the bundled re2 version, this can be overridden.

Authored-by: Jacob Wujciak-Jens <[email protected]>
Signed-off-by: Jacob Wujciak-Jens <[email protected]>
Copy link

After merging your PR, Conbench analyzed the 6 benchmarking runs that have been run so far on merge-commit f60c281.

There were no benchmark performance regressions. 🎉

The full Conbench report has more details. It also includes information about 8 possible false positives for unstable benchmarks that are known to sometimes produce them.

assignUser added a commit that referenced this pull request Jan 9, 2024
### Rationale for this change

The CRAN check on `fedora clang devel` builds with clang against libc++ and has a system re2 installed that was build with C++11  ABI which causes  linking to fail  due to the [abi:cxx11]-symbol annotation on the system version.

A user could manually use the bundled build or path hint a clang version of the library. To avoid extra work for the CRAN maintainers we can just default to the bundled build. The re2 build is small enough that users building from source will not really feel the difference and can still opt to use the system re2 via `EXTRA_CMAKE_FLAGS`. 

### What changes are included in this PR?

Default to use our bundled build to prevent the problems. 

### Are these changes tested?

On a local dev container replicating the cran env.

### Are there any user-facing changes?

Source build now default to use the bundled re2 version, this can be overridden.

Authored-by: Jacob Wujciak-Jens <[email protected]>
Signed-off-by: Jacob Wujciak-Jens <[email protected]>
clayburn pushed a commit to clayburn/arrow that referenced this pull request Jan 23, 2024
### Rationale for this change

The CRAN check on `fedora clang devel` builds with clang against libc++ and has a system re2 installed that was build with C++11  ABI which causes  linking to fail  due to the [abi:cxx11]-symbol annotation on the system version.

A user could manually use the bundled build or path hint a clang version of the library. To avoid extra work for the CRAN maintainers we can just default to the bundled build. The re2 build is small enough that users building from source will not really feel the difference and can still opt to use the system re2 via `EXTRA_CMAKE_FLAGS`. 

### What changes are included in this PR?

Default to use our bundled build to prevent the problems. 

### Are these changes tested?

On a local dev container replicating the cran env.

### Are there any user-facing changes?

Source build now default to use the bundled re2 version, this can be overridden.

Authored-by: Jacob Wujciak-Jens <[email protected]>
Signed-off-by: Jacob Wujciak-Jens <[email protected]>
dgreiss pushed a commit to dgreiss/arrow that referenced this pull request Feb 19, 2024
### Rationale for this change

The CRAN check on `fedora clang devel` builds with clang against libc++ and has a system re2 installed that was build with C++11  ABI which causes  linking to fail  due to the [abi:cxx11]-symbol annotation on the system version.

A user could manually use the bundled build or path hint a clang version of the library. To avoid extra work for the CRAN maintainers we can just default to the bundled build. The re2 build is small enough that users building from source will not really feel the difference and can still opt to use the system re2 via `EXTRA_CMAKE_FLAGS`. 

### What changes are included in this PR?

Default to use our bundled build to prevent the problems. 

### Are these changes tested?

On a local dev container replicating the cran env.

### Are there any user-facing changes?

Source build now default to use the bundled re2 version, this can be overridden.

Authored-by: Jacob Wujciak-Jens <[email protected]>
Signed-off-by: Jacob Wujciak-Jens <[email protected]>
zanmato1984 pushed a commit to zanmato1984/arrow that referenced this pull request Feb 28, 2024
### Rationale for this change

The CRAN check on `fedora clang devel` builds with clang against libc++ and has a system re2 installed that was build with C++11  ABI which causes  linking to fail  due to the [abi:cxx11]-symbol annotation on the system version.

A user could manually use the bundled build or path hint a clang version of the library. To avoid extra work for the CRAN maintainers we can just default to the bundled build. The re2 build is small enough that users building from source will not really feel the difference and can still opt to use the system re2 via `EXTRA_CMAKE_FLAGS`. 

### What changes are included in this PR?

Default to use our bundled build to prevent the problems. 

### Are these changes tested?

On a local dev container replicating the cran env.

### Are there any user-facing changes?

Source build now default to use the bundled re2 version, this can be overridden.

Authored-by: Jacob Wujciak-Jens <[email protected]>
Signed-off-by: Jacob Wujciak-Jens <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component: R Priority: Blocker Marks a blocker for the release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants