
The following discrepancies concerning `-isysroot` and `--sysroot` motivated this change: - The SDK directory can be specified via `-isysroot`, but `--sysroot` has no influence over this. Yet, we check for the presence of either switch to determine whether we ought to warn about a missing SDK *headers*. - The presence of `-isysroot` is ignored when deciding whether to warn about missing SDK *libraries*, depsite it being the only switch capable of specifying a non-default SDK location. - The `--sysroot`s passed to the PlayStation linkers by the driver are unrelated to the SDK directory resolved in the PS4PS5Base constructor. Following this change, we attempt to derive an SDK root from a platform- specific environment variable. Failing that, we derive it from the location of the driver. This then becomes the default root directory for both header and library search. `--sysroot` overrides both search roots. `-isysroot` overrides only the header search root. If both are specified, `--sysroot` specifies the library search root and `-isysroot` specifies the header search root. For each search root that was not overridden, a warning is emitted if expected header/library search paths are missing inside that root. The test updates to ps{4,5}-sdk-root.c were of the scale of a rewrite so I also took the opportunity to clarify the purpose of each part, eliminate some redundancy and add some missing coverage. SIE tracker: TOOLCHAIN-16704
14 lines
913 B
C
14 lines
913 B
C
/// PS4 and PS5 use the same SDK layout, so use the same tree for both.
|
|
// RUN: env SCE_ORBIS_SDK_DIR=%S/Inputs/scei-ps4_tree %clang -target x86_64-scei-ps4 -E -v %s 2>&1 | FileCheck %s --check-prefix=ENVPS4
|
|
// RUN: env SCE_PROSPERO_SDK_DIR=%S/Inputs/scei-ps4_tree %clang -target x86_64-sie-ps5 -E -v %s 2>&1 | FileCheck %s --check-prefix=ENVPS4
|
|
// ENVPS4: Inputs/scei-ps4_tree/target/include
|
|
// ENVPS4: Inputs/scei-ps4_tree/target/include_common
|
|
// ENVPS4-NOT: /usr/include
|
|
|
|
// RUN: %clang -isysroot %S/Inputs/scei-ps4_tree -target x86_64-scei-ps4 -E -v %s 2>&1 | FileCheck %s --check-prefix=SYSROOTPS4
|
|
// RUN: %clang -isysroot %S/Inputs/scei-ps4_tree -target x86_64-sie-ps5 -E -v %s 2>&1 | FileCheck %s --check-prefix=SYSROOTPS4
|
|
// SYSROOTPS4: "{{[^"]*}}clang{{[^"]*}}"
|
|
// SYSROOTPS4: Inputs/scei-ps4_tree/target/include
|
|
// SYSROOTPS4: Inputs/scei-ps4_tree/target/include_common
|
|
// SYSROOTPS4-NOT: /usr/include
|