request for diversion + please help to determine default targets
Hello.
I'm (de-facto) co-maintainer of dpkg-cross, the debian cross-compiling
support package.
One of the problems with debian package cross-compilation comes from
dh_strip, that just calls "strip" binary. It's ok for native compilation,
but for cross-compilation will cause problems unless binutils-multiarch is
installed.
A good way to deal with this is fixing dh_strip to use $STRIP environment
variable (if set) to locate strip binary. However, I was told [1] that
debhelper maintainers don't like this idea.
So I'm going to solve this issue by diverting dh_strip by a script, that
will:
- locate appropriate strip binary,
- if binary name is not "strip", create a temporary directory and a symlink
named "strip" there that will point to the strip binary,
- set PATH such that correct strip binary will be called
- execute original dh_strip
- remove temporary directory if one was created.
Debian policy requires to discuss any diversion in debian-devel.
It is OK to divert in this case?
Note that dpkg-cross already diverts dpkg-shlibdeps and dpkg-buildpackage.
One more question.
I'm going to detect strip binary that can deal with files for $(arch) by
checking /usr/bin/strip and several common locations for cross-strip, and
parsing the "supported targets" line of --help output of the found
binaries.
nikita@bliss:~> strip --help 2>&1 | grep 'supported targets'
strip: supported targets: elf32-i386 a.out-i386-linux efi-app-ia32
elf32-little elf32-big elf64-x86-64 elf64-little elf64-big srec symbolsrec
tekhex binary ihex trad-core
nikita@bliss:~> arm-linux-strip --help 2>&1 | grep 'supported targets'
arm-linux-strip: supported targets: elf32-littlearm elf32-bigarm
elf32-little elf32-big srec symbolsrec tekhex binary ihex
To make this work on all archs, I need a table, what string to search in
supported targets for each debian architecture?
First targets listed by my deb installation of cross-binutils for several
linux targets are:
'elf32-i386' for x86-linux
'elf64-alpha' for alpha-linux
'elf32-littlearm' for arm-linux
'elf32-hppa' for hppa-linux
'elf64-ia64-little' for ia64-linux
'elf32-m68k' for m68k-linux
'elf32-tradbigmips' for mips-linux
'elf32-tradlittlemips' for mipsel-linux
'elf32-powerpc' for powerpc-linux
'elf32-s390' for s390-linux
'elf32-sparc' for sparc-linux
Is it ok to use those? What should be used for amd64 and hurd targets?
Nikita
[1] http://lists.debian.org/debian-embedded/2004/06/msg00067.html
Reply to: