85 lines
2.1 KiB
Diff
85 lines
2.1 KiB
Diff
From e1dcd27e816520bdabc69511d90c4a2ebc242831 Mon Sep 17 00:00:00 2001
|
|
From: Khem Raj <raj.khem@gmail.com>
|
|
Date: Fri, 6 Jan 2023 18:51:34 -0800
|
|
Subject: [PATCH] configure: Fix compoiler detection logic for
|
|
cross-compilation
|
|
|
|
We can not run binaries during cross compile, so poke at compiler to
|
|
figure out if it is clang or gcc, for OE we do not have other compilers
|
|
in opensource world if there are we can extend this logic
|
|
|
|
Upstream-Status: Inappropriate [OE-Specific]
|
|
|
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
---
|
|
configure | 56 ++++++++++++++++---------------------------------------
|
|
1 file changed, 16 insertions(+), 40 deletions(-)
|
|
|
|
--- a/configure
|
|
+++ b/configure
|
|
@@ -661,48 +661,24 @@ if test "$PROFILE"; then
|
|
fi
|
|
|
|
printf "Finding suitable compiler........"
|
|
-if test ! -x "${CC}"; then
|
|
- CC=`pathsearch "${CC:-cc}"`
|
|
- if test -z "$CC" -o ! -x "$CC"; then
|
|
- CC=`pathsearch "${CC:-gcc}"`
|
|
- fi
|
|
+if test -z "$CC"; then
|
|
+ if test ! -x "${CC}"; then
|
|
+ CC=`pathsearch "${CC:-cc}"`
|
|
+ if test -z "$CC" -o ! -x "$CC"; then
|
|
+ CC=`pathsearch "${CC:-gcc}"`
|
|
+ fi
|
|
+ fi
|
|
+ assert "$CC" "not found"
|
|
+fi
|
|
+if `$CC --version | grep gcc > /dev/null 2>&1`; then
|
|
+ COMPILER=gcc
|
|
+elif `$CC --version | grep clang > /dev/null 2>&1`; then
|
|
+ COMPILER=clang
|
|
+else
|
|
+ COMPILER="not-found"
|
|
fi
|
|
-assert "$CC" "not found"
|
|
-
|
|
-cat << EOF > .1.c
|
|
-#include <stdio.h>
|
|
-int main(void) {
|
|
-#if defined(_WIN32)
|
|
-#if defined(__MINGW64__)
|
|
- puts("mingw64");
|
|
- return (0);
|
|
-#elif defined(__MINGW32__) && (__MINGW32_MAJOR_VERSION >= 3)
|
|
- puts("mingw32");
|
|
- return (0);
|
|
-#else
|
|
- return (1);
|
|
-#endif /* __MINGW32__ && __MINGW32_MAJOR_VERSION >= 3 */
|
|
-#elif defined(__clang__) && (__clang_major__ >= 3)
|
|
- puts("clang");
|
|
- return (0);
|
|
-#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x5110)
|
|
- puts("suncc");
|
|
- return (0);
|
|
-#elif defined(__GNUC__) && (__GNUC__ >= 4)
|
|
- puts("gcc");
|
|
- return (0);
|
|
-#else
|
|
- return (1);
|
|
-#endif
|
|
-}
|
|
-EOF
|
|
-
|
|
-$CC -o .1 .1.c
|
|
-COMPILER=`./.1 2> /dev/null`
|
|
-r=$?
|
|
-rm -f .1.c .1
|
|
|
|
-if test "$r" -ne 0; then
|
|
+if test "$COMPILER" = "not-found"; then
|
|
assert "" "update compiler"
|
|
else
|
|
echo "success [$CC]"
|