Ticket #799 (new defect)
importare not respecting change in CTARGET or CHOST when stripping symbols
| Reported by: | dbender | Owned by: | |
|---|---|---|---|
| Priority: | Sometime | Milestone: | |
| Component: | clients/importare | Version: | 0.40.1 |
| Keywords: | Cc: | ||
| Blocked By: | Blocking: | ||
| Distribution: | Exherbo |
Description
Background:
I built an arm cross toolchain with crosstool-ng. So I try to importare the glibc it built into an exherbo image. importare attempts to strip the libraries using the host objcopy utility, rather than the cross copy. I did not see an --info option for importare so I am not sure what it believes the relevant env vars are.
My environment's paludis/bashrc is:
CBUILD="x86_64-pc-linux-gnu"
CHOST="arm-unknown-linux-gnueabi"
CTARGET="arm-unknown-linux-gnueabi"
CFLAGS="-march=armv5te -pipe -O2"
CXXFLAGS="-march=armv5te -pipe -O2"
PATH="${PATH}:/usr/arm-unknown-linux-gnueabi/bin"
PATH="/usr/lib/ccache/bin/:${PATH}"
CCACHE_DIR="/var/tmp/ccache"
A sample of the output looks like:
importare@1256237582: [WARNING strip.failure] In thread ID '11124': ... In program importare -E :sheeva --location ./sys-root sys-libs/glibc 2.9: ... When performing install action from command line: ... When executing install task: ... When stripping image './sys-root': ... When stripping inside './sys-root': ... When stripping inside './sys-root/usr': ... When stripping inside './sys-root/usr/lib': ... When stripping inside './sys-root/usr/lib/gconv': ... When stripping './sys-root/usr/lib/gconv/ISO8859-5.so': ... Couldn't strip './sys-root/usr/lib/gconv/ISO8859-5.so' spl /usr/lib/gconv/ISO8859-6.so -> /usr/lib/debug/usr/lib/gconv/ISO8859-6.so.debug objcopy: Unable to recognise the format of the input file `./sys-root/usr/lib/gconv/ISO8859-6.so' importare@str 1256237582: [WARNING strip.failure] In thread ID '11124': ... In program importare -E :sheeva --location ./sys-root sys-libs/glibc 2.9: ... When performing install action from command line: ... When executing install task: ... When stripping image './sys-root': ... When stripping inside './sys-root': ... When stripping inside './sys-root/usr': ... When stripping inside './sys-root/usr/lib': ... When stripping inside './sys-root/usr/lib/gconv': ... When splitting './sys-root/usr/lib/gconv/ISO8859-6.so' to './sys-root/usr/lib/debug/usr/lib/gconv/ISO8859-6.so.debug': ... /usr/lib/gconv/ISO8859-6.so Couldn't copy debug information for './sys-root/usr/lib/gconv/ISO8859-6.so' strip: Unable to recognise the format of the input file `./sys-root/usr/lib/gconv/ISO8859-6.so'
Change History
comment:2 Changed 4 years ago by dbender
Thought: If bashrc is not used by the entire paludis suite, perhaps I shouldn't be using bashrc to determine the toolchain properties. Maybe they should stem from a more global file, in etc/paludis or in the profiles/* itself?
comment:3 Changed 4 years ago by ciaranm
The problem here really is that nothing supports cross compiling properly. We've always been reluctant to add Paludis support when it would rely so heavily upon the distribution getting it right, and currently no distribution we support cares.
Still, nothing configuration-wise whatsoever will change where Paludis goes for strip, at present.

Your bashrc isn't used at all for the merge part.
Not sure how we want to handle this really. I can't think of a particularly nice way of doing it...
build_options: strip_program=/blah split_program=/blah possibly...