Ticket #799 (new defect)

Opened 8 years ago

Last modified 8 years ago

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:1 Changed 8 years ago by ciaranm

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...

comment:2 Changed 8 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 8 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.

Note: See TracTickets for help on using tickets.