From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/4127 Path: news.gmane.org!not-for-mail From: Richard Pennington Newsgroups: gmane.linux.lib.musl.general Subject: ELLCC has self hosted. Date: Fri, 18 Oct 2013 18:02:36 -0500 Message-ID: <5261BE0C.2000904@pennware.com> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="------------070908050807090604020703" X-Trace: ger.gmane.org 1382137761 19607 80.91.229.3 (18 Oct 2013 23:09:21 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 18 Oct 2013 23:09:21 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-4131-gllmg-musl=m.gmane.org@lists.openwall.com Sat Oct 19 01:09:26 2013 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1VXJAZ-0005bH-9h for gllmg-musl@plane.gmane.org; Sat, 19 Oct 2013 01:09:23 +0200 Original-Received: (qmail 13732 invoked by uid 550); 18 Oct 2013 23:09:21 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 13721 invoked from network); 18 Oct 2013 23:09:21 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130110 Thunderbird/17.0.2 X-RR-Connecting-IP: 107.14.168.130:25 X-Cloudmark-Score: 0 Xref: news.gmane.org gmane.linux.lib.musl.general:4127 Archived-At: This is a multi-part message in MIME format. --------------070908050807090604020703 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit The clang/LLVM based ELLCC project (http://ellcc.org), after having reached a huge milestone (http://ellcc.org/blog/?p=231) has now successfully compiled itself. The steps were: 1. Use gcc to build the compiler with Linux standard libraries. 2. Use ecc to build itself with libc++, libc++ABI, libunwind, musl, and compiler-rt 3. Use the newly built compiler to build itself again. One interesting side note: The compiler was 12MB smaller after it built itself. ct-fw-88 ellcc 622 % size */Release+Asserts/bin/ecc text data bss dec hex filename 52415858 2152024 84768 54652650 341eeea llvm-build/Release+Asserts/bin/ecc 40222706 2117136 135416 42475258 2881efa llvm-build-self/Release+Asserts/bin/ecc Even more interesting, it was compiled statically. No dynamic libraries needed: ct-fw-88 ellcc 623 % ldd */Release+Asserts/bin/ecc llvm-build/Release+Asserts/bin/ecc: linux-vdso.so.1 => (0x00007fff2ffff000) libz.so.1 => /lib64/libz.so.1 (0x00007facd87e1000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007facd85c4000) libncurses.so.5 => /lib64/libncurses.so.5 (0x00007facd837c000) librt.so.1 => /lib64/librt.so.1 (0x00007facd8173000) libdl.so.2 => /lib64/libdl.so.2 (0x00007facd7f6f000) libstdc++.so.6 => /home/de023789/gnulocal/lib64/libstdc++.so.6 (0x00007facd7c6e000) libm.so.6 => /lib64/libm.so.6 (0x00007facd7a18000) libgcc_s.so.1 => /home/de023789/gnulocal/lib64/libgcc_s.so.1 (0x00007facd7803000) libc.so.6 => /lib64/libc.so.6 (0x00007facd74a5000) /lib64/ld-linux-x86-64.so.2 (0x00007facd89f7000) llvm-build-self/Release+Asserts/bin/ecc: not a dynamic executable ct-fw-88 ellcc 624 % That is very cool. -Rich --------------070908050807090604020703 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit The clang/LLVM based ELLCC project (http://ellcc.org), after having reached a huge milestone (http://ellcc.org/blog/?p=231) has now successfully compiled itself.

The steps were:
1. Use gcc to build the compiler with Linux standard libraries.
2. Use ecc to build itself with libc++, libc++ABI, libunwind, musl, and compiler-rt
3. Use the newly built compiler to build itself again.

One interesting side note: The compiler was 12MB smaller after it built itself.

ct-fw-88 ellcc 622 % size */Release+Asserts/bin/ecc

   text    data     bss     dec     hex filename

52415858        2152024   84768 54652650        341eeea llvm-build/Release+Asserts/bin/ecc

40222706        2117136  135416 42475258        2881efa llvm-build-self/Release+Asserts/bin/ecc

Even more interesting, it was compiled statically. No dynamic libraries needed:

ct-fw-88 ellcc 623 % ldd */Release+Asserts/bin/ecc

llvm-build/Release+Asserts/bin/ecc:

        linux-vdso.so.1 =>  (0x00007fff2ffff000)

        libz.so.1 => /lib64/libz.so.1 (0x00007facd87e1000)

        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007facd85c4000)

        libncurses.so.5 => /lib64/libncurses.so.5 (0x00007facd837c000)

        librt.so.1 => /lib64/librt.so.1 (0x00007facd8173000)

        libdl.so.2 => /lib64/libdl.so.2 (0x00007facd7f6f000)

        libstdc++.so.6 => /home/de023789/gnulocal/lib64/libstdc++.so.6 (0x00007facd7c6e000)

        libm.so.6 => /lib64/libm.so.6 (0x00007facd7a18000)

        libgcc_s.so.1 => /home/de023789/gnulocal/lib64/libgcc_s.so.1 (0x00007facd7803000)

        libc.so.6 => /lib64/libc.so.6 (0x00007facd74a5000)

        /lib64/ld-linux-x86-64.so.2 (0x00007facd89f7000)

llvm-build-self/Release+Asserts/bin/ecc:

        not a dynamic executable

ct-fw-88 ellcc 624 %

That is very cool.

-Rich

--------------070908050807090604020703--