Issue 138494
Summary SPARC -target-feature +vis breaks flang build on Linux/sparc64
Labels flang
Assignees
Reporter rorth
    A 2-stage build with `flang` included is currently broken on Linux/sparc64 with tons of errors like
```
error: current translation unit is compiled with the target feature '+vis' but the AST file 'tools/flang/lib/Parser/CMakeFiles/FortranParser.dir/cmake_pch.hxx.pch' was not
```
I could trace this to the fact that the object file creating is run with `clang-21 -cc1 -triple sparc64-unknown-linux-gnu -emit-obj -target-feature +vis` while the pch generation uses `clang-21 -cc1 -triple sparc64-unknown-linux-gnu -emit-pch` without the `-target-feature +vis`, thus the inconsistency.

Even without `flang`, there are three testsuite regressions showing the same error:
```
  Clang :: ClangScanDeps/modules-symlink.c
  Clang :: ClangScanDeps/prebuilt-modules-in-stable-dirs.c
  Clang :: SemaCXX/warn-unused-local-typedef-serialize.cpp
```
While I managed to get further along with the attached preliminary patch, which adds the missing option for `-emit-pch` and `-emit-llvm` (which fixes the `flang` build), this introduces tons of new regressions instead:
```
  Clang :: ClangScanDeps/module-format.c
  Clang :: ClangScanDeps/modules-pch-common-submodule.c
  Clang :: ClangScanDeps/modules-pch-common-via-submodule.c
  Clang :: ClangScanDeps/modules-pch-dangling.c
  Clang :: ClangScanDeps/modules-pch-imports.c
  Clang :: ClangScanDeps/modules-pch.c
 Clang :: ClangScanDeps/optimize-vfs-pch.m
  Clang :: Index/pch-with-errors.c
  Clang :: PCH/different-diagnostic-level.c
  Clang :: PCH/gch-probe.c
  Clang :: PCH/pch-dir.c
  Clang :: Tooling/pch.cpp
```
Now the `.pch` files are correctly built with `-target-feature +vis`, but the TUs are claimed to be not and I have no idea what's going on.

Fortunately, Solaris/sparcv9 isn't affected because for unknown reasons commit 385311625945e65990bd60bea76a045dcaf3f47b, which introduced `-target-feature +vis`, doesn't pass that option on Solaris.

It seems other targets are less affected because unlike the `sparcv9` case they only enable `-target-feature` with special flags and not in general.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to