Closed Subtixx closed 1 year ago
Thanks for checking out the script and reporting the bug. I will look into this and get back you asap.
Hello, I built Skyscraper on Arch Linux and I can see that LTO is enabled by default. I am using a Gen 3 Intel i5 CPU on a laptop and the build time seemed reasonably quick even with LTO enabled. Is there any particular reason it needs to be disabled for you? I am guessing it causes issues on a Raspberry Pi. Please confirm, thank you.
No no you must've misunderstood me.
-fno-lto [...] -flto=4 -fno-fat-lto-objects
this causes a huge problem while compiling. Since it doesn't generate lto files but the linker then requires LTO files..
And no I have no idea where -fno-lto comes from its a clean Endeavour install with only Archypie installed. All I can say is that using the same command line as the script but removing -fno-lto results in SkyScraper successfully building.
Thanks for clarifying. I don't get that issue in Arch Linux see below snippet. Just to confirm does EndeavorOS use GCC 12 by default?
g++ -c -pipe -std=c++11 -march=native -mtune=native -pipe -O2 -flto -fno-fat-lto-objects -Wall -Wextra -D_REENTRANT -fPIC -DVERSION=\"3.7.7\" -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB -DQT_CORE_LIB -I. -I. -I/usr/include/qt -I/usr/include/qt/QtGui -I/usr/include/qt/QtNetwork -I/usr/include/qt/QtXml -I/usr/include/qt/QtCore -I. -I/usr/lib/qt/mkspecs/linux-g++ -o moc_fxbrightness.o moc_fxbrightness.cpp
Yes it uses gcc 12.2.1:
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /build/gcc/src/gcc/configure --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++,d --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --enable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.2.1 20230201 (GCC)
Thats weird. I have no idea where this -fno-lto comes from.
Yes it is strange how that flag has crept in there. I will see what I can find out. I confess I have yet to use EndeavorOS but this gives me an excuse to try it out.
I tested ArchyPie in a clean EndeavourOS build, No DE installed. I built the core modules (Retroarch, EmulationStation etc) and then built Skyscraper. I did not have any issues and the -fno-lto flag was not present. Do you recall building any other modules from ArchyPie or any software from the AUR prior to building Skyscraper? It is possible the stray -fno-lto flag could have been introduced by an export command in another module.
The only thing I installed before ArchyPie was the fish shell nothing else
I setup Fish to run as an interactive shell by adding exec fish to my .bashrc file. I rebooted EOS, launched the archypie-setup script and compiled Skyscraper with no issues and again the -fno-lto flag was not present.
I don't have a Xeon CPU to test with in case there is some instruction set that changes the compilation behaviour under GCC.
Hi, could you please advise me if you are still having issues with building Skyscraper? Thanks
Closing. I could not replicate the issue.
Somehow the -fno-lto doesn't work for me:
Manually executing the compile with -fno-lto removed does compile though.