On Sun, Sep 28, 2014 at 4:52 AM, Brian Drummond <brian@xxxxxxxxxxxxxxxxxx> wrote: > On Sat, 2014-09-27 at 18:33 -0500, Cyd Haselton wrote: >> On Sat, Sep 27, 2014 at 6:46 AM, <gcc-help-digest-help@xxxxxxxxxxx> wrote: > >> > No matter which config flags I use, the build keeps failing with >> > "/usr/local/bin/ld" this linker is not configured touse sysroots" >> > I've checked the specs for the ld at that location, and it does >> > support sysroot. >> > >> > What am I doing wrong? >> > First question would be : are you using those config flags to build >> > binutils (to support sysroots) and install it, then build gcc? >> >> Do I need to download the source for binutils and build it as well? > > I can't be certain and I was hoping my dumb question would elicit "of > course" or "no" from the real experts... > > But given the way binutils and the compiler have to interoperate, I > think it's likely that you do. That's the normal process when building > crosscompilers (which you aren't) so it may also be when you're > selecting unusual config options (which you are). > > Binutils is much faster to build than gcc so it's not a difficult > question to answer for yourself. Naively, I'd feed the same set of > config options to binutils and let it ignore the ones it doesn't need. > > Then having a "synchronised" version of ld etc in the same sysroot, you > could eliminate the --with-ld= option pointing at the other one. > > If you make progress that way, keep the list informed. > > - Brian > Initially sent this just to Brian, due to gmail's default quick reply settings: **************************************************** As suggested, I've downloaded source for binutils 2.23.2, unpacked and symlinked it in the gcc 4.7.0 source dir and re-run configure (minus the --with-ld=no and --with-ld=/path/to/ld options. I also added the BIONIC_LIBC #ifdef conditions to getpagesize.c in binutils/libiberty to move past the error thrown by that file. However, I'm now getting an error in bfd in function bfd_ar_hdr_from_filesystem ../../../gcc-4.7.0/binutils/bfd/archive.c:1866:7: error: pointer targets in passing argument 1 of 'time' differ in signedness [-Werror-pointer-sign] This is followed by /usr/local/sysroot/usr/include/time.h:40:17: note: expected 'time_t *' but argument is of type 'long unsigned int*' I vaguely remember having to make some modifications to a source file when porting GCC 4.8 to android, but it's been a while...I'd have to dig up prior posts and resurrect an archived VM. Any ideas before I do just that? UPDATE: Question above answered; there's a patch available for bfd/archive.c that involves a cast (?) for the problematic function, but I've now run into another error in binutils/bucomm.c ..binutils/bucomm.c: In function 'make_tempdir' ..binutils/bucomm.c:532:3: error: implicit declaration of function 'mkdtemp' [-Werror=implicit-function-declaration] ..binutils/bucomm.c:532:3: error: return makes pointer from integer without a cast [-Werror] Looks like I'll be digging back into my C handbook. If someone knows of an existing patch, please save me from doing this.