rust/src
Alex Crichton fbf9869702 rustc: Handle some libstd symbole exports better
Right now symbol exports, particularly in a cdylib, are handled by
assuming that `pub extern` combined with `#[no_mangle]` means "export
this". This isn't actually what we want for some symbols that the
standard library uses to implement itself, for example symbols related
to allocation. Additionally other special symbols like
`rust_eh_personallity` have no need to be exported from cdylib crate
types (only needed in dylib crate types).

This commit updates how rustc handles these special symbols by adding to
the hardcoded logic of symbols like `rust_eh_personallity` but also
adding a new attribute, `#[rustc_std_internal_symbol]`, which forces the
export level to be considered the same as all other Rust functions
instead of looking like a C function.

The eventual goal here is to prevent functions like `__rdl_alloc` from
showing up as part of a Rust cdylib as it's just an internal
implementation detail. This then further allows such symbols to get gc'd
by the linker when creating a cdylib.
2017-11-04 20:01:11 -07:00
..
bootstrap Rollup merge of #45548 - ratmice:master, r=oli-obk 2017-11-04 13:49:26 +08:00
build_helper rustbuild: Support specifying archiver and linker explicitly 2017-10-15 22:10:07 +03:00
ci Fix broken link in build-powerpc64le-toolchain.sh 2017-11-03 15:53:36 +08:00
doc Auto merge of #45394 - davidtwco:rfc-2008, r=petrochenkov 2017-11-04 18:07:07 +00:00
etc Update compile-fail tests for error message deduplication. 2017-10-25 15:02:26 +02:00
grammar Update grammar to parse current rust syntax 2017-10-08 18:46:42 -07:00
jemalloc@1f5a28755e Update jemalloc to 4.5.0 2017-08-16 22:06:05 +02:00
liballoc Rollup merge of #45681 - Ljzn:patch-1, r=kennytm 2017-11-04 13:49:30 +08:00
liballoc_jemalloc rustc: Handle some libstd symbole exports better 2017-11-04 20:01:11 -07:00
liballoc_system Fix out of date unstable book entries for alloc_* features. 2017-10-12 07:46:02 +02:00
libarena stabilized needs_drop (fixes #41890) 2017-09-16 23:41:04 +02:00
libbacktrace std: Disable usage of mmap allocator in libbacktrace 2017-10-25 07:51:36 -07:00
libcompiler_builtins@0b9844764e Update the libcompiler_builtins submodule 2017-09-30 01:45:21 +02:00
libcore Rollup merge of #45718 - Ljzn:patch-2, r=BurntSushi 2017-11-04 13:49:31 +08:00
libfmt_macros *: remove crate_{name,type} attributes 2017-08-25 16:18:21 -04:00
libgetopts address some FIXMEs whose associated issues were marked as closed 2017-09-30 11:33:47 +03:00
libgraphviz *: remove crate_{name,type} attributes 2017-08-25 16:18:21 -04:00
liblibc@68f9959e53 Bump libc to 0.2.33 2017-10-31 11:25:39 -02:00
libpanic_abort *: remove crate_{name,type} attributes 2017-08-25 16:18:21 -04:00
libpanic_unwind Add missing dependency for Windows 2017-08-27 19:02:24 +09:00
libproc_macro Make the result of Literal::string() more readable 2017-10-08 21:44:13 +13:00
libprofiler_builtins Bump cc to 1.01 to include x86_64-unknown-linux-gnux32 support 2017-10-11 21:35:53 -03:00
librand address some FIXMEs whose associated issues were marked as closed 2017-09-30 11:33:47 +03:00
librustc Auto merge of #45711 - tirr-c:unicode-span, r=estebank 2017-11-04 23:09:19 +00:00
librustc_allocator rustc: Handle some libstd symbole exports better 2017-11-04 20:01:11 -07:00
librustc_apfloat Bump to 1.23 and update bootstrap 2017-10-26 13:59:18 -07:00
librustc_asan
librustc_back Disable jemalloc for sparcv9-sun-solaris 2017-10-25 00:52:56 +02:00
librustc_borrowck Make the difference between lint codes and error codes explicit 2017-11-02 10:19:41 +01:00
librustc_const_eval Implemented RFC 2008 for enums (not including variants) and structs. 2017-11-03 19:36:18 +00:00
librustc_const_math Bump to 1.23 and update bootstrap 2017-10-26 13:59:18 -07:00
librustc_cratesio_shim Remove rustc_bitflags; use the bitflags crate 2017-09-17 14:19:24 -04:00
librustc_data_structures newindex_type macro: make index private by default and allow pub through config 2017-11-01 21:25:37 -04:00
librustc_driver [Syntax Breaking] Rename DefaultImpl to AutoImpl 2017-11-03 16:13:20 -02:00
librustc_errors Auto merge of #45711 - tirr-c:unicode-span, r=estebank 2017-11-04 23:09:19 +00:00
librustc_incremental Fix tests and rebase conflict 2017-11-03 16:13:21 -02:00
librustc_lint Auto merge of #45247 - leodasvacas:implement-auto-trait-syntax, r=nikomatsakis 2017-11-03 19:07:45 +00:00
librustc_llvm Bump cc to 1.01 to include x86_64-unknown-linux-gnux32 support 2017-10-11 21:35:53 -03:00
librustc_lsan
librustc_metadata Auto merge of #45711 - tirr-c:unicode-span, r=estebank 2017-11-04 23:09:19 +00:00
librustc_mir Auto merge of #45384 - mikhail-m1:mir_add_false_edges_terminator_kind, r=arielb1 2017-11-04 00:09:14 +00:00
librustc_msan
librustc_passes Auto merge of #45394 - davidtwco:rfc-2008, r=petrochenkov 2017-11-04 18:07:07 +00:00
librustc_platform_intrinsics Auto merge of #44885 - lu-zero:master, r=alexcrichton 2017-10-02 17:18:20 +00:00
librustc_plugin *: remove crate_{name,type} attributes 2017-08-25 16:18:21 -04:00
librustc_privacy Auto merge of #45394 - davidtwco:rfc-2008, r=petrochenkov 2017-11-04 18:07:07 +00:00
librustc_resolve Auto merge of #45394 - davidtwco:rfc-2008, r=petrochenkov 2017-11-04 18:07:07 +00:00
librustc_save_analysis Auto merge of #45709 - nrc:rls-bugs-2, r=eddyb 2017-11-04 15:30:20 +00:00
librustc_trans rustc: Handle some libstd symbole exports better 2017-11-04 20:01:11 -07:00
librustc_trans_utils Auto merge of #45384 - mikhail-m1:mir_add_false_edges_terminator_kind, r=arielb1 2017-11-04 00:09:14 +00:00
librustc_tsan Move unused-extern-crate to late pass 2017-08-27 19:02:24 +09:00
librustc_typeck Auto merge of #45394 - davidtwco:rfc-2008, r=petrochenkov 2017-11-04 18:07:07 +00:00
librustdoc Auto merge of #45617 - GuillaumeGomez:search-fixes, r=QuietMisdreavus 2017-11-04 12:54:34 +00:00
libserialize *: remove crate_{name,type} attributes 2017-08-25 16:18:21 -04:00
libstd rustc: Handle some libstd symbole exports better 2017-11-04 20:01:11 -07:00
libstd_unicode [libstd_unicode] Expose UnicodeVersion type 2017-09-18 20:39:17 -07:00
libsyntax rustc: Handle some libstd symbole exports better 2017-11-04 20:01:11 -07:00
libsyntax_ext Lifting Generics from MethodSig to TraitItem and ImplItem since we want to support generics in each variant of TraitItem and ImplItem 2017-10-17 22:14:14 -04:00
libsyntax_pos Auto merge of #45711 - tirr-c:unicode-span, r=estebank 2017-11-04 23:09:19 +00:00
libterm *: remove crate_{name,type} attributes 2017-08-25 16:18:21 -04:00
libtest Remove nacl from libtest 2017-10-05 05:04:40 +02:00
libunwind *: remove crate_{name,type} attributes 2017-08-25 16:18:21 -04:00
llvm@83b72cedfd rustc: Update LLVM with a ThinLTO fix 2017-10-11 09:10:59 -07:00
rt
rtstartup auto trait future compatibility lint 2017-11-03 16:13:21 -02:00
rustc Bump cc to 1.01 to include x86_64-unknown-linux-gnux32 support 2017-10-11 21:35:53 -03:00
rustllvm Update ThinLTO (internalization) for LLVM 5 2017-10-19 15:20:47 +09:00
test rustc: Handle some libstd symbole exports better 2017-11-04 20:01:11 -07:00
tools Rollup merge of #45722 - mikhail-m1:improve-mir-opt-error-output, r=alexcrichton 2017-11-04 13:49:32 +08:00
Cargo.lock Auto merge of #45711 - tirr-c:unicode-span, r=estebank 2017-11-04 23:09:19 +00:00
Cargo.toml Merge branch 'master' into update-rls-data-for-save-analysis 2017-10-24 19:37:15 -04:00
stage0.txt Bump to 1.23 and update bootstrap 2017-10-26 13:59:18 -07:00