Skip to content

Commit 41257ff

Browse files
committed
tcc jit should work on Ubuntu
1 parent a173fc3 commit 41257ff

File tree

2 files changed

+29
-20
lines changed

2 files changed

+29
-20
lines changed

src/pyoptinterface/_src/jit_c.py

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,28 @@
2424
raise Exception("Failed to load libtcc from tccbox")
2525

2626
# On Linux/Mac, tcc has lib/tcc/include/ and lib/tcc/libtcc1.a which must be included in compilation
27-
libtcc_extra_include_path = None
28-
libtcc_extra_lib_path = None
29-
libtcc_extra_lib_names = None
27+
libtcc_extra_include_paths = []
28+
libtcc_extra_lib_paths = []
29+
libtcc_extra_lib_names = []
3030
if system in ["Linux", "Darwin"]:
31-
libtcc_extra_include_path = os.path.join(libtcc_dir, "tcc", "include")
32-
libtcc_extra_lib_path = os.path.join(libtcc_dir, "tcc")
33-
libtcc_extra_lib_names = ["tcc1", "m"]
31+
libtcc_extra_include_paths.append(os.path.join(libtcc_dir, "tcc", "include"))
32+
libtcc_extra_lib_paths.append(os.path.join(libtcc_dir, "tcc"))
33+
libtcc_extra_lib_names.append("m")
34+
if system == "Linux":
35+
libtcc_extra_include_paths.extend(
36+
[
37+
"/usr/include",
38+
"/usr/local/include",
39+
"/usr/include/x86_64-linux-gnu",
40+
]
41+
)
42+
libtcc_extra_lib_paths.extend(
43+
[
44+
"/usr/lib",
45+
"/usr/local/lib",
46+
"/usr/lib/x86_64-linux-gnu",
47+
]
48+
)
3449

3550

3651
class TCCJITCompiler:
@@ -43,14 +58,13 @@ def create_instance(self):
4358
inst.init()
4459

4560
# Add extra include path and library path
46-
if libtcc_extra_include_path:
47-
inst.add_include_path(libtcc_extra_include_path)
48-
inst.add_sysinclude_path(libtcc_extra_include_path)
49-
if libtcc_extra_lib_path:
50-
inst.add_library_path(libtcc_extra_lib_path)
51-
if libtcc_extra_lib_names:
52-
for name in libtcc_extra_lib_names:
53-
inst.add_library(name)
61+
for path in libtcc_extra_include_paths:
62+
inst.add_include_path(path)
63+
inst.add_sysinclude_path(path)
64+
for path in libtcc_extra_lib_paths:
65+
inst.add_library_path(path)
66+
for name in libtcc_extra_lib_names:
67+
inst.add_library(name)
5468

5569
self.instances.append(inst)
5670

tests/conftest.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,7 @@ def c():
4444
return ipopt.Model(jit="C")
4545

4646
ipopt_model_dict["ipopt_llvm"] = llvm
47-
48-
system = platform.system()
49-
50-
# pytest with tcc jit does not work on Linux and mac
51-
if system == "Windows":
52-
ipopt_model_dict["ipopt_c"] = c
47+
ipopt_model_dict["ipopt_c"] = c
5348

5449

5550
@pytest.fixture(params=ipopt_model_dict.keys())

0 commit comments

Comments
 (0)