morningman opened a new pull request, #4134:
URL: https://github.com/apache/doris-website/pull/4134

   ## Versions 
   
   - [ ] dev
   - [ ] 4.x
   - [ ] 3.x
   - [ ] 2.1 or older (not covered by version/language sync gate)
   
   `community/source-install/compilation-arm.mdx` is an unversioned community 
page (no `versioned_docs` copy); the text itself states the version boundary 
for each switch.
   
   ## Languages
   
   - [x] Chinese
   - [x] English
   
   ## Docs Checklist
   
   - [ ] Checked by AI
   - [ ] Test Cases Built
   - [x] Updated required version and language counterparts, or explained why 
not
   - [x] If only one language changed, confirmed whether source/translation 
counterparts need sync
   
   ## What changed and why
   
   The ARM guide still tells users to `export USE_AVX2=OFF`, `export 
USE_UNWIND=OFF`, `export DISABLE_BUILD_AZURE=ON` ("you must disable the AVX2, 
LIBUNWIND, and AZURE third-party libraries"). Checked against the current 
`build.sh` / `env.sh` / `be/CMakeLists.txt` / `thirdparty/build-thirdparty.sh`, 
none of the three does what the page says:
   
   - **`USE_UNWIND`** was removed by apache/doris#64093 (master since July 
2026, branch-4.1 since 4.1.4). `build.sh` no longer reads it and 
`be/CMakeLists.txt` hard-sets `USE_UNWIND ON` on Linux, so the variable is 
silently ignored. That is how the 4.1.4 arm64 package got GNU libunwind 1.6.2 
linked in and crashes before `main()` on 64 KiB-page kernels (Kunpeng 920 with 
KylinOS/openEuler/CentOS aarch64); the fix is apache/doris#67877 (libunwind 
1.6.2 → 1.8.3). On 4.1.3 and earlier the variable is still honored.
   - **`USE_AVX2`** has never applied to ARM (`-mavx2` is only added under the 
x86/x86_64 branch in `be/CMakeLists.txt`); the ARM knob is `ARM_MARCH` (4.0+, 
default `armv8-a+crc`), which the page did not mention.
   - **`DISABLE_BUILD_AZURE`** is set to `ON` automatically on ARM by `env.sh` 
on 4.1 and earlier, and since apache/doris#66908 master builds and links Azure 
on ARM by default (`DISABLE_THIRDPARTY_BUILD_AZURE=ON` skips the third-party 
build itself).
   
   Changes (both languages, identical content):
   
   1. Section 3: replace the "must disable" block with a per-switch description 
that states the version boundary for each; fix the script path 
`tools/build_thirdparty.sh` → `thirdparty/build-thirdparty.sh`.
   2. Section 1: add an info box about 4 KiB vs 64 KiB kernel pages on ARM 
distributions (`getconf PAGESIZE`), noting that jemalloc is built with 
`--with-lg-page=16` so one binary runs on both, and that builds should be 
validated on the kernel actually deployed.
   3. Section 4.2: add FAQ item 4 for the libunwind startup crash (symptom, 
cause, `getconf PAGESIZE` = 65536, fix via apache/doris#67877, use 4.1.3 on 64 
KiB kernels until then; no `be.conf` workaround exists because it happens 
before `main()`).
   
   Both files compile with the site's `@mdx-js/mdx` (the core stack is in a 
fenced block rather than `<-` arrows, which MDX would reject as a JSX tag).
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)
   
   https://claude.ai/code/session_016MdauUJh8AtE8SozZ29Dmv
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to