On Sun 16 Mar 2014 04:50:33 Greg Turner wrote:
> cmake-multilib.eclass, for example, breaks in mind-warpingly subtle and
> confusing ways on USE="abi_x86_{32,64}" multilib hosts with
> i686-pc-linux-gnu crossdev installed (when combined with some other issues
> in that eclass, this results in correct qawarns about ignored ldflags on
> devel profiles -- an ugly work-around is in my overlay, but I'm not happy
> with it, so it's been languishing in my rainy-day todo queue.  I'd be
> thrilled to see a solution to the underlying problem, so I don't feel
> compelled to salvage the ugly parts).

cmake is completely broken when it comes to library searching and multilib and 
cross-compiling.  it will happily look in hardcoded / paths to test for the 
existence of files as well as directly execute `pkg-config`.  it's a great 
example of people saying "autotools is crap, so let's invent our own kind of 
crap and ignore lessons learned".  this isn't the fault of cmake eclasses, but 
it'd be nice if we could someone standardize the hacks in there so we don't 
have to duplicate across ebuilds.

just look at how cmake internally utilizes CMAKE_FIND_ROOT_PATH.  or grep 
"pkg-config" in /usr/share/cmake/.  or look at find_library usage in cmake 
macros.  it's fundamentally screwed up right now :(.

> As for how to fix it, if foo-bar-baz-quux crossdev targets are at
> ${EROOT}/usr/foo-bar-baz-quux, putting wrappers in
> ${EROOT}/usr/foo-bar-baz-quux/cross-wrappers, or something like that, seems
> perfectly reasonable... heck, pure speculation, but it might even
> noticeably speed up day-to-day $PATH searching on systems with lots of
> crossdev targets installed.

if they're in $PATH, then the exact location is irrelevant.  they need not be 
in /usr/bin to cause a problem.  if they're not in $PATH, then you're breaking 
the cross-compilers and that is unacceptable.

putting CHOST things in /usr/CTARGET is incorrect.  /usr/CHOST/CTARGET/ is for 
hosting helper programs specific to CTARGET that run on CHOST.
-mike

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to