Skip to content

Commit f2b7b9f

Browse files
committed
ensure that created executables are executable
1 parent d90e23b commit f2b7b9f

File tree

1 file changed

+7
-1
lines changed
  • graalpython/com.oracle.graal.python.shell/src/com/oracle/graal/python/shell

1 file changed

+7
-1
lines changed

graalpython/com.oracle.graal.python.shell/src/com/oracle/graal/python/shell/GraalPythonCC.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,10 @@
4545
import java.nio.file.Path;
4646
import java.nio.file.Paths;
4747
import java.nio.file.StandardCopyOption;
48+
import java.nio.file.attribute.PosixFilePermission;
4849
import java.util.ArrayList;
4950
import java.util.Arrays;
51+
import java.util.HashSet;
5052
import java.util.List;
5153

5254
public class GraalPythonCC extends GraalPythonCompiler {
@@ -194,7 +196,11 @@ private static void linkExecutable(String executableScript, String linkedBcFile)
194196
List<String> cmdline = GraalPythonMain.getCmdline(Arrays.asList(), Arrays.asList());
195197
cmdline.add("-LLI");
196198
cmdline.add(linkedBcFile);
197-
Files.write(Paths.get(executableScript), ("#!" + String.join(" ", cmdline)).getBytes());
199+
Path executablePath = Paths.get(executableScript);
200+
Files.write(executablePath, ("#!" + String.join(" ", cmdline)).getBytes());
201+
HashSet<PosixFilePermission> perms = new HashSet<>(Arrays.asList(new PosixFilePermission[]{PosixFilePermission.OWNER_EXECUTE, PosixFilePermission.GROUP_EXECUTE}));
202+
perms.addAll(Files.getPosixFilePermissions(executablePath));
203+
Files.setPosixFilePermissions(executablePath, perms);
198204
}
199205

200206
private void linkShared(List<String> bitcodeFiles) {

0 commit comments

Comments
 (0)