Skip to content

Commit

Permalink
tests: fix test build on musl
Browse files Browse the repository at this point in the history
Using source checkout in core/lib/libfuzzer-sys with updated
llvm libfuzzer directory to todays release/13.x branch
which fixes a missing `#include <cstddef>`.

See rust-fuzz/libfuzzer#87
  • Loading branch information
kolbma committed Jan 20, 2022
1 parent 3c9364d commit fbe39df
Show file tree
Hide file tree
Showing 80 changed files with 14,006 additions and 1 deletion.
2 changes: 1 addition & 1 deletion core/lib/fuzz/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ edition = "2018"
cargo-fuzz = true

[dependencies]
libfuzzer-sys = "0.4"
libfuzzer-sys = { version = "0.4", path = "../libfuzzer-sys" }

[dependencies.rocket]
path = ".."
Expand Down
2 changes: 2 additions & 0 deletions core/lib/libfuzzer-sys/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
target
Cargo.lock
170 changes: 170 additions & 0 deletions core/lib/libfuzzer-sys/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
## Unreleased

Released YYYY-MM-DD.

### Added

* TODO (or remove section if none)

### Changed

* TODO (or remove section if none)

### Deprecated

* TODO (or remove section if none)

### Removed

* TODO (or remove section if none)

### Fixed

* TODO (or remove section if none)

### Security

* TODO (or remove section if none)

--------------------------------------------------------------------------------

## 0.4.2

Released 2020-05-26.

### Changed

* Improved performance of checking for whether `cargo fuzz` is requesting the
`std::fmt::Debug` output of an input or not. This is always false during
regular fuzzing, so making this check faster should give slightly better
fuzzing throughput.

--------------------------------------------------------------------------------

## 0.4.1

Released 2020-05-13.

### Added

* Added support for defining custom mutators. See [the documentation for the
`fuzz_mutator!`
macro](https://docs.rs/libfuzzer-sys/0.4.1/libfuzzer_sys/macro.fuzz_mutator.html)
for details.

### Changed

* Upgraded libfuzzer to llvm/llvm-project's 70cbc6d.

--------------------------------------------------------------------------------

## 0.4.0

Released 2021-02-24.

### Changed

* The public `arbitrary` dependency was updated to version 1.0.

--------------------------------------------------------------------------------

## 0.3.5

Released 2020-11-18.

### Changed

* [Upgrade libfuzzer to 7bf89c2](https://github.com/rust-fuzz/libfuzzer/pull/68)

--------------------------------------------------------------------------------

## 0.3.4

Released 2020-08-22.

### Changed

* Updated `arbitrary` dependency to 0.4.6

--------------------------------------------------------------------------------

## 0.3.3

Released 2020-07-27.

### Changed

* Upgraded libfuzzer to commit
[4a4cafa](https://github.com/llvm/llvm-project/commit/4a4cafabc9067fced5890a245b03ef5897ad988b).

Notably, this pulls in [the new Entropic engine for
libFuzzer](https://mboehme.github.io/paper/FSE20.Entropy.pdf), which should
boost fuzzing efficiency when enabled. You can enable Entropic by passing
`-entropic=1` to your built fuzz targets (although, note that it is still
labeled "experimental").

--------------------------------------------------------------------------------

## 0.3.2

Released 2020-03-18.

### Changed

* Upgraded the `arbitrary` dependency re-export to version 0.4.1.

--------------------------------------------------------------------------------

## 0.3.1

Released 2020-02-27.

### Changed

* Fixed a fuzzing performance issue where libfuzzer could unnecessarily spend
time exploring all the ways that an `Arbitrary` implementation could fail to
construct an instance of itself because the fuzzer provided too few bytes. See
https://github.com/rust-fuzz/libfuzzer/issues/59 for details.

--------------------------------------------------------------------------------

## 0.3.0

Released 2019-01-22.

### Changed

* Now works with and re-exports `arbitrary` versions 0.4.x.

--------------------------------------------------------------------------------

## 0.2.1

Released 2019-01-16.

### Added

* Added support for the `CUSTOM_LIBFUZZER_STD_CXX=<lib>` environment variable
during builds that already use a custom libFuzzer checkout with
`CUSTOM_LIBFUZZER_PATH`. This allows you to explicitly choose to link LLVM or
GNU C++ standard libraries.

--------------------------------------------------------------------------------

## 0.2.0

Released 2020-01-14.

### Changed

* Using `arbitrary` 0.3.x now. It is re-exported as `libfuzzer_sys::arbitrary`.

### Added

* You can enable support for `#[derive(Arbitrary)]` with the
`"arbitrary-derive"` cargo feature. This is a synonym for the `arbitrary`
crate's `"derive"` cargo feature.

--------------------------------------------------------------------------------

## 0.1.0
30 changes: 30 additions & 0 deletions core/lib/libfuzzer-sys/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
[package]
authors = ["The rust-fuzz Project Developers"]
description = "A wrapper around LLVM's libFuzzer runtime."
edition = "2018"
license = "MIT/Apache-2.0/NCSA"
name = "libfuzzer-sys"
readme = "./README.md"
repository = "https://github.com/rust-fuzz/libfuzzer"
version = "0.4.2"

[dependencies]
arbitrary = "1"
once_cell = "1"

[build-dependencies]
cc = "1.0"

[features]
arbitrary-derive = ["arbitrary/derive"]

[workspace]
members = [
"./example",
"./example_arbitrary",
"./example_mutator",
]

[dev-dependencies]
flate2 = "1.0.20"
rand = "0.8.3"

0 comments on commit fbe39df

Please sign in to comment.