Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 536896

Summary: sys-apps/proot-5.1.0 - src_compile(): Usage: objcopy [options] fichier_d_entrée [fichier_de_sortie]
Product: Gentoo Linux Reporter: Ludovic Bellier <ludovic.bellier>
Component: [OLD] Core systemAssignee: Sergey Popov <pinkbyte>
Status: RESOLVED OBSOLETE    
Severity: normal CC: ludovic.bellier
Priority: Normal    
Version: unspecified   
Hardware: AMD64   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: emerge info
build.log

Description Ludovic Bellier 2015-01-17 20:11:57 UTC
Created attachment 394214 [details]
emerge info

sys-apps/proot-5.1.0 compilation failed on :


error: 
x86_64-pc-linux-gnu-gcc -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -I. -I./ -march=nocona -O2 -pipe -Wall -Wextra -MD -c ./extension/extension.c -o extension/extension.o
objcopy --input binary --output `env LANG=C objdump -f cli/cli.o | grep 'file format' | awk '{print $4}'` --binary-architecture `env LANG=C objdump -f cli/cli.o | grep architecture | cut -f 1 -d , | awk '{print $2}'` loader.exe loader/loader-wrapped.o
Usage: objcopy [options] fichier_d_entrée [fichier_de_sortie]
Copier un fichier binaire, possiblement le transformer durant le traitement
 Les options sont:
  -I --input-target <bfdname>      Assume input file is in format <bfdname>
  -O --output-target <bfdname>     Create an output file in format <bfdname>
...
  --info                        List object formats & architectures supported
objcopy: cibles supportés: elf64-x86-64 elf32-i386 elf32-x86-64 a.out-i386-linux pei-i386 pei-x86-64 elf64-l1om elf64-k1om elf64-little elf64-big elf32-little elf32-big plugin srec symbolsrec verilog tekhex binary ihex
GNUmakefile:207 : la recette pour la cible « loader/loader-wrapped.o » a échouée
make: *** [loader/loader-wrapped.o] Erreur 1
make: *** Attente des tâches non terminées....
rm .check_process_vm .check_process_vm.o loader.exe loader-m32.exe .check_seccomp_filter.o .check_seccomp_filter

The problem comes from : env LANG=C objdump -f cli/cli.o | grep 'file format' | awk '{print $4}'

I'm french with french locales and "env LANG=C objdump -f cli/cli.o" returns french message where it should be in english with LANG_C:

cli/cli.o:     format de fichier elf64-x86-64
architecture: i386:x86-64, fanions 0x00000011:
HAS_RELOC, HAS_SYMS
adresse de départ 0x0000000000000000

with LC_ALL ("env LC_ALL=C objdump -f cli/cli.o"), it works:
cli/cli.o:     file format elf64-x86-64

Two by-pass solutions:
1) LC_ALL=C emerge sys-apps/proot
2) modify the GNUmakefile file:
*** GNUmakefile 2015-01-17 21:03:56.620597226 +0100
--- GNUmakefile.backup  2015-01-17 21:03:41.146970585 +0100
***************
*** 141,149 ****
  OBJIFY = $($(quiet)GEN)                                                      \
        $(OBJCOPY)                                                             \
                --input binary                                                 \
!               --output `env LC_ALL=C $(OBJDUMP) -f cli/cli.o |               \
                        grep 'file format' | awk '{print $$4}'`                \
!               --binary-architecture `env LC_ALL=C $(OBJDUMP) -f cli/cli.o |  \
                                grep architecture | cut -f 1 -d , | awk '{print $$2}'`  \
                $< $@
  
--- 141,149 ----
  OBJIFY = $($(quiet)GEN)                                                      \
        $(OBJCOPY)                                                             \
                --input binary                                                 \
!               --output `env LANG=C $(OBJDUMP) -f cli/cli.o |                 \
                        grep 'file format' | awk '{print $$4}'`                \
!               --binary-architecture `env LANG=C $(OBJDUMP) -f cli/cli.o |    \
                                grep architecture | cut -f 1 -d , | awk '{print $$2}'`  \
                $< $@

But the problem maybe comes from binutils which own objcopy, it maybe shouldn't output french message with "env LANG=C" suffix.
Comment 1 Ludovic Bellier 2015-01-17 20:13:35 UTC
Created attachment 394216 [details]
build.log
Comment 2 Sergey Popov gentoo-dev 2018-08-01 13:34:35 UTC
Please try with new toolchain