Skip to content

Commit da061bb

Browse files
sthibaulNikolajBjorner
authored andcommitted
Add hurd support
Signed-off-by: Samuel Thibault <[email protected]>
1 parent 16d4ccd commit da061bb

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,9 @@ if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
199199
if ("${TARGET_ARCHITECTURE}" STREQUAL "x86_64")
200200
list(APPEND Z3_COMPONENT_CXX_DEFINES "-D_USE_THREAD_LOCAL")
201201
endif()
202+
elseif ("${CMAKE_SYSTEM_NAME}" MATCHES "GNU")
203+
message(STATUS "Platform: GNU/Hurd")
204+
list(APPEND Z3_COMPONENT_CXX_DEFINES "-D_HURD_")
202205
elseif ("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
203206
# Does macOS really not need any special flags?
204207
message(STATUS "Platform: Darwin")

scripts/mk_util.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ def getenv(name, default):
7070
#####################
7171
IS_WINDOWS=False
7272
IS_LINUX=False
73+
IS_HURD=False
7374
IS_OSX=False
7475
IS_FREEBSD=False
7576
IS_NETBSD=False
@@ -145,6 +146,9 @@ def is_windows():
145146
def is_linux():
146147
return IS_LINUX
147148

149+
def is_hurd():
150+
return IS_HURD
151+
148152
def is_freebsd():
149153
return IS_FREEBSD
150154

@@ -591,6 +595,8 @@ def check_eol():
591595
PREFIX="/usr/local"
592596
elif os.uname()[0] == 'Linux':
593597
IS_LINUX=True
598+
elif os.uname()[0] == 'GNU':
599+
IS_HURD=True
594600
elif os.uname()[0] == 'FreeBSD':
595601
IS_FREEBSD=True
596602
elif os.uname()[0] == 'NetBSD':
@@ -1258,7 +1264,7 @@ def get_so_ext():
12581264
sysname = os.uname()[0]
12591265
if sysname == 'Darwin':
12601266
return 'dylib'
1261-
elif sysname == 'Linux' or sysname == 'FreeBSD' or sysname == 'NetBSD' or sysname == 'OpenBSD':
1267+
elif sysname == 'Linux' or sysname == 'GNU' or sysname == 'FreeBSD' or sysname == 'NetBSD' or sysname == 'OpenBSD':
12621268
return 'so'
12631269
elif sysname == 'CYGWIN' or sysname.startswith('MSYS_NT') or sysname.startswith('MINGW'):
12641270
return 'dll'
@@ -1825,6 +1831,8 @@ def mk_makefile(self, out):
18251831
t = t.replace('PLATFORM', 'darwin')
18261832
elif IS_LINUX:
18271833
t = t.replace('PLATFORM', 'linux')
1834+
elif IS_GNU:
1835+
t = t.replace('PLATFORM', 'hurd')
18281836
elif IS_FREEBSD:
18291837
t = t.replace('PLATFORM', 'freebsd')
18301838
elif IS_NETBSD:
@@ -2553,6 +2561,11 @@ def mk_config():
25532561
SO_EXT = '.so'
25542562
SLIBFLAGS = '-shared'
25552563
SLIBEXTRAFLAGS = '%s -Wl,-soname,libz3.so' % SLIBEXTRAFLAGS
2564+
elif sysname == 'GNU':
2565+
CXXFLAGS = '%s -D_HURD_' % CXXFLAGS
2566+
OS_DEFINES = '-D_HURD_'
2567+
SO_EXT = '.so'
2568+
SLIBFLAGS = '-shared'
25562569
elif sysname == 'FreeBSD':
25572570
CXXFLAGS = '%s -D_FREEBSD_' % CXXFLAGS
25582571
OS_DEFINES = '-D_FREEBSD_'

0 commit comments

Comments
 (0)