Skip to content

Commit d6ec935

Browse files
committed
link to libjvm.x on z/OS
Find Java's lib_dir to link to libjvm.x, instead of assuming users have their LDFLAGS env variable set to that path.
1 parent 457e708 commit d6ec935

2 files changed

Lines changed: 8 additions & 3 deletions

File tree

binding.gyp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@
2121
['OS=="mac"', {
2222
'javaver%' : "<!(awk -F/ -v h=`node findJavaHome.js` 'BEGIN {n=split(h, a); print a[2]; exit}')"
2323
}],
24-
['OS=="linux" or OS=="mac" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"', {
24+
['OS=="linux" or OS=="mac" or OS=="freebsd" or OS=="openbsd" or OS=="solaris" or OS=="zos"', {
2525
'javalibdir%': "<!(./find_java_libdir.sh <(target_arch) <(OS))"
2626
}],
2727
['OS=="zos"', {
28-
'nodever%': '<!(node -e "console.log(process.versions.node)" | cut -d"." -f1)',
28+
'nodever%': '<!(node -e "console.log(process.versions.node)" | cut -d"." -f1)'
2929
}],
3030
]
3131
},
@@ -117,6 +117,9 @@
117117
'cflags': [ "-U_VARARG_EXT_" ],
118118
}
119119
]
120+
],
121+
'libraries': [
122+
'<(javalibdir)/libjvm.x'
120123
]
121124
}
122125
],

find_java_libdir.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ main () {
2323
fi
2424

2525
local jre_dir
26-
if [[ "${java_version}" =~ (6|7|8) ]]; then
26+
if [[ "${java_version}" =~ (6|7|8) && "${os}" != "zos" ]]; then
2727
jre_dir="${java_home}/jre/lib"
2828
else
2929
jre_dir="${java_home}/lib"
@@ -43,6 +43,8 @@ main () {
4343
if [[ -d ${jre_dir}/amd64/classic ]]; then lib_dir="${jre_dir}"/amd64/classic; else lib_dir="${jre_dir}"/amd64/server; fi
4444
elif [[ "${os}" == "linux" ]] && [[ "${target_arch}" == "s390x" || "${target_arch}" == "s390" ]]; then
4545
if [[ -d ${jre_dir}/s390x/classic ]]; then lib_dir="${jre_dir}"/s390x/classic; else lib_dir="${jre_dir}"/s390/classic; fi
46+
elif [[ "${os}" == "zos" ]]; then
47+
lib_dir="${jre_dir}"/s390x/classic
4648
elif [[ "${os}" == "linux" ]] && [[ "${target_arch}" == "ppc64" || "${target_arch}" == "ppc" ]]; then
4749
target_arch=`uname -m`
4850
if [[ -d ${jre_dir}/${target_arch}/classic ]]; then lib_dir="${jre_dir}"/${target_arch}/classic; else lib_dir="${jre_dir}"/${target_arch}/server; fi

0 commit comments

Comments
 (0)