Remove old Strawberry Perl workaround

This removal is not because the underlying issue is fixed. Strawberry
Perl seems uninterested in fixing this.[1]

However, our workaround seems to have had some other consequences
(https://crbug.com/525786169), and Perl is less hard of a requirement
for us now. You still need Perl to modify parts of BoringSSL, but
building BoringSSL no longer needs Perl.

Given that, it is probably simplest to just stay out of the business of
overwriting CMake, even if CMake gets it wrong as as result of
Strawberry Perl's misbehavior. Instead, we update the documentation to:

- Remove mention of ActiveState Perl or MSYS Perl. ActiveState Perl
  seems to require an account to download now[2]. Despite the
  misbehavior, perl.org points to Strawberry Perl, so let's stick to
  just one recommended configuration.

- Recommend the portable zip of Strawberry Perl, not the MSI installer.
  That doesn't mess with PATH.

Otherwise, leave fixing the environment to the person setting up the
environment. Strawberry Perl's misbehavior seems to have all kinds of
side effects, so likely our workaround wasn't sufficient for more
complicated setups anyway. E.g. see [3] and [4]. Though [3] is a little
worrisome. It's possible some folks' CIs will need to start passing
CMAKE_IGNORE_PATH.

Update-Note: BoringSSL no longer works around Strawberry Perl for you.
Let us know if it turns out your setup was relying on it.

[1] https://github.com/StrawberryPerl/Perl-Dist-Strawberry/issues/11
[2] https://www.reddit.com/r/perl/comments/d9gctx/activeperl_is_dead_to_me/
[3] https://github.com/actions/runner-images/issues/6627
[4] https://gitlab.kitware.com/cmake/cmake/-/work_items/23975

Fixed: 525786169
Change-Id: Ia3c9e3885e095af6fb9df15bf49a00a163d8dd51
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/97767
Auto-Submit: David Benjamin <davidben@google.com>
Presubmit-BoringSSL-Verified: boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com <boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Adam Langley <agl@google.com>
Commit-Queue: Adam Langley <agl@google.com>
This commit is contained in:
David Benjamin
2026-06-22 15:12:52 -04:00
committed by boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com
parent 1046f4dd7a
commit 2bbaed043e
2 changed files with 27 additions and 14 deletions
+27 -8
View File
@@ -222,14 +222,33 @@ results.
# Pre-generated Files
If modifying perlasm files, or `util/pregenerate/build.json`, you will need to
run `go run ./util/pregenerate` to refresh some pre-generated files. To do this,
you will need a recent version of Perl.
If modifying perlasm files, `util/pregenerate/build.json`, or adding new public
symbols, you will need to run `go run ./util/pregenerate` to refresh some
pre-generated files. To do this, you will need:
On Windows, [Active State Perl](http://www.activestate.com/activeperl/) has been
reported to work, as has MSYS Perl.
[Strawberry Perl](http://strawberryperl.com/) also works but it adds GCC
to `PATH`, which can confuse some build tools when identifying the compiler
(removing `C:\Strawberry\c\bin` from `PATH` should resolve any problems).
- The most recent stable version of [Go](https://go.dev/)
- A recent version of [Perl](https://www.perl.org/)
- A recent version of [Clang](https://clang.llvm.org/)
If not available in `PATH`, the `-perl=path/to/perl` and `-clang=path/to/clang`
flags can be used to specify where Perl and Clang can be found, respectively.
Passing an empty string (`-perl=` and `-clang=`) will skip these dependencies,
but not all files will be regenerated. If any skipped files need to be updated,
some of your changes may not be applied to your build, and your change may fail
tests on our CI.
On non-Windows systems, Perl and Clang are either installed by default or
readily available from package managers or Xcode.
On Windows, Clang can be installed from Visual Studio. Perl can be installed
from [Strawberry Perl](https://strawberryperl.com/). Prefer to use the
"Portable zip" version. The MSI installer will
[add GCC to `PATH`](https://github.com/StrawberryPerl/Perl-Dist-Strawberry/issues/11),
which can confuse some build tools when identifying the compiler. If this has
happened, removing `C:\Strawberry\c\bin` from `PATH` should resolve any
problems. [`CMAKE_IGNORE_PATH`](https://cmake.org/cmake/help/latest/variable/CMAKE_IGNORE_PATH.html)
may also be useful.
See [gen/README.md](./gen/README.md) for more details.
-6
View File
@@ -23,12 +23,6 @@ if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR}/install CACHE PATH "" FORCE)
endif()
if(WIN32)
# On Windows, prefer cl over gcc if both are available. By default most of
# the CMake generators prefer gcc, even on Windows.
set(CMAKE_GENERATOR_CC cl)
endif()
include(cmake/go.cmake)
include(gen/sources.cmake)