Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
a388633d
T
Third Party Openssl
项目概览
OpenHarmony
/
Third Party Openssl
大约 1 年 前同步成功
通知
9
Star
18
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party Openssl
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
a388633d
编写于
1月 07, 2016
作者:
R
Richard Levitte
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Enhance util/mkdef.pl to provide a VMS linker option file for shlibs
Reviewed-by:
N
Tim Hudson
<
tjh@openssl.org
>
上级
0674427f
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
76 addition
and
22 deletion
+76
-22
util/mkdef.pl
util/mkdef.pl
+76
-22
未找到文件。
util/mkdef.pl
浏览文件 @
a388633d
...
...
@@ -160,7 +160,7 @@ foreach (@ARGV, split(/ /, $options))
if
(
$_
eq
"
linux
")
{
$linux
=
1
;
}
$VMS
=
1
if
$_
eq
"
VMS
";
$VMS
=
$VMSNonVAX
=
1
if
$_
eq
"
VMS
";
$OS2
=
1
if
$_
eq
"
OS2
";
if
(
$_
eq
"
zlib
"
||
$_
eq
"
enable-zlib
"
||
$_
eq
"
zlib-dynamic
"
||
$_
eq
"
enable-zlib-dynamic
")
{
...
...
@@ -253,10 +253,12 @@ if (!$libname) {
if
(
$W32
+
$VMS
+
$OS2
+
$linux
==
0
)
{
$W32
=
1
;
}
die
"
Please, only one platform at a time
"
if
(
$W32
+
$VMS
+
$OS2
+
$linux
>
1
);
if
(
!
$do_ssl
&&
!
$do_crypto
)
{
print
STDERR
"
usage: $0 ( ssl | crypto ) [ 16 | 32 | NT | OS2 ]
\n
";
print
STDERR
"
usage: $0 ( ssl | crypto ) [ 16 | 32 | NT | OS2
| linux | VMS
]
\n
";
exit
(
1
);
}
...
...
@@ -1296,27 +1298,30 @@ sub print_def_file
my
$what
=
"
OpenSSL: implementation of Secure Socket Layer
";
my
$description
=
"
$what
$version
,
$name
- http://
$http_vendor
";
my
$prevsymversion
=
"",
$prevprevsymversion
=
"";
if
(
!
$linux
)
{
if
(
$W32
)
{
$libname
.=
"
32
";
}
elsif
(
$OS2
)
{
# DLL names should not clash on the whole system.
# However, they should not have any particular relationship
# to the name of the static library. Chose descriptive names
# (must be at most 8 chars).
my
%translate
=
(
ssl
=>
'
open_ssl
',
crypto
=>
'
cryptssl
');
$libname
=
$translate
{
$name
}
||
$name
;
$liboptions
=
<<EOO;
# For VMS
my
$prevnum
=
0
;
my
$symbolcount
=
0
;
if
(
$W32
)
{
$libname
.=
"
32
";
}
elsif
(
$OS2
)
{
# DLL names should not clash on the whole system.
# However, they should not have any particular relationship
# to the name of the static library. Chose descriptive names
# (must be at most 8 chars).
my
%translate
=
(
ssl
=>
'
open_ssl
',
crypto
=>
'
cryptssl
');
$libname
=
$translate
{
$name
}
||
$name
;
$liboptions
=
<<EOO;
INITINSTANCE
DATA MULTIPLE NONSHARED
EOO
# Vendor field can't contain colon, drat; so we omit http://
$description
=
"
\@
#
$http_vendor
:
$version
#
\@
$what
; DLL for library
$name
. Build for EMX -Zmtd
";
}
# Vendor field can't contain colon, drat; so we omit http://
$description
=
"
\@
#
$http_vendor
:
$version
#
\@
$what
; DLL for library
$name
. Build for EMX -Zmtd
";
}
print
OUT
<<"EOF";
if
(
$W32
||
$OS2
)
{
print
OUT
<<"EOF";
;
; Definition file for the DLL version of the $name library from OpenSSL
;
...
...
@@ -1326,11 +1331,32 @@ LIBRARY $libname $liboptions
EOF
print
"
EXPORTS
\n
";
}
}
elsif
(
$VMS
)
{
my
$libref
=
$name
eq
"
ssl
"
?
"
LIBCRYPTO.EXE /SHARE
"
:
"";
print
OUT
<<"EOF";
IDENTIFICATION="LIB$libname V$version"
LIB$libname.OLB /LIBRARY
$libref
SYMBOL_VECTOR=(-
EOF
}
(
@r
)
=
grep
(
/^\w+(\{[0-9]+\})?\\.*?:.*?:FUNCTION/
,
@symbols
);
(
@v
)
=
grep
(
/^\w+(\{[0-9]+\})?\\.*?:.*?:VARIABLE/
,
@symbols
);
@symbols
=
((
sort
@e
),(
sort
@r
),
(
sort
@v
));
if
(
$VMS
)
{
# VMS needs to have the symbols on slot number order
@symbols
=
(
map
{
$_
->
[
1
]
}
sort
{
$a
->
[
0
]
<=>
$b
->
[
0
]
}
map
{
(
my
$s
,
my
$i
)
=
$_
=~
/^(.*?)\\(.*)$/
;
die
"
Error:
$s
doesn't have a number assigned
\n
"
if
!
defined
(
$nums
{
$s
});
(
my
$n
,
my
@rest
)
=
split
/\\/
,
$nums
{
$s
};
[
$n
,
$_
]
}
(
@e
,
@r
,
@v
));
}
else
{
@symbols
=
((
sort
@e
),(
sort
@r
),
(
sort
@v
));
}
my
(
$baseversion
,
$currversion
)
=
get_openssl_version
();
my
$thisversion
;
...
...
@@ -1376,6 +1402,27 @@ EOF
$prevsymversion
=
$symversion
;
}
print
OUT
"
$s2
;
\n
";
}
elsif
(
$VMS
)
{
while
(
++
$prevnum
<
$n
)
{
if
(
$symbolcount
>
1023
)
{
print
OUT
"
)
\n
SYMBOL_VECTOR=(-
\n
";
$symbolcount
=
0
;
}
print
OUT
$symbolcount
?
"
,
"
:
"
";
print
OUT
"
dummy
$prevnum
=PRIVATE_PROCEDURE -
\n
";
$symbolcount
++
;
}
(
my
$s_uc
=
$s
)
=~
tr/a-z/A-Z/
;
if
(
$symbolcount
>
1023
)
{
print
OUT
"
)
\n
SYMBOL_VECTOR=(-
\n
";
$symbolcount
=
0
;
}
print
OUT
$symbolcount
?
"
,
"
:
"
";
print
OUT
"
$s_uc
/
$s
=
"
,
(
$v
?
"
DATA
"
:
"
PROCEDURE
"),
"
-
\n
";
$symbolcount
++
;
}
elsif
(
$v
&&
!
$OS2
)
{
printf
OUT
"
%s%-39s @%-8d DATA
\n
",
(
$W32
)?"":"
_
",
$s2
,
$n
;
...
...
@@ -1393,7 +1440,14 @@ EOF
}
else
{
print
OUT
"
local: *;
\n
};
\n\n
";
}
}
}
elsif
(
$VMS
)
{
print
OUT
"
)
\n
";
(
my
$libvmaj
,
my
$libvmin
,
my
$libvedit
)
=
$currversion
=~
/^(\d+)_(\d+)_(\d+)$/
;
# The reason to multiply the edit number with 100 is to make space
# for the possibility that we want to encode the patch letters
print
OUT
"
GSMATCH=LEQUAL,
",(
$libvmaj
*
100
+
$libvmin
),"
,
",(
$libvedit
*
100
),"
\n
";
}
printf
OUT
"
\n
";
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录