Skip to content

#80527 introduces behavior change that breaks icecream's icecc-create-env script #110958

@13steinj

Description

@13steinj

Script and some relevant lines for reference: https://github.com/icecc/icecream/blob/d680e4fcb261d7de271ddce331f4a23adbfd573f/client/icecc-create-env.in#L313-L316

#80527 (more accurately combined with the minor commit 0f76d9f on top) results in a behavior change at least when building clang with -DCLANG_CONFIG_FILE_SYSTEM_DIR=/path/to/where/clang/will/be/installed/to/cfg, and supplying the produced default-clang (supplying merely clang is unaffected).

Prior behavior: the script ends up executing the equivalent of

/opt/clang-18.1.8/cfg/default-clang -print-prog-name=default-clang
# output: /opt/clang-18.1.8/cfg/default-clang

New behavior: no full path.

/opt/clang-19.1.1/cfg/default-clang -print-prog-name=default-clang
# output: default-clang

It is unclear if this behavior change to -print-prog-name is intentional hence why I'm filing this issue here first before filing a PR to icecc/icecream.

Resolution/workaround (at least for this execution of -print-prog-name is simple-- I'll just modify the script to call -no-canonical-prefixes -print-prog-name.

/opt/clang-19.1.1/cfg/default-clang -no-canonical-prefixes -print-prog-name=default-clang
# output: /opt/clang-19.1.1/cfg/default-clang

There is another use of -print-prog-name in this script that I appears unaffected as it requests the name of actual binaries (potentially outside of the clang installation directory? is the key factor?) rather than a clang config symlink to one.

Metadata

Metadata

Assignees

No one assigned

    Labels

    clang:driver'clang' and 'clang++' user-facing binaries. Not 'clang-cl'questionA question, not bug report. Check out https://llvm.org/docs/GettingInvolved.html instead!

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions