Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 536896 - sys-apps/proot-5.1.0 - src_compile(): Usage: objcopy [options] fichier_d_entrée [fichier_de_sortie]
Summary: sys-apps/proot-5.1.0 - src_compile(): Usage: objcopy [options] fichier_d_entr...
Status: RESOLVED OBSOLETE
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: AMD64 Linux
: Normal normal (vote)
Assignee: Sergey Popov
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-01-17 20:11 UTC by Ludovic Bellier
Modified: 2018-08-01 13:34 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge info (emerge.info,6.35 KB, text/plain)
2015-01-17 20:11 UTC, Ludovic Bellier
Details
build.log (build.log,16.62 KB, text/plain)
2015-01-17 20:13 UTC, Ludovic Bellier
Details

Note You need to log in before you can comment on or make changes to this bug.
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