Hi Andrey, On 28 December 2013 19:00, Andrey Borzenkov <arvidj...@gmail.com> wrote: >> > On 27.12.2013 20:07, Andrey Borzenkov wrote: >> > > I tried to build RPM for aarch64; it fails building image with >> > > >> > > [ 1273s] + ./grub-mkimage -O arm64-efi -o grub.efi --prefix= -d >> > > grub-core all_video boot cat chain configfile echo efinet font gfxmenu >> > > gfxterm gzio halt iso9660 jpeg minicmd normal part_apple part_msdos >> > > part_gpt password_pbkdf2 png reboot search search_fs_uuid search_fs_file >> > > search_label sleep test video fat loadenv linux ext2 btrfs ext2 xfs jfs >> > > reiserfs efinet tftp mdraid09 mdraid1x lvm >> > > [ 1273s] ./grub-mkimage: error: relocation 0x105 is not implemented yet. >> > > >> > This shouldn't happen as those relocation assume 32-bit range. Is >> > -mcmodel=large properly passed? >> >> Looks like some files are compiled without it >> >> [ 992s] gcc -DHAVE_CONFIG_H -I. -I../../grub-core -I.. -Wall -W >> -I../../include -I../include -DGRUB_MACHINE_EFI=1 >> -DGRUB_MACHINE=ARM64_EFI -nostdinc >> -isystem /usr/lib64/gcc/aarch64-suse-linux/4.8/include -DGRUB_FILE= >> \"lib/setjmp.S\" -I. -I../../grub-core -I.. -I../.. -I../../include >> -I../include -I../../grub-core/lib/libgcrypt-grub/src/ -g >> -DGRUB_FILE=\"lib/setjmp.S\" -I. -I../../grub-core -I.. -I../.. >> -I../../include -I../include -I../../grub-core/lib/libgcrypt-grub/src/ >> -DASM_FILE=1 -fno-strict-aliasing -fno-inline-functions-called-once >> -MT lib/setjmp_module-setjmp.o -MD -MP -MF >> lib/.deps-core/setjmp_module-setjmp.Tpo -c -o lib/setjmp_module-setjmp.o >> `test -f 'lib/setjmp.S' || echo '../../grub-core/'`lib/setjmp.S >> >> [ 1161s] gcc -DHAVE_CONFIG_H -I. -I../../grub-core -I.. -Wall -W >> -I../../include -I../include -DGRUB_MACHINE_EFI=1 >> -DGRUB_MACHINE=ARM64_EFI -nostdinc >> -isystem /usr/lib64/gcc/aarch64-suse-linux/4.8/include -DGRUB_FILE= >> \"kern/arm64/efi/startup.S\" -I. -I../../grub-core -I.. -I../.. >> -I../../include -I../include -I../../grub-core/lib/libgcrypt-grub/src/ >> -DGRUB_KERNEL=1 -g -DGRUB_FILE=\"kern/arm64/efi/startup.S\" -I. >> -I../../grub-core -I.. -I../.. -I../../include -I../include >> -I../../grub-core/lib/libgcrypt-grub/src/ -DASM_FILE=1 >> -fno-strict-aliasing -fno-inline-functions-called-once -MT >> kern/arm64/efi/kernel_exec-startup.o -MD -MP -MF >> kern/arm64/efi/.deps-core/kernel_exec-startup.Tpo -c -o >> kern/arm64/efi/kernel_exec-startup.o `test -f 'kern/arm64/efi/startup.S' >> || echo '../../grub-core/'`kern/arm64/efi/startup.S >> >> [ 1163s] gcc -DHAVE_CONFIG_H -I. -I../../grub-core -I.. -Wall -W >> -I../../include -I../include -DGRUB_MACHINE_EFI=1 >> -DGRUB_MACHINE=ARM64_EFI -nostdinc >> -isystem /usr/lib64/gcc/aarch64-suse-linux/4.8/include -DGRUB_FILE= >> \"kern/arm64/cache_flush.S\" -I. -I../../grub-core -I.. -I../.. >> -I../../include -I../include -I../../grub-core/lib/libgcrypt-grub/src/ >> -DGRUB_KERNEL=1 -g -DGRUB_FILE=\"kern/arm64/cache_flush.S\" -I. >> -I../../grub-core -I.. -I../.. -I../../include -I../include >> -I../../grub-core/lib/libgcrypt-grub/src/ -DASM_FILE=1 >> -fno-strict-aliasing -fno-inline-functions-called-once -MT >> kern/arm64/kernel_exec-cache_flush.o -MD -MP -MF >> kern/arm64/.deps-core/kernel_exec-cache_flush.Tpo -c -o >> kern/arm64/kernel_exec-cache_flush.o `test -f 'kern/arm64/cache_flush.S' >> || echo '../../grub-core/'`kern/arm64/cache_flush.S >> > > Still the same even after adding -mcmodel=large to CCASFLAGS.
This shouldn't matter for asm though: it's a compiler option instructing the compiler what code sequences to use for indirect calls/accesses. > Is it > possible that compiler generates small relocation where appropriate even > with -mcmodel=large? It shouldn't, but difficult to say without knowing more details. Can you run the mkimage with -v and pinpoint the triggering module? / Leif _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel