blob: 6be02466268dadb7e7a41ff2b3dd1877fa0fe17b [file] [log] [blame]
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`; then
+ COMPILER=gcc
+elif `$CC --version | grep clang >& /dev/null`; 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]"