Bitcoin Forum
July 16, 2018, 09:39:41 AM *
News: Latest stable version of Bitcoin Core: 0.16.1  [Torrent]. (New!)
 
   Home   Help Search Donate Login Register  
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 [44] 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 ... 191 »
  Print  
Author Topic: [ANN]: cpuminer-opt v3.8.8.1, open source optimized multi-algo CPU miner  (Read 411302 times)
Wolf0
Legendary
*
Offline Offline

Activity: 1834
Merit: 1002


Miner Developer


View Profile
June 07, 2016, 09:26:39 PM
 #861


I can show you a fun example of corrupting the stack deliberately with C in order to skip instructions

Wouldn't you need to use ASM to alter the stack pointer? Corrupting the contents is trivial and wouldn't
cause the stack check to crash unless it verifies the frames which would be too time consuming. Corrupt
stack contents would only crash on accessing a local variable, a subroutine call or on return.

Nope! I don't need to modify the stack pointer directly, I need to CONTROL it.

Now, if we know what the function epilogue is going to be (say a pop esp/rsp) - clobber the address on the stack using an invalid array index, and you've gained control of esp/rsp.

Code:
Donations: BTC: 1WoLFdwcfNEg64fTYsX1P25KUzzSjtEZC -- XMR: 45SLUTzk7UXYHmzJ7bFN6FPfzTusdUVAZjPRgmEDw7G3SeimWM2kCdnDQXwDBYGUWaBtZNgjYtEYA22aMQT4t8KfU3vHLHG
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1531733981
Hero Member
*
Offline Offline

Posts: 1531733981

View Profile Personal Message (Offline)

Ignore
1531733981
Reply with quote  #2

1531733981
Report to moderator
joblo
Legendary
*
Offline Offline

Activity: 1148
Merit: 1016


View Profile
June 07, 2016, 09:49:08 PM
 #862


I can show you a fun example of corrupting the stack deliberately with C in order to skip instructions

Wouldn't you need to use ASM to alter the stack pointer? Corrupting the contents is trivial and wouldn't
cause the stack check to crash unless it verifies the frames which would be too time consuming. Corrupt
stack contents would only crash on accessing a local variable, a subroutine call or on return.

Nope! I don't need to modify the stack pointer directly, I need to CONTROL it.

Now, if we know what the function epilogue is going to be (say a pop esp/rsp) - clobber the address on the stack using an invalid array index, and you've gained control of esp/rsp.

As I said modifying the stack contents is trivial and would cause a different crash than the one I'm seeing.
But it's irrelevent now as it no longer crashes after moving ctx to global.

This tangent is bringing back some old memories of writing opcode patches for a stack based processor. It was like using
an HP RPN calculator but was a bitch to keep the stack coherent.

cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
PeaMine
Hero Member
*****
Offline Offline

Activity: 767
Merit: 501



View Profile
June 08, 2016, 07:37:04 AM
 #863

Is this official git for cpuminer-opt ?
https://github.com/hmage/cpuminer-opt

Datacenter Technician and Electrician
Epsylon3
Legendary
*
Offline Offline

Activity: 1386
Merit: 1075


ccminer/cpuminer developer


View Profile WWW
June 08, 2016, 09:59:15 AM
 #864

bench patch

https://github.com/tpruvot/cpuminer-opt/commit/cc9f53aaded583cf7f39a43fa4acb7094d6444b8

https://github.com/tpruvot/cpuminer-opt/commit/cc9f53aaded583cf7f39a43fa4acb7094d6444b8.patch

BTC: 1FhDPLPpw18X4srecguG3MxJYe4a1JsZnd - My Projects: ccminer - cpuminer-multi - yiimp - Forum threads : ccminer - cpuminer-multi - yiimp
joblo
Legendary
*
Offline Offline

Activity: 1148
Merit: 1016


View Profile
June 08, 2016, 11:02:21 AM
 #865

Is this official git for cpuminer-opt ?
https://github.com/hmage/cpuminer-opt


Not official.

cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
hmage
Member
**
Offline Offline

Activity: 83
Merit: 10


View Profile
June 08, 2016, 12:46:07 PM
 #866


Good coding style. Will accept that in my repo.

[EDIT]: merged.
joblo
Legendary
*
Offline Offline

Activity: 1148
Merit: 1016


View Profile
June 08, 2016, 03:28:19 PM
 #867

I took a quick look at the patch but I want to pursue the cryptonight issue a bit more first, got an idea.

Before I implememnt the patch I need to understand the changes. I am particularly concerned about
the change to configure.ac. Given this file isn't being used currently by cpuminer-opt what will this do?
It works currently so trying to fix something that isn't broken can often break it.

Is this truly a diif vs 3.3.5? If so it' won't have some changes so the cpuid functions which didn't work correctly.
I moved the boolean algebra out of the bit definitions to the functions to keep the bit definitions pure.
I also defined symbolic names for the register array indexes, Some of the has_feature functions don't work in
3.3.5. As long as your changes don't rely on these bugs they should be ok with my changes.

Will touch base when I dig deeper into implementing the changes.

cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
joblo
Legendary
*
Offline Offline

Activity: 1148
Merit: 1016


View Profile
June 08, 2016, 04:51:59 PM
 #868

I have a solution for cryptonight on Windows.

Moving the ctx from local to global was the right fix but I neglected to make it thread safe. As a result
each thread was clobbering the same ctx. need to do some regression testing but my optimism has
returned.

Once that issue is closed I will merge the TPruvot bench test  and release v3.3.6.

cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
joblo
Legendary
*
Offline Offline

Activity: 1148
Merit: 1016


View Profile
June 08, 2016, 06:23:15 PM
 #869

I took a quick look at the patch but I want to pursue the cryptonight issue a bit more first, got an idea.

Before I implememnt the patch I need to understand the changes. I am particularly concerned about
the change to configure.ac. Given this file isn't being used currently by cpuminer-opt what will this do?
It works currently so trying to fix something that isn't broken can often break it.

Is this truly a diif vs 3.3.5? If so it' won't have some changes so the cpuid functions which didn't work correctly.
I moved the boolean algebra out of the bit definitions to the functions to keep the bit definitions pure.
I also defined symbolic names for the register array indexes, Some of the has_feature functions don't work in
3.3.5. As long as your changes don't rely on these bugs they should be ok with my changes.

Will touch base when I dig deeper into implementing the changes.

I've merged most of the changes but have some concerns.

I would still like an explanation regarding configure.ac. I don't want to break it, I've done enough of that already
when I don't fully understand what I'm doing.

I have changed the implementation of the flags. The flags are defined as per the HW definition, not a mask that defines the feature
they represent. This applies primarilly to AVX1 which requires 3 bits to define the feature.

Code:
// http://en.wikipedia.org/wiki/CPUID
#define EAX_Reg  (0)
#define EBX_Reg  (1)
#define ECX_Reg  (2)
#define EDX_Reg  (3)

#define XSAVE_Flag    (1 << 26)
#define OSXSAVE_Flag  (1 << 27)
//#define AVX1_Flag    ((1 << 28)|OSXSAVE_Flag)
#define AVX1_Flag     (1 << 28)
#define XOP_Flag      (1 << 11)
#define FMA3_Flag    ((1 << 12)|AVX1_Flag|OSXSAVE_Flag)
#define AES_Flag      (1 << 25)
#define SSE42_Flag    (1 << 20)

#define SSE_Flag      (1 << 25) // EDX
#define SSE2_Flag     (1 << 26) // EDX

#define AVX2_Flag     (1 << 5) // ADV EBX

(stuff snipped)

// westmere and above
bool has_avx1()
{
#ifdef __arm__
        return false;
#else
        int cpu_info[4] = { 0 };
        cpuid( 1, cpu_info );
        return ( (  cpu_info[ ECX_Reg ] & AVX1_Flag    ) != 0 )
            && ( ( cpu_info[ ECX_Reg ] & XSAVE_Flag   ) != 0 )
            && ( ( cpu_info[ ECX_Reg ] & OSXSAVE_Flag ) != 0 );
#endif
}

The current implementation or ORing the bits to create a mask doesn't work as intended.
It will return true if any of the mask bits are set, It should only return true if
all the mask bits are set. AVX1 is only available if all three bits are set.

To do this with your mask you would need to  do:

Code:
has_avx = ( ( cpu_info[ ECX_Reg ] & AVX1_Flag ) == AVX1_Flag );

The same issue exists with FMA3 but I don't use it so didn't change it.

Edit:

I defined masks for AVX1 and FMA3:

Code:
#define AVX1_mask      (AVX1_Flag|XSAVE_Flag|OSXSAVE_Flag)
#define FMA3_mask     (FMA3_Flag|AVX1_mask)

bool has_avx1()
{
#ifdef __arm__
        return false;
#else
        int cpu_info[4] = { 0 };
        cpuid( 1, cpu_info );
        return ( ( cpu_info[ ECX_Reg ] & AVX1_mask ) == AVX1_mask );
#endif
}


cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
joblo
Legendary
*
Offline Offline

Activity: 1148
Merit: 1016


View Profile
June 08, 2016, 09:09:31 PM
 #870

@TPruvot

I've finished merging the bench code with the following changes.

I haven't implemented the configure.ac change yet. I need to understand better. Currently this file is not
used so the change would have no effect, unless of course there is some magic using timestamps.
And if there is I want to understand it before I mess with it.

I've defined more symbolics in sysinfos.c for register access to improve readability.

I've implemented the AVX1 check using a mask. I've defined a mask for FM3 but not implemented
a function to use it
.

Considering the cryptonight fix is in the upcoming release I don't want to wait too long.

Edit: Wrote functions to detect all features.
Rewrote cpu_bestfeature to use functions instead of reading flags directly.
Only tested functions I use.

Here's a link to a tool I used as a guide. Very complete and detailed.

https://bitbucket.org/ariya/cpu-detect/src

cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
joblo
Legendary
*
Offline Offline

Activity: 1148
Merit: 1016


View Profile
June 09, 2016, 01:20:54 PM
 #871

cpuminer-opt v3.3.6 is released.

Cryptonight on Windows is fixed.

Fixed reporting of AVX support on startup.

Mergerd bench test from TPruvot fork.

https://drive.google.com/file/d/0B0lVSGQYLJIZZWctdjQtUmR2NW8/view?usp=sharing

Watch Cryptomining Blog for updated binaries.


cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
Epsylon3
Legendary
*
Offline Offline

Activity: 1386
Merit: 1075


ccminer/cpuminer developer


View Profile WWW
June 09, 2016, 02:46:58 PM
 #872

tx, but yep the compiled/cpu flags was made fast

also the sysinfo could be cleaned, to get the cpu model from cpu id all the time... just dont had amd cpus to test it so i left the /proc/cpuinfo for now (better for arm or other weird SoC also)

configure.ac is what generate cpuminer-config.h on linux and mingw, the first line change the package defines

BTC: 1FhDPLPpw18X4srecguG3MxJYe4a1JsZnd - My Projects: ccminer - cpuminer-multi - yiimp - Forum threads : ccminer - cpuminer-multi - yiimp
Wolf0
Legendary
*
Offline Offline

Activity: 1834
Merit: 1002


Miner Developer


View Profile
June 09, 2016, 02:56:53 PM
 #873

cpuminer-opt v3.3.6 is released.

Cryptonight on Windows is fixed.

Fixed reporting of AVX support on startup.

Mergerd bench test from TPruvot fork.

https://drive.google.com/file/d/0B0lVSGQYLJIZZWctdjQtUmR2NW8/view?usp=sharing

Watch Cryptomining Blog for updated binaries.



Code:
g++  -fPIC -O3 -march=native -Wall -std=gnu++11 -Lyes/lib  -Lyes/lib  -o cpuminer cpuminer-cpu-miner.o cpuminer-util.o cpuminer-uint256.o cpuminer-api.o cpuminer-sysinfos.o cpuminer-algo-gate-api.o algo/groestl/cpuminer-sph_groestl.o algo/skein/cpuminer-sph_skein.o algo/bmw/cpuminer-sph_bmw.o algo/shavite/cpuminer-sph_shavite.o algo/shavite/cpuminer-shavite.o algo/echo/cpuminer-sph_echo.o algo/blake/cpuminer-sph_blake.o algo/heavy/cpuminer-sph_hefty1.o algo/blake/cpuminer-mod_blakecoin.o algo/luffa/cpuminer-sph_luffa.o algo/cubehash/cpuminer-sph_cubehash.o algo/simd/cpuminer-sph_simd.o algo/hamsi/cpuminer-sph_hamsi.o algo/fugue/cpuminer-sph_fugue.o algo/gost/cpuminer-sph_gost.o algo/jh/cpuminer-sph_jh.o algo/keccak/cpuminer-sph_keccak.o algo/keccak/cpuminer-keccak.o algo/sha3/cpuminer-sph_sha2.o algo/sha3/cpuminer-sph_sha2big.o algo/shabal/cpuminer-sph_shabal.o algo/whirlpool/cpuminer-sph_whirlpool.o crypto/cpuminer-blake2s.o crypto/cpuminer-oaes_lib.o crypto/cpuminer-c_keccak.o crypto/cpuminer-c_groestl.o crypto/cpuminer-c_blake256.o crypto/cpuminer-c_jh.o crypto/cpuminer-c_skein.o crypto/cpuminer-hash.o crypto/cpuminer-aesb.o crypto/cpuminer-magimath.o algo/argon2/cpuminer-argon2a.o algo/argon2/ar2/cpuminer-argon2.o algo/argon2/ar2/cpuminer-opt.o algo/argon2/ar2/cpuminer-cores.o algo/argon2/ar2/cpuminer-ar2-scrypt-jane.o algo/argon2/ar2/cpuminer-blake2b.o algo/cpuminer-axiom.o algo/blake/cpuminer-blake.o algo/blake/cpuminer-blake2.o algo/blake/cpuminer-blakecoin.o algo/blake/cpuminer-decred.o algo/blake/cpuminer-pentablake.o algo/bmw/cpuminer-bmw256.o algo/cubehash/sse2/cpuminer-cubehash_sse2.o algo/cryptonight/cpuminer-cryptolight.o algo/cryptonight/cpuminer-cryptonight-common.o algo/cryptonight/cpuminer-cryptonight-aesni.o algo/cryptonight/cpuminer-cryptonight.o algo/cpuminer-drop.o algo/echo/aes_ni/cpuminer-hash.o algo/cpuminer-fresh.o algo/groestl/cpuminer-groestl.o algo/groestl/cpuminer-myr-groestl.o algo/groestl/sse2/cpuminer-grso.o algo/groestl/sse2/cpuminer-grso-asm.o algo/groestl/aes_ni/cpuminer-hash-groestl.o algo/haval/cpuminer-haval.o algo/heavy/cpuminer-heavy.o algo/heavy/cpuminer-bastion.o algo/cpuminer-hmq1725.o algo/hodl/cpuminer-hodl.o algo/hodl/cpuminer-hodl-gate.o algo/hodl/cpuminer-hodl_arith_uint256.o algo/hodl/cpuminer-hodl_uint256.o algo/hodl/cpuminer-hash.o algo/hodl/cpuminer-hmac_sha512.o algo/hodl/cpuminer-sha256.o algo/hodl/cpuminer-sha512.o algo/hodl/cpuminer-utilstrencodings.o algo/hodl/cpuminer-hodl-wolf.o algo/hodl/cpuminer-aes.o algo/luffa/cpuminer-luffa.o algo/luffa/sse2/cpuminer-luffa_for_sse2.o algo/lyra2/cpuminer-lyra2.o algo/lyra2/cpuminer-sponge.o algo/lyra2/cpuminer-lyra2rev2.o algo/lyra2/cpuminer-lyra2re.o algo/keccak/sse2/cpuminer-keccak.o algo/cpuminer-m7mhash.o algo/cpuminer-neoscrypt.o algo/cpuminer-nist5.o algo/cpuminer-pluck.o algo/quark/cpuminer-quark.o algo/qubit/cpuminer-qubit.o algo/ripemd/cpuminer-sph_ripemd.o algo/cpuminer-scrypt.o algo/scryptjane/cpuminer-scrypt-jane.o algo/sha2/cpuminer-sha2.o algo/simd/sse2/cpuminer-nist.o algo/simd/sse2/cpuminer-vector.o algo/skein/cpuminer-skein.o algo/skein/cpuminer-skein2.o algo/cpuminer-s3.o algo/tiger/cpuminer-sph_tiger.o algo/x11/cpuminer-x11.o algo/x11/cpuminer-x11evo.o algo/x11/cpuminer-x11gost.o algo/x11/cpuminer-c11.o algo/x13/cpuminer-x13.o algo/x14/cpuminer-x14.o algo/x15/cpuminer-x15.o algo/x17/cpuminer-x17.o algo/yescrypt/cpuminer-yescrypt.o algo/yescrypt/cpuminer-yescrypt-common.o algo/yescrypt/cpuminer-sha256_Y.o algo/yescrypt/cpuminer-yescrypt-simd.o algo/cpuminer-zr5.o asm/cpuminer-neoscrypt_asm.o  asm/cpuminer-sha2-x64.o asm/cpuminer-scrypt-x64.o asm/cpuminer-aesb-x64.o   -lcurl -lz -ljansson -lpthread  -lssl -lcrypto -lgmp
/usr/bin/ld: algo/groestl/sse2/cpuminer-grso-asm.o: relocation R_X86_64_32S against `grsoT0' can not be used when making a shared object; recompile with -fPIC
algo/groestl/sse2/cpuminer-grso-asm.o: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
Makefile:1306: recipe for target 'cpuminer' failed
make[2]: *** [cpuminer] Error 1
make[2]: Leaving directory '/home/wolf/miners/cpuminer-opt-3.3.6'
Makefile:3336: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/wolf/miners/cpuminer-opt-3.3.6'
Makefile:658: recipe for target 'all' failed
make: *** [all] Error 2

I'm going to assume cpuminer-grso-asm.o was made from ASM, and that ASM was written for 32-bit?

Code:
Donations: BTC: 1WoLFdwcfNEg64fTYsX1P25KUzzSjtEZC -- XMR: 45SLUTzk7UXYHmzJ7bFN6FPfzTusdUVAZjPRgmEDw7G3SeimWM2kCdnDQXwDBYGUWaBtZNgjYtEYA22aMQT4t8KfU3vHLHG
joblo
Legendary
*
Offline Offline

Activity: 1148
Merit: 1016


View Profile
June 09, 2016, 03:13:42 PM
 #874

tx, but yep the compiled/cpu flags was made fast

also the sysinfo could be cleaned, to get the cpu model from cpu id all the time... just dont had amd cpus to test it so i left the /proc/cpuinfo for now (better for arm or other weird SoC also)

configure.ac is what generate cpuminer-config.h on linux and mingw, the first line change the package defines

I moved the existing code to get the cpu model from cpu-miner.c to sysinfos.c, it's called cpu_brand_string. It only uses cpuid.
I know it works on AMD, I just have to add the ARM hook.

I'm also converting the has_* functions to inline for local usage with a wrapper for external use. It will avoid all function
calls/returns in cpu_bestfeature and any other code in sysinfos.c that wants to quickly check a specific feature.

I'm going to play with confgure.ac a bit to understand it better. If it works like make using timestamps I may be preventing
regenerating configure by manually editting it. Considering the only change I've made to configure is the package version
the untouched configure.ac should still be good and I should be able to go back to doing it the right way.




cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
joblo
Legendary
*
Offline Offline

Activity: 1148
Merit: 1016


View Profile
June 09, 2016, 03:26:44 PM
 #875

cpuminer-opt v3.3.6 is released.

Cryptonight on Windows is fixed.

Fixed reporting of AVX support on startup.

Mergerd bench test from TPruvot fork.

https://drive.google.com/file/d/0B0lVSGQYLJIZZWctdjQtUmR2NW8/view?usp=sharing

Watch Cryptomining Blog for updated binaries.



Code:
g++  -fPIC -O3 -march=native -Wall -std=gnu++11 -Lyes/lib  -Lyes/lib  -o cpuminer cpuminer-cpu-miner.o cpuminer-util.o cpuminer-uint256.o cpuminer-api.o cpuminer-sysinfos.o cpuminer-algo-gate-api.o algo/groestl/cpuminer-sph_groestl.o algo/skein/cpuminer-sph_skein.o algo/bmw/cpuminer-sph_bmw.o algo/shavite/cpuminer-sph_shavite.o algo/shavite/cpuminer-shavite.o algo/echo/cpuminer-sph_echo.o algo/blake/cpuminer-sph_blake.o algo/heavy/cpuminer-sph_hefty1.o algo/blake/cpuminer-mod_blakecoin.o algo/luffa/cpuminer-sph_luffa.o algo/cubehash/cpuminer-sph_cubehash.o algo/simd/cpuminer-sph_simd.o algo/hamsi/cpuminer-sph_hamsi.o algo/fugue/cpuminer-sph_fugue.o algo/gost/cpuminer-sph_gost.o algo/jh/cpuminer-sph_jh.o algo/keccak/cpuminer-sph_keccak.o algo/keccak/cpuminer-keccak.o algo/sha3/cpuminer-sph_sha2.o algo/sha3/cpuminer-sph_sha2big.o algo/shabal/cpuminer-sph_shabal.o algo/whirlpool/cpuminer-sph_whirlpool.o crypto/cpuminer-blake2s.o crypto/cpuminer-oaes_lib.o crypto/cpuminer-c_keccak.o crypto/cpuminer-c_groestl.o crypto/cpuminer-c_blake256.o crypto/cpuminer-c_jh.o crypto/cpuminer-c_skein.o crypto/cpuminer-hash.o crypto/cpuminer-aesb.o crypto/cpuminer-magimath.o algo/argon2/cpuminer-argon2a.o algo/argon2/ar2/cpuminer-argon2.o algo/argon2/ar2/cpuminer-opt.o algo/argon2/ar2/cpuminer-cores.o algo/argon2/ar2/cpuminer-ar2-scrypt-jane.o algo/argon2/ar2/cpuminer-blake2b.o algo/cpuminer-axiom.o algo/blake/cpuminer-blake.o algo/blake/cpuminer-blake2.o algo/blake/cpuminer-blakecoin.o algo/blake/cpuminer-decred.o algo/blake/cpuminer-pentablake.o algo/bmw/cpuminer-bmw256.o algo/cubehash/sse2/cpuminer-cubehash_sse2.o algo/cryptonight/cpuminer-cryptolight.o algo/cryptonight/cpuminer-cryptonight-common.o algo/cryptonight/cpuminer-cryptonight-aesni.o algo/cryptonight/cpuminer-cryptonight.o algo/cpuminer-drop.o algo/echo/aes_ni/cpuminer-hash.o algo/cpuminer-fresh.o algo/groestl/cpuminer-groestl.o algo/groestl/cpuminer-myr-groestl.o algo/groestl/sse2/cpuminer-grso.o algo/groestl/sse2/cpuminer-grso-asm.o algo/groestl/aes_ni/cpuminer-hash-groestl.o algo/haval/cpuminer-haval.o algo/heavy/cpuminer-heavy.o algo/heavy/cpuminer-bastion.o algo/cpuminer-hmq1725.o algo/hodl/cpuminer-hodl.o algo/hodl/cpuminer-hodl-gate.o algo/hodl/cpuminer-hodl_arith_uint256.o algo/hodl/cpuminer-hodl_uint256.o algo/hodl/cpuminer-hash.o algo/hodl/cpuminer-hmac_sha512.o algo/hodl/cpuminer-sha256.o algo/hodl/cpuminer-sha512.o algo/hodl/cpuminer-utilstrencodings.o algo/hodl/cpuminer-hodl-wolf.o algo/hodl/cpuminer-aes.o algo/luffa/cpuminer-luffa.o algo/luffa/sse2/cpuminer-luffa_for_sse2.o algo/lyra2/cpuminer-lyra2.o algo/lyra2/cpuminer-sponge.o algo/lyra2/cpuminer-lyra2rev2.o algo/lyra2/cpuminer-lyra2re.o algo/keccak/sse2/cpuminer-keccak.o algo/cpuminer-m7mhash.o algo/cpuminer-neoscrypt.o algo/cpuminer-nist5.o algo/cpuminer-pluck.o algo/quark/cpuminer-quark.o algo/qubit/cpuminer-qubit.o algo/ripemd/cpuminer-sph_ripemd.o algo/cpuminer-scrypt.o algo/scryptjane/cpuminer-scrypt-jane.o algo/sha2/cpuminer-sha2.o algo/simd/sse2/cpuminer-nist.o algo/simd/sse2/cpuminer-vector.o algo/skein/cpuminer-skein.o algo/skein/cpuminer-skein2.o algo/cpuminer-s3.o algo/tiger/cpuminer-sph_tiger.o algo/x11/cpuminer-x11.o algo/x11/cpuminer-x11evo.o algo/x11/cpuminer-x11gost.o algo/x11/cpuminer-c11.o algo/x13/cpuminer-x13.o algo/x14/cpuminer-x14.o algo/x15/cpuminer-x15.o algo/x17/cpuminer-x17.o algo/yescrypt/cpuminer-yescrypt.o algo/yescrypt/cpuminer-yescrypt-common.o algo/yescrypt/cpuminer-sha256_Y.o algo/yescrypt/cpuminer-yescrypt-simd.o algo/cpuminer-zr5.o asm/cpuminer-neoscrypt_asm.o  asm/cpuminer-sha2-x64.o asm/cpuminer-scrypt-x64.o asm/cpuminer-aesb-x64.o   -lcurl -lz -ljansson -lpthread  -lssl -lcrypto -lgmp
/usr/bin/ld: algo/groestl/sse2/cpuminer-grso-asm.o: relocation R_X86_64_32S against `grsoT0' can not be used when making a shared object; recompile with -fPIC
algo/groestl/sse2/cpuminer-grso-asm.o: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
Makefile:1306: recipe for target 'cpuminer' failed
make[2]: *** [cpuminer] Error 1
make[2]: Leaving directory '/home/wolf/miners/cpuminer-opt-3.3.6'
Makefile:3336: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/wolf/miners/cpuminer-opt-3.3.6'
Makefile:658: recipe for target 'all' failed
make: *** [all] Error 2

I'm going to assume cpuminer-grso-asm.o was made from ASM, and that ASM was written for 32-bit?

I don't know the history of all those SSE2 macros but I think your assumtion is correct. I am pretty fed up with
the groestl sse2 code in particular. I have considered ripping it all out because there is an AES version and
the GRS macros are only used on non-aes cpus.

I'm not sure why you have the error. It's odd that it says to use -fPIC when it was already set. Anyway it compiled
for me with -fPIC so I don't know what you did to break it.

cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
Wolf0
Legendary
*
Offline Offline

Activity: 1834
Merit: 1002


Miner Developer


View Profile
June 09, 2016, 03:32:02 PM
 #876

cpuminer-opt v3.3.6 is released.

Cryptonight on Windows is fixed.

Fixed reporting of AVX support on startup.

Mergerd bench test from TPruvot fork.

https://drive.google.com/file/d/0B0lVSGQYLJIZZWctdjQtUmR2NW8/view?usp=sharing

Watch Cryptomining Blog for updated binaries.



Code:
g++  -fPIC -O3 -march=native -Wall -std=gnu++11 -Lyes/lib  -Lyes/lib  -o cpuminer cpuminer-cpu-miner.o cpuminer-util.o cpuminer-uint256.o cpuminer-api.o cpuminer-sysinfos.o cpuminer-algo-gate-api.o algo/groestl/cpuminer-sph_groestl.o algo/skein/cpuminer-sph_skein.o algo/bmw/cpuminer-sph_bmw.o algo/shavite/cpuminer-sph_shavite.o algo/shavite/cpuminer-shavite.o algo/echo/cpuminer-sph_echo.o algo/blake/cpuminer-sph_blake.o algo/heavy/cpuminer-sph_hefty1.o algo/blake/cpuminer-mod_blakecoin.o algo/luffa/cpuminer-sph_luffa.o algo/cubehash/cpuminer-sph_cubehash.o algo/simd/cpuminer-sph_simd.o algo/hamsi/cpuminer-sph_hamsi.o algo/fugue/cpuminer-sph_fugue.o algo/gost/cpuminer-sph_gost.o algo/jh/cpuminer-sph_jh.o algo/keccak/cpuminer-sph_keccak.o algo/keccak/cpuminer-keccak.o algo/sha3/cpuminer-sph_sha2.o algo/sha3/cpuminer-sph_sha2big.o algo/shabal/cpuminer-sph_shabal.o algo/whirlpool/cpuminer-sph_whirlpool.o crypto/cpuminer-blake2s.o crypto/cpuminer-oaes_lib.o crypto/cpuminer-c_keccak.o crypto/cpuminer-c_groestl.o crypto/cpuminer-c_blake256.o crypto/cpuminer-c_jh.o crypto/cpuminer-c_skein.o crypto/cpuminer-hash.o crypto/cpuminer-aesb.o crypto/cpuminer-magimath.o algo/argon2/cpuminer-argon2a.o algo/argon2/ar2/cpuminer-argon2.o algo/argon2/ar2/cpuminer-opt.o algo/argon2/ar2/cpuminer-cores.o algo/argon2/ar2/cpuminer-ar2-scrypt-jane.o algo/argon2/ar2/cpuminer-blake2b.o algo/cpuminer-axiom.o algo/blake/cpuminer-blake.o algo/blake/cpuminer-blake2.o algo/blake/cpuminer-blakecoin.o algo/blake/cpuminer-decred.o algo/blake/cpuminer-pentablake.o algo/bmw/cpuminer-bmw256.o algo/cubehash/sse2/cpuminer-cubehash_sse2.o algo/cryptonight/cpuminer-cryptolight.o algo/cryptonight/cpuminer-cryptonight-common.o algo/cryptonight/cpuminer-cryptonight-aesni.o algo/cryptonight/cpuminer-cryptonight.o algo/cpuminer-drop.o algo/echo/aes_ni/cpuminer-hash.o algo/cpuminer-fresh.o algo/groestl/cpuminer-groestl.o algo/groestl/cpuminer-myr-groestl.o algo/groestl/sse2/cpuminer-grso.o algo/groestl/sse2/cpuminer-grso-asm.o algo/groestl/aes_ni/cpuminer-hash-groestl.o algo/haval/cpuminer-haval.o algo/heavy/cpuminer-heavy.o algo/heavy/cpuminer-bastion.o algo/cpuminer-hmq1725.o algo/hodl/cpuminer-hodl.o algo/hodl/cpuminer-hodl-gate.o algo/hodl/cpuminer-hodl_arith_uint256.o algo/hodl/cpuminer-hodl_uint256.o algo/hodl/cpuminer-hash.o algo/hodl/cpuminer-hmac_sha512.o algo/hodl/cpuminer-sha256.o algo/hodl/cpuminer-sha512.o algo/hodl/cpuminer-utilstrencodings.o algo/hodl/cpuminer-hodl-wolf.o algo/hodl/cpuminer-aes.o algo/luffa/cpuminer-luffa.o algo/luffa/sse2/cpuminer-luffa_for_sse2.o algo/lyra2/cpuminer-lyra2.o algo/lyra2/cpuminer-sponge.o algo/lyra2/cpuminer-lyra2rev2.o algo/lyra2/cpuminer-lyra2re.o algo/keccak/sse2/cpuminer-keccak.o algo/cpuminer-m7mhash.o algo/cpuminer-neoscrypt.o algo/cpuminer-nist5.o algo/cpuminer-pluck.o algo/quark/cpuminer-quark.o algo/qubit/cpuminer-qubit.o algo/ripemd/cpuminer-sph_ripemd.o algo/cpuminer-scrypt.o algo/scryptjane/cpuminer-scrypt-jane.o algo/sha2/cpuminer-sha2.o algo/simd/sse2/cpuminer-nist.o algo/simd/sse2/cpuminer-vector.o algo/skein/cpuminer-skein.o algo/skein/cpuminer-skein2.o algo/cpuminer-s3.o algo/tiger/cpuminer-sph_tiger.o algo/x11/cpuminer-x11.o algo/x11/cpuminer-x11evo.o algo/x11/cpuminer-x11gost.o algo/x11/cpuminer-c11.o algo/x13/cpuminer-x13.o algo/x14/cpuminer-x14.o algo/x15/cpuminer-x15.o algo/x17/cpuminer-x17.o algo/yescrypt/cpuminer-yescrypt.o algo/yescrypt/cpuminer-yescrypt-common.o algo/yescrypt/cpuminer-sha256_Y.o algo/yescrypt/cpuminer-yescrypt-simd.o algo/cpuminer-zr5.o asm/cpuminer-neoscrypt_asm.o  asm/cpuminer-sha2-x64.o asm/cpuminer-scrypt-x64.o asm/cpuminer-aesb-x64.o   -lcurl -lz -ljansson -lpthread  -lssl -lcrypto -lgmp
/usr/bin/ld: algo/groestl/sse2/cpuminer-grso-asm.o: relocation R_X86_64_32S against `grsoT0' can not be used when making a shared object; recompile with -fPIC
algo/groestl/sse2/cpuminer-grso-asm.o: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
Makefile:1306: recipe for target 'cpuminer' failed
make[2]: *** [cpuminer] Error 1
make[2]: Leaving directory '/home/wolf/miners/cpuminer-opt-3.3.6'
Makefile:3336: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/wolf/miners/cpuminer-opt-3.3.6'
Makefile:658: recipe for target 'all' failed
make: *** [all] Error 2

I'm going to assume cpuminer-grso-asm.o was made from ASM, and that ASM was written for 32-bit?

I don't know the history of all those SSE2 macros but I think your assumtion is correct. I am pretty fed up with
the groestl sse2 code in particular. I have considered ripping it all out because there is an AES version and
the GRS macros are only used on non-aes cpus.

I'm not sure why you have the error. It's odd that it says to use -fPIC when it was already set. Anyway it compiled
for me with -fPIC so I don't know what you did to break it.

I literally downloaded it, tried build.sh - cleaned, added -fPIC, tried again.

Code:
Donations: BTC: 1WoLFdwcfNEg64fTYsX1P25KUzzSjtEZC -- XMR: 45SLUTzk7UXYHmzJ7bFN6FPfzTusdUVAZjPRgmEDw7G3SeimWM2kCdnDQXwDBYGUWaBtZNgjYtEYA22aMQT4t8KfU3vHLHG
joblo
Legendary
*
Offline Offline

Activity: 1148
Merit: 1016


View Profile
June 09, 2016, 03:39:33 PM
 #877

cpuminer-opt v3.3.6 is released.

Cryptonight on Windows is fixed.

Fixed reporting of AVX support on startup.

Mergerd bench test from TPruvot fork.

https://drive.google.com/file/d/0B0lVSGQYLJIZZWctdjQtUmR2NW8/view?usp=sharing

Watch Cryptomining Blog for updated binaries.



Code:
g++  -fPIC -O3 -march=native -Wall -std=gnu++11 -Lyes/lib  -Lyes/lib  -o cpuminer cpuminer-cpu-miner.o cpuminer-util.o cpuminer-uint256.o cpuminer-api.o cpuminer-sysinfos.o cpuminer-algo-gate-api.o algo/groestl/cpuminer-sph_groestl.o algo/skein/cpuminer-sph_skein.o algo/bmw/cpuminer-sph_bmw.o algo/shavite/cpuminer-sph_shavite.o algo/shavite/cpuminer-shavite.o algo/echo/cpuminer-sph_echo.o algo/blake/cpuminer-sph_blake.o algo/heavy/cpuminer-sph_hefty1.o algo/blake/cpuminer-mod_blakecoin.o algo/luffa/cpuminer-sph_luffa.o algo/cubehash/cpuminer-sph_cubehash.o algo/simd/cpuminer-sph_simd.o algo/hamsi/cpuminer-sph_hamsi.o algo/fugue/cpuminer-sph_fugue.o algo/gost/cpuminer-sph_gost.o algo/jh/cpuminer-sph_jh.o algo/keccak/cpuminer-sph_keccak.o algo/keccak/cpuminer-keccak.o algo/sha3/cpuminer-sph_sha2.o algo/sha3/cpuminer-sph_sha2big.o algo/shabal/cpuminer-sph_shabal.o algo/whirlpool/cpuminer-sph_whirlpool.o crypto/cpuminer-blake2s.o crypto/cpuminer-oaes_lib.o crypto/cpuminer-c_keccak.o crypto/cpuminer-c_groestl.o crypto/cpuminer-c_blake256.o crypto/cpuminer-c_jh.o crypto/cpuminer-c_skein.o crypto/cpuminer-hash.o crypto/cpuminer-aesb.o crypto/cpuminer-magimath.o algo/argon2/cpuminer-argon2a.o algo/argon2/ar2/cpuminer-argon2.o algo/argon2/ar2/cpuminer-opt.o algo/argon2/ar2/cpuminer-cores.o algo/argon2/ar2/cpuminer-ar2-scrypt-jane.o algo/argon2/ar2/cpuminer-blake2b.o algo/cpuminer-axiom.o algo/blake/cpuminer-blake.o algo/blake/cpuminer-blake2.o algo/blake/cpuminer-blakecoin.o algo/blake/cpuminer-decred.o algo/blake/cpuminer-pentablake.o algo/bmw/cpuminer-bmw256.o algo/cubehash/sse2/cpuminer-cubehash_sse2.o algo/cryptonight/cpuminer-cryptolight.o algo/cryptonight/cpuminer-cryptonight-common.o algo/cryptonight/cpuminer-cryptonight-aesni.o algo/cryptonight/cpuminer-cryptonight.o algo/cpuminer-drop.o algo/echo/aes_ni/cpuminer-hash.o algo/cpuminer-fresh.o algo/groestl/cpuminer-groestl.o algo/groestl/cpuminer-myr-groestl.o algo/groestl/sse2/cpuminer-grso.o algo/groestl/sse2/cpuminer-grso-asm.o algo/groestl/aes_ni/cpuminer-hash-groestl.o algo/haval/cpuminer-haval.o algo/heavy/cpuminer-heavy.o algo/heavy/cpuminer-bastion.o algo/cpuminer-hmq1725.o algo/hodl/cpuminer-hodl.o algo/hodl/cpuminer-hodl-gate.o algo/hodl/cpuminer-hodl_arith_uint256.o algo/hodl/cpuminer-hodl_uint256.o algo/hodl/cpuminer-hash.o algo/hodl/cpuminer-hmac_sha512.o algo/hodl/cpuminer-sha256.o algo/hodl/cpuminer-sha512.o algo/hodl/cpuminer-utilstrencodings.o algo/hodl/cpuminer-hodl-wolf.o algo/hodl/cpuminer-aes.o algo/luffa/cpuminer-luffa.o algo/luffa/sse2/cpuminer-luffa_for_sse2.o algo/lyra2/cpuminer-lyra2.o algo/lyra2/cpuminer-sponge.o algo/lyra2/cpuminer-lyra2rev2.o algo/lyra2/cpuminer-lyra2re.o algo/keccak/sse2/cpuminer-keccak.o algo/cpuminer-m7mhash.o algo/cpuminer-neoscrypt.o algo/cpuminer-nist5.o algo/cpuminer-pluck.o algo/quark/cpuminer-quark.o algo/qubit/cpuminer-qubit.o algo/ripemd/cpuminer-sph_ripemd.o algo/cpuminer-scrypt.o algo/scryptjane/cpuminer-scrypt-jane.o algo/sha2/cpuminer-sha2.o algo/simd/sse2/cpuminer-nist.o algo/simd/sse2/cpuminer-vector.o algo/skein/cpuminer-skein.o algo/skein/cpuminer-skein2.o algo/cpuminer-s3.o algo/tiger/cpuminer-sph_tiger.o algo/x11/cpuminer-x11.o algo/x11/cpuminer-x11evo.o algo/x11/cpuminer-x11gost.o algo/x11/cpuminer-c11.o algo/x13/cpuminer-x13.o algo/x14/cpuminer-x14.o algo/x15/cpuminer-x15.o algo/x17/cpuminer-x17.o algo/yescrypt/cpuminer-yescrypt.o algo/yescrypt/cpuminer-yescrypt-common.o algo/yescrypt/cpuminer-sha256_Y.o algo/yescrypt/cpuminer-yescrypt-simd.o algo/cpuminer-zr5.o asm/cpuminer-neoscrypt_asm.o  asm/cpuminer-sha2-x64.o asm/cpuminer-scrypt-x64.o asm/cpuminer-aesb-x64.o   -lcurl -lz -ljansson -lpthread  -lssl -lcrypto -lgmp
/usr/bin/ld: algo/groestl/sse2/cpuminer-grso-asm.o: relocation R_X86_64_32S against `grsoT0' can not be used when making a shared object; recompile with -fPIC
algo/groestl/sse2/cpuminer-grso-asm.o: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
Makefile:1306: recipe for target 'cpuminer' failed
make[2]: *** [cpuminer] Error 1
make[2]: Leaving directory '/home/wolf/miners/cpuminer-opt-3.3.6'
Makefile:3336: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/wolf/miners/cpuminer-opt-3.3.6'
Makefile:658: recipe for target 'all' failed
make: *** [all] Error 2

I'm going to assume cpuminer-grso-asm.o was made from ASM, and that ASM was written for 32-bit?

I don't know the history of all those SSE2 macros but I think your assumtion is correct. I am pretty fed up with
the groestl sse2 code in particular. I have considered ripping it all out because there is an AES version and
the GRS macros are only used on non-aes cpus.

I'm not sure why you have the error. It's odd that it says to use -fPIC when it was already set. Anyway it compiled
for me with -fPIC so I don't know what you did to break it.

I literally downloaded it, tried build.sh - cleaned, added -fPIC, tried again.

gcc vs g++ or 99 vs 11?

Code:
gcc -std=gnu99 -DHAVE_CONFIG_H -I.  -Iyes/include -fno-strict-aliasing -I./compat/jansson -I. -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -fPIC -O3 -march=native -Wall  -Iyes/include -MT algo/groestl/sse2/cpuminer-grso-asm.o -MD -MP -MF algo/groestl/sse2/.deps/cpuminer-grso-asm.Tpo -c -o algo/groestl/sse2/cpuminer-grso-asm.o `test -f 'algo/groestl/sse2/grso-asm.c' || echo './'`algo/groestl/sse2/grso-asm.c

cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
Epsylon3
Legendary
*
Offline Offline

Activity: 1386
Merit: 1075


ccminer/cpuminer developer


View Profile WWW
June 09, 2016, 03:45:08 PM
 #878

he is using Arch linux, so i guess gcc 6.1.1

BTC: 1FhDPLPpw18X4srecguG3MxJYe4a1JsZnd - My Projects: ccminer - cpuminer-multi - yiimp - Forum threads : ccminer - cpuminer-multi - yiimp
Wolf0
Legendary
*
Offline Offline

Activity: 1834
Merit: 1002


Miner Developer


View Profile
June 09, 2016, 03:45:59 PM
 #879

cpuminer-opt v3.3.6 is released.

Cryptonight on Windows is fixed.

Fixed reporting of AVX support on startup.

Mergerd bench test from TPruvot fork.

https://drive.google.com/file/d/0B0lVSGQYLJIZZWctdjQtUmR2NW8/view?usp=sharing

Watch Cryptomining Blog for updated binaries.



Code:
g++  -fPIC -O3 -march=native -Wall -std=gnu++11 -Lyes/lib  -Lyes/lib  -o cpuminer cpuminer-cpu-miner.o cpuminer-util.o cpuminer-uint256.o cpuminer-api.o cpuminer-sysinfos.o cpuminer-algo-gate-api.o algo/groestl/cpuminer-sph_groestl.o algo/skein/cpuminer-sph_skein.o algo/bmw/cpuminer-sph_bmw.o algo/shavite/cpuminer-sph_shavite.o algo/shavite/cpuminer-shavite.o algo/echo/cpuminer-sph_echo.o algo/blake/cpuminer-sph_blake.o algo/heavy/cpuminer-sph_hefty1.o algo/blake/cpuminer-mod_blakecoin.o algo/luffa/cpuminer-sph_luffa.o algo/cubehash/cpuminer-sph_cubehash.o algo/simd/cpuminer-sph_simd.o algo/hamsi/cpuminer-sph_hamsi.o algo/fugue/cpuminer-sph_fugue.o algo/gost/cpuminer-sph_gost.o algo/jh/cpuminer-sph_jh.o algo/keccak/cpuminer-sph_keccak.o algo/keccak/cpuminer-keccak.o algo/sha3/cpuminer-sph_sha2.o algo/sha3/cpuminer-sph_sha2big.o algo/shabal/cpuminer-sph_shabal.o algo/whirlpool/cpuminer-sph_whirlpool.o crypto/cpuminer-blake2s.o crypto/cpuminer-oaes_lib.o crypto/cpuminer-c_keccak.o crypto/cpuminer-c_groestl.o crypto/cpuminer-c_blake256.o crypto/cpuminer-c_jh.o crypto/cpuminer-c_skein.o crypto/cpuminer-hash.o crypto/cpuminer-aesb.o crypto/cpuminer-magimath.o algo/argon2/cpuminer-argon2a.o algo/argon2/ar2/cpuminer-argon2.o algo/argon2/ar2/cpuminer-opt.o algo/argon2/ar2/cpuminer-cores.o algo/argon2/ar2/cpuminer-ar2-scrypt-jane.o algo/argon2/ar2/cpuminer-blake2b.o algo/cpuminer-axiom.o algo/blake/cpuminer-blake.o algo/blake/cpuminer-blake2.o algo/blake/cpuminer-blakecoin.o algo/blake/cpuminer-decred.o algo/blake/cpuminer-pentablake.o algo/bmw/cpuminer-bmw256.o algo/cubehash/sse2/cpuminer-cubehash_sse2.o algo/cryptonight/cpuminer-cryptolight.o algo/cryptonight/cpuminer-cryptonight-common.o algo/cryptonight/cpuminer-cryptonight-aesni.o algo/cryptonight/cpuminer-cryptonight.o algo/cpuminer-drop.o algo/echo/aes_ni/cpuminer-hash.o algo/cpuminer-fresh.o algo/groestl/cpuminer-groestl.o algo/groestl/cpuminer-myr-groestl.o algo/groestl/sse2/cpuminer-grso.o algo/groestl/sse2/cpuminer-grso-asm.o algo/groestl/aes_ni/cpuminer-hash-groestl.o algo/haval/cpuminer-haval.o algo/heavy/cpuminer-heavy.o algo/heavy/cpuminer-bastion.o algo/cpuminer-hmq1725.o algo/hodl/cpuminer-hodl.o algo/hodl/cpuminer-hodl-gate.o algo/hodl/cpuminer-hodl_arith_uint256.o algo/hodl/cpuminer-hodl_uint256.o algo/hodl/cpuminer-hash.o algo/hodl/cpuminer-hmac_sha512.o algo/hodl/cpuminer-sha256.o algo/hodl/cpuminer-sha512.o algo/hodl/cpuminer-utilstrencodings.o algo/hodl/cpuminer-hodl-wolf.o algo/hodl/cpuminer-aes.o algo/luffa/cpuminer-luffa.o algo/luffa/sse2/cpuminer-luffa_for_sse2.o algo/lyra2/cpuminer-lyra2.o algo/lyra2/cpuminer-sponge.o algo/lyra2/cpuminer-lyra2rev2.o algo/lyra2/cpuminer-lyra2re.o algo/keccak/sse2/cpuminer-keccak.o algo/cpuminer-m7mhash.o algo/cpuminer-neoscrypt.o algo/cpuminer-nist5.o algo/cpuminer-pluck.o algo/quark/cpuminer-quark.o algo/qubit/cpuminer-qubit.o algo/ripemd/cpuminer-sph_ripemd.o algo/cpuminer-scrypt.o algo/scryptjane/cpuminer-scrypt-jane.o algo/sha2/cpuminer-sha2.o algo/simd/sse2/cpuminer-nist.o algo/simd/sse2/cpuminer-vector.o algo/skein/cpuminer-skein.o algo/skein/cpuminer-skein2.o algo/cpuminer-s3.o algo/tiger/cpuminer-sph_tiger.o algo/x11/cpuminer-x11.o algo/x11/cpuminer-x11evo.o algo/x11/cpuminer-x11gost.o algo/x11/cpuminer-c11.o algo/x13/cpuminer-x13.o algo/x14/cpuminer-x14.o algo/x15/cpuminer-x15.o algo/x17/cpuminer-x17.o algo/yescrypt/cpuminer-yescrypt.o algo/yescrypt/cpuminer-yescrypt-common.o algo/yescrypt/cpuminer-sha256_Y.o algo/yescrypt/cpuminer-yescrypt-simd.o algo/cpuminer-zr5.o asm/cpuminer-neoscrypt_asm.o  asm/cpuminer-sha2-x64.o asm/cpuminer-scrypt-x64.o asm/cpuminer-aesb-x64.o   -lcurl -lz -ljansson -lpthread  -lssl -lcrypto -lgmp
/usr/bin/ld: algo/groestl/sse2/cpuminer-grso-asm.o: relocation R_X86_64_32S against `grsoT0' can not be used when making a shared object; recompile with -fPIC
algo/groestl/sse2/cpuminer-grso-asm.o: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
Makefile:1306: recipe for target 'cpuminer' failed
make[2]: *** [cpuminer] Error 1
make[2]: Leaving directory '/home/wolf/miners/cpuminer-opt-3.3.6'
Makefile:3336: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/wolf/miners/cpuminer-opt-3.3.6'
Makefile:658: recipe for target 'all' failed
make: *** [all] Error 2

I'm going to assume cpuminer-grso-asm.o was made from ASM, and that ASM was written for 32-bit?

I don't know the history of all those SSE2 macros but I think your assumtion is correct. I am pretty fed up with
the groestl sse2 code in particular. I have considered ripping it all out because there is an AES version and
the GRS macros are only used on non-aes cpus.

I'm not sure why you have the error. It's odd that it says to use -fPIC when it was already set. Anyway it compiled
for me with -fPIC so I don't know what you did to break it.

I literally downloaded it, tried build.sh - cleaned, added -fPIC, tried again.

gcc vs g++ or 99 vs 11?

Code:
gcc -std=gnu99 -DHAVE_CONFIG_H -I.  -Iyes/include -fno-strict-aliasing -I./compat/jansson -I. -Iyes/include -Wno-pointer-sign -Wno-pointer-to-int-cast   -fPIC -O3 -march=native -Wall  -Iyes/include -MT algo/groestl/sse2/cpuminer-grso-asm.o -MD -MP -MF algo/groestl/sse2/.deps/cpuminer-grso-asm.Tpo -c -o algo/groestl/sse2/cpuminer-grso-asm.o `test -f 'algo/groestl/sse2/grso-asm.c' || echo './'`algo/groestl/sse2/grso-asm.c

Tried -std=gnu11.

he is using Arch linux, so i guess gcc 6.1.1

Downgraded to compile this.

Code:
Donations: BTC: 1WoLFdwcfNEg64fTYsX1P25KUzzSjtEZC -- XMR: 45SLUTzk7UXYHmzJ7bFN6FPfzTusdUVAZjPRgmEDw7G3SeimWM2kCdnDQXwDBYGUWaBtZNgjYtEYA22aMQT4t8KfU3vHLHG
joblo
Legendary
*
Offline Offline

Activity: 1148
Merit: 1016


View Profile
June 09, 2016, 03:58:40 PM
 #880


Tried -std=gnu11.

he is using Arch linux, so i guess gcc 6.1.1

Downgraded to compile this.

As long as you're compiling for AES you don't need GRS, just rip it out.

cpuminer-opt developer, https://bitcointalk.org/index.php?topic=1326803.0
BTC: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT,
ETH: 0x72122edabcae9d3f57eab0729305a425f6fef6d0
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 [44] 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 ... 191 »
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!