blob: 6be02466268dadb7e7a41ff2b3dd1877fa0fe17b [file] [log] [blame]
Andrew Geissler517393d2023-01-13 08:55:19 -06001From e1dcd27e816520bdabc69511d90c4a2ebc242831 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 6 Jan 2023 18:51:34 -0800
4Subject: [PATCH] configure: Fix compoiler detection logic for
5 cross-compilation
6
7We can not run binaries during cross compile, so poke at compiler to
8figure out if it is clang or gcc, for OE we do not have other compilers
9in opensource world if there are we can extend this logic
10
11Upstream-Status: Inappropriate [OE-Specific]
12
13Signed-off-by: Khem Raj <raj.khem@gmail.com>
14---
15 configure | 56 ++++++++++++++++---------------------------------------
16 1 file changed, 16 insertions(+), 40 deletions(-)
17
18--- a/configure
19+++ b/configure
20@@ -661,48 +661,24 @@ if test "$PROFILE"; then
21 fi
22
23 printf "Finding suitable compiler........"
24-if test ! -x "${CC}"; then
25- CC=`pathsearch "${CC:-cc}"`
26- if test -z "$CC" -o ! -x "$CC"; then
27- CC=`pathsearch "${CC:-gcc}"`
28- fi
29+if test -z "$CC"; then
30+ if test ! -x "${CC}"; then
31+ CC=`pathsearch "${CC:-cc}"`
32+ if test -z "$CC" -o ! -x "$CC"; then
33+ CC=`pathsearch "${CC:-gcc}"`
34+ fi
35+ fi
36+ assert "$CC" "not found"
37+fi
38+if `$CC --version | grep gcc >& /dev/null`; then
39+ COMPILER=gcc
40+elif `$CC --version | grep clang >& /dev/null`; then
41+ COMPILER=clang
42+else
43+ COMPILER="not-found"
44 fi
45-assert "$CC" "not found"
46-
47-cat << EOF > .1.c
48-#include <stdio.h>
49-int main(void) {
50-#if defined(_WIN32)
51-#if defined(__MINGW64__)
52- puts("mingw64");
53- return (0);
54-#elif defined(__MINGW32__) && (__MINGW32_MAJOR_VERSION >= 3)
55- puts("mingw32");
56- return (0);
57-#else
58- return (1);
59-#endif /* __MINGW32__ && __MINGW32_MAJOR_VERSION >= 3 */
60-#elif defined(__clang__) && (__clang_major__ >= 3)
61- puts("clang");
62- return (0);
63-#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x5110)
64- puts("suncc");
65- return (0);
66-#elif defined(__GNUC__) && (__GNUC__ >= 4)
67- puts("gcc");
68- return (0);
69-#else
70- return (1);
71-#endif
72-}
73-EOF
74-
75-$CC -o .1 .1.c
76-COMPILER=`./.1 2> /dev/null`
77-r=$?
78-rm -f .1.c .1
79
80-if test "$r" -ne 0; then
81+if test "$COMPILER" = "not-found"; then
82 assert "" "update compiler"
83 else
84 echo "success [$CC]"