Skip to content

Commit a61d6b6

Browse files
committed
Expose RTLD_XXX and HAVE_XXX constants, enable posix tests
1 parent d394bba commit a61d6b6

File tree

7 files changed

+188
-7
lines changed

7 files changed

+188
-7
lines changed
Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
*graalpython.lib-python.3.test.test_posix.PosixGroupsTester.test_initgroups
2+
*graalpython.lib-python.3.test.test_posix.PosixGroupsTester.test_setgroups
3+
*graalpython.lib-python.3.test.test_posix.PosixTester.testNoArgFunctions
4+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_access
5+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_access_dir_fd
6+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_chdir
7+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_chflags
8+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_chmod_dir_fd
9+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_chown
10+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_chown_dir_fd
11+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_confstr
12+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_dup
13+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_dup2
14+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_environ
15+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_fchown
16+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_fexecve
17+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_fs_holes
18+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_fstat
19+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_fstatvfs
20+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_ftruncate
21+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_get_and_set_scheduler_and_param
22+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_getcwd_long_pathnames
23+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_getgrouplist
24+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_getgroups
25+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_getresgid
26+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_getresuid
27+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_initgroups
28+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_lchflags_regular_file
29+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_lchflags_symlink
30+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_lchown
31+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_link_dir_fd
32+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_listdir
33+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_listdir_bytes
34+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_listdir_bytes_like
35+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_listdir_default
36+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_listdir_fd
37+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_lockf
38+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_makedev
39+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_mkdir_dir_fd
40+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_mkfifo
41+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_mkfifo_dir_fd
42+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_mknod
43+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_mknod_dir_fd
44+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_open_dir_fd
45+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_oscloexec
46+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_osexlock
47+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_osshlock
48+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_path_error2
49+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_path_with_null_byte
50+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_path_with_null_character
51+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_pipe
52+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_pipe2
53+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_pipe2_c_limits
54+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_posix_fadvise
55+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_posix_fadvise_errno
56+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_posix_fallocate
57+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_posix_fallocate_errno
58+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_pread
59+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_preadv
60+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_preadv_flags
61+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_preadv_overflow_32bits
62+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_putenv
63+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_pwrite
64+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_pwritev
65+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_pwritev_flags
66+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_pwritev_overflow_32bits
67+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_readlink_dir_fd
68+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_readv
69+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_readv_overflow_32bits
70+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_register_at_fork
71+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_rename_dir_fd
72+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_rtld_constants
73+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_sched_getaffinity
74+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_sched_priority
75+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_sched_rr_get_interval
76+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_sched_setaffinity
77+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_sched_yield
78+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_setresgid
79+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_setresgid_exception
80+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_setresuid
81+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_setresuid_exception
82+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_stat
83+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_stat_dir_fd
84+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_statvfs
85+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_strerror
86+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_symlink_dir_fd
87+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_truncate
88+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_umask
89+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_unlink_dir_fd
90+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_utime
91+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_utime_dir_fd
92+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_utime_nofollow_symlinks
93+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_utime_with_fd
94+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_waitid
95+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_writev
96+
*graalpython.lib-python.3.test.test_posix.PosixTester.test_writev_overflow_32bits
97+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawn.test_bad_file_actions
98+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawn.test_close_file
99+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawn.test_dup2
100+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawn.test_empty_file_actions
101+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawn.test_multiple_file_actions
102+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawn.test_no_such_executable
103+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawn.test_none_file_actions
104+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawn.test_open_file
105+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawn.test_resetids
106+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawn.test_resetids_explicit_default
107+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawn.test_resetids_wrong_type
108+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawn.test_returns_pid
109+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawn.test_setpgroup
110+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawn.test_setpgroup_wrong_type
111+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawn.test_setscheduler_only_param
112+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawn.test_setscheduler_with_policy
113+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawn.test_setsid
114+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawn.test_setsigdef
115+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawn.test_setsigdef_wrong_type
116+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawn.test_setsigmask
117+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawn.test_setsigmask_wrong_type
118+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawn.test_specify_environment
119+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawnP.test_bad_file_actions
120+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawnP.test_close_file
121+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawnP.test_dup2
122+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawnP.test_empty_file_actions
123+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawnP.test_multiple_file_actions
124+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawnP.test_no_such_executable
125+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawnP.test_none_file_actions
126+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawnP.test_open_file
127+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawnP.test_posix_spawnp
128+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawnP.test_resetids
129+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawnP.test_resetids_explicit_default
130+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawnP.test_resetids_wrong_type
131+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawnP.test_returns_pid
132+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawnP.test_setpgroup
133+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawnP.test_setpgroup_wrong_type
134+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawnP.test_setscheduler_only_param
135+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawnP.test_setscheduler_with_policy
136+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawnP.test_setsid
137+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawnP.test_setsigdef
138+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawnP.test_setsigdef_wrong_type
139+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawnP.test_setsigmask
140+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawnP.test_setsigmask_wrong_type
141+
*graalpython.lib-python.3.test.test_posix.TestPosixSpawnP.test_specify_environment

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/PosixModuleBuiltins.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import java.security.NoSuchAlgorithmException;
3838
import java.security.SecureRandom;
3939
import java.util.ArrayList;
40+
import java.util.Collections;
4041
import java.util.List;
4142
import java.util.Map;
4243
import java.util.Map.Entry;
@@ -192,6 +193,7 @@ public PosixModuleBuiltins() {
192193
addConstants(PosixConstants.openFlags);
193194
addConstants(PosixConstants.waitOptions);
194195
addConstants(PosixConstants.accessMode);
196+
addConstants(PosixConstants.rtld);
195197

196198
addConstant(PosixConstants.SEEK_DATA);
197199
addConstant(PosixConstants.SEEK_HOLE);
@@ -212,7 +214,20 @@ private void addConstants(IntConstant[] constants) {
212214
@Override
213215
public void initialize(PythonCore core) {
214216
super.initialize(core);
215-
builtinConstants.put("_have_functions", core.factory().createList());
217+
ArrayList<String> haveFunctions = new ArrayList<>();
218+
Collections.addAll(haveFunctions, "HAVE_FACCESSAT", "HAVE_FCHDIR", "HAVE_FCHMOD", "HAVE_FCHMODAT", "HAVE_FDOPENDIR", "HAVE_FSTATAT", "HAVE_FTRUNCATE", "HAVE_FUTIMES", "HAVE_LUTIMES",
219+
"HAVE_MKDIRAT", "HAVE_OPENAT", "HAVE_READLINKAT", "HAVE_RENAMEAT", "HAVE_SYMLINKAT", "HAVE_UNLINKAT");
220+
// Not implemented yet:
221+
// "HAVE_FCHOWN", "HAVE_FCHOWNAT", "HAVE_FEXECVE", "HAVE_FPATHCONF", "HAVE_FSTATVFS",
222+
// "HAVE_FUTIMESAT", "HAVE_LINKAT", "HAVE_LCHFLAGS", "HAVE_LCHMOD", "HAVE_LCHOWN", "HAVE_LSTAT",
223+
// "HAVE_MEMFD_CREATE", "HAVE_MKFIFOAT", "HAVE_MKNODAT",
224+
if (PosixConstants.HAVE_FUTIMENS.value) {
225+
haveFunctions.add("HAVE_FUTIMENS");
226+
}
227+
if (PosixConstants.HAVE_UTIMENSAT.value) {
228+
haveFunctions.add("HAVE_UTIMENSAT");
229+
}
230+
builtinConstants.put("_have_functions", core.factory().createList(haveFunctions.toArray()));
216231
builtinConstants.put("environ", core.factory().createDict());
217232

218233
StructSequence.initType(core, STAT_RESULT_DESC);

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/runtime/PosixConstants.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,10 @@ public final class PosixConstants {
115115
public static final MandatoryIntConstant W_OK;
116116
public static final MandatoryIntConstant X_OK;
117117
public static final MandatoryIntConstant F_OK;
118+
public static final MandatoryIntConstant RTLD_LAZY;
119+
public static final MandatoryIntConstant RTLD_NOW;
120+
public static final MandatoryIntConstant RTLD_GLOBAL;
121+
public static final MandatoryIntConstant RTLD_LOCAL;
118122

119123
public static final IntConstant[] openFlags;
120124
public static final IntConstant[] fileType;
@@ -125,6 +129,7 @@ public final class PosixConstants {
125129
public static final IntConstant[] direntType;
126130
public static final IntConstant[] waitOptions;
127131
public static final IntConstant[] accessMode;
132+
public static final IntConstant[] rtld;
128133

129134
static {
130135
Registry reg = Registry.create();
@@ -194,6 +199,10 @@ public final class PosixConstants {
194199
W_OK = reg.createMandatoryInt("W_OK");
195200
X_OK = reg.createMandatoryInt("X_OK");
196201
F_OK = reg.createMandatoryInt("F_OK");
202+
RTLD_LAZY = reg.createMandatoryInt("RTLD_LAZY");
203+
RTLD_NOW = reg.createMandatoryInt("RTLD_NOW");
204+
RTLD_GLOBAL = reg.createMandatoryInt("RTLD_GLOBAL");
205+
RTLD_LOCAL = reg.createMandatoryInt("RTLD_LOCAL");
197206

198207
openFlags = new IntConstant[]{O_ACCMODE, O_RDONLY, O_WRONLY, O_RDWR, O_CREAT, O_EXCL, O_TRUNC, O_APPEND, O_NONBLOCK, O_NDELAY, O_DSYNC, O_CLOEXEC, O_SYNC, O_DIRECT, O_RSYNC, O_TMPFILE};
199208
fileType = new IntConstant[]{S_IFMT, S_IFSOCK, S_IFLNK, S_IFREG, S_IFBLK, S_IFDIR, S_IFCHR, S_IFIFO};
@@ -204,6 +213,7 @@ public final class PosixConstants {
204213
direntType = new IntConstant[]{DT_UNKNOWN, DT_FIFO, DT_CHR, DT_DIR, DT_BLK, DT_REG, DT_LNK, DT_SOCK, DT_WHT};
205214
waitOptions = new IntConstant[]{WNOHANG, WUNTRACED};
206215
accessMode = new IntConstant[]{R_OK, W_OK, X_OK, F_OK};
216+
rtld = new IntConstant[]{RTLD_LAZY, RTLD_NOW, RTLD_GLOBAL, RTLD_LOCAL};
207217
}
208218
// end generated by gen_native_cfg.py
209219
// @formatter:on

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/runtime/PosixConstantsDarwin.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
*/
4141
package com.oracle.graal.python.runtime;
4242

43-
// Auto generated by gen_native_cfg.py at 2021-03-12 21:31:49.719570
43+
// Auto generated by gen_native_cfg.py at 2021-03-15 12:54:37.728221
4444
// on Darwin 18.7.0 Darwin Kernel Version 18.7.0: Tue Aug 20 16:57:14 PDT 2019; root:xnu-4903.271.2~2/RELEASE_X86_64 x86_64
4545
class PosixConstantsDarwin {
4646

@@ -109,5 +109,9 @@ static void getConstants(PosixConstants.Registry constants) {
109109
constants.put("W_OK", 0x00000002);
110110
constants.put("X_OK", 0x00000001);
111111
constants.put("F_OK", 0x00000000);
112+
constants.put("RTLD_LAZY", 0x00000001);
113+
constants.put("RTLD_NOW", 0x00000002);
114+
constants.put("RTLD_GLOBAL", 0x00000008);
115+
constants.put("RTLD_LOCAL", 0x00000004);
112116
}
113117
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/runtime/PosixConstantsLinux.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
*/
4141
package com.oracle.graal.python.runtime;
4242

43-
// Auto generated by gen_native_cfg.py at 2021-03-12 19:20:10.828148
43+
// Auto generated by gen_native_cfg.py at 2021-03-15 10:43:49.015813
4444
// on Linux 5.8.0-44-generic #50~20.04.1-Ubuntu SMP Wed Feb 10 21:07:30 UTC 2021 x86_64
4545
class PosixConstantsLinux {
4646

@@ -111,5 +111,9 @@ static void getConstants(PosixConstants.Registry constants) {
111111
constants.put("W_OK", 0x00000002);
112112
constants.put("X_OK", 0x00000001);
113113
constants.put("F_OK", 0x00000000);
114+
constants.put("RTLD_LAZY", 0x00000001);
115+
constants.put("RTLD_NOW", 0x00000002);
116+
constants.put("RTLD_GLOBAL", 0x00000100);
117+
constants.put("RTLD_LOCAL", 0x00000000);
114118
}
115119
}

graalpython/lib-python/3/test/test_posix.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1079,7 +1079,7 @@ def test_chmod_dir_fd(self):
10791079
finally:
10801080
posix.close(f)
10811081

1082-
@unittest.skipUnless(os.chown in os.supports_dir_fd, "test needs dir_fd support in os.chown()")
1082+
@unittest.skipUnless(hasattr(posix, 'chown') and os.chown in os.supports_dir_fd, "test needs dir_fd support in os.chown()")
10831083
def test_chown_dir_fd(self):
10841084
support.unlink(support.TESTFN)
10851085
support.create_empty_file(support.TESTFN)
@@ -1142,7 +1142,7 @@ def test_utime_dir_fd(self):
11421142
finally:
11431143
posix.close(f)
11441144

1145-
@unittest.skipUnless(os.link in os.supports_dir_fd, "test needs dir_fd support in os.link()")
1145+
@unittest.skipUnless(hasattr(posix, 'link') and os.link in os.supports_dir_fd, "test needs dir_fd support in os.link()")
11461146
def test_link_dir_fd(self):
11471147
f = posix.open(posix.getcwd(), posix.O_RDONLY)
11481148
try:
@@ -1167,7 +1167,7 @@ def test_mkdir_dir_fd(self):
11671167
posix.close(f)
11681168
support.rmtree(support.TESTFN + 'dir')
11691169

1170-
@unittest.skipUnless((os.mknod in os.supports_dir_fd) and hasattr(stat, 'S_IFIFO'),
1170+
@unittest.skipUnless(hasattr(posix, 'mknod') and (os.mknod in os.supports_dir_fd) and hasattr(stat, 'S_IFIFO'),
11711171
"test requires both stat.S_IFIFO and dir_fd support for os.mknod()")
11721172
def test_mknod_dir_fd(self):
11731173
# Test using mknodat() to create a FIFO (the only use specified
@@ -1251,7 +1251,7 @@ def test_unlink_dir_fd(self):
12511251
finally:
12521252
posix.close(f)
12531253

1254-
@unittest.skipUnless(os.mkfifo in os.supports_dir_fd, "test needs dir_fd support in os.mkfifo()")
1254+
@unittest.skipUnless(hasattr(posix, 'mkfifo') and os.mkfifo in os.supports_dir_fd, "test needs dir_fd support in os.mkfifo()")
12551255
def test_mkfifo_dir_fd(self):
12561256
support.unlink(support.TESTFN)
12571257
f = posix.open(posix.getcwd(), posix.O_RDONLY)

scripts/gen_native_cfg.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@
6363

6464
includes = '''
6565
#include <dirent.h>
66+
#include <dlfcn.h>
6667
#include <errno.h>
6768
#include <fcntl.h>
6869
#include <limits.h>
@@ -170,6 +171,12 @@
170171
x W_OK
171172
x X_OK
172173
x F_OK
174+
175+
[rtld]
176+
x RTLD_LAZY
177+
x RTLD_NOW
178+
x RTLD_GLOBAL
179+
x RTLD_LOCAL
173180
'''
174181

175182

0 commit comments

Comments
 (0)