Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 908442 - dev-lang/mono-6.12.0.122 fails to compile (lto): ../../mono/sgen/gc-internal-agnostic.h:101:18: error: type of 'mono_gc_make_root_descr_all_refs' does not match original declaration [-Werror=lto-type-mismatch]
Summary: dev-lang/mono-6.12.0.122 fails to compile (lto): ../../mono/sgen/gc-internal-...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: Normal normal
Assignee: No maintainer - Look at https://wiki.gentoo.org/wiki/Project:Proxy_Maintainers if you want to take care of it
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: lto
  Show dependency tree
 
Reported: 2023-06-13 13:01 UTC by Kostadin Shishmanov
Modified: 2024-01-05 12:40 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
build log and emerge --info (build.log,880.00 KB, text/x-log)
2023-06-13 13:01 UTC, Kostadin Shishmanov
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Kostadin Shishmanov 2023-06-13 13:01:57 UTC
Created attachment 863765 [details]
build log and emerge --info

dev-lang/mono-6.12.0.122 fails to compile with CFLAGS=-flto=auto -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing and LDFLAGS=-Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing



libtool: link: x86_64-pc-linux-gnu-gcc -I../.. -I../../mono/eglib -I../../mono/eglib -fvisibility=hidden -Wall -Wunused -Wmissing-declarations -Wpointer-arith -Wno-cast-qual -Wwrite-strings -Wno-switch -Wno-switch-enum -Wno-unused-value -Wno-attributes -march=native -O3 -pipe -flto=auto -fno-plt -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -Wmissing-prototypes -Wstrict-prototypes -Wnested-externs -Wno-format-zero-length -std=gnu99 -fno-strict-aliasing -fwrapv -DMONO_DLL_EXPORT -Wno-unused-but-set-variable -g -Werror=incompatible-pointer-types -Werror=return-type -Werror-implicit-function-declaration -Wl,-O1 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -Wl,--export-dynamic -Wl,-Bsymbolic -Wl,-z -Wl,now -o mono-sgen libmain_a-main-sgen.o  -Wl,--as-needed ./.libs/libmini.a ./.libs/libmono-ee-interp.a ./.libs/libmono-dbg.a ../../mono/metadata/.libs/libmonoruntimesgen.a -lz ../../mono/sgen/.libs/libmonosgen.a ../../mono/utils/.libs/libmonoutils.a ../../mono/eglib/.libs/libeglib.a -lm -lpthread
libtool: link: x86_64-pc-linux-gnu-gcc -I../.. -I../../mono/eglib -I../../mono/eglib -fvisibility=hidden -Wall -Wunused -Wmissing-declarations -Wpointer-arith -Wno-cast-qual -Wwrite-strings -Wno-switch -Wno-switch-enum -Wno-unused-value -Wno-attributes -march=native -O3 -pipe -flto=auto -fno-plt -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -Wmissing-prototypes -Wstrict-prototypes -Wnested-externs -Wno-format-zero-length -std=gnu99 -fno-strict-aliasing -fwrapv -DMONO_DLL_EXPORT -Wno-unused-but-set-variable -g -Werror=incompatible-pointer-types -Werror=return-type -Werror-implicit-function-declaration -Wl,-O1 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -Wl,--export-dynamic -Wl,-Bsymbolic -Wl,-z -Wl,now -o mono-boehm libmain_a-main.o  -Wl,--as-needed ./.libs/libmini.a ./.libs/libmono-ee-interp.a ./.libs/libmono-dbg.a ../../mono/metadata/.libs/libmonoruntime.a -lz ../../mono/utils/.libs/libmonoutils.a ../../external/bdwgc/.libs/libgc.a -ldl ../../mono/eglib/.libs/libeglib.a -lm -lpthread
../../mono/sgen/gc-internal-agnostic.h:101:18: error: type of 'mono_gc_make_root_descr_all_refs' does not match original declaration [-Werror=lto-type-mismatch]
  101 | MonoGCDescriptor mono_gc_make_root_descr_all_refs (int numbits)
      |                  ^
../sgen/sgen-descriptor.c:287:1: note: return value type mismatch
  287 | mono_gc_make_root_descr_all_refs (int numbits)
      | ^
../sgen/sgen-descriptor.c:287:1: note: type 'SgenDescriptor' should match type 'void *'
../sgen/sgen-descriptor.c:287:1: note: 'mono_gc_make_root_descr_all_refs' was previously declared here
../sgen/sgen-descriptor.c:287:1: note: code may be misoptimized unless '-fno-strict-aliasing' is used
../../mono/metadata/gc-internals.h:173:16: error: type of 'mono_gc_register_root' does not match original declaration [-Werror=lto-type-mismatch]
  173 | MONO_API int   mono_gc_register_root (char *start, size_t size, MonoGCDescriptor descr, MonoGCRootSource source, void *key, const char *msg);
      |                ^
../metadata/sgen-mono.c:2422:1: note: type mismatch in parameter 3
 2422 | mono_gc_register_root (char *start, size_t size, MonoGCDescriptor descr, MonoGCRootSource source, void *key, const char *msg)
      | ^
../metadata/sgen-mono.c:2422:1: note: type 'MonoGCDescriptor' should match type 'void *'
../metadata/sgen-mono.c:2422:1: note: 'mono_gc_register_root' was previously declared here
../metadata/sgen-mono.c:2422:1: note: code may be misoptimized unless '-fno-strict-aliasing' is used
../../mono/sgen/gc-internal-agnostic.h:101:18: error: type of 'mono_gc_make_root_descr_all_refs' does not match original declaration [-Werror=lto-type-mismatch]
  101 | MonoGCDescriptor mono_gc_make_root_descr_all_refs (int numbits)
      |                  ^
../sgen/sgen-descriptor.c:287:1: note: return value type mismatch
  287 | mono_gc_make_root_descr_all_refs (int numbits)
      | ^
../sgen/sgen-descriptor.c:287:1: note: type 'SgenDescriptor' should match type 'void *'
../sgen/sgen-descriptor.c:287:1: note: 'mono_gc_make_root_descr_all_refs' was previously declared here
../sgen/sgen-descriptor.c:287:1: note: code may be misoptimized unless '-fno-strict-aliasing' is used
../../mono/metadata/gc-internals.h:173:16: error: type of 'mono_gc_register_root' does not match original declaration [-Werror=lto-type-mismatch]
  173 | MONO_API int   mono_gc_register_root (char *start, size_t size, MonoGCDescriptor descr, MonoGCRootSource source, void *key, const char *msg);
      |                ^
../metadata/sgen-mono.c:2422:1: note: type mismatch in parameter 3
 2422 | mono_gc_register_root (char *start, size_t size, MonoGCDescriptor descr, MonoGCRootSource source, void *key, const char *msg)
      | ^
../metadata/sgen-mono.c:2422:1: note: type 'MonoGCDescriptor' should match type 'void *'
../metadata/sgen-mono.c:2422:1: note: 'mono_gc_register_root' was previously declared here
../metadata/sgen-mono.c:2422:1: note: code may be misoptimized unless '-fno-strict-aliasing' is used
lto1: some warnings being treated as errors
lto-wrapper: fatal error: x86_64-pc-linux-gnu-gcc returned 1 exit status
compilation terminated.
Comment 1 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-01-05 12:40:38 UTC
commit 619727ef09e9464f656c4d95d4fd9f6fb966fc38
Author: Sam James <sam@gentoo.org>
Date:   Mon Dec 4 08:11:09 2023 +0000

    dev-lang/mono: filter LTO unconditionally, force -O2, no strict aliasing

    It's somewhat of a miracle mono works at all nowadays, especially given
    all the scary warnings, so force a conservative build.

    Bug: https://bugs.gentoo.org/915985
    Signed-off-by: Sam James <sam@gentoo.org>