Marek Benc <merku...@gmail.com> skribis: > On 01/31/2015 11:13 PM, Marek Benc wrote: > >> >> The current issue is that, when building cross-gcc, when it reaches >> libgomp, configure fails when trying to create a dummy binary. For some >> reason, the compiled cross-compiler needs --rpath to specify where >> shared libraries are, as without it, it can't find libmachuser.so and >> libhurduser.so, which causes it to fail. >> > > Well, I figured out a way to solve it, however, I don't know if the > change is acceptable, since it alters how cross-compilers work. > > In the attached patch, which builds upon the one from my previous > email, I made cross compilers not use binutils' ld directly, but > instead use the ld-wrapper script. > > This means that while the Hurd cross compiler now works, binaries made > by cross compilers have their library paths hard-coded into their > RPATH section, which means that they're less flexible, which might be > a problem. For some reason, the hurd cross-linker can't find libraries > without specifying a --rpath, which is strange imho.
Using RUNPATH is not a problem: it’s what we always do. ;-) That said, in practice we haven’t done anything special about it in cross-compilation contexts and things have worked fine. I believe this is due to the fact that we’ve only built things that use Libtool, and Libtool adds --rpath automatically. Another thing I don’t understand is that we use "--disable-libgomp" in ‘cross-gcc-arguments’, which means that the first cross-gcc (sans libc) does not build libgomp. What are things going wrong here? Thanks, Ludo’.