gengliangwang opened a new pull request, #59714: URL: https://github.com/apache/spark/pull/59714
### What changes were proposed in this pull request? Build tpcds-kit with `-std=gnu89` (via `LINUX_CFLAGS="-O3 -std=gnu89"`) in the `Build tpcds-kit` step of both `build_and_test.yml` (the `Run TPC-DS queries with SF=1` job) and `benchmark.yml` (the `tpcds-1g-gen` job, which must be kept in sync). ### Why are the changes needed? The `Run TPC-DS queries with SF=1` job has been failing intermittently in the `Build tpcds-kit` step. GitHub's `ubuntu-latest` label is gradually moving to Ubuntu 26.04 (starting October 19, 2026), which ships GCC 15. GCC 14+ turns implicit-int into an error, and GCC 15 defaults to C23, so the old tpcds-kit C code no longer compiles: ``` date.c:566:1: error: type of 'jDay' defaults to 'int' [-Wimplicit-int] date.c:566:1: error: type of 'nDistribution' defaults to 'int' [-Wimplicit-int] make: *** [<builtin>: date.o] Error 1 ``` Examples: https://github.com/ForVic/spark/actions/runs/39739475067/job/119709170091, https://github.com/pratham76/spark/actions/runs/39796929675/job/119898127546 (both on image `ubuntu-26.04`). The job looks flaky because it only fails when it lands on a migrated runner and the TPC-DS data cache misses. Setting the C standard explicitly works on both the old and the new compilers and doesn't depend on which runner image the job gets. ### Does this PR introduce _any_ user-facing change? No, CI only. ### How was this patch tested? Reproduced locally in Docker: - `gcc:15` (GCC 15.3.0) with `make OS=LINUX`: fails with the error above. - `gcc:15` with `make OS=LINUX LINUX_CFLAGS="-O3 -std=gnu89"`: builds `dsdgen` and `dsqgen`. - The `call_center`, `customer`, `date_dim`, `item`, `web_sales` and `web_returns` data generated at SF=1 is byte-identical (same md5) between `gcc:13` with the default flags (what Ubuntu 24.04 runners use today) and `gcc:15` with `-std=gnu89`, so the expected TPC-DS query results don't change. Changing `build_and_test.yml` also changes the TPC-DS data cache key, so this PR's CI rebuilds tpcds-kit with the new flags. ### Was this patch authored or co-authored using generative AI tooling? Generated-by: Claude Code (Claude Opus 5.5) This pull request and its description were written by Isaac. -- 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]
