![]() |
![]() |
#1 |
I moo ablest echo power!
May 2013
1,741 Posts |
![]()
I'm working on getting the gnfs-lasieve binaries built for an RPi Model 3B. I am, however, getting stumped at the first step. Running
Code:
make liblasieve.a Code:
Using built-in specs. COLLECT_GCC=/usr/aarch64-unknown-linux-gnu/gcc-bin/5.4.0/gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/aarch64-unknown-linux-gnu/5.4.0/lto-wrapper Target: aarch64-unknown-linux-gnu Configured with: /var/tmp/portage/sys-devel/gcc-5.4.0-r3/work/gcc-5.4.0/configure --host=aarch64-unknown-linux-gnu --build=aarch64-unknown-linux-gnu --prefix=/usr --bindir=/usr/aarch64-unknown-linux-gnu/gcc-bin/5.4.0 --includedir=/usr/lib/gcc/aarch64-unknown-linux-gnu/5.4.0/include --datadir=/usr/share/gcc-data/aarch64-unknown-linux-gnu/5.4.0 --mandir=/usr/share/gcc-data/aarch64-unknown-linux-gnu/5.4.0/man --infodir=/usr/share/gcc-data/aarch64-unknown-linux-gnu/5.4.0/info --with-gxx-include-dir=/usr/lib/gcc/aarch64-unknown-linux-gnu/5.4.0/include/g++-v5 --with-python-dir=/share/gcc-data/aarch64-unknown-linux-gnu/5.4.0/python --enable-languages=c,c++,fortran --enable-obsolete --enable-secureplt --disable-werror --with-system-zlib --enable-nls --without-included-gettext --enable-checking=release --with-bugurl=https://bugs.gentoo.org/ --with-pkgversion='Gentoo 5.4.0-r3 p1.3, pie-0.6.5' --enable-libstdcxx-time --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --enable-multilib --disable-altivec --disable-fixed-point --disable-libgcj --enable-libgomp --disable-libmudflap --disable-libssp --disable-libcilkrts --disable-libmpx --disable-vtable-verify --disable-libvtv --enable-lto --without-isl --disable-libsanitizer Thread model: posix gcc version 5.4.0 (Gentoo 5.4.0-r3 p1.3, pie-0.6.5) |
![]() |
![]() |
![]() |
#2 |
Sep 2002
Database er0rr
361710 Posts |
![]()
I would run ./configure if it exists. Then inspect Makefile to see what tartgets are available like "all:" so that you can, in this case, run make all
![]() Last fiddled with by paulunderwood on 2017-03-04 at 21:16 |
![]() |
![]() |
![]() |
#3 |
I moo ablest echo power!
May 2013
6CD16 Posts |
![]()
Would that I could. This is the 64-bit assembly experimental lasieve binaries. The instructions are as follows:
Code:
follow these steps to build the binaries on a 64-bit machine. These should build and run on Athlon64, or Core2 cpus. ****************************** NOTE for Phenom/K8 users: replace in athlon64/ls-defs.asm define(l1_bits,15)dnl => define(l1_bits,16)dnl and in athlon64/siever-config.h #define L1_BITS 15 => #define L1_BITS 16 This may add 5-10% speed to your sieving speed. But try it both ways and decide for yourself. Caveat emptor! ****************************** Prerequisites: gmp.h libgmp cd athlon64 make liblasieve.a make liblasieveI11.a make liblasieveI12.a make liblasieveI13.a make liblasieveI14.a make liblasieveI15.a make liblasieveI16.a cp *.a .. cd .. ln -s athlon64 asm make |
![]() |
![]() |
![]() |
#4 | |
Undefined
"The unspeakable one"
Jun 2006
My evil lair
5×1,223 Posts |
![]() Quote:
ETA: Showing us the actual error messages would probably help us to understand what went wrong. Last fiddled with by retina on 2017-03-05 at 04:17 |
|
![]() |
![]() |
![]() |
#5 | |
I moo ablest echo power!
May 2013
6CD16 Posts |
![]() Quote:
Code:
pt64.s:7: Error: unknown mnemonic `movq' -- `movq %r11,%rax' pt64.s:8: Error: unknown mnemonic `mulq' -- `mulq %r11' pt64.s:9: Error: unknown mnemonic `movq' -- `movq %rdx,%r11' pt64.s:10: Error: unknown mnemonic `mulq' -- `mulq %r8' pt64.s:11: Error: unknown mnemonic `mulq' -- `mulq %rdi' pt64.s:12: Error: unknown mnemonic `xorq' -- `xorq %rax,%rax' pt64.s:13: Error: unknown mnemonic `subq' -- `subq %rdx,%r11' |
|
![]() |
![]() |
![]() |
#6 | |
Undefined
"The unspeakable one"
Jun 2006
My evil lair
10111111000112 Posts |
![]() Quote:
|
|
![]() |
![]() |
![]() |
#7 |
I moo ablest echo power!
May 2013
1,741 Posts |
![]()
Ok. Looks like I have a challenge then.
![]() Thanks for confirming it. |
![]() |
![]() |
![]() |
#8 |
Tribal Bullet
Oct 2004
1101110100002 Posts |
![]()
The GGNFS codebase should have a 'make generic' option in the makefile that would ignore all the assembly language. Maybe that applies to the sievers too.
|
![]() |
![]() |
![]() |
#9 |
I moo ablest echo power!
May 2013
1,741 Posts |
![]()
It does have something along those lines (I think it was the x86 option). I used that to build the 32-bit version of the sievers, but I'm looking to building the 64-bit ones as well. I'll have to double-check whether there's a generic version of those.
|
![]() |
![]() |
![]() |
#10 |
I moo ablest echo power!
May 2013
110110011012 Posts |
![]()
I've been looking at various resources to try and understand assembly generally and the differences between x64 and aarch64 assembly. One bit I'm not understanding is the following--in pt64.s, the first line of the modsq64 function is:
Code:
movq %r11,%rax |
![]() |
![]() |
![]() |
#11 |
Undefined
"The unspeakable one"
Jun 2006
My evil lair
10111111000112 Posts |
![]()
You can freely choose any registers with MOV. R11 has no special functionality, it is just another register. For that matter, RAX has no special functionality, it is just another register also. But there are some special instructions that target particular registers, e.g LODSQ will target RAX and source from RSI.
|
![]() |
![]() |
![]() |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
AArch64 Compiling | packetnathan | Software | 2 | 2016-12-23 01:36 |
gnfs asm version sievers illegal instruction | EdH | Factoring | 32 | 2016-10-12 20:49 |
Calling all 64-bit Linux sievers! | frmky | NFS@Home | 25 | 2013-10-16 15:58 |
Compiling gnfs-lasieve4I1?e on for AMD 64 | FactorEyes | Factoring | 2 | 2008-02-20 01:32 |
which platform? XP - Linux - ??? | Jurgen | Software | 3 | 2004-09-20 01:42 |