<div dir="ltr">Hello,<div><br></div><div>I need to build a CLANG cross compiler for mips-linux-uclibc.  To be completely compatible with the target system, I would like it to use linux 2.6.32.54 headers, binutils 2.25, gcc 4.1.2, and uClibc 0.9.30.1 for the gcc toolchain.  I have been able to build the GCC toolchain a variety of different ways, but none of these builds can be "dropped in" via clang as a replacement for just using the gcc toolchain directly.  I am building the toolchain on ubuntu 14.04 using gcc 4.8.4.</div><div><br></div><div>I believe this is because I do not understand how to build the toolchain such that when clang invokes toolchain programs (particularly the linker), those programs can find the things they need (include files, libraries, etc) to operate properly.  This manifests itself in a variety of way depending on what technique I used to build the toolchain, but here is a representative problem from a toolchain I built using the buildroot system:</div><div><br></div><div>





































<p class="MsoNormal" style="margin:0in 0in 0.0001pt;line-height:normal;background:white;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:12pt;font-family:Arial,sans-serif;color:rgb(34,34,34)">clang -v -target
mips-linux-uclibc
--gcc-toolchain=/home/mdalpee/buildroot-2009.05/build_mips/staging_dir/usr
--sysroot=/home/mdalpee/buildroot-2009.05/build_mips/staging_dir/usr -o
build-mips-product/test-png  -fPIC
-I/home/mdalpee/checkouts/clang/source/src/program/include test_png.c png.c
../lib/build-mips-product/libutils.a <span></span></span></p>

<p class="MsoNormal" style="margin:0in 0in 0.0001pt;line-height:normal;background:white;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:12pt;font-family:Arial,sans-serif;color:rgb(34,34,34)">clang version 7.0.0
(trunk 328723)<span></span></span></p>

<p class="MsoNormal" style="margin:0in 0in 0.0001pt;line-height:normal;background:white;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:12pt;font-family:Arial,sans-serif;color:rgb(34,34,34)">Target:
mips--linux-uclibc<span></span></span></p>

<p class="MsoNormal" style="margin:0in 0in 0.0001pt;line-height:normal;background:white;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:12pt;font-family:Arial,sans-serif;color:rgb(34,34,34)">Thread model: posix<span></span></span></p>

<p class="MsoNormal" style="margin:0in 0in 0.0001pt;line-height:normal;background:white;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:12pt;font-family:Arial,sans-serif;color:rgb(34,34,34)">InstalledDir:
/home/milkweed/build-clang/bin<span></span></span></p>

<p class="MsoNormal" style="margin:0in 0in 0.0001pt;line-height:normal;background:white;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:12pt;font-family:Arial,sans-serif;color:rgb(34,34,34)"> "/home/mdalpee/build-clang/bin/clang-7.0"
-cc1 -triple mips--linux-uclibc -emit-obj -mrelax-all -disable-free
-main-file-name png.c -mrelocation-model pic -pic-level 2 -mthread-model posix
-mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases
-fuse-init-array -target-cpu mips32r2 -target-feature -noabicalls -target-abi
o32 -mfloat-abi hard -dwarf-column-info -debugger-tuning=gdb -v -resource-dir
/home/mdalpee/build-clang/lib/clang/7.0.0 -I
/home/mdalpee/checkouts/clang/source/src/program/include -isysroot
/home/mdalpee/buildroot-2009.05/build_mips/staging_dir/usr -internal-isystem
/home/mdalpee/buildroot-2009.05/build_mips/staging_dir/usr/usr/local/include
-internal-isystem /home/mdalpee/build-clang/lib/clang/7.0.0/include
-internal-externc-isystem
/home/mdalpee/buildroot-2009.05/build_mips/staging_dir/usr/include
-internal-externc-isystem
/home/mdalpee/buildroot-2009.05/build_mips/staging_dir/usr/usr/include
-fdebug-compilation-dir /home/mdalpee/checkouts/clang/source/src/program/png
-ferror-limit 19 -fmessage-length 0 -fobjc-runtime=gcc
-fdiagnostics-show-option -o /tmp/png-b34eab.o -x c png.c</span><span style="color:rgb(34,34,34)"><span></span></span></p>

<p class="MsoNormal" style="margin:0in 0in 0.0001pt;line-height:normal;background:white;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:12pt;font-family:Arial,sans-serif;color:rgb(34,34,34)">clang -cc1 version
7.0.0 based upon LLVM 7.0.0svn default target x86_64-unknown-linux-gnu</span><span style="color:rgb(34,34,34)"><span></span></span></p>

<p class="MsoNormal" style="margin:0in 0in 0.0001pt;line-height:normal;background:white;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:12pt;font-family:Arial,sans-serif;color:rgb(34,34,34)">ignoring nonexistent
directory
"/home/mdalpee/buildroot-2009.05/build_mips/staging_dir/usr/usr/local/include"</span><span style="color:rgb(34,34,34)"><span></span></span></p>

<p class="MsoNormal" style="margin:0in 0in 0.0001pt;line-height:normal;background:white;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:12pt;font-family:Arial,sans-serif;color:rgb(34,34,34)">ignoring nonexistent
directory
"/home/mdalpee/buildroot-2009.05/build_mips/staging_dir/usr/usr/include"</span><span style="color:rgb(34,34,34)"><span></span></span></p>

<p class="MsoNormal" style="margin:0in 0in 0.0001pt;line-height:normal;background:white;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:12pt;font-family:Arial,sans-serif;color:rgb(34,34,34)">#include "..."
search starts here:</span><span style="color:rgb(34,34,34)"><span></span></span></p>

<p class="MsoNormal" style="margin:0in 0in 0.0001pt;line-height:normal;background:white;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:12pt;font-family:Arial,sans-serif;color:rgb(34,34,34)">#include <...>
search starts here:</span><span style="color:rgb(34,34,34)"><span></span></span></p>

<p class="MsoNormal" style="margin:0in 0in 0.0001pt;line-height:normal;background:white;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:12pt;font-family:Arial,sans-serif;color:rgb(34,34,34)"> /home/mdalpee/checkouts/clang/source/src/program/include</span><span style="color:rgb(34,34,34)"><span></span></span></p>

<p class="MsoNormal" style="margin:0in 0in 0.0001pt;line-height:normal;background:white;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:12pt;font-family:Arial,sans-serif;color:rgb(34,34,34)"> /home/mdalpee/build-clang/lib/clang/7.0.0/include</span><span style="color:rgb(34,34,34)"><span></span></span></p>

<p class="MsoNormal" style="margin:0in 0in 0.0001pt;line-height:normal;background:white;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:12pt;font-family:Arial,sans-serif;color:rgb(34,34,34)"> /home/mdalpee/buildroot-2009.05/build_mips/staging_dir/usr/include</span><span style="color:rgb(34,34,34)"><span></span></span></p>

<p class="MsoNormal" style="margin:0in 0in 0.0001pt;line-height:normal;background:white;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:12pt;font-family:Arial,sans-serif;color:rgb(34,34,34)">End of search list.</span><span style="color:rgb(34,34,34)"><span></span></span></p>

<p class="MsoNormal" style="margin:0in 0in 0.0001pt;line-height:normal;background:white;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:12pt;font-family:Arial,sans-serif;color:rgb(34,34,34)"> "/home/mdalpee/buildroot-2009.05/build_mips/staging_dir/usr/bin/mips-linux-uclibc-ld"
--sysroot=/home/mdalpee/buildroot-2009.05/build_mips/staging_dir/usr -z relro
--sysroot=/home/mdalpee/buildroot-2009.05/build_mips/staging_dir/usr --eh-frame-hdr
-m elf32btsmip -dynamic-linker /lib/ld.so.1 -o build-mips-product/test-png
/home/mdalpee/buildroot-2009.05/build_mips/staging_dir/usr/lib/../lib/crt1.o
/home/mdalpee/buildroot-2009.05/build_mips/staging_dir/usr/lib/../lib/crti.o
crtbegin.o -L/home/mdalpee/buildroot-2009.05/build_mips/staging_dir/usr/lib/../lib
-L/home/mdalpee/buildroot-2009.05/build_mips/staging_dir/usr/lib
/tmp/test_png-2da555.o /tmp/png-b34eab.o ../lib/build-mips-product/libutils.a
-lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s
--no-as-needed crtend.o
/home/mdalpee/buildroot-2009.05/build_mips/staging_dir/usr/lib/../lib/crtn.o</span><span style="color:rgb(34,34,34)"><span></span></span></p>

<p class="MsoNormal" style="margin:0in 0in 0.0001pt;line-height:normal;background:white;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:12pt;font-family:Arial,sans-serif;color:rgb(34,34,34)">/home/mdalpee/buildroot-2009.05/build_mips/staging_dir/usr/bin/mips-linux-uclibc-ld:
cannot find crtbegin.o: No such file or directory</span><span style="color:rgb(34,34,34)"><span></span></span></p>

<p class="MsoNormal" style="margin:0in 0in 0.0001pt;line-height:normal;background:white;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:12pt;font-family:Arial,sans-serif;color:rgb(34,34,34)">/home/mdalpee/buildroot-2009.05/build_mips/staging_dir/usr/bin/mips-linux-uclibc-ld:
cannot find -lgcc</span><span style="color:rgb(34,34,34)"><span></span></span></p>

<p class="MsoNormal" style="margin:0in 0in 0.0001pt;line-height:normal;background:white;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:12pt;font-family:Arial,sans-serif;color:rgb(34,34,34)">/home/mdalpee/buildroot-2009.05/build_mips/staging_dir/usr/bin/mips-linux-uclibc-ld:
cannot find -lgcc_s</span><span style="color:rgb(34,34,34)"><span></span></span></p>

<p class="MsoNormal" style="margin:0in 0in 0.0001pt;line-height:normal;background:white;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:12pt;font-family:Arial,sans-serif;color:rgb(34,34,34)">/home/mdalpee/buildroot-2009.05/build_mips/staging_dir/usr/bin/mips-linux-uclibc-ld:
cannot find /lib/libc.so.0 inside
/home/mdalpee/buildroot-2009.05/build_mips/staging_dir/usr</span><span style="color:rgb(34,34,34)"><span></span></span></p>

<p class="MsoNormal" style="margin:0in 0in 0.0001pt;line-height:normal;background:white;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:12pt;font-family:Arial,sans-serif;color:rgb(34,34,34)">/home/mdalpee/buildroot-2009.05/build_mips/staging_dir/usr/bin/mips-linux-uclibc-ld:
cannot find /usr/lib/uclibc_nonshared.a inside /home/mdalpee/buildroot-2009.05/build_mips/staging_dir/usr</span><span style="color:rgb(34,34,34)"><span></span></span></p>

<p class="MsoNormal" style="margin:0in 0in 0.0001pt;line-height:normal;background:white;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:12pt;font-family:Arial,sans-serif;color:rgb(34,34,34)">/home/mdalpee/buildroot-2009.05/build_mips/staging_dir/usr/bin/mips-linux-uclibc-ld:
cannot find /lib/ld-uClibc.so.0 inside
/home/mdalpee/buildroot-2009.05/build_mips/staging_dir/usr</span><span style="color:rgb(34,34,34)"><span></span></span></p>

<p class="MsoNormal" style="margin:0in 0in 0.0001pt;line-height:normal;background:white;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:12pt;font-family:Arial,sans-serif;color:rgb(34,34,34)">clang-7.0: error: linker
command failed with exit code 1 (use -v to see invocation)</span><span style="color:rgb(34,34,34)"><span></span></span></p>

<p class="MsoNormal" style="margin:0in 0in 0.0001pt;line-height:normal;background:white;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:12pt;font-family:Arial,sans-serif;color:rgb(34,34,34)">make[4]: ***
[build-mips-product/test-png] Error 1</span><span style="color:rgb(34,34,34)"><span></span></span></p>

<p class="MsoNormal" style="margin:0in 0in 0.0001pt;line-height:normal;background:white;font-size:11pt;font-family:Calibri,sans-serif"><span style="font-size:12pt;font-family:Arial,sans-serif;color:rgb(34,34,34)">make[3]: *** [png]
Error 2</span><span style="color:rgb(34,34,34)"><span></span></span></p>

<p class="MsoNormal" style="margin:0in 0in 8pt;line-height:107%;font-size:11pt;font-family:Calibri,sans-serif"><span> </span><span style="font-size:11pt"> </span></p>





Any guidance about how to best create the gcc toolchain (particularly how to properly build gcc to use uclibc instead of glibc) would be appreciated.</div></div>