Compiling engine for release

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

AndrewGrant
Posts: 1759
Joined: Tue Apr 19, 2016 6:08 am
Location: U.S.A
Full name: Andrew Grant

Compiling engine for release

Post by AndrewGrant »

I seem to be unable to compile my engine in a way that other users are able to run the executable.

My makefile can be found here

https://github.com/AndyGrant/Ethereal/b ... makeEngine

I suppose I should remove -march=native, but what else must be changed?

Thanks, Andrew Grant
jdart
Posts: 4367
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: Compiling engine for release

Post by jdart »

Definitely remove -march=native. I compile with -msse3 for older machines. Then I also have a separate build that uses -msse4.2 and enables use of the popcnt intrinsics. If you can assume even newer hardware you can use Avx and/or bmi instructions.

--Jon
Sven
Posts: 4052
Joined: Thu May 15, 2008 9:57 pm
Location: Berlin, Germany
Full name: Sven Schüle

Re: Compiling engine for release

Post by Sven »

AndrewGrant wrote:I seem to be unable to compile my engine in a way that other users are able to run the executable.

My makefile can be found here

https://github.com/AndyGrant/Ethereal/b ... makeEngine

I suppose I should remove -march=native, but what else must be changed?

Thanks, Andrew Grant
Perhaps you could try "-static" instead of "-static-libgcc -static-libstdc++". Or avoid static linking at all. It seems GNU libc is not designed for static linking.

EDIT: I realize you are probably talking about a Windows build, in that case I don't know. I was talking about a Linux build.
smatovic
Posts: 2662
Joined: Wed Mar 10, 2010 10:18 pm
Location: Hamburg, Germany
Full name: Srdja Matovic

Re: Compiling engine for release...mingw

Post by smatovic »

concerning to build windows 32 and 64 bit binaries on Linux,
you could use mingw-64.

These Debian packages should do it:

Code: Select all

ii  gcc-mingw-w64-i686                                    4.8.2-10ubuntu2+12                                  amd64        GNU C compiler for MinGW-w64 targeting Win32
ii  gcc-mingw-w64-x86-64                                  4.8.2-10ubuntu2+12                                  amd64        GNU C compiler for MinGW-w64 targeting Win64
In the Makefile you just replace the compiler with

Code: Select all

CC=/usr/bin/i686-w64-mingw32-gcc
or

Code: Select all

CC=/usr/bin/x86_64-w64-mingw32-gcc
--
Srdja
User avatar
velmarin
Posts: 1600
Joined: Mon Feb 21, 2011 9:48 am

Re: Compiling engine for release...mingw

Post by velmarin »

Well compiles in Visual Studio with Intel Compiler and LLVM-Clang.
Run ICU, isready, register, ect.
It breaks with the command "GO" pointing to the next line in movegen.c:

Code: Select all

if ((MoveDatabaseBishop[sq][dbIndex] & enemyBishops) != 0) return 1;
The use of depends on its executable give many errors....
http://www.dependencywalker.com/