about summary refs log tree commit diff
path: root/src/test/run-make
AgeCommit message (Collapse)AuthorLines
2015-07-09Fix a span bug for qualified pathsNick Cameron-0/+15
2015-07-08Auto merge of #26869 - alexcrichton:fix-msvc-sepcomp, r=nrcbors-3/+3
This commit alters the implementation of multiple codegen units slightly to be compatible with the MSVC linker. Currently the implementation will take the N object files created by each codegen unit and will run `ld -r` to create a new object file which is then passed along. The MSVC linker, however, is not able to do this operation. The compiler will now no longer attempt to assemble object files together but will instead just pass through all the object files as usual. This implies that rlibs may not contain more than one object file (if the library is compiled with more than one codegen unit) and the output of `-C save-temps` will have changed slightly as object files with the extension `0.o` will not be renamed to `o` unless requested otherwise.
2015-07-08trans: Link rlibs to dylibs with --whole-archiveAlex Crichton-2/+2
This commit starts passing the `--whole-archive` flag (`-force_load` on OSX) to the linker when linking rlibs into dylibs. The primary purpose of this commit is to ensure that the linker doesn't strip out objects from an archive when creating a dynamic library. Information on how this can go wrong can be found in issues #14344 and #25185. The unfortunate part about passing this flag to the linker is that we have to preprocess the rlib to remove the metadata and compressed bytecode found within. This means that creating a dylib will now take longer to link as we've got to copy around the input rlibs to a temporary location, modify them, and then invoke the linker. This isn't done for executables, however, so the "hello world" compile time is not affected. This fix was instigated because of the previous commit where rlibs may not contain multiple object files instead of one due to codegen units being greater than one. That change prevented the main distribution from being compiled with more than one codegen-unit and this commit fixes that. Closes #14344 Closes #25185
2015-07-08this fixes the test failures on freebsdDave Huseby-0/+6
2015-07-07msvc: Get codegen-units workingAlex Crichton-1/+1
This commit alters the implementation of multiple codegen units slightly to be compatible with the MSVC linker. Currently the implementation will take the N object files created by each codegen unit and will run `ld -r` to create a new object file which is then passed along. The MSVC linker, however, is not able to do this operation. The compiler will now no longer attempt to assemble object files together but will instead just pass through all the object files as usual. This implies that rlibs may not contain more than one object file (if the library is compiled with more than one codegen unit) and the output of `-C save-temps` will have changed slightly as object files with the extension `0.o` will not be renamed to `o` unless requested otherwise.
2015-06-19rustc: enforce stack discipline on ty::ctxt.Eduard Burtescu-13/+14
2015-06-19rustc: remove ownership of tcx from trans' context.Eduard Burtescu-2/+2
2015-06-17Fallout in tests and docs from feature renamingsAlex Crichton-3/+3
2015-06-13Use `assert_eq!` instead of `assert!` in testspetrochenkov-3/+3
2015-06-10fix #26092 by returning an empty OS string when the output file path has no ↵swgillespie-0/+16
file_stem
2015-06-10syntax: move ast_map to librustc.Eduard Burtescu-1/+1
2015-06-09Auto merge of #25627 - murarth:execution-engine-fix, r=nrcbors-0/+257
* Removes `RustJITMemoryManager` from public API. This was really sort of an implementation detail to begin with. * `__morestack` is linked to C++ wrapper code and this pointer is used when resolving the symbol for `ExecutionEngine` code. * `__morestack_addr` is also resolved for `ExecutionEngine` code. This function is sometimes referenced in LLVM-generated code, but was not able to be resolved on Mac OS systems. * Added Windows support to `ExecutionEngine` API. * Added a test for basic `ExecutionEngine` functionality.
2015-06-08Changes to LLVM `ExecutionEngine` wrapperMurarth-0/+257
* Removes `RustJITMemoryManager` from public API. This was really sort of an implementation detail to begin with. * `__morestack` is linked to C++ wrapper code and this pointer is used when resolving the symbol for `ExecutionEngine` code. * `__morestack_addr` is also resolved for `ExecutionEngine` code. This function is sometimes referenced in LLVM-generated code, but was not able to be resolved on Mac OS systems. * Added Windows support to `ExecutionEngine` API. * Added a test for basic `ExecutionEngine` functionality.
2015-06-07Don’t ICE if fs::canonicalise fails in meta-loadSimonas Kazlauskas-0/+41
This might fail when --extern library is a symlink to an invalid location. Instead just pretend it doesn’t exist at all.
2015-05-21Fix ICE trying to pass DST to C functionsBjörn Steinbrink-0/+55
Fixes #25581
2015-05-14save-analysis: fix a bracket counting bugNick Cameron-0/+12
2015-05-14save-analysis: update the smoke testNick Cameron-43/+84
2015-05-07Add regression test for #20626Johannes Oertel-0/+31
Closes #20626.
2015-05-02Add regression test for #18943Johannes Oertel-0/+23
Closes #18943.
2015-04-30Auto merge of #24884 - michaelsproul:extended-errors, r=nrcbors-1/+1
I've been working on improving the diagnostic registration system so that it can: * Check uniqueness of error codes *across the whole compiler*. The current method using `errorck.py` is prone to failure as it relies on simple text search - I found that it breaks when referencing an error's ident within a string (e.g. `"See also E0303"`). * Provide JSON output of error metadata, to eventually facilitate HTML output, as well as tracking of which errors need descriptions. The current schema is: ``` <error code>: { "description": <long description>, "use_site": { "filename": <filename where error is used>, "line": <line in file where error is used> } } ``` [Here's][metadata-dump] a pretty-printed sample dump for `librustc`. One thing to note is that I had to move the diagnostics arrays out of the diagnostics modules. I really wanted to be able to capture error usage information, which only becomes available as a crate is compiled. Hence all invocations of `__build_diagnostics_array!` have been moved to the ends of their respective `lib.rs` files. I tried to avoid moving the array by making a plugin that expands to nothing but couldn't invoke it in item position and gave up on hackily generating a fake item. I also briefly considered using a lint, but it seemed like it would impossible to get access to the data stored in the thread-local storage. The next step will be to generate a web page that lists each error with its rendered description and use site. Simple mapping and filtering of the metadata files also allows us to work out which error numbers are absent, which errors are unused and which need descriptions. [metadata-dump]: https://gist.github.com/michaelsproul/3246846ff1bea71bd049
2015-04-30Add metadata output to the diagnostics system.Michael Sproul-1/+1
Diagnostic errors are now checked for uniqueness across the compiler and error metadata is written to JSON files.
2015-04-25Remove remaining tests for hygiene-encoded identifiers.Geoffry Song-72/+0
Such things no longer exist.
2015-04-23Auto merge of #24537 - rprichard:fix-parallel-check, r=alexcrichtonbors-1/+2
This required fixing the `pretty-rpass-full` tests to have the same `$$(CSREQ$(1)_T_$(2)_H_$(3))` dependencies as the `rpass-full` and `cfail-full` tests. It also required fixing the `run-make/simd-ffi` test to use unique names for its output files.
2015-04-22Fix run-make/simd-ffi to work with parallel make check.Ryan Prichard-1/+2
2015-04-21rollup merge of #24636: alexcrichton/remove-deprecatedAlex Crichton-3/+0
Conflicts: src/libcore/result.rs
2015-04-21rollup merge of #24651: tamird/old-referencesAlex Crichton-4/+1
r? @alexcrichton
2015-04-21test: Fix fallout in testsAlex Crichton-3/+0
2015-04-21rustc: Handle duplicate names merging archivesAlex Crichton-0/+72
When linking an archive statically to an rlib, the compiler will extract all contents of the archive and add them all to the rlib being generated. The current method of extraction is to run `ar x`, dumping all files into a temporary directory. Object archives, however, are allowed to have multiple entries with the same file name, so there is no method for them to extract their contents into a directory in a lossless fashion. This commit adds iterator support to the `ArchiveRO` structure which hooks into LLVM's support for reading object archives. This iterator is then used to inspect each object in turn and extract it to a unique location for later assembly.
2015-04-21Remove references to `old_{path,io}`Tamir Duberstein-4/+1
2015-04-18Auto merge of #24428 - kwantam:deprecate_unicode_fns, r=alexcrichtonbors-2/+5
This patch 1. renames libunicode to librustc_unicode, 2. deprecates several pieces of libunicode (see below), and 3. removes references to deprecated functions from librustc_driver and libsyntax. This may change pretty-printed output from these modules in cases involving wide or combining characters used in filenames, identifiers, etc. The following functions are marked deprecated: 1. char.width() and str.width(): --> use unicode-width crate 2. str.graphemes() and str.grapheme_indices(): --> use unicode-segmentation crate 3. str.nfd_chars(), str.nfkd_chars(), str.nfc_chars(), str.nfkc_chars(), char.compose(), char.decompose_canonical(), char.decompose_compatible(), char.canonical_combining_class(): --> use unicode-normalization crate
2015-04-17Rollup merge of #24430 - laumann:trace-macros-flag, r=pnkfelixManish Goregaokar-0/+24
This is the second attempt at turning the trace_macros macro into a compiler flag. See #22619
2015-04-16deprecate Unicode functions that will be moved to crates.iokwantam-2/+5
This patch 1. renames libunicode to librustc_unicode, 2. deprecates several pieces of libunicode (see below), and 3. removes references to deprecated functions from librustc_driver and libsyntax. This may change pretty-printed output from these modules in cases involving wide or combining characters used in filenames, identifiers, etc. The following functions are marked deprecated: 1. char.width() and str.width(): --> use unicode-width crate 2. str.graphemes() and str.grapheme_indices(): --> use unicode-segmentation crate 3. str.nfd_chars(), str.nfkd_chars(), str.nfc_chars(), str.nfkc_chars(), char.compose(), char.decompose_canonical(), char.decompose_compatible(), char.canonical_combining_class(): --> use unicode-normalization crate
2015-04-16Auto merge of #24448 - alexcrichton:issue-24445, r=huonwbors-0/+53
One of the parameters to the magical "register a thread-local destructor" function is called `__dso_handle` and largely just passed along (this seems to be what other implementations do). Currently we pass the *value* of this symbol, but apparently the correct piece of information to pass is the *address* of the symbol. In a PIE binary the symbol actually contains an address to itself which is why we've gotten away with what we're doing as long as we have. In a non-PIE binary the symbol contains the address `NULL`, causing a segfault in the runtime library if it keeps going. Closes #24445
2015-04-16Remove `&` from redirected outputThomas Jespersen-1/+1
This seems to fix the test
2015-04-16Auto merge of #24423 - tbelaire:include_bytes, r=alexcrichtonbors-0/+40
This is a little bit tricky, since with include_str!, we know that we are including utf-8 content, so it's safe to store the source as a String in a FileMap. We don't know that for include_bytes!, but I don't think we actually need to track the contents anyways, so I'm passing "". new_filemap does check for the zero length content, and it should be reasonable, howeven I'm not sure if it would be better to pass None instead of Some(Rc::new("")) as the src component of a FileMap. Fixes bug #24348
2015-04-16Auto merge of #24485 - brson:is, r=alexcrichtonbors-1/+1
It was an oversight that this was not done in the great int upheaval. [breaking-change]
2015-04-15Forbid is/us suffixes. Fixes #22496Brian Anderson-1/+1
It was an oversight that this was not done in the great int upheaval. [breaking-change]
2015-04-15Make sure to disambiguate obtained out from expected outputThomas Jespersen-2/+2
2015-04-15std: Fix thread_local! in non-PIE binariesAlex Crichton-0/+53
One of the parameters to the magical "register a thread-local destructor" function is called `__dso_handle` and largely just passed along (this seems to be what other implementations do). Currently we pass the *value* of this symbol, but apparently the correct piece of information to pass is the *address* of the symbol. In a PIE binary the symbol actually contains an address to itself which is why we've gotten away with what we're doing as long as we have. In a non-PIE binary the symbol contains the address `NULL`, causing a segfault in the runtime library if it keeps going. Closes #24445
2015-04-15Added a test for include_bytes! dep infoTheo Belaire-0/+40
This tests that both include_str! and include_bytes! mark their input file as a dependancy, and it's correctly outputted when you run `rustc --emit dep-info`.
2015-04-14Remove -o flag from build commandThomas Jespersen-1/+1
It generates a warning that --outdir argument is ignored, which is captured and spoils the output Also ensure that test output is captured in a different file than the expected output file
2015-04-14test: Fixup many library unit testsAlex Crichton-34/+28
2015-04-14Add "run-make" test for trace-macros flagThomas Jespersen-0/+24
2015-04-14RebasedNick Cameron-3/+3
2015-04-10Test fixes and review feedbackAlex Crichton-2/+0
2015-04-07test: Move all run-make rustdoc tests to test/rustdocAlex Crichton-648/+0
2015-04-04fixing some tests and temporarily disabling others to get Bitrig build ↵Dave Huseby-9/+27
working 100%
2015-04-02Fallout in testsNiko Matsakis-12/+4
2015-04-01rollup merge of #23860: nikomatsakis/copy-requires-cloneAlex Crichton-3/+3
Conflicts: src/test/compile-fail/coherence-impls-copy.rs
2015-04-01Path rustdoc testNiko Matsakis-0/+3