Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 26 Apr 2012 14:24:28 +0200
From:      Dimitry Andric <dim@FreeBSD.org>
To:        David Chisnall <theraven@theravensnest.org>
Cc:        toolchain@freebsd.org, current@freebsd.org
Subject:   Re: [RFC] Un-staticise the toolchain
Message-ID:  <4F993E7C.9070400@FreeBSD.org>
In-Reply-To: <E8ED244D-E692-4772-907E-3D9AFEDFD435@theravensnest.org>
References:  <20120426093548.GR2358@deviant.kiev.zoral.com.ua> <5BCE2E77-2B45-43B7-AB1F-6E6C13B87B34@gid.co.uk> <E8ED244D-E692-4772-907E-3D9AFEDFD435@theravensnest.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2012-04-26 13:53, David Chisnall wrote:
...
> I did some benchmarks a little while ago, and there was, I think, about a 5% slowdown on buildworld with a dynamically linked clang vs a statically linked one on x86-64.  Ideally, I'd want the bootstrap compiler to be statically linked but the installed one to be dynamic.  

This is already the case, all bootstrap toolchain components are statically linked:

$ file /usr/obj/usr/src/tmp/usr/bin/*
/usr/obj/usr/src/tmp/usr/bin/CC:              ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/addr2line:       ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/as:              ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/bugpoint:        ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/c++:             ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/c++filt:         ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/cc:              ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/clang:           ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/clang++:         ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/clang-cpp:       ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/clang-tblgen:    ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/cpp:             ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/g++:             ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/gcc:             ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/gcov:            ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/gcpp:            ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/gnu-ar:          ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/gnu-ranlib:      ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/ld:              ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/lint:            ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/llc:             ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/lli:             ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/llvm-ar:         ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/llvm-as:         ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/llvm-bcanalyzer: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/llvm-diff:       ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/llvm-dis:        ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/llvm-extract:    ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/llvm-ld:         ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/llvm-link:       ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/llvm-mc:         ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/llvm-nm:         ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/llvm-objdump:    ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/llvm-prof:       ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/llvm-ranlib:     ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/llvm-rtdyld:     ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/llvm-stub:       ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/macho-dump:      ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/nm:              ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/objcopy:         ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/objdump:         ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/opt:             ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/readelf:         ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/size:            ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/strings:         ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/strip:           ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped
/usr/obj/usr/src/tmp/usr/bin/tblgen:          ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4F993E7C.9070400>