mio programma viene compilato bene senza -flto ma con -flto ottengo questo errore:Come risolvere l'errore del linker "definito nella sezione scartata"?
% arm-none-eabi-g++ --version
arm-none-eabi-g++ (4.8.3-9+11) 4.8.3 20140820 (release)
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
% arm-none-eabi-g++ -O2 -W -Wall -fPIE -flto -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -ffreestanding -nostdlib -std=gnu++11 -fno-exceptions -fno-rtti -c -o main.o main.cc
% arm-none-eabi-g++ -fPIE -nostdlib -O2 -flto boot.o memcpy.o font.o main.o -lgcc -Tlink-arm-eabi.ld -o kernel.elf
`memcpy' referenced in section `.text' of /tmp/ccYO5wE8.ltrans0.ltrans.o: defined in discarded section `.text' of memcpy.o (symbol from plugin)
collect2: error: ld returned 1 exit status
ho provato a spostare il memcpy.o diverse posizioni di provare diversi ordini di link, ma l'errore è sempre lo stesso. Ho visto che questo è un problema comune, ma nessuna delle risposte alle domande precedenti si applica. Non ho installato un boost rotto o non ho usato diverse versioni del compilatore per la compilazione. Sto costruendo un kernel bare metal quindi non c'è nessuna libreria esterna involuta diversa da libgcc.
Qualcuno ha un'idea di cosa sta succedendo lì?
stesso errore si verifica con g ++ - 4.9.2 –