Skip to content

Commit

Permalink
build bazel610-riscv
Browse files Browse the repository at this point in the history
  • Loading branch information
Peeeeanut committed Aug 13, 2024
1 parent c4148fe commit f84808f
Show file tree
Hide file tree
Showing 12 changed files with 595 additions and 40 deletions.
64 changes: 64 additions & 0 deletions 24-Q3/bazel/5.3.0/02-use-riscv64-jdk.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE
index a507f04..3be7b84 100755
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE
@@ -83,6 +83,21 @@ maybe(
version = "11",
)

+# This must be kept in sync with the top-level WORKSPACE file.
+maybe(
+ remote_java_repository,
+ name = "remotejdk11_linux_riscv64",
+ exec_compatible_with = [
+ "@platforms//os:linux",
+ "@platforms//cpu:riscv64",
+ ],
+ strip_prefix = "java-11-openjdk",
+ urls = [
+ "https://github.com/6eanut/bazel/releases/download/jdk/remotejdk11_linux_riscv64.tar.gz",
+ ],
+ version = "11",
+)
+
# This must be kept in sync with the top-level WORKSPACE file.
maybe(
remote_java_repository,
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE.tmpl b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE.tmpl
index 7040eae..b783308 100755
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE.tmpl
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE.tmpl
@@ -66,6 +66,21 @@ maybe(
version = "11",
)

+# This must be kept in sync with the top-level WORKSPACE file.
+maybe(
+ remote_java_repository,
+ name = "remotejdk11_linux_riscv64",
+ exec_compatible_with = [
+ "@platforms//os:linux",
+ "@platforms//cpu:riscv64",
+ ],
+ strip_prefix = "java-11-openjdk",
+ urls = [
+ "https://github.com/6eanut/bazel/releases/download/jdk/remotejdk11_linux_riscv64.tar.gz",
+ ],
+ version = "11",
+)
+
# This must be kept in sync with the top-level WORKSPACE file.
maybe(
remote_java_repository,
diff --git a/tools/jdk/BUILD.tools b/tools/jdk/BUILD.tools
index ecddfe0..85cb7b0 100755
--- a/tools/jdk/BUILD.tools
+++ b/tools/jdk/BUILD.tools
@@ -447,6 +447,7 @@ _JDKS = [
"remotejdk11_linux",
"remotejdk11_linux_ppc64le",
"remotejdk11_linux_s390x",
+ "remotejdk11_linux_riscv64",
"remotejdk15_macos",
"remotejdk15_macos_aarch64",
"remotejdk15_win",
135 changes: 135 additions & 0 deletions 24-Q3/bazel/6.1.0/bazel.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
%define _disable_source_fetch 0

Name: bazel
Version: 6.1.0
Release: 2
Summary: Correct, reproducible, and fast builds for everyone.
License: Apache License 2.0
URL: http://bazel.io/
Source0: bazel-%{version}-dist.zip
Source1: abseil-cpp-riscv.patch
Patch0: 01-fix-invalid-jni_md-select.patch
Patch1: 02-use-riscv64-jdk.patch
Patch2: 03-set-default-nojdk.patch
Patch3: linux-bazel-path-from-getauxval.patch
Patch4: 04-riscv-distdir_deps.patch
Patch5: 05-bazel610.patch
# for folks with 'bazel' v1 package installed
Conflicts: bazel
Conflicts: bazel2

BuildRequires: java-11-openjdk-devel zlib-devel findutils gcc-c++ which unzip zip python3
BuildRequires: pkgconfig(bash-completion)

Requires: java-11-openjdk-devel

%define bashcompdir %(pkg-config --variable=completionsdir bash-completion 2>/dev/null)
%global debug_package %{nil}
%define __os_install_post %{nil}

%description
Correct, reproducible, and fast builds for everyone.

%prep
%setup -q -c -n bazel-%{version}
#%patch0 -p1
#%patch1 -p1
#%patch2 -p1
#%patch3 -p1
%ifarch riscv64
#%patch4 -p1
#%patch5 -p1
mkdir third_party/abseil-cpp
cp %{SOURCE1} third_party/abseil-cpp
%endif

%build
find . -type f -regextype posix-extended -iregex '.*(sh|txt|py|_stub|stub_.*|bazel|get_workspace_status|protobuf_support|_so)' -exec %{__sed} -i -e '1s|^#!/usr/bin/env python$|#!/usr/bin/env python3|' "{}" \;
export EXTRA_BAZEL_ARGS="${EXTRA_BAZEL_ARGS} --python_path=/usr/bin/python3"

# horrible of horribles, just to have `python` in the PATH
%{__mkdir_p} ./bin-hack
%{__ln_s} /usr/bin/python3 ./bin-hack/python
export PATH=$(pwd)/bin-hack:$PATH

%ifarch aarch64
export EXTRA_BAZEL_ARGS="${EXTRA_BAZEL_ARGS} --nokeep_state_after_build --notrack_incremental_state --nokeep_state_after_build"
%else
%endif

%ifarch aarch64 %arm riscv64
export BAZEL_JAVAC_OPTS="-J-Xmx2g -J-Xms200m"
%endif

%ifarch s390x
# increase heap size to addess s390x build failures
export BAZEL_JAVAC_OPTS="-J-Xmx4g -J-Xms512m"
%else
%endif

# loose epoch from their release date
export SOURCE_DATE_EPOCH="$(date -d $(head -1 CHANGELOG.md | %{__grep} -Eo '\b[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}\b' ) +%s)"
export EMBED_LABEL="%{version}"

# for debugging's sake
which g++
g++ --version

export TMPDIR=%{_tmppath}
export CC=gcc
export CXX=g++
export EXTRA_BAZEL_ARGS="${EXTRA_BAZEL_ARGS} --sandbox_debug --tool_java_runtime_version=local_jdk --verbose_failures --subcommands --explain=build.log --show_result=2147483647"
env ./compile.sh
env ./scripts/generate_bash_completion.sh --bazel=output/bazel --output=output/bazel-complete.bash

%install
%{__mkdir_p} %{buildroot}/%{_bindir}
%{__mkdir_p} %{buildroot}/%{bashcompdir}
%{__cp} output/bazel %{buildroot}/%{_bindir}/bazel-real
%{__cp} output/bazel %{buildroot}/%{_bindir}/bazel-%{version}-%{_os}-%{_arch}
%{__cp} ./scripts/packages/bazel.sh %{buildroot}/%{_bindir}/bazel
%{__cp} output/bazel-complete.bash %{buildroot}/%{bashcompdir}/bazel

%clean
%{__rm} -rf %{buildroot}

%files
%defattr(-,root,root)
%attr(0755,root,root) %{_bindir}/bazel
%attr(0755,root,root) %{_bindir}/bazel-real
%attr(0755,root,root) %{_bindir}/bazel-%{version}-%{_os}-%{_arch}
%attr(0755,root,root) %{bashcompdir}/bazel

%changelog
* Tue Jul 09 2024 laokz <[email protected]> - 5.3.0-2
- riscv64: fix 'rdcycle' SIGILL of dependency abseil-cpp

* Tue Sep 12 2023 Jincheng Miao <[email protected]> - 5.3.0-1
- add bazel-%{version}-%{_os}-%{_arch} to install root path

* Fri Sep 08 2023 Jincheng Miao <[email protected]> - 5.3.0-0
- upgrade bazel to 5.3.0 for building TF-2.12.1

* Fri Jun 09 2023 Jingwiw <[email protected]> - 5.1.1-1
- fix riscv64 build error and add qemu user support

* Tue Nov 8 2022 Jincheng Miao <[email protected]> - 5.1.1-0
- Update version to 5.1.1 for TF-2.10.0 build

* Sat Oct 22 2022 Jincheng Miao <[email protected]> - 5.0.0-0
- Update version to 5.0.0 for TF-2.9 build

* Thu Jun 22 2022 zhangshaoning <[email protected]> - 4.2.1-0
- update version to 4.2.1

* Mon Aug 9 2021 zhangtao <[email protected]> - 3.5.0-4
- fix build error with gcc10

* Tue Jul 13 2021 guoxiaoqi <[email protected]> - 3.5.0-3
- Not strip %{_bindir}/bazel after install

* Mon May 31 2021 baizhonggui <[email protected]> - 3.5.0-2
- Add gcc-g++ in BuildRequires

* Mon Sep 28 2020 Zhipeng Xie<[email protected]> - 3.5.0-1
- Package init
Loading

0 comments on commit f84808f

Please sign in to comment.