Closed sshivaji closed 7 years ago
Forgot to mention that the following patch works for me with Mac OS X clang:
diff --git a/parser/parser.cpp b/parser/parser.cpp
index d0fe174..929930d 100644
--- a/parser/parser.cpp
+++ b/parser/parser.cpp
@@ -82,7 +82,7 @@ Token ToToken[256];
Step ToStep[STATE_NB][TOKEN_NB];
Position RootPos;
-void map(const char* fname, void** baseAddress, uint64_t* mapping, size_t* size) {
+void map(const char* fname, void** baseAddress, uint64_t* mapping, unsigned long long* size) {
#ifndef _WIN32
struct stat statbuf;
Sorry, I gave patch for chess_db, for scoutfish its:
I am happy to submit a pull request. However, I feel this is not the best fix as we lose out on the size_t abstraction due to clang's interpretation of size_t.
diff --git a/src/misc.cpp b/src/misc.cpp
index bd23252..8472915 100644
--- a/src/misc.cpp
+++ b/src/misc.cpp
@@ -329,7 +329,7 @@ void bindThisThread(size_t idx) {
} // namespace WinProcGroup
-void mem_map(const char* fname, void** baseAddress, uint64_t* mapping, size_t* size) {
+void mem_map(const char* fname, void** baseAddress, uint64_t* mapping, uint64_t* size) {
#ifndef _WIN32
struct stat statbuf;
diff --git a/src/misc.h b/src/misc.h
index 1cc215c..56a09e1 100644
--- a/src/misc.h
+++ b/src/misc.h
@@ -108,7 +108,7 @@ namespace WinProcGroup {
void bindThisThread(size_t idx);
}
-void mem_map(const char* fname, void** baseAddress, uint64_t* mapping, size_t* size);
+void mem_map(const char* fname, void** baseAddress, uint64_t* mapping, uint64_t* size);
void mem_unmap(void* baseAddress, uint64_t mapping);
@sshivaji I see
46 warnings and 1 error generated.
Can you please post those warnings, indeed can you pelase post a full compile output? Thanks.
Full compiler output:
make build ARCH=x86-64
/Applications/Xcode.app/Contents/Developer/usr/bin/make ARCH=x86-64 COMP=gcc config-sanity
Config:
debug: 'no'
optimize: 'yes'
arch: 'x86_64'
bits: '64'
prefetch: 'yes'
popcnt: 'no'
sse: 'yes'
pext: 'no'
Flags:
CXX: g++
CXXFLAGS: -Wall -Wcast-qual -fno-exceptions -fno-rtti -std=c++11 -pedantic -Wextra -Wshadow -m64 -arch x86_64 -mmacosx-version-min=10.9 -DNDEBUG -O3 -mdynamic-no-pic -DIS_64BIT -msse -flto
LDFLAGS: -arch x86_64 -mmacosx-version-min=10.9 -lpthread -Wall -Wcast-qual -fno-exceptions -fno-rtti -std=c++11 -pedantic -Wextra -Wshadow -m64 -arch x86_64 -mmacosx-version-min=10.9 -DNDEBUG -O3 -mdynamic-no-pic -DIS_64BIT -msse -flto
Testing config sanity. If this fails, try 'make help' ...
/Applications/Xcode.app/Contents/Developer/usr/bin/make ARCH=x86-64 COMP=gcc all
g++ -Wall -Wcast-qual -fno-exceptions -fno-rtti -std=c++11 -pedantic -Wextra -Wshadow -m64 -arch x86_64 -mmacosx-version-min=10.9 -DNDEBUG -O3 -mdynamic-no-pic -DIS_64BIT -msse -flto -c -o parser.o parser.cpp
parser.cpp:525:12: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['\n'] = ToToken['\r'] = ToToken[' '] = ToToken['\t'] = T_SPACES;
^~~~~
parser.cpp:525:28: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['\n'] = ToToken['\r'] = ToToken[' '] = ToToken['\t'] = T_SPACES;
^~~~~
parser.cpp:525:44: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['\n'] = ToToken['\r'] = ToToken[' '] = ToToken['\t'] = T_SPACES;
^~~~
parser.cpp:525:59: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['\n'] = ToToken['\r'] = ToToken[' '] = ToToken['\t'] = T_SPACES;
^~~~~
parser.cpp:526:12: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['/'] = ToToken['*'] = T_RESULT;
^~~~
parser.cpp:526:27: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['/'] = ToToken['*'] = T_RESULT;
^~~~
parser.cpp:527:12: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['-'] = T_MINUS;
^~~~
parser.cpp:528:12: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['.'] = T_DOT;
^~~~
parser.cpp:529:12: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['"'] = T_QUOTES;
^~~~
parser.cpp:530:12: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['$'] = T_DOLLAR;
^~~~
parser.cpp:531:12: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['['] = T_LEFT_BRACKET;
^~~~
parser.cpp:532:12: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken[']'] = T_RIGHT_BRACKET;
^~~~
parser.cpp:533:12: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['{'] = T_LEFT_BRACE;
^~~~
parser.cpp:534:12: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['}'] = T_RIGHT_BRACE;
^~~~
parser.cpp:535:12: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['('] = T_LEFT_PARENTHESIS;
^~~~
parser.cpp:536:12: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken[')'] = T_RIGHT_PARENTHESIS;
^~~~
parser.cpp:537:12: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['E'] = T_EVENT;
^~~~
parser.cpp:538:12: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['0'] = T_ZERO;
^~~~
parser.cpp:539:12: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['1'] = ToToken['2'] = ToToken['3'] =
^~~~
parser.cpp:539:27: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['1'] = ToToken['2'] = ToToken['3'] =
^~~~
parser.cpp:539:42: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['1'] = ToToken['2'] = ToToken['3'] =
^~~~
parser.cpp:540:12: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['4'] = ToToken['5'] = ToToken['6'] = ToToken['7'] =
^~~~
parser.cpp:540:27: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['4'] = ToToken['5'] = ToToken['6'] = ToToken['7'] =
^~~~
parser.cpp:540:42: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['4'] = ToToken['5'] = ToToken['6'] = ToToken['7'] =
^~~~
parser.cpp:540:57: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['4'] = ToToken['5'] = ToToken['6'] = ToToken['7'] =
^~~~
parser.cpp:541:12: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['8'] = ToToken['9'] = T_DIGIT;
^~~~
parser.cpp:541:27: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['8'] = ToToken['9'] = T_DIGIT;
^~~~
parser.cpp:542:12: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['a'] = ToToken['b'] = ToToken['c'] = ToToken['d'] =
^~~~
parser.cpp:542:27: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['a'] = ToToken['b'] = ToToken['c'] = ToToken['d'] =
^~~~
parser.cpp:542:42: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['a'] = ToToken['b'] = ToToken['c'] = ToToken['d'] =
^~~~
parser.cpp:542:57: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['a'] = ToToken['b'] = ToToken['c'] = ToToken['d'] =
^~~~
parser.cpp:543:12: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['e'] = ToToken['f'] = ToToken['g'] = ToToken['h'] =
^~~~
parser.cpp:543:27: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['e'] = ToToken['f'] = ToToken['g'] = ToToken['h'] =
^~~~
parser.cpp:543:42: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['e'] = ToToken['f'] = ToToken['g'] = ToToken['h'] =
^~~~
parser.cpp:543:57: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['e'] = ToToken['f'] = ToToken['g'] = ToToken['h'] =
^~~~
parser.cpp:544:12: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['N'] = ToToken['B'] = ToToken['R'] = ToToken['Q'] =
^~~~
parser.cpp:544:27: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['N'] = ToToken['B'] = ToToken['R'] = ToToken['Q'] =
^~~~
parser.cpp:544:42: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['N'] = ToToken['B'] = ToToken['R'] = ToToken['Q'] =
^~~~
parser.cpp:544:57: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['N'] = ToToken['B'] = ToToken['R'] = ToToken['Q'] =
^~~~
parser.cpp:545:12: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['K'] = ToToken['O'] = ToToken['o'] = T_MOVE_HEAD;
^~~~
parser.cpp:545:27: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['K'] = ToToken['O'] = ToToken['o'] = T_MOVE_HEAD;
^~~~
parser.cpp:545:42: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['K'] = ToToken['O'] = ToToken['o'] = T_MOVE_HEAD;
^~~~
parser.cpp:550:12: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['!'] = ToToken['?'] = ToToken['+'] = ToToken['#'] = T_SPACES;
^~~~
parser.cpp:550:27: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['!'] = ToToken['?'] = ToToken['+'] = ToToken['#'] = T_SPACES;
^~~~
parser.cpp:550:42: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['!'] = ToToken['?'] = ToToken['+'] = ToToken['#'] = T_SPACES;
^~~~
parser.cpp:550:57: warning: array subscript is of type 'char' [-Wchar-subscripts]
ToToken['!'] = ToToken['?'] = ToToken['+'] = ToToken['#'] = T_SPACES;
^~~~
46 warnings generated.
g++ -Wall -Wcast-qual -fno-exceptions -fno-rtti -std=c++11 -pedantic -Wextra -Wshadow -m64 -arch x86_64 -mmacosx-version-min=10.9 -DNDEBUG -O3 -mdynamic-no-pic -DIS_64BIT -msse -flto -c -o position.o position.cpp
g++ -o parser bitboard.o book.o main.o misc.o parser.o position.o uci.o -arch x86_64 -mmacosx-version-min=10.9 -lpthread -Wall -Wcast-qual -fno-exceptions -fno-rtti -std=c++11 -pedantic -Wextra -Wshadow -m64 -arch x86_64 -mmacosx-version-min=10.9 -DNDEBUG -O3 -mdynamic-no-pic -DIS_64BIT -msse -flto
Ok thanks, this is harmless.
The root cause is that size_t compiles to unsigned long in Mac OS X's clang compiler as opposed to unsigned long long in gcc. Should we cast to unsigned long long explicitly and solve the issue?