-
Notifications
You must be signed in to change notification settings - Fork 41
Open
Description
I tried to build with the following *FLAGS to optimize the build: -flto=4 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing
Note the -Werror=* flags are used to help detect cases where the compiler tries to optimize by assuming UB cannot exist in the source code -- if it does exist, ordinarily the code would be miscompiled, and this says to make the miscompilation a fatal error.
I got this error:
/bin/sh ../libtool --tag=CC --mode=link x86_64-pc-linux-gnu-cc -march=native -fstack-protector-all -O2 -pipe -fdiagnostics-color=always -frecord-gcc-switches -flto=4 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -Wformat -Werror=format-security -Werror=implicit-function-declaration -Werror=implicit-int -Werror=int-conversion -Werror=incompatible-pointer-types -fopenmp -Wl,-O1 -Wl,--as-needed -flto=4 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -Wl,--defsym=__gentoo_check_ldflags__=0 -fopenmp -o liblis.la -rpath /usr/lib64 array/libarray.la esolver/libesolver.la matrix/libmatrix.la matvec/libmatvec.la precision/libprecision.la precon/libprecon.la solver/libsolver.la system/libsystem.la vector/libvector.la fortran/libfortran.la -L/usr/lib/gcc/x86_64-pc-linux-gnu/13 -L/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../.. -lgfortran -lm -lquadmath -lm
libtool: link: x86_64-pc-linux-gnu-cc -shared -fPIC -DPIC -Wl,--whole-archive array/.libs/libarray.a esolver/.libs/libesolver.a matrix/.libs/libmatrix.a matvec/.libs/libmatvec.a precision/.libs/libprecision.a precon/.libs/libprecon.a solver/.libs/libsolver.a system/.libs/libsystem.a vector/.libs/libvector.a fortran/.libs/libfortran.a -Wl,--no-whole-archive -Wl,--as-needed -L/usr/lib/gcc/x86_64-pc-linux-gnu/13 -L/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../.. -lgfortran /usr/lib/gcc/x86_64-pc-linux-gnu/13/libquadmath.so -lm -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 -fopenmp -Wl,-O1 -flto=4 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -Wl,--defsym=__gentoo_check_ldflags__=0 -fopenmp -fopenmp -Wl,-soname -Wl,liblis.so.0 -o .libs/liblis.so.0.0.0
fortran/lisf_init.F:43:72: error: type of 'lis_set_argv_f' does not match original declaration [-Werror=lto-type-mismatch]
43 | call lis_set_argv(i,argv,ierr)
| ^
fortran/lisf_system.c:158:6: note: type mismatch in parameter 4
158 | void lis_set_argv_f(LIS_INT *no, char *argv, LIS_INT *ierr, LIS_INT len)
| ^
fortran/lisf_system.c:158:6: note: type 'LIS_INT' should match type 'long int'
fortran/lisf_system.c:158:6: note: 'lis_set_argv_f_' was previously declared here
fortran/lisf_system.c:158:6: 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-cc returned 1 exit status
compilation terminated.
/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: error: lto-wrapper failed
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:484: liblis.la] Error 1
Downstream report: https://bugs.gentoo.org/927587
Full build log: build.log
Metadata
Metadata
Assignees
Labels
No labels