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

build: Make bazel able to cross compile between linux, windows, osx, arm #56072

Closed
jlinder opened this issue Oct 28, 2020 · 3 comments
Closed
Assignees
Labels
A-build-system C-enhancement Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception) T-dev-inf

Comments

@jlinder
Copy link
Collaborator

jlinder commented Oct 28, 2020

Also ARM and soon S390x (see #55617 )

Epic CRDB-8306

@jlinder jlinder added C-enhancement Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception) A-build-system labels Oct 28, 2020
@rickystewart
Copy link
Collaborator

Is cross-compilation "between Linux, Windows, and macOS" desired in any direction (e.g. Windows -> Linux, macOS -> Windows), or just from Linux to the other platforms, or...?

@jlinder
Copy link
Collaborator Author

jlinder commented Jan 19, 2021

This issue is specifically for CI to be able to build all the needed binaries, which means Linux x86 -> other platforms.

I expect we'll want to add support for Linux ARM and Mac OS X ARM before too long as well as targets.

@rickystewart rickystewart self-assigned this May 25, 2021
rickystewart added a commit to rickystewart/cockroach that referenced this issue Jun 3, 2021
In cockroachdb#65966, we published these toolchains to a storage bucket in GCP.
This demonstrates how we can consume these same toolchains in Bazel for
cross-compilation.

These can be activated with:

    build --crosstool_top=@toolchain_cross_x86_64-unknown-linux-gnu//:suite

... or substitute `x86_64-unknown-linux-gnu` for another target name.

I've verified the Linux toolchain works. The others break during
compilation for various reasons that I haven't looked at closely, but I
wanted to get this landed so we can iterate on those/maybe parallelize
across a couple different people.

The Darwin toolchain isn't generated by `crosstool-ng`, so it's
structured a little differently than the others. I'll add that in a
follow-up PR.

See cockroachdb#56072

Release note: None
craig bot pushed a commit that referenced this issue Jun 7, 2021
65525: sql: Add support for drop table inside the new schema changer r=ajwerner a=fqazi

 sql: Initial support for DROP TABLE in new schema changer

  Previously, the logic for DROP table was completely imperative,
  which would make it hard to implement features like transactional
  schema changes in the future. To address this, this patch
  adds initial support for DROP TABLE with support for clearing
  out type back references and foreign key. Basic structures for
  tracking and adding secondary indexes are also introduced.


65766: builtins: improve performance of has_table_privilege and has_column_privilege r=richardjcai a=otan

See individual commits for details

Resolves #65551

66066: bazel: sketch out cross toolchains for all platforms except darwin r=rail a=rickystewart

In #65966, we published these toolchains to a storage bucket in GCP.
This demonstrates how we can consume these same toolchains in Bazel for
cross-compilation.

These can be activated with:

    build --crosstool_top=@toolchain_cross_x86_64-unknown-linux-gnu//:suite

... or substitute `x86_64-unknown-linux-gnu` for another target name.

I've verified the Linux toolchain works. The others break during
compilation for various reasons that I haven't looked at closely, but I
wanted to get this landed so we can iterate on those/maybe parallelize
across a couple different people.

The Darwin toolchain isn't generated by `crosstool-ng`, so it's
structured a little differently than the others. I'll add that in a
follow-up PR.

See #56072

Release note: None

66137: ccl/sqlproxyccl: use new denylist format in proxy handler r=meridional a=meridional

The new format was added in
#64957,
which supports expiration of denylist entries based on
timestamps.

Release note: None

Co-authored-by: Faizan Qazi <[email protected]>
Co-authored-by: Oliver Tan <[email protected]>
Co-authored-by: Ricky Stewart <[email protected]>
Co-authored-by: Ye Ji <[email protected]>
@exalate-issue-sync exalate-issue-sync bot changed the title build: Make bazel able to cross compile between linux, windows, osx build: Make bazel able to cross compile between linux, windows, osx, arm Jun 30, 2021
@rickystewart
Copy link
Collaborator

phew

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-build-system C-enhancement Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception) T-dev-inf
Projects
None yet
Development

No branches or pull requests

2 participants