On Thu, Aug 22, 2013 at 01:16:04PM +0200, Peter Rosin wrote: > I guess I'm just thoroughly confused, but in my world there ought to > be four variations of $host; 64- or 32-bit, and big or little endian. > > This patch seems to only handle builds going from 64-bit to 32-bit > ($host powerpc64-* and 32-bit output) and compiles going from 32-bit > to 64-bit ($host powerpc-* and 64-bit output). > > Both of those cases ought to be cross compiles. But I don't get why you > apparently do not need to give any -m option to ld when you cross-compile > from 32-bit little-endian to 32-bit big-endian and from 64-bit l-e to > 64-bit b-e? Is the user required to provide the appropriate -m option > manually in that case? Why is it important to be more helpful for > crosses over the 32/64 boundary?
Yes, we might need to handle those cases too. I've only just started looking into the cross-endian multilib support in gcc.. As to why the cases I handled are more important: On a powerpc64le linux host where the compiler defaulted to producing 64-bit objects (which is how we generally build compilers nowadays) libtool added -m elf64ppc to $LD here. Being the option for 64-bit big-endian, that caused complete failure for *native* 64-bit little-endian. Which is where the action is at the moment. -- Alan Modra Australia Development Lab, IBM