Skip to content

rsync #73

@sim642

Description

@sim642

https://github.com/RsyncProject/rsync/

Initial attempt

Goblint version: heads/master-0-gd505a38c7

Checked out git tag v3.4.1 and executed

./configure --disable-md2man --disable-xxhash --disable-zstd --disable-lz4 --disable-iconv --disable-iconv-open --disable-openssl --disable-acl-support --disable-xattr-support

Then in config.h manually commented out #define USE_MD5_ASM 1 and #define USE_ROLL_SIMD 1. There are only --enable options for these and they're enabled by default, so there doesn't seem to be a way to disable them (they use C++ and ASM).
Then executed

bear -- make rsync

Then in compile_commands.json manually did the following modifications:

  1. Removed rounding.c. It's a helper program executed in the middle of the build to generate some header. Not sure why this isn't part of ./configure.
  2. Removed simd-checksum-x86_64.cpp and md5-asm-x86_64.S. Even when defined to not be used, they're still compiled. But we don't want to try to merge them because parsing fails.
  3. (Changed all -O2 arguments to -O0. Because -O2 disables fortified headers. Not actually necessary perhaps.)

Then executed

goblint compile_commands.json

but this doesn't yield to any result quickly.
I also tried

goblint compile_commands.json --set ana.base.strings.domain unit --enable exp.single-threaded

because a lot of the top functions in the solver stats are string/printing ones and rsync uses sigaction which makes Goblint analysis multi-threaded, but this didn't help.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions