@@ -1551,12 +1551,21 @@ fn crt_objects_fallback(sess: &Session, crate_type: CrateType) -> bool {
1551
1551
fn add_pre_link_objects (
1552
1552
cmd : & mut dyn Linker ,
1553
1553
sess : & Session ,
1554
+ flavor : LinkerFlavor ,
1554
1555
link_output_kind : LinkOutputKind ,
1555
1556
self_contained : bool ,
1556
1557
) {
1558
+ // FIXME: we are currently missing some infra here (per-linker-flavor CRT objects),
1559
+ // so Fuchsia has to be special-cased.
1557
1560
let opts = & sess. target ;
1558
- let objects =
1559
- if self_contained { & opts. pre_link_objects_fallback } else { & opts. pre_link_objects } ;
1561
+ let empty = Default :: default ( ) ;
1562
+ let objects = if self_contained {
1563
+ & opts. pre_link_objects_fallback
1564
+ } else if !( sess. target . os == "fuchsia" && flavor == LinkerFlavor :: Gcc ) {
1565
+ & opts. pre_link_objects
1566
+ } else {
1567
+ & empty
1568
+ } ;
1560
1569
for obj in objects. get ( & link_output_kind) . iter ( ) . copied ( ) . flatten ( ) {
1561
1570
cmd. add_object ( & get_object_file_path ( sess, obj, self_contained) ) ;
1562
1571
}
@@ -1881,7 +1890,7 @@ fn linker_with_args<'a, B: ArchiveBuilder<'a>>(
1881
1890
// ------------ Object code and libraries, order-dependent ------------
1882
1891
1883
1892
// Pre-link CRT objects.
1884
- add_pre_link_objects ( cmd, sess, link_output_kind, crt_objects_fallback) ;
1893
+ add_pre_link_objects ( cmd, sess, flavor , link_output_kind, crt_objects_fallback) ;
1885
1894
1886
1895
add_linked_symbol_object (
1887
1896
cmd,
@@ -2018,7 +2027,10 @@ fn add_order_independent_options(
2018
2027
2019
2028
add_link_script ( cmd, sess, tmpdir, crate_type) ;
2020
2029
2021
- if sess. target . os == "fuchsia" && crate_type == CrateType :: Executable {
2030
+ if sess. target . os == "fuchsia"
2031
+ && crate_type == CrateType :: Executable
2032
+ && flavor != LinkerFlavor :: Gcc
2033
+ {
2022
2034
let prefix = if sess. opts . unstable_opts . sanitizer . contains ( SanitizerSet :: ADDRESS ) {
2023
2035
"asan/"
2024
2036
} else {
0 commit comments