[OE-core] [PATCH] binutils: Upgrade to 2.31 release branch

Robert Yang liezhi.yang at windriver.com
Tue Aug 7 08:28:27 UTC 2018


Hi Khem,

The new binutils may cause build failures with kernel 4.18 (linux-yocto-dev),

arch/x86/Makefile:184: *** Compiler lacks asm-goto support..  Stop.

The line for checking asm goto is in kernel's top Makefile:

# check for 'asm goto'
ifeq ($(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC) 
$(KBUILD_CFLAGS)), y)
   CC_HAVE_ASM_GOTO := 1
   KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO
   KBUILD_AFLAGS += -DCC_HAVE_ASM_GOTO
endif

And in gcc-goto.sh:
cat << "END" | $@ -x c - -c -o /dev/null >/dev/null 2>&1 && echo "y"
int main(void)
{
#if defined(__arm__) || defined(__aarch64__)
     /*
      * Not related to asm goto, but used by jump label
      * and broken on some ARM GCC versions (see GCC Bug 48637).
      */
     static struct { int dummy; int state; } tp;
     asm (".long %c0" :: "i" (&tp.state));
#endif

entry:
     asm goto ("" :::: entry);
     return 0;
}
END

This script reports:

Assembler messages:
Fatal error: The input and output files must be distinct

And it is introduced by binutils' commit:

commit 67f846b59b32f3d704c601669409c2584383fea9
Author: John Darrington <john at darrington.wattle.id.au>
Date:   Thu Apr 12 15:07:02 2018 +0100

     Stop the assembler from overwriting its output file.

[snip]
+             if (sib.st_ino == sob.st_ino)
+               {
+                 /* Don't let as_fatal remove the output file!  */
+                 out_file_name = NULL;
+                 as_fatal (_("The input and output files must be distinct"));
[snip]


I can't reproduce this problem locally, but it can be reproduced in our daily
build. Yocto doesn't have this problem atm since it use linux-yocto (not -dev).

Do you have any suggestions, please ?

// Robert

On 07/18/2018 04:10 AM, Khem Raj wrote:
> Signed-off-by: Khem Raj <raj.khem at gmail.com>
> ---
>   meta/conf/distro/include/tcmode-default.inc   |    2 +-
>   .../{binutils-2.30.inc => binutils-2.31.inc}  |    2 +-
>   ....30.bb => binutils-cross-canadian_2.31.bb} |    0
>   ...s-cross_2.30.bb => binutils-cross_2.31.bb} |    0
>   ...ssdk_2.30.bb => binutils-crosssdk_2.31.bb} |    0
>   ...s-crosssdk-Generate-relocatable-SDKs.patch |   12 +-
>   ...o-not-generate-linker-script-directo.patch |   22 +-
>   ...iden-the-regexp-for-SH-architectures.patch |   12 +-
>   ...004-Point-scripts-location-to-libdir.patch |   10 +-
>   ...-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch |   10 +-
>   .../binutils/0006-Use-libtool-2.4.patch       | 2296 +++++++++--------
>   ...-the-armv5e-architecture-to-binutils.patch |    8 +-
>   ...stro-compiler-point-to-the-wrong-ins.patch |    4 +-
>   ...-system-directories-when-cross-linki.patch |   50 +-
>   ...h-in-libtool-when-sysroot-is-enabled.patch |    4 +-
>   ...e-default-emulation-for-mips64-linux.patch |   12 +-
>   .../0012-Add-support-for-Netlogic-XLP.patch   |   80 +-
>   ...ect-assembling-for-ppc-wait-mnemonic.patch |   10 +-
>   .../0014-Detect-64-bit-MIPS-targets.patch     |    4 +-
>   .../0015-sync-with-OE-libtool-changes.patch   |    4 +-
>   .../{binutils_2.30.bb => binutils_2.31.bb}    |    0
>   21 files changed, 1327 insertions(+), 1215 deletions(-)
>   rename meta/recipes-devtools/binutils/{binutils-2.30.inc => binutils-2.31.inc} (97%)
>   rename meta/recipes-devtools/binutils/{binutils-cross-canadian_2.30.bb => binutils-cross-canadian_2.31.bb} (100%)
>   rename meta/recipes-devtools/binutils/{binutils-cross_2.30.bb => binutils-cross_2.31.bb} (100%)
>   rename meta/recipes-devtools/binutils/{binutils-crosssdk_2.30.bb => binutils-crosssdk_2.31.bb} (100%)
>   rename meta/recipes-devtools/binutils/{binutils_2.30.bb => binutils_2.31.bb} (100%)
>  



More information about the Openembedded-core mailing list