• Bug#1066220: mono: FTBFS: gc_dlopen.c:52:30: error: implicit declaratio

    From Lucas Nussbaum@21:1/5 to All on Wed Mar 13 13:00:17 2024
    Source: mono
    Version: 6.8.0.105+dfsg-3.5
    Severity: serious
    Justification: FTBFS
    Tags: trixie sid ftbfs
    User: lucas@debian.org
    Usertags: ftbfs-20240313 ftbfs-trixie ftbfs-impfuncdef

    Hi,

    During a rebuild of all packages in sid, your package failed to build
    on amd64.

    This is most likely caused by a change in dpkg 1.22.6, that enabled -Werror=implicit-function-declaration. For more information, see https://wiki.debian.org/qa.debian.org/FTBFS#A2024-03-13_-Werror.3Dimplicit-function-declaration

    Relevant part (hopefully):
    make[2]: Entering directory '/<<PKGBUILDDIR>>/libgc'
    CC allchblk.lo
    CC alloc.lo
    CC checksums.lo
    CC dbg_mlc.lo
    CC blacklst.lo
    CC dyn_load.lo
    CC finalize.lo
    CC gc_dlopen.lo
    CC gcj_mlc.lo
    gc_dlopen.c: In function ‘disable_gc_for_dlopen’:
    gc_dlopen.c:52:30: error: implicit declaration of function ‘GC_collection_in_progress’ [-Werror=implicit-function-declaration]
    52 | while (GC_incremental && GC_collection_in_progress()) {
    | ^~~~~~~~~~~~~~~~~~~~~~~~~
    alloc.c:85:2: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
    85 | {"Copyright 1988,1989 Hans-J. Boehm and Alan J. Demers ",
    | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ alloc.c:86:1: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
    86 | "Copyright (c) 1991-1995 by Xerox Corporation. All rights reserved. ",
    | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    alloc.c:87:1: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
    87 | "Copyright (c) 1996-1998 by Silicon Graphics. All rights reserved. ",
    | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ alloc.c:88:1: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
    88 | "Copyright (c) 1999-2001 by Hewlett-Packard Company. All rights reserved. ",
    | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    alloc.c:89:1: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
    89 | "THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY",
    | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ alloc.c:90:1: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
    90 | " EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.",
    | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    alloc.c:91:1: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
    91 | "See source code for details." };
    | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    alloc.c:130:7: warning: no previous declaration for ‘GC_timeout_stop_func’ [-Wmissing-declarations]
    130 | int GC_timeout_stop_func GC_PROTO((void))
    | ^~~~~~~~~~~~~~~~~~~~
    alloc.c:186:6: warning: no previous declaration for ‘GC_adj_words_allocd’ [-Wmissing-declarations]
    186 | word GC_adj_words_allocd()
    | ^~~~~~~~~~~~~~~~~~~
    alloc.c:231:6: warning: no previous declaration for ‘GC_clear_a_few_frames’ [-Wmissing-declarations]
    231 | void GC_clear_a_few_frames()
    | ^~~~~~~~~~~~~~~~~~~~~
    alloc.c: In function ‘GC_clear_a_few_frames’:
    alloc.c:234:10: warning: variable ‘frames’ set but not used [-Wunused-but-set-variable]
    234 | word frames[NWORDS];
    | ^~~~~~
    alloc.c: At top level:
    alloc.c:254:6: warning: no previous declaration for ‘GC_notify_full_gc’ [-Wmissing-declarations]
    254 | void GC_notify_full_gc()
    | ^~~~~~~~~~~~~~~~~
    alloc.c:269:6: warning: no previous declaration for ‘GC_maybe_gc’ [-Wmissing-declarations]
    269 | void GC_maybe_gc()
    | ^~~~~~~~~~~
    dbg_mlc.c:311:7: warning: no previous declaration for ‘GC_check_annotated_obj’ [-Wmissing-declarations]
    311 | ptr_t GC_check_annotated_obj(ohdr)
    | ^~~~~~~~~~~~~~~~~~~~~~
    dbg_mlc.c:344:6: warning: no previous declaration for ‘GC_print_type’ [-Wmissing-declarations]
    344 | void GC_print_type(p)
    | ^~~~~~~~~~~~~
    alloc.c:622:8: warning: no previous declaration for ‘GC_clear_fl_marks’ [-Wmissing-declarations]
    622 | void GC_clear_fl_marks(ptr_t q)
    | ^~~~~~~~~~~~~~~~~
    dbg_mlc.c:405:10: warning: no previous declaration for ‘GC_debug_print_heap_obj_proc’ [-Wmissing-declarations]
    405 | void GC_debug_print_heap_obj_proc(ptr_t p)
    | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    dbg_mlc.c:420:6: warning: no previous declaration for ‘GC_print_smashed_obj’ [-Wmissing-declarations]
    420 | void GC_print_smashed_obj(p, clobbered_addr)
    | ^~~~~~~~~~~~~~~~~~~~
    dbg_mlc.c:449:6: warning: no previous declaration for ‘GC_do_nothing’ [-Wmissing-declarations]
    449 | void GC_do_nothing() {}
    | ^~~~~~~~~~~~~
    dbg_mlc.c:451:6: warning: no previous declaration for ‘GC_start_debugging’ [-Wmissing-declarations]
    451 | void GC_start_debugging()
    | ^~~~~~~~~~~~~~~~~~
    alloc.c:905:7: warning: no previous declaration for ‘GC_max’ [-Wmissing-declarations]
    905 | ptr_t GC_max(x,y)
    | ^~~~~~
    alloc.c:911:7: warning: no previous declaration for ‘GC_min’ [-Wmissing-declarations]
    911 | ptr_t GC_min(x,y)
    | ^~~~~~
    dbg_mlc.c:743:12: warning: no previous declaration for ‘GC_debug_malloc_atomic_uncollectable’ [-Wmissing-declarations]
    743 | GC_PTR GC_debug_malloc_atomic_uncollectable(size_t lb, GC_EXTRA_PARAMS)
    | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In file included from alloc.c:19:
    alloc.c: In function ‘GC_collect_or_expand’:
    dbg_mlc.c:838:6: warning: no previous declaration for ‘GC_debug_free_inner’ [-Wmissing-declarations]
    838 | void GC_debug_free_inner(GC_PTR p)
    | ^~~~~~~~~~~~~~~~~~~
    dyn_load.c:444:9: warning: no previous declaration for ‘GC_register_dynamic_libraries_dl_iterate_phdr’ [-Wmissing-declarations]
    444 | GC_bool GC_register_dynamic_libraries_dl_iterate_phdr()
    | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./include/private/gc_priv.h:473:48: warning: passing argument 1 of ‘GC_current_warn_proc’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
    473 | # define WARN(msg,arg) (*GC_current_warn_proc)("GC Warning: " msg, (GC_word)(arg))
    | ^~~~~~~~~~~~~~ alloc.c:1081:13: note: in expansion of macro ‘WARN’
    1081 | WARN("Out of Memory! Trying to continue ...\n", 0);
    | ^~~~
    ./include/private/gc_priv.h:473:48: note: expected ‘char *’ but argument is of type ‘const char *’
    473 | # define WARN(msg,arg) (*GC_current_warn_proc)("GC Warning: " msg, (GC_word)(arg))
    | ^~~~~~~~~~~~~~ alloc.c:1081:13: note: in expansion of macro ‘WARN’
    1081 | WARN("Out of Memory! Trying to continue ...\n", 0);
    | ^~~~
    dbg_mlc.c:926:10: warning: no previous declaration for ‘GC_add_smashed’ [-Wmissing-declarations]
    926 | void GC_add_smashed(ptr_t smashed)
    | ^~~~~~~~~~~~~~
    ./include/private/gc_priv.h:473:48: warning: passing argument 1 of ‘GC_current_warn_proc’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
    473 | # define WARN(msg,arg) (*GC_current_warn_proc)("GC Warning: " msg, (GC_word)(arg))
    | ^~~~~~~~~~~~~~ alloc.c:1085:15: note: in expansion of macro ‘WARN’
    1085 | WARN("Out of Memory! Returning NIL!\n", 0);
    | ^~~~
    ./include/private/gc_priv.h:473:48: note: expected ‘char *’ but argument is of type ‘const char *’
    473 | # define WARN(msg,arg) (*GC_current_warn_proc)("GC Warning: " msg, (GC_word)(arg))
    | ^~~~~~~~~~~~~~ alloc.c:1085:15: note: in expansion of macro ‘WARN’
    1085 | WARN("Out of Memory! Returning NIL!\n", 0);
    | ^~~~
    dbg_mlc.c:958:10: warning: no previous declaration for ‘GC_check_heap_block’ [-Wmissing-declarations]
    958 | void GC_check_heap_block(register struct hblk *hbp, word dummy)
    | ^~~~~~~~~~~~~~~~~~~
    allchblk.c:83:5: warning: no previous declaration for ‘GC_hblk_fl_from_blocks’ [-Wmissing-declarations]
    83 | int GC_hblk_fl_from_blocks(blocks_needed)
    | ^~~~~~~~~~~~~~~~~~~~~~
    allchblk.c:147:5: warning: no previous declaration for ‘free_list_index_of’ [-Wmissing-declarations]
    147 | int free_list_index_of(wanted)
    | ^~~~~~~~~~~~~~~~~~
    allchblk.c:165:6: warning: no previous declaration for ‘GC_dump_regions’ [-Wmissing-declarations]
    165 | void GC_dump_regions()
    | ^~~~~~~~~~~~~~~
    allchblk.c:258:6: warning: no previous declaration for ‘GC_remove_from_fl’ [-Wmissing-declarations]
    258 | void GC_remove_from_fl(hhdr, n)
    | ^~~~~~~~~~~~~~~~~
    blacklst.c:56:10: warning: no previous declaration for ‘GC_default_print_heap_obj_proc’ [-Wmissing-declarations]
    56 | void GC_default_print_heap_obj_proc(ptr_t p)
    | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    blacklst.c:70:6: warning: no previous declaration for ‘GC_print_source_ptr’ [-Wmissing-declarations]
    70 | void GC_print_source_ptr(p)
    | ^~~~~~~~~~~~~~~~~~~
    blacklst.c:117:6: warning: no previous declaration for ‘GC_copy_bl’ [-Wmissing-declarations]
    117 | void GC_copy_bl(old, new)
    | ^~~~~~~~~~
    cc1: some warnings being treated as errors
    finalize.c:112:6: warning: no previous declaration for ‘GC_grow_table’ [-Wmissing-declarations]
    112 | void GC_grow_table(table, log_size_ptr)
    | ^~~~~~~~~~~~~
    allchblk.c:301:15: warning: no previous declaration for ‘GC_free_block_ending_at’ [-Wmissing-declarations]
    301 | struct hblk * GC_free_block_ending_at(h)
    | ^~~~~~~~~~~~~~~~~~~~~~~
    allchblk.c:333:6: warning: no previous declaration for ‘GC_add_to_fl’ [-Wmissing-declarations]
    333 | void GC_add_to_fl(h, hhdr)
    | ^~~~~~~~~~~~
    allchblk.c:458:15: warning: no previous declaration for ‘GC_get_first_part’ [-Wmissing-declarations]
    458 | struct hblk * GC_get_first_part(h, hhdr, bytes, index)
    | ^~~~~~~~~~~~~~~~~
    finalize.c: In function ‘ensure_toggleref_capacity’:
    finalize.c:442:21: warning: unused variable ‘old_capacity’ [-Wunused-variable]
    442 | int old_capacity = GC_toggleref_array_capacity;
    | ^~~~~~~~~~~~
    In file included from allchblk.c:19:
    allchblk.c: In function ‘GC_get_first_part’:
    finalize.c: At top level:
    ./include/private/gc_priv.h:473:48: warning: passing argument 1 of ‘GC_current_warn_proc’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
    473 | # define WARN(msg,arg) (*GC_current_warn_proc)("GC Warning: " msg, (GC_word)(arg))
    | ^~~~~~~~~~~~~~ allchblk.c:475:9: note: in expansion of macro ‘WARN’
    475 | WARN("Header allocation failed: Dropping block.\n", 0);
    | ^~~~
    make[2]: *** [Makefile:736: gc_dlopen.lo] Error 1


    The full build log is available from: http://qa-logs.debian.net/2024/03/13/mono_6.8.0.105+dfsg-3.5_unstable.log

    All bugs filed during this archive rebuild are listed at: https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20240313;users=lucas@debian.org
    or: https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20240313&fusertaguser=lucas@debian.org&allbugs=1&cseverity=1&ctags=1&caffected=1#results

    A list of current common problems and possible solutions is available at http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

    If you reassign this bug to another package, please mark it as 'affects'-ing this package. See https://www.debian.org/Bugs/server-control#affects

    If you fail to reproduce this, please provide a build log and diff it with mine so that we can identify if something relevant changed in the meantime.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)