I'm using ROOT and PORTAGE_CONFIGROOT with a PPC system mounted on a PC over NFS. Everytime Portage runs ldconfig, it breaks the PPC's ld.so.cache. To cut a long story short, it seems that ld.so.cache differs between architectures. You probably knew that already! Can we add a check to stop ldconfig from running if CHOST != CBUILD and ROOT != / ? It would also indirectly fix another problem with my cross compile scripts. (-:
it isnt really architecture dependent ... it does have endian issues though which is probably what you're seeing (i imagine your host is little endian x86/amd64 while the target is big endian ppc)
Yeah I thought it might be that. I can't think of any simple way to check the endianness of both / and ROOT though. Hmmm...
Mike, Ned: any suggestion how to fix this?
I have retired that PPC machine now but I still have my big endian m68k Amiga 1200 sitting right here. (-; A solution would be appreciated.
we should test the env to see if it's a cross-compiler ... LDCONFIG="ldconfig" if [[ ${CBUILD} != ${CHOST} ]] ; then LDCONFIG="${CHOST}-ldconfig" fi if type -P ${LDCONFIG} > /dev/null ; then <actually run ldconfig> fi
Created attachment 121536 [details, diff] run \${CHOST}-ldconfig when \${CBUILD} != \${CHOST} This should do it.
This has been released in 2.1.2.10.