]> code.ossystems Code Review - openembedded-core.git/blob
0d8fa80939f9dc7b5964b78722e2945073c04b52
[openembedded-core.git] /
1 From 3bbea65e11918f8753e8006a2198b999cdb0af58 Mon Sep 17 00:00:00 2001
2 From: He Zhe <zhe.he@windriver.com>
3 Date: Wed, 21 Nov 2018 15:12:43 +0800
4 Subject: [PATCH] scripts: Use fixed temporary file instead of pipe for
5  here-doc
6
7 There was a bug of "as" in binutils that when it checks if the input file and
8 output file are the same one, it would not check if they are on the same block
9 device. The check is introduced by the following commit in v2.31.
10
11 https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=
12 67f846b59b32f3d704c601669409c2584383fea9
13
14 The here-doc usage in this script creates temporary file in /tmp. When we run in
15 an environment where /tmp has rarely been used, the newly created temporary file
16 may have a very low inode number. If the inode number was 6 which is the same as
17 /dev/null, the as would wrongly think the input file and the output file are the
18 same and report the following error.
19
20 *** Compiler lacks asm-goto support.. Stop.
21
22 One observed case happened in docker where the /tmp could be so rarely used that
23 very low number inode may be allocated and triggers the error.
24
25 The fix below for the bug only exists on the master branch of binutils so far
26 and has not been released from upstream. As the convict is introduced since
27 v2.31, only v2.31 is affected.
28
29 https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=
30 2a50366ded329bfb39d387253450c9d5302c3503
31
32 When building linux-libc-headers we need to use "as" in binutils which does not
33 contain the fix for the moment. To work around the error, we create a fixed
34 temporary file to contain the program being tested.
35
36 This patch also removes ">/dev/null 2>&1" so we will have more direct error
37 information in case something else wrong happened.
38
39 Upstream-Status: Inappropriate [A work around for binutils v2.31]
40
41 Signed-off-by: He Zhe <zhe.he@windriver.com>
42 ---
43  scripts/gcc-goto.sh | 7 ++++++-
44  1 file changed, 6 insertions(+), 1 deletion(-)
45
46 diff --git a/scripts/gcc-goto.sh b/scripts/gcc-goto.sh
47 index 083c526..0aaf1b4 100755
48 --- a/scripts/gcc-goto.sh
49 +++ b/scripts/gcc-goto.sh
50 @@ -3,7 +3,9 @@
51  # Test for gcc 'asm goto' support
52  # Copyright (C) 2010, Jason Baron <jbaron@redhat.com>
53  
54 -cat << "END" | $@ -x c - -c -o /dev/null >/dev/null 2>&1 && echo "y"
55 +TMPFILE=`mktemp -p .`
56 +
57 +cat << "END" > ${TMPFILE}
58  int main(void)
59  {
60  #if defined(__arm__) || defined(__aarch64__)
61 @@ -20,3 +22,6 @@ entry:
62         return 0;
63  }
64  END
65 +
66 +$@ -x c ${TMPFILE} -c -o /dev/null && echo "y"
67 +rm ${TMPFILE}
68 -- 
69 2.7.4
70