Richard Pennington
2014-Mar-27 23:00 UTC
[LLVMdev] using just llvm/clang for building mips llvm
On 03/27/2014 06:01 PM, reed kotler wrote:> Geting a seg fault. Have not investigted the cause. > > rkotler at mipsswbrd002:~/richard$ tar vfxz > ~/Downloads/ellcc-mips-linux-2014-Mar-24-07-32-26.tgz > > rkotler at mipsswbrd002:~/richard/ellcc/bin$ gdb ./ecc > GNU gdb (GDB) 7.4.1-debian > Copyright (C) 2012 Free Software Foundation, Inc. > License GPLv3+: GNU GPL version 3 or later > <http://gnu.org/licenses/gpl.html> > This is free software: you are free to change and redistribute it. > There is NO WARRANTY, to the extent permitted by law. Type "show > copying" > and "show warranty" for details. > This GDB was configured as "mips-linux-gnu". > For bug reporting instructions, please see: > <http://www.gnu.org/software/gdb/bugs/>... > Reading symbols from /home/rkotler/richard/ellcc/bin/ecc...done. > (gdb) run > Starting program: /home/rkotler/richard/ellcc/bin/ecc > > Program received signal SIGSEGV, Segmentation fault. > 0x02ee15dc in __init_tls () > (gdb) bt > #0 0x02ee15dc in __init_tls () > #1 0x02ebde44 in __init_libc () > #2 0x02ebdebc in __libc_start_main () > #3 0x00416ac4 in _start () > (gdb) > > > rkotler at mipsswbrd002:~/richard/ellcc/bin$ ls > FileCheck ecc-c++filt ecc-ld.bfd ecc-size ppc-elf-as > arm-elf-as ecc-elfedit ecc-nm ecc-strings ppc64-elf-as > ecc ecc-embedspu ecc-objcopy ecc-strip sparc-elf-as > ecc++ ecc-gdb ecc-objdump i386-elf-as x86_64-elf-as > ecc-addr2line ecc-gprof ecc-ranlib microblaze-elf-as > ecc-ar ecc-ld ecc-readelf mips-elf-as > rkotler at mipsswbrd002:~/richard/ellcc/bin$ ./ecc > Segmentation fault > rkotler at mipsswbrd002:~/richard/ellcc/bin$ ./ecc-ar > Segmentation fault > rkotler at mipsswbrd002:~/richard/ellcc/bin$Ah. Ignore my other email. This build is using musl as the standard C library. It looks as if initializing TLS is failing. I'll look into that. What is the version of your Linux kernel? Thanks for trying it out, though. By the way, these binaries are all statically linked to libc++, libc++abi, musl, and compiler-rt. -Rich
Geting a seg fault. Have not investigted the cause. rkotler at mipsswbrd002:~/richard$ tar vfxz ~/Downloads/ellcc-mips-linux-2014-Mar-24-07-32-26.tgz rkotler at mipsswbrd002:~/richard/ellcc/bin$ gdb ./ecc GNU gdb (GDB) 7.4.1-debian Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "mips-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /home/rkotler/richard/ellcc/bin/ecc...done. (gdb) run Starting program: /home/rkotler/richard/ellcc/bin/ecc Program received signal SIGSEGV, Segmentation fault. 0x02ee15dc in __init_tls () (gdb) bt #0 0x02ee15dc in __init_tls () #1 0x02ebde44 in __init_libc () #2 0x02ebdebc in __libc_start_main () #3 0x00416ac4 in _start () (gdb) rkotler at mipsswbrd002:~/richard/ellcc/bin$ ls FileCheck ecc-c++filt ecc-ld.bfd ecc-size ppc-elf-as arm-elf-as ecc-elfedit ecc-nm ecc-strings ppc64-elf-as ecc ecc-embedspu ecc-objcopy ecc-strip sparc-elf-as ecc++ ecc-gdb ecc-objdump i386-elf-as x86_64-elf-as ecc-addr2line ecc-gprof ecc-ranlib microblaze-elf-as ecc-ar ecc-ld ecc-readelf mips-elf-as rkotler at mipsswbrd002:~/richard/ellcc/bin$ ./ecc Segmentation fault rkotler at mipsswbrd002:~/richard/ellcc/bin$ ./ecc-ar Segmentation fault rkotler at mipsswbrd002:~/richard/ellcc/bin$ On 03/27/2014 03:30 PM, Richard Pennington wrote:> On 03/27/2014 04:17 PM, reed kotler wrote: >> In case anyone is interested.... >> >> We don't need to compile llvm/clang using gcc anymore for the >> building of mips hosted llvm compilers. >> >> We build a linux mips hosted compiler starting with llvm/clang on x86 >> linux using the normal configure scripts and >> then can use that resulting compiler to build further llvm/clang >> native compilers on the mips linux host. >> >> The cross compiler and native compiler driver for Mips works >> seamlessly (thanks to Simon Atanasyan) just as gcc does. >> >> For our build slave that is connected to the llvm build bots, we are >> using our native clang/llvm (built as above) to built the llc >> that is used for make check. >> >> I'm doing some more work to automate the testing of the recursed >> compilers and other verification on the mips target. > Hi Reed, > > Very cool. I'd love to know if my pre-compiled Mips toolchain for > ELLCC (http://ellcc.org), downloadable from ftp://ellcc.org/pub, can > actually run on a Mips. Any idea where I could find a Mips box to try > it on? > > It was compiled using a clang based x86_64 compiler, by the way. > The ARM binaries work just fine, at least on Fedora ARM Linux running > under QEMU. > > -Rich
rkotler at mipsswbrd002:~/richard/ellcc/bin$ uname -a Linux mipsswbrd002 2.6.32.13-Cavium-Octeon #1 SMP Thu Nov 8 18:12:33 PST 2012 mips64 GNU/Linux rkotler at mipsswbrd002:~/richard/ellcc/bin$ cat /proc/version Linux version 2.6.32.13-Cavium-Octeon (bkirby at mipssw006) (gcc version 4.3.3 (Cavium Networks Version: 2_0_0 build 95) ) #1 SMP Thu Nov 8 18:12:33 PST 2012 rkotler at mipsswbrd002:~/richard/ellcc/bin$ On 03/27/2014 04:00 PM, Richard Pennington wrote:> On 03/27/2014 06:01 PM, reed kotler wrote: >> Geting a seg fault. Have not investigted the cause. >> >> rkotler at mipsswbrd002:~/richard$ tar vfxz >> ~/Downloads/ellcc-mips-linux-2014-Mar-24-07-32-26.tgz >> >> rkotler at mipsswbrd002:~/richard/ellcc/bin$ gdb ./ecc >> GNU gdb (GDB) 7.4.1-debian >> Copyright (C) 2012 Free Software Foundation, Inc. >> License GPLv3+: GNU GPL version 3 or later >> <http://gnu.org/licenses/gpl.html> >> This is free software: you are free to change and redistribute it. >> There is NO WARRANTY, to the extent permitted by law. Type "show >> copying" >> and "show warranty" for details. >> This GDB was configured as "mips-linux-gnu". >> For bug reporting instructions, please see: >> <http://www.gnu.org/software/gdb/bugs/>... >> Reading symbols from /home/rkotler/richard/ellcc/bin/ecc...done. >> (gdb) run >> Starting program: /home/rkotler/richard/ellcc/bin/ecc >> >> Program received signal SIGSEGV, Segmentation fault. >> 0x02ee15dc in __init_tls () >> (gdb) bt >> #0 0x02ee15dc in __init_tls () >> #1 0x02ebde44 in __init_libc () >> #2 0x02ebdebc in __libc_start_main () >> #3 0x00416ac4 in _start () >> (gdb) >> >> >> rkotler at mipsswbrd002:~/richard/ellcc/bin$ ls >> FileCheck ecc-c++filt ecc-ld.bfd ecc-size ppc-elf-as >> arm-elf-as ecc-elfedit ecc-nm ecc-strings ppc64-elf-as >> ecc ecc-embedspu ecc-objcopy ecc-strip sparc-elf-as >> ecc++ ecc-gdb ecc-objdump i386-elf-as x86_64-elf-as >> ecc-addr2line ecc-gprof ecc-ranlib microblaze-elf-as >> ecc-ar ecc-ld ecc-readelf mips-elf-as >> rkotler at mipsswbrd002:~/richard/ellcc/bin$ ./ecc >> Segmentation fault >> rkotler at mipsswbrd002:~/richard/ellcc/bin$ ./ecc-ar >> Segmentation fault >> rkotler at mipsswbrd002:~/richard/ellcc/bin$ > > Ah. Ignore my other email. > > This build is using musl as the standard C library. It looks as if > initializing TLS is failing. I'll look into that. > What is the version of your Linux kernel? > > Thanks for trying it out, though. > > By the way, these binaries are all statically linked to libc++, > libc++abi, musl, and compiler-rt. > > -Rich