Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make sure that all upstream generics get re-exported from Rust dylibs. #68277

Merged
merged 3 commits into from
Jan 20, 2020

Conversation

michaelwoerister
Copy link
Member

@michaelwoerister michaelwoerister commented Jan 16, 2020

This PR contains a fix for #67276. Rust dylibs would not re-export all generic instances when compiling with -Zshare-generics=on (=default for debug builds) which could lead to situations where the compiler expected certain generic instances to be available but then the linker would not find them.

TODO

r? @alexcrichton (once the TODOs are done)
cc @pnkfelix @alexkornitzer

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Jan 16, 2020
@michaelwoerister
Copy link
Member Author

This also makes a few edge cases slower because we can't use the query cache anymore. Let's do a perf run to make sure that the common cases are not affected.

@bors try @rust-timer queue

@rust-timer
Copy link
Collaborator

Awaiting bors try build completion

@bors
Copy link
Contributor

bors commented Jan 16, 2020

⌛ Trying commit d487e9ea97a00ab704035f11cf0aab1d9f79ef5c with merge 4031484a2f96426fe9d445592c85e21d90cb229c...

@michaelwoerister
Copy link
Member Author

\o/ It looks like this also properly fixes #64319. I've added the regression test for that (originally from #64324 by @alexcrichton).

@alexcrichton
Copy link
Member

Looks great to me, nice!

My only worry would be the number of String instances flying around which I thought wasn't desired relative to using interned things, but the perf run should show us what's what.

r=me if perf comes back clean, and basically r=me if this is updated and perf comes back clean too :)

@michaelwoerister
Copy link
Member Author

@rust-timer build 4031484a2f96426fe9d445592c85e21d90cb229c

@rust-timer
Copy link
Collaborator

Queued 4031484a2f96426fe9d445592c85e21d90cb229c with parent 9fe05e9, future comparison URL.

@rust-timer
Copy link
Collaborator

Finished benchmarking try commit 4031484a2f96426fe9d445592c85e21d90cb229c, comparison URL.

@michaelwoerister
Copy link
Member Author

perf.rlo results look good. Thanks for the review, @alexcrichton!

@bors r=alexcrichton rollup=never

@bors
Copy link
Contributor

bors commented Jan 17, 2020

📌 Commit 87ce8df4364d4f0e5c208ba67ab3ca835963a5ee has been approved by alexcrichton

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jan 17, 2020
@bors
Copy link
Contributor

bors commented Jan 20, 2020

⌛ Testing commit 87ce8df4364d4f0e5c208ba67ab3ca835963a5ee with merge 11f1e2b4a192294745df71d3e11d0704146e6c6a...

@rust-highfive
Copy link
Collaborator

The job dist-various-1 of your PR failed (pretty log, raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
2020-01-20T05:55:43.3971346Z status: exit code: 2
2020-01-20T05:55:43.3971428Z command: "make"
2020-01-20T05:55:43.3971505Z stdout:
2020-01-20T05:55:43.3971757Z ------------------------------------------
2020-01-20T05:55:43.3971849Z # First up, try some defaults
2020-01-20T05:55:43.3974511Z LD_LIBRARY_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/issue64319/issue64319:/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-bootstrap-tools/x86_64-unknown-linux-gnu/release/deps:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/lib" '/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc' --out-dir /checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/issue64319/issue64319 -L /checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/issue64319/issue64319  -Clinker=arm-none-eabi-gcc --crate-type rlib foo.rs
2020-01-20T05:55:43.3975915Z LD_LIBRARY_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/issue64319/issue64319:/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-bootstrap-tools/x86_64-unknown-linux-gnu/release/deps:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/lib" '/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc' --out-dir /checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/issue64319/issue64319 -L /checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/issue64319/issue64319  -Clinker=arm-none-eabi-gcc --crate-type dylib bar.rs -C opt-level=3
2020-01-20T05:55:43.3976885Z Makefile:6: recipe for target 'all' failed
2020-01-20T05:55:43.3977944Z ------------------------------------------
2020-01-20T05:55:43.3978064Z stderr:
2020-01-20T05:55:43.3978618Z ------------------------------------------
2020-01-20T05:55:43.3978618Z ------------------------------------------
2020-01-20T05:55:43.3978940Z error: linking with `arm-none-eabi-gcc` failed: exit code: 1
2020-01-20T05:55:43.3979264Z   |
2020-01-20T05:55:43.3984847Z   = note: "arm-none-eabi-gcc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/issue64319/issue64319/bar.bar.3a1fbbbh-cgu.0.rcgu.o" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/issue64319/issue64319/libbar.so" "-Wl,--version-script=/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/issue64319/issue64319/rustcd7ik0j/list" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/issue64319/issue64319/bar.13x131manznmlae2.rcgu.o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/issue64319/issue64319/bar.4hnz5vh12lvh2qha.rcgu.o" "-Wl,-zrelro" "-Wl,-znow" "-Wl,-O1" "-nodefaultlibs" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/issue64319/issue64319" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "-Wl,--whole-archive" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/issue64319/issue64319/rustcd7ik0j/libfoo.rlib" "-Wl,--no-whole-archive" "-Wl,--start-group" "-Wl,--whole-archive" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/issue64319/issue64319/rustcd7ik0j/libstd-3d945bdb2761558e.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/issue64319/issue64319/rustcd7ik0j/libpanic_unwind-929c9774c073f5c2.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/issue64319/issue64319/rustcd7ik0j/libhashbrown-e76531ce814b672f.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/issue64319/issue64319/rustcd7ik0j/librustc_std_workspace_alloc-34b4f3bc58507c0c.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/issue64319/issue64319/rustcd7ik0j/libbacktrace-dbcbee45c7f4565b.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/issue64319/issue64319/rustcd7ik0j/libbacktrace_sys-4092353021877b9d.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/issue64319/issue64319/rustcd7ik0j/librustc_demangle-2d40e1362beeb7ba.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/issue64319/issue64319/rustcd7ik0j/libunwind-23872e719a6b1f48.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/issue64319/issue64319/rustcd7ik0j/libcfg_if-214c5efc98c112bb.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/issue64319/issue64319/rustcd7ik0j/liblibc-07d5863846890513.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/issue64319/issue64319/rustcd7ik0j/liballoc-1f6eb6f48fc19c37.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/issue64319/issue64319/rustcd7ik0j/librustc_std_workspace_core-7178d5693c033e3a.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/issue64319/issue64319/rustcd7ik0j/libcore-785d943c13f61874.rlib" "-Wl,--no-whole-archive" "-Wl,--end-group" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/issue64319/issue64319/rustcd7ik0j/libcompiler_builtins-daa64044d606da19.rlib" "-Wl,-Bdynamic" "-ldl" "-lrt" "-lpthread" "-lgcc_s" "-lc" "-lm" "-lrt" "-lpthread" "-lutil" "-lutil" "-shared"
2020-01-20T05:55:43.3987108Z   = note: arm-none-eabi-gcc: error: unrecognized command line option '-m64'
2020-01-20T05:55:43.3987399Z 
2020-01-20T05:55:43.3987476Z error: aborting due to previous error
2020-01-20T05:55:43.3987520Z 
2020-01-20T05:55:43.3987520Z 
2020-01-20T05:55:43.3987639Z make: *** [all] Error 1
2020-01-20T05:55:43.3987985Z ------------------------------------------
2020-01-20T05:55:43.3988052Z 
2020-01-20T05:55:43.3988086Z 
2020-01-20T05:55:43.3988086Z 
2020-01-20T05:55:43.3988342Z ---- [run-make] run-make/share-generics-dylib stdout ----
2020-01-20T05:55:43.3988468Z error: make failed
2020-01-20T05:55:43.3988549Z status: exit code: 2
2020-01-20T05:55:43.3988612Z command: "make"
2020-01-20T05:55:43.3988691Z stdout:
2020-01-20T05:55:43.3988691Z stdout:
2020-01-20T05:55:43.3988932Z ------------------------------------------
2020-01-20T05:55:43.3990085Z LD_LIBRARY_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/share-generics-dylib/share-generics-dylib:/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-bootstrap-tools/x86_64-unknown-linux-gnu/release/deps:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/lib" '/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc' --out-dir /checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/share-generics-dylib/share-generics-dylib -L /checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/share-generics-dylib/share-generics-dylib  -Clinker=arm-none-eabi-gcc instance_provider_a.rs -Cprefer-dynamic -Zshare-generics=yes -Ccodegen-units=1 -Zsymbol-mangling-version=v0 --crate-type=rlib
2020-01-20T05:55:43.3991462Z LD_LIBRARY_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/share-generics-dylib/share-generics-dylib:/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-bootstrap-tools/x86_64-unknown-linux-gnu/release/deps:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/lib" '/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc' --out-dir /checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/share-generics-dylib/share-generics-dylib -L /checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/share-generics-dylib/share-generics-dylib  -Clinker=arm-none-eabi-gcc instance_provider_b.rs -Cprefer-dynamic -Zshare-generics=yes -Ccodegen-units=1 -Zsymbol-mangling-version=v0 --crate-type=rlib
2020-01-20T05:55:43.3992855Z LD_LIBRARY_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/share-generics-dylib/share-generics-dylib:/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-bootstrap-tools/x86_64-unknown-linux-gnu/release/deps:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/lib" '/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc' --out-dir /checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/share-generics-dylib/share-generics-dylib -L /checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/share-generics-dylib/share-generics-dylib  -Clinker=arm-none-eabi-gcc instance_user_dylib.rs -Cprefer-dynamic -Zshare-generics=yes -Ccodegen-units=1 -Zsymbol-mangling-version=v0 --crate-type=dylib
2020-01-20T05:55:43.3993369Z Makefile:17: recipe for target 'all' failed
2020-01-20T05:55:43.3993685Z ------------------------------------------
2020-01-20T05:55:43.3993758Z stderr:
2020-01-20T05:55:43.3994013Z ------------------------------------------
2020-01-20T05:55:43.3994013Z ------------------------------------------
2020-01-20T05:55:43.3994286Z error: linking with `arm-none-eabi-gcc` failed: exit code: 1
2020-01-20T05:55:43.3994383Z   |
2020-01-20T05:55:43.3997098Z   = note: "arm-none-eabi-gcc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/share-generics-dylib/share-generics-dylib/instance_user_dylib.instance_user_dylib.3a1fbbbh-cgu.0.rcgu.o" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/share-generics-dylib/share-generics-dylib/libinstance_user_dylib.so" "-Wl,--version-script=/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/share-generics-dylib/share-generics-dylib/rustc00nfuP/list" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/share-generics-dylib/share-generics-dylib/instance_user_dylib.quxmn0l10olw9ij.rcgu.o" "-Wl,-zrelro" "-Wl,-znow" "-nodefaultlibs" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/share-generics-dylib/share-generics-dylib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "-Wl,--whole-archive" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/share-generics-dylib/share-generics-dylib/rustc00nfuP/libinstance_provider_b.rlib" "-Wl,--no-whole-archive" "-Wl,--whole-archive" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/share-generics-dylib/share-generics-dylib/rustc00nfuP/libinstance_provider_a.rlib" "-Wl,--no-whole-archive" "-Wl,--start-group" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bdynamic" "-lstd-3d945bdb2761558e" "-Wl,--end-group" "-Wl,-Bstatic" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/share-generics-dylib/share-generics-dylib/rustc00nfuP/libcompiler_builtins-daa64044d606da19.rlib" "-Wl,-Bdynamic" "-ldl" "-lrt" "-lpthread" "-lgcc_s" "-lc" "-lm" "-lrt" "-lpthread" "-lutil" "-lutil" "-shared"
2020-01-20T05:55:43.3998239Z   = note: arm-none-eabi-gcc: error: unrecognized command line option '-m64'
2020-01-20T05:55:43.3998383Z 
2020-01-20T05:55:43.3998442Z error: aborting due to previous error
2020-01-20T05:55:43.3998485Z 
2020-01-20T05:55:43.3998485Z 
2020-01-20T05:55:43.3998559Z make: *** [all] Error 1
2020-01-20T05:55:43.3998857Z ------------------------------------------
2020-01-20T05:55:43.3998905Z 
2020-01-20T05:55:43.3998938Z 
2020-01-20T05:55:43.4006070Z 
2020-01-20T05:55:43.4006070Z 
2020-01-20T05:55:43.4006995Z failures:
2020-01-20T05:55:43.4007668Z     [run-make] run-make/issue64319
2020-01-20T05:55:43.4008348Z     [run-make] run-make/share-generics-dylib
2020-01-20T05:55:43.4010100Z test result: FAILED. 3 passed; 2 failed; 10 ignored; 0 measured; 0 filtered out
2020-01-20T05:55:43.4010545Z 
2020-01-20T05:55:43.4011146Z thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:387:22
2020-01-20T05:55:43.4011419Z note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
2020-01-20T05:55:43.4011419Z note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
2020-01-20T05:55:43.4012039Z 
2020-01-20T05:55:43.4012096Z 
2020-01-20T05:55:43.4014267Z command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/thumbv6m-none-eabi/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--src-base" "/checkout/src/test/run-make" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make" "--stage-id" "stage2-thumbv6m-none-eabi" "--mode" "run-make" "--target" "thumbv6m-none-eabi" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/checkout/obj/build/x86_64-unknown-linux-gnu/llvm/build/bin/FileCheck" "--linker" "arm-none-eabi-gcc" "--host-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/thumbv6m-none-eabi/native/rust-test-helpers" "--docck-python" "/usr/bin/python2.7" "--lldb-python" "/usr/bin/python2.7" "--llvm-version" "9.0.1-rust-1.42.0-nightly\n" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--llvm-cxxflags" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
2020-01-20T05:55:43.4015074Z 
2020-01-20T05:55:43.4015110Z 
2020-01-20T05:55:43.4070481Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test --target thumbv6m-none-eabi,thumbv7m-none-eabi,thumbv7em-none-eabi,thumbv7em-none-eabihf src/test/run-make
2020-01-20T05:55:43.4071266Z Build completed unsuccessfully in 0:59:17
2020-01-20T05:55:43.4071266Z Build completed unsuccessfully in 0:59:17
2020-01-20T05:55:43.4083992Z == clock drift check ==
2020-01-20T05:55:43.4100998Z   local time: Mon Jan 20 05:55:43 UTC 2020
2020-01-20T05:55:43.6761740Z   network time: Mon, 20 Jan 2020 05:55:43 GMT
2020-01-20T05:55:43.6767275Z == end clock drift check ==
2020-01-20T05:55:44.8724244Z 
2020-01-20T05:55:44.8820126Z ##[error]Bash exited with code '1'.
2020-01-20T05:55:44.8858168Z ##[section]Starting: Checkout rust-lang/rust@auto to s
2020-01-20T05:55:44.8860479Z ==============================================================================
2020-01-20T05:55:44.8860703Z Task         : Get sources
2020-01-20T05:55:44.8860799Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@bors
Copy link
Contributor

bors commented Jan 20, 2020

💔 Test failed - checks-azure

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jan 20, 2020
@michaelwoerister
Copy link
Member Author

Rebased and moved the test cases from run-make to run-make-fulldeps, since the former also seems to run on some of the more niche platforms that don't have full linking support on CI.

@michaelwoerister
Copy link
Member Author

@bors r=alexcrichton

@bors
Copy link
Contributor

bors commented Jan 20, 2020

📌 Commit 0a9bcb0 has been approved by alexcrichton

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jan 20, 2020
@bors
Copy link
Contributor

bors commented Jan 20, 2020

⌛ Testing commit 0a9bcb0 with merge 66b0c97...

bors added a commit that referenced this pull request Jan 20, 2020
…alexcrichton

Make sure that all upstream generics get re-exported from Rust dylibs.

This PR contains a fix for #67276. Rust dylibs would not re-export all generic instances when compiling with `-Zshare-generics=on` (=default for debug builds) which could lead to situations where the compiler expected certain generic instances to be available but then the linker would not find them.

### TODO
- [x] Write a regression test based on the description [here](#67276 (comment)).
- [x] Find out if this also fixes other issues related to #64319.

r? @alexcrichton ~~(once the TODOs are done)~~
cc @pnkfelix @alexkornitzer
@bors
Copy link
Contributor

bors commented Jan 20, 2020

☀️ Test successful - checks-azure
Approved by: alexcrichton
Pushing 66b0c97 to master...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
merged-by-bors This PR was explicitly merged by bors. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants