Fails to build using LTO with type mismatch error

Bug #2051613 reported by Eli Schwartz
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
liberasurecode
New
Undecided
Unassigned

Bug Description

I did this:

```
CFLAGS="-flto=4 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing"
LDFLAGS="-flto=4 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing"
```

I got the following compiler error:

```
libtool: link: x86_64-pc-linux-gnu-gcc -shared -fPIC -DPIC .libs/liberasurecode_la-erasurecode.o .libs/liberasurecode_la-erasurecode_helpers.o .libs/liberasurecode_la-erasurecode_preprocessing.o .libs/liberasurecode_la-erasurecode_postprocessing.o utils/chksum/.libs/liberasurecode_la-crc32.o utils/chksum/.libs/liberasurecode_la-alg_sig.o backends/null/.libs/liberasurecode_la-null.o backends/xor/.libs/liberasurecode_la-flat_xor_hd.o backends/jerasure/.libs/liberasurecode_la-jerasure_rs_vand.o backends/jerasure/.libs/liberasurecode_la-jerasure_rs_cauchy.o backends/isa-l/.libs/liberasurecode_la-isa_l_common.o backends/isa-l/.libs/liberasurecode_la-isa_l_rs_vand.o backends/isa-l/.libs/liberasurecode_la-isa_l_rs_cauchy.o backends/rs_vand/.libs/liberasurecode_la-liberasurecode_rs_vand.o builtin/rs_vand/.libs/liberasurecode_la-rs_galois.o backends/shss/.libs/liberasurecode_la-shss.o backends/phazrio/.libs/liberasurecode_la-libphazr.o -Wl,-rpath -Wl,/var/tmp/portage/dev-libs/liberasurecode-1.6.3/work/liberasurecode-1.6.3/src/builtin/null_code/.libs -Wl,-rpath -Wl,/var/tmp/portage/dev-libs/liberasurecode-1.6.3/work/liberasurecode-1.6.3/src/builtin/xor_codes/.libs -Wl,-rpath -Wl,/var/tmp/portage/dev-libs/liberasurecode-1.6.3/work/liberasurecode-1.6.3/src/builtin/rs_vand/.libs -Wl,--as-needed builtin/null_code/.libs/libnullcode.so builtin/xor_codes/.libs/libXorcode.so builtin/rs_vand/.libs/liberasurecode_rs_vand.so -lpthread -lm -lz -O2 -g -march=native -fstack-protector-all -O2 -fdiagnostics-color=always -frecord-gcc-switches -flto=4 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -Werror=format-security -Werror=implicit-function-declaration -Werror=implicit-int -Werror=int-conversion -Werror=incompatible-pointer-types -Wl,-O1 -flto=4 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -Wl,--defsym=__gentoo_check_ldflags__=0 -Wl,-soname -Wl,liberasurecode.so.1 -o .libs/liberasurecode.so.1.6.3
/var/tmp/portage/dev-libs/liberasurecode-1.6.3/work/liberasurecode-1.6.3/include/erasurecode/alg_sig.h:60:5: error: type of 'liberasurecode_crc32_alt' does not match original declaration [-Werror=lto-type-mismatch]
   60 | int liberasurecode_crc32_alt(int crc, const void *buf, int size);
      | ^
utils/chksum/crc32.c:92:1: note: type mismatch in parameter 3
   92 | liberasurecode_crc32_alt(int crc, const void *buf, size_t size)
      | ^
utils/chksum/crc32.c:92:1: note: type 'size_t' should match type 'int'
utils/chksum/crc32.c:92:1: note: 'liberasurecode_crc32_alt' was previously declared here
utils/chksum/crc32.c:92: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.
/usr/libexec/gcc/x86_64-pc-linux-gnu/ld: error: lto-wrapper failed
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:634: liberasurecode.la] Error 1
make[2]: Leaving directory '/var/tmp/portage/dev-libs/liberasurecode-1.6.3/work/liberasurecode-1.6.3/src'
make[1]: *** [Makefile:849: all-recursive] Error 1
make[1]: Leaving directory '/var/tmp/portage/dev-libs/liberasurecode-1.6.3/work/liberasurecode-1.6.3/src'
make: *** [Makefile:535: all-recursive] Error 1
 * ERROR: dev-libs/liberasurecode-1.6.3::gentoo failed (compile phase):
```

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.