| From 694eba7bb974f6b8bd308804cb24350150108b2b Mon Sep 17 00:00:00 2001 |
| From: He Zhe <zhe.he@windriver.com> |
| Date: Wed, 21 Nov 2018 15:12:43 +0800 |
| Subject: [PATCH] scripts: Use fixed input and output files instead of pipe for here-doc |
| |
| There was a bug of "as" in binutils that when it checks if the input file and |
| output file are the same one, it would not check if they are on the same block |
| device. The check is introduced by the following commit in v2.31. |
| |
| https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h= |
| 67f846b59b32f3d704c601669409c2584383fea9 |
| |
| The here-doc usage in this script creates temporary file in /tmp. When we run in |
| an environment where /tmp has rarely been used, the newly created temporary file |
| may have a very low inode number. If the inode number was 6 which is the same as |
| /dev/null, the as would wrongly think the input file and the output file are the |
| same and report the following error. |
| |
| *** Compiler lacks asm-goto support.. Stop. |
| |
| One observed case happened in docker where the /tmp could be so rarely used that |
| very low number inode may be allocated and triggers the error. |
| |
| The fix below for the bug only exists on the master branch of binutils so far |
| and has not been released from upstream. As the convict is introduced since |
| v2.31, only v2.31 is affected. |
| |
| https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h= |
| 2a50366ded329bfb39d387253450c9d5302c3503 |
| |
| When building linux-libc-headers we need to use "as" in binutils which does not |
| contain the fix for the moment. To work around the error, we create a fixed |
| temporary file to contain the program being tested. |
| |
| This patch also removes ">/dev/null 2>&1" so we will have more direct error |
| information in case something else wrong happened. |
| |
| Upstream-Status: Inappropriate [A work around for binutils v2.31] |
| |
| Signed-off-by: He Zhe <zhe.he@windriver.com> |
| --- |
| scripts/gcc-goto.sh | 5 ++++- |
| 1 file changed, 4 insertions(+), 1 deletion(-) |
| |
| diff --git a/scripts/gcc-goto.sh b/scripts/gcc-goto.sh |
| index 8b980fb22..d256a9438 100755 |
| --- a/scripts/gcc-goto.sh |
| +++ b/scripts/gcc-goto.sh |
| @@ -3,7 +3,7 @@ |
| # Test for gcc 'asm goto' support |
| # Copyright (C) 2010, Jason Baron <jbaron@redhat.com> |
| |
| -cat << "END" | $@ -x c - -fno-PIE -c -o /dev/null |
| +cat << "END" > ./input |
| int main(void) |
| { |
| #if defined(__arm__) || defined(__aarch64__) |
| @@ -20,3 +20,6 @@ entry: |
| return 0; |
| } |
| END |
| + |
| +$@ -x c ./input -fno-PIE -c -o ./output |
| +rm ./input ./output |
| -- |
| 2.19.1 |
| |