Skip to content

Conflicting types for __goblint_assume_join #1779

@sim642

Description

@sim642

Many of the CIs in ocaml/opam-repository#28155 show our builds now failing:

#=== ERROR while compiling goblint.2.5.0 ======================================#
# context              2.3.0 | linux/x86_64 | ocaml-base-compiler.4.14.2 | pinned(https://github.com/goblint/analyzer/releases/download/v2.5.0/goblint-2.5.0.tbz)
# path                 ~/.opam/4.14/.opam-switch/build/goblint.2.5.0
# command              ~/.opam/opam-init/hooks/sandbox.sh build dune build -p goblint -j 71 --promote-install-files=false @install
# exit-code            1
# env-file             ~/.opam/log/goblint-7-fd2dd0.env
# output-file          ~/.opam/log/goblint-7-fd2dd0.out
### output ###
# (cd _build/default/src/build-info && /usr/sbin/bash -e -u -o pipefail -c 'git describe --all --long --dirty || echo "n/a"') > /opam-tmp/build_b38026_dune/dune-pipe-action-_ca071d_.stdout
# fatal: not a git repository (or any parent up to mount point /)
# Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
# File "lib/goblint/runtime/src/dune", line 4, characters 8-15:
# 4 |  (names goblint)
#             ^^^^^^^
# (cd _build/default/lib/goblint/runtime/src && /usr/sbin/gcc -O2 -fno-strict-aliasing -fwrapv -pthread -fPIC -D_FILE_OFFSET_BITS=64 -Wall -fdiagnostics-color=always -g -I /home/opam/.opam/4.14/lib/ocaml -I ../include -o goblint.o -c goblint.c)
# goblint.c:19:6: error: conflicting types for ‘__goblint_assume_join’; have ‘void(pthread_t)’ {aka ‘void(long unsigned int)’}
#    19 | void __goblint_assume_join(pthread_t thread) {
#       |      ^~~~~~~~~~~~~~~~~~~~~
# In file included from goblint.c:1:
# ../include/goblint.h:5:6: note: previous declaration of ‘__goblint_assume_join’ with type ‘void(void)’
#     5 | void __goblint_assume_join(/* pthread_t thread */); // undeclared argument to avoid pthread.h interfering with Linux kernel headers
#       |      ^~~~~~~~~~~~~~~~~~~~~

Some distros use newer GCC which seems to be more strict by default.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions