forked from melonDS-emu/melonDS
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Vendored libslirp (melonDS-emu#2045)
Add vendored libslirp into the repo with a shim to remove its dependency on glib.
- Loading branch information
1 parent
747f50d
commit a2406e3
Showing
157 changed files
with
22,551 additions
and
15 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
# https://clang.llvm.org/docs/ClangFormat.html | ||
# https://clang.llvm.org/docs/ClangFormatStyleOptions.html | ||
--- | ||
Language: Cpp | ||
AlignAfterOpenBracket: Align | ||
AlignConsecutiveAssignments: false # although we like it, it creates churn | ||
AlignConsecutiveDeclarations: false | ||
AlignEscapedNewlinesLeft: true | ||
AlignOperands: true | ||
AlignTrailingComments: false # churn | ||
AllowAllParametersOfDeclarationOnNextLine: true | ||
AllowShortBlocksOnASingleLine: false | ||
AllowShortCaseLabelsOnASingleLine: false | ||
AllowShortFunctionsOnASingleLine: None | ||
AllowShortIfStatementsOnASingleLine: false | ||
AllowShortLoopsOnASingleLine: false | ||
AlwaysBreakAfterReturnType: None # AlwaysBreakAfterDefinitionReturnType is taken into account | ||
AlwaysBreakBeforeMultilineStrings: false | ||
BinPackArguments: true | ||
BinPackParameters: true | ||
BraceWrapping: | ||
AfterControlStatement: false | ||
AfterEnum: false | ||
AfterFunction: true | ||
AfterStruct: false | ||
AfterUnion: false | ||
BeforeElse: false | ||
IndentBraces: false | ||
BreakBeforeBinaryOperators: None | ||
BreakBeforeBraces: Custom | ||
BreakBeforeTernaryOperators: false | ||
BreakStringLiterals: true | ||
ColumnLimit: 80 | ||
ContinuationIndentWidth: 4 | ||
Cpp11BracedListStyle: false | ||
DerivePointerAlignment: false | ||
DisableFormat: false | ||
IndentCaseLabels: false | ||
IndentWidth: 4 | ||
IndentWrappedFunctionNames: false | ||
KeepEmptyLinesAtTheStartOfBlocks: false | ||
MacroBlockBegin: '.*_BEGIN$' # only PREC_BEGIN ? | ||
MacroBlockEnd: '.*_END$' | ||
MaxEmptyLinesToKeep: 2 | ||
PointerAlignment: Right | ||
ReflowComments: true | ||
SortIncludes: false | ||
SpaceAfterCStyleCast: false | ||
SpaceBeforeAssignmentOperators: true | ||
SpaceBeforeParens: ControlStatements | ||
SpaceInEmptyParentheses: false | ||
SpacesBeforeTrailingComments: 1 | ||
SpacesInContainerLiterals: true | ||
SpacesInParentheses: false | ||
SpacesInSquareBrackets: false | ||
Standard: Auto | ||
UseTab: Never | ||
... |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
*.[aod] | ||
*.gcda | ||
*.gcno | ||
*.gcov | ||
*.lib | ||
*.obj | ||
/build/ | ||
/TAGS | ||
/cscope* | ||
/src/libslirp-version.h | ||
/tags |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,110 @@ | ||
image: fedora:latest | ||
|
||
variables: | ||
DEPS: meson ninja-build | ||
gcc libasan liblsan libubsan pkg-config glib2-devel | ||
mingw64-gcc mingw64-pkg-config mingw64-glib2 | ||
clang-analyzer git-core | ||
|
||
before_script: | ||
- dnf install -y $DEPS | ||
- git fetch --tags https://gitlab.freedesktop.org/slirp/libslirp.git | ||
- git describe | ||
|
||
build: | ||
script: | ||
- meson --werror build || (cat build/meson-logs/meson-log.txt && exit 1) | ||
- ninja -C build | ||
- (cd build && meson test) || (cat build/meson-logs/testlog.txt && exit 1) | ||
- ninja -C build scan-build | ||
|
||
build-asan: | ||
script: | ||
- CFLAGS=-fsanitize=address meson --werror build || (cat build/meson-logs/meson-log.txt && exit 1) | ||
- ninja -C build | ||
- (cd build && ASAN_OPTIONS=detect_leaks=0 meson test) || (cat build/meson-logs/testlog.txt && exit 1) | ||
|
||
build-lsan: | ||
script: | ||
- CFLAGS=-fsanitize=leak meson --werror build || (cat build/meson-logs/meson-log.txt && exit 1) | ||
- ninja -C build | ||
- (cd build && meson test) || (cat build/meson-logs/testlog.txt && exit 1) | ||
|
||
build-usan: | ||
script: | ||
- CFLAGS=-fsanitize=undefined meson --werror build || (cat build/meson-logs/meson-log.txt && exit 1) | ||
- ninja -C build | ||
- (cd build && meson test) || (cat build/meson-logs/testlog.txt && exit 1) | ||
|
||
fuzz: | ||
parallel: | ||
matrix: | ||
- TARGET: [arp, ip-header, udp, udp-h, tftp, dhcp, icmp, tcp, tcp-h, ndp, ip6-header, udp6, udp6-h, tftp6, icmp6, tcp6, tcp6-h] | ||
script: | ||
- CC=clang CXX=clang++ meson build -Dllvm-fuzz=true || (cat build/meson-logs/meson-log.txt && exit 1) | ||
- ninja -C build | ||
- build/fuzzing/fuzz-$TARGET -seed=1234 -runs=1000000 fuzzing/IN_$TARGET | ||
artifacts: | ||
when: on_failure | ||
paths: | ||
- crash-* | ||
- leak-* | ||
- oom-* | ||
- timeout-* | ||
|
||
build-mingw64: | ||
script: | ||
- (mkdir buildw && cd buildw && mingw64-meson --werror) || (cat buildw/meson-logs/meson-log.txt && exit 1) | ||
- ninja -C buildw | ||
|
||
Coverity: | ||
only: | ||
refs: | ||
- master | ||
- coverity | ||
script: | ||
- dnf update -y | ||
- dnf install -y curl clang | ||
- curl -o /tmp/cov-analysis-linux64.tgz https://scan.coverity.com/download/linux64 | ||
--form project=$COVERITY_SCAN_PROJECT_NAME --form token=$COVERITY_SCAN_TOKEN | ||
- tar xfz /tmp/cov-analysis-linux64.tgz | ||
- CC=clang meson build | ||
- cov-analysis-linux64-*/bin/cov-build --dir cov-int ninja -C build | ||
- tar cfz cov-int.tar.gz cov-int | ||
- curl https://scan.coverity.com/builds?project=$COVERITY_SCAN_PROJECT_NAME | ||
--form token=$COVERITY_SCAN_TOKEN --form email=$GITLAB_USER_EMAIL | ||
--form [email protected] --form version="`git describe --tags`" | ||
--form description="`git describe --tags` / $CI_COMMIT_TITLE / $CI_COMMIT_REF_NAME:$CI_PIPELINE_ID " | ||
|
||
integration-slirp4netns: | ||
variables: | ||
SLIRP4NETNS_VERSION: "v1.1.12" | ||
# Consumed by `make benchmark` | ||
BENCHMARK_IPERF3_DURATION: "10" | ||
script: | ||
# Install libslirp | ||
- meson build | ||
- ninja -C build install | ||
# Register the path of libslirp.so.0 | ||
- echo /usr/local/lib64 >/etc/ld.so.conf.d/libslirp.conf | ||
- ldconfig | ||
# Install the dependencies of slirp4netns and its test suite | ||
# TODO: install udhcpc for `slirp4netns/tests/test-slirp4netns-dhcp.sh` (currently skipped, due to lack of udhcpc) | ||
- dnf install -y autoconf automake findutils iperf3 iproute iputils jq libcap-devel libseccomp-devel nmap-ncat util-linux | ||
# Check whether the runner environment is configured correctly | ||
- unshare -rn true || (echo Make sure you have relaxed seccomp and appamor && exit 1) | ||
- unshare -rn ip tap add tap0 mode tap || (echo Make sure you have /dev/net/tun && exit 1) | ||
# Install slirp4netns | ||
- git clone https://github.com/rootless-containers/slirp4netns -b "${SLIRP4NETNS_VERSION}" | ||
- cd slirp4netns | ||
- ./autogen.sh | ||
- ./configure | ||
- make | ||
- make install | ||
- slirp4netns --version | ||
# Run slirp4netns integration test | ||
- make distcheck || (cat $(find . -name 'test-suite.log' ) && exit 1) | ||
# Run benchmark test to ensure that libslirp can actually handle packets, with several MTU configurations | ||
- make benchmark MTU=1500 | ||
- make benchmark MTU=512 | ||
- make benchmark MTU=65520 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
[gitpublishprofile "default"] | ||
base = master | ||
to = [email protected] |
Oops, something went wrong.