rust/src/librustc_trans
Ingvar Stepanyan eed6168a3b Add Emscripten-specific linker
It claims to accept most GNU linker options, but in fact most of them
have no effect and instead it requires some special options which are
easier to handle in a separate trait.

Currently added:
 - `export_symbols`: works on executables as special Emscripten case
since staticlibs/dylibs aren't compiled to JS, while exports are
required to be accessible from JS.
Fixes #39171.
 - `optimize` - translates Rust's optimization level to Emscripten
optimization level (whether passed via `-C opt-level=...` or `-O...`).
Fixes #36899.
 - `debuginfo` - translates debug info; Emscripten has 5 debug levels
while Rust has 3, so chose to translate `-C debuginfo=1` to `-g3`
(preserves whitespace, variable and function names for easy debugging).
Fixes #36901.
 - `no_default_libraries` - tells Emscripten to exlude `memcpy` and co.
2017-02-10 17:31:04 +00:00
..
back Add Emscripten-specific linker 2017-02-10 17:31:04 +00:00
debuginfo Auto merge of #38109 - tromey:main-subprogram, r=michaelwoerister 2017-02-09 17:09:50 +00:00
mir Rollup merge of #39678 - vadimcn:top-level-expn, r=michaelwoerister 2017-02-09 12:14:22 -05:00
abi.rs Add warning for () to ! switch 2017-02-03 18:48:15 +08:00
adt.rs emit "align 1" metadata on loads/stores of packed structs 2017-02-08 22:23:21 +01:00
asm.rs emit "align 1" metadata on loads/stores of packed structs 2017-02-08 22:23:21 +01:00
assert_module_sources.rs rustc: rename TyCtxt's map field to hir. 2017-01-26 13:41:28 +02:00
attributes.rs Add new #[target_feature = "..."] attribute. 2016-11-29 20:32:14 -05:00
base.rs Rollup merge of #39619 - michaelwoerister:rename-crate-metadata, r=alexcrichton 2017-02-09 12:14:19 -05:00
builder.rs emit "align 1" metadata on loads/stores of packed structs 2017-02-08 22:23:21 +01:00
cabi_aarch64.rs Move ty_align and ty_size out of most C ABI code 2016-09-24 18:27:39 -06:00
cabi_arm.rs Remove needless allows 2016-12-20 20:02:52 -07:00
cabi_asmjs.rs Use llvm::Attribute API instead of "raw value" APIs, which will be removed in LLVM 4.0. 2016-11-17 21:12:26 +01:00
cabi_mips.rs Move ty_align and ty_size out of most C ABI code 2016-09-24 18:27:39 -06:00
cabi_mips64.rs Move ty_align and ty_size out of most C ABI code 2016-09-24 18:27:39 -06:00
cabi_msp430.rs add cabi_msp430 2016-11-13 11:03:44 -05:00
cabi_nvptx.rs PTX support 2016-12-26 21:06:23 -05:00
cabi_nvptx64.rs PTX support 2016-12-26 21:06:23 -05:00
cabi_powerpc.rs Move ty_align and ty_size out of most C ABI code 2016-09-24 18:27:39 -06:00
cabi_powerpc64.rs Move ty_align and ty_size out of most C ABI code 2016-09-24 18:27:39 -06:00
cabi_s390x.rs Move ty_align and ty_size out of most C ABI code 2016-09-24 18:27:39 -06:00
cabi_sparc.rs implement cabi for 32-bit sparc 2016-12-19 12:23:37 -05:00
cabi_sparc64.rs Add cabi_sparc64 2016-12-29 21:30:01 -05:00
cabi_x86.rs Cleaned up the code and added tests. 2016-12-22 14:54:42 +03:00
cabi_x86_64.rs Use llvm::Attribute API instead of "raw value" APIs, which will be removed in LLVM 4.0. 2016-11-17 21:12:26 +01:00
cabi_x86_win64.rs Windows x64 ABI requires i128 params to be passed as reference 2016-12-30 15:17:29 +01:00
callee.rs emit "align 1" metadata on loads/stores of packed structs 2017-02-08 22:23:21 +01:00
Cargo.toml Add Emscripten-specific linker 2017-02-10 17:31:04 +00:00
cleanup.rs Builder.build_new_block -> Builder.build_sibling_block 2017-01-04 11:38:10 -07:00
collector.rs Add warning for () to ! switch 2017-02-03 18:48:15 +08:00
common.rs Rollup merge of #39519 - nagisa:more-snap, r=alexcrichton 2017-02-05 12:45:11 -05:00
consts.rs rustc: rename TyCtxt's map field to hir. 2017-01-26 13:41:28 +02:00
context.rs rustc: keep track of tables everywhere as if they were per-body. 2017-01-06 22:23:29 +02:00
declare.rs sanitizer support 2017-02-08 18:51:43 -05:00
diagnostics.rs Small error code explanations improvements 2016-08-26 17:28:47 +02:00
disr.rs Such large. Very 128. Much bits. 2016-12-30 15:15:44 +01:00
glue.rs remove unneeded drop of isize 2017-02-08 22:23:21 +01:00
intrinsic.rs address review comments 2017-02-08 22:23:21 +01:00
lib.rs Add Emscripten-specific linker 2017-02-10 17:31:04 +00:00
machine.rs Completely kill represent_type and the adt::Repr type that goes with it. 2016-09-24 18:21:10 -04:00
macros.rs rustc_trans: move the contents of the trans module to top-level. 2016-03-27 01:23:28 +02:00
meth.rs emit "align 1" metadata on loads/stores of packed structs 2017-02-08 22:23:21 +01:00
monomorphize.rs rustc: simplify constant cross-crate loading and rustc_passes::consts. 2016-12-28 11:29:19 +02:00
partitioning.rs rustc: rename TyCtxt's map field to hir. 2017-01-26 13:41:28 +02:00
README.md Rename README.txt to README.md 2016-12-22 12:52:22 -06:00
symbol_map.rs rustc: rename TyCtxt's map field to hir. 2017-01-26 13:41:28 +02:00
symbol_names_test.rs rustc: rename TyCtxt's map field to hir. 2017-01-26 13:41:28 +02:00
trans_item.rs Add warning for () to ! switch 2017-02-03 18:48:15 +08:00
tvec.rs Builder.build_new_block -> Builder.build_sibling_block 2017-01-04 11:38:10 -07:00
type_.rs Fix rebase fallout 2016-12-30 15:17:27 +01:00
type_of.rs Add warning for () to ! switch 2017-02-03 18:48:15 +08:00
value.rs Inline last remaining use of Callee::call and delete unused code 2016-12-20 20:03:31 -07:00