Error out early if trying to compile ada
If we try to do that, clang would end up calling <triplet>-gcc with the same arguments. In our setup, this recursively ends up calling clang again, ending up with infinite recursion.
This commit is contained in:
1 parent
7bca89b53f
commit
8bfc9a18c6
2 files changed
+22
No files matched your search
@@ -142,6 +142,16 @@ int _tmain(int argc, TCHAR* argv[]) {
|
|||||||
if (dash)
|
if (dash)
|
||||||
*dash = '\0';
|
*dash = '\0';
|
||||||
|
|
||||||
|
// Check if trying to compile Ada; if we try to do this, invoking clang
|
||||||
|
// would end up invoking <triplet>-gcc with the same arguments, which ends
|
||||||
|
// up in an infinite recursion.
|
||||||
|
for (int i = 1; i < argc - 1; i++) {
|
||||||
|
if (!_tcscmp(argv[i], _T("-x")) && !_tcscmp(argv[i + 1], _T("ada"))) {
|
||||||
|
fprintf(stderr, "Ada is not supported\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int max_arg = argc + 20;
|
int max_arg = argc + 20;
|
||||||
const TCHAR **exec_argv = malloc(max_arg * sizeof(*exec_argv));
|
const TCHAR **exec_argv = malloc(max_arg * sizeof(*exec_argv));
|
||||||
int arg = 0;
|
int arg = 0;
|
||||||
|
|||||||
@@ -9,6 +9,18 @@ if [ "$TARGET" = "$BASENAME" ]; then
|
|||||||
fi
|
fi
|
||||||
ARCH="${TARGET%%-*}"
|
ARCH="${TARGET%%-*}"
|
||||||
|
|
||||||
|
# Check if trying to compile Ada; if we try to do this, invoking clang
|
||||||
|
# would end up invoking <triplet>-gcc with the same arguments, which ends
|
||||||
|
# up in an infinite recursion.
|
||||||
|
case "$*" in
|
||||||
|
*-x\ ada*)
|
||||||
|
echo "Ada is not supported" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
# Allow setting e.g. CCACHE=1 to wrap all building in ccache.
|
# Allow setting e.g. CCACHE=1 to wrap all building in ccache.
|
||||||
if [ -n "$CCACHE" ]; then
|
if [ -n "$CCACHE" ]; then
|
||||||
CCACHE=ccache
|
CCACHE=ccache
|
||||||
|
|||||||
Reference in new issue
Block a user