Skip to content

Commit e2eddda

Browse files
committed
Merge branch 'master' of https://gitee.com/rtoax/ulpatch
2 parents 51b5df9 + 283ba86 commit e2eddda

10 files changed

Lines changed: 66 additions & 15 deletions

File tree

CMakeLists.txt

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ set(CONFIG_BUILD_BASH_COMPLETIONS ON CACHE BOOL "Build bash completions")
8989
set(CONFIG_BUILD_PIE_EXE OFF CACHE BOOL "Build all Executions as PIE")
9090

9191
set(CONFIG_CAPSTONE ON CACHE BOOL "Build with capstone for disasm")
92+
set(CONFIG_OPENSSL ON CACHE BOOL "Build with openssl")
9293
set(CONFIG_LIBUNWIND ON CACHE BOOL "Build with libunwind for unwind")
9394

9495
set(CMAKE_INSTALL_PREFIX /usr)
@@ -251,11 +252,15 @@ else()
251252
message(STATUS "Build without capstone support")
252253
endif()
253254

254-
if(OPENSSL_INCLUDE_DIRS)
255-
message(STATUS "Found openssl headers")
256-
set(UTILS_CFLAGS_MACROS "${UTILS_CFLAGS_MACROS}" OPENSSL_INCLUDE_DIRS)
257-
else()
258-
message(FATAL_ERROR "Not found openssl headers")
255+
if(CONFIG_OPENSSL)
256+
message(STATUS "Build with openssl support")
257+
set(UTILS_CFLAGS_MACROS "${UTILS_CFLAGS_MACROS}" CONFIG_OPENSSL=1)
258+
if(OPENSSL_INCLUDE_DIRS)
259+
message(STATUS "Found openssl headers")
260+
set(UTILS_CFLAGS_MACROS "${UTILS_CFLAGS_MACROS}" OPENSSL_INCLUDE_DIRS)
261+
else()
262+
message(FATAL_ERROR "Not found openssl headers")
263+
endif()
259264
endif()
260265

261266
if(KERNEL_HEADERS_INCLUDE_DIRS)

docs/en/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ and this project adheres to
1313

1414
#### Breaking Changes
1515
#### Added
16+
- Add CMake macro `CONFIG_OPENSSL`
1617
- Add OpenSSL depends and add fmd5sum() function.
1718
- Add header file /usr/include/ulpatch/version.h.
1819
- rpmbuild.sh add --nocheck argument.

docs/en/INSTALL.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,12 +151,20 @@ CMake `CONFIG_CAPSTONE` determine compile with capstone or not, default `ON`. If
151151
$ cmake -DCONFIG_CAPSTONE=OFF ..
152152
```
153153

154+
#### CONFIG_OPENSSL
155+
156+
CMake `CONFIG_OPENSSL` determine compile with openssl or not, default `ON`. If you want to turn it off, such as:
157+
158+
```
159+
$ cmake -DCONFIG_OPENSSL=OFF ..
160+
```
161+
154162
#### CONFIG_LIBUNWIND
155163

156164
CMake `CONFIG_LIBUNWIND` determine compile with libunwind or not, default `ON`. If you want to turn it off, such as:
157165

158166
```
159-
$ cmake -DCONFIG_CAPSTONE=OFF ..
167+
$ cmake -DCONFIG_LIBUNWIND=OFF ..
160168
```
161169

162170
If `CONFIG_LIBUNWIND=ON(default)`, and your system donesn's have it, `cmake` will run fatal and tell you.

docs/zh/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
#### 重大变更
1515
#### 添加
16+
- 添加CMake宏 `CONFIG_OPENSSL`
1617
- 增加对 OpenSSL 的依赖,并且添加 fmd5sum() 相关函数。
1718
- 增加头文件 /usr/include/ulpatch/version.h。
1819
- rpmbuild.sh 添加 --nocheck 参数。

docs/zh/INSTALL.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,14 +150,23 @@ CMake `CONFIG_CAPSTONE`选项决定是否支持`capstone`,默认开启 `ON`。
150150
```
151151
$ cmake -DCONFIG_CAPSTONE=OFF ..
152152
```
153-
如果 `CONFIG_CAPSTONE=ON`(默认),并且你的系统没有安装`libunwind``cmake`将报错。
153+
如果 `CONFIG_CAPSTONE=ON`(默认),并且你的系统没有安装`openssl``cmake`将报错。
154+
155+
#### CONFIG_OPENSSL
156+
157+
CMake `CONFIG_OPENSSL`选项决定是否支持`openssl`,默认开启 `ON`。如果你想要关闭,可以:
158+
159+
```
160+
$ cmake -DCONFIG_OPENSSL=OFF ..
161+
```
162+
如果 `CONFIG_OPENSSL=ON`(默认),并且你的系统没有安装`openssl``cmake`将报错。
154163

155164
#### CONFIG_LIBUNWIND
156165

157166
CMake `CONFIG_LIBUNWIND`选项决定是否支持`libunwind`,默认开启 `ON`。如果你想要关闭,可以:
158167

159168
```
160-
$ cmake -DCONFIG_CAPSTONE=OFF ..
169+
$ cmake -DCONFIG_LIBUNWIND=OFF ..
161170
```
162171

163172
如果 `CONFIG_LIBUNWIND=ON`(默认),并且你的系统没有安装`libunwind``cmake`将报错。

src/tests/main.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -979,7 +979,9 @@ void never_called_stub(void)
979979
CALL_TEST_STUB(utils_init);
980980
CALL_TEST_STUB(utils_list);
981981
CALL_TEST_STUB(utils_log);
982+
#if defined(CONFIG_OPENSSL)
982983
CALL_TEST_STUB(utils_md5);
984+
#endif
983985
CALL_TEST_STUB(utils_rbtree);
984986
CALL_TEST_STUB(utils_string);
985987
CALL_TEST_STUB(utils_utils);

src/tests/utils/CMakeLists.txt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@ set(SEARCH_PATH "/usr/lib64:/usr/lib:/lib64:/lib")
77

88
find_library(ELF elf HINTS ${SEARCH_PATH})
99

10+
set(md5)
11+
12+
if(CONFIG_OPENSSL)
13+
set(md5 md5.c)
14+
endif()
15+
1016
add_library(ulpatch_test_utils STATIC
1117
ansi.c
1218
backtrace.c
@@ -16,7 +22,7 @@ add_library(ulpatch_test_utils STATIC
1622
init.c
1723
list.c
1824
log.c
19-
md5.c
25+
${md5}
2026
rbtree.c
2127
string.c
2228
utils.c

src/utils/CMakeLists.txt

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ endif()
2828

2929
set(disasm)
3030
set(CAPSTONE)
31+
set(md5_evp)
32+
set(OPENSSL)
3133

3234
if(CONFIG_CAPSTONE)
3335
message(STATUS "UTILS Support capstone")
@@ -37,10 +39,14 @@ if(CONFIG_CAPSTONE)
3739
set(disasm disasm.c)
3840
endif()
3941

40-
find_library(LIBSSL ssl HINTS ${SEARCH_PATH})
41-
find_library(LIBCRYPTO crypto HINTS ${SEARCH_PATH})
42-
message(STATUS "LIBSSL ${LIBSSL}")
43-
message(STATUS "LIBCRYPTO ${LIBCRYPTO}")
42+
if(CONFIG_OPENSSL)
43+
message(STATUS "UTILS Support openssl")
44+
find_library(LIBSSL ssl HINTS ${SEARCH_PATH})
45+
find_library(LIBCRYPTO crypto HINTS ${SEARCH_PATH})
46+
message(STATUS "LIBSSL ${LIBSSL}")
47+
message(STATUS "LIBCRYPTO ${LIBCRYPTO}")
48+
set(md5_evp md5_evp.c)
49+
endif()
4450

4551
add_library(ulpatch_utils STATIC
4652
ansi.c
@@ -51,7 +57,7 @@ add_library(ulpatch_utils STATIC
5157
init.c
5258
list.c
5359
log.c
54-
md5_evp.c
60+
${md5_evp}
5561
rbtree.c
5662
string.c
5763
time.c

src/utils/util.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,10 @@
1111
#include <string.h>
1212
#include <sys/types.h>
1313
#include <limits.h>
14+
#if defined(CONFIG_OPENSSL)
1415
#include <openssl/md5.h>
1516
#include <openssl/evp.h>
17+
#endif
1618

1719
#ifndef BUFFER_SIZE
1820
#define BUFFER_SIZE 4096
@@ -274,7 +276,11 @@ int fprint_fd(FILE *fp, int fd);
274276
/* see /usr/include/openssl/evp.h */
275277
#define EVP_MAX_MD_SIZE 64
276278
#endif
279+
#if defined(CONFIG_OPENSSL)
277280
int fmd5sum(const char *filename, unsigned char *md5_result);
281+
#else
282+
#define fmd5sum(filename, md5_result) ({-ENOTSUPP;})
283+
#endif
278284

279285
struct mmap_struct *fmmap_rdonly(const char *filepath);
280286
struct mmap_struct *fmmap_shmem_create(const char *filepath, size_t size);

src/utils/version.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,8 @@ void ulpatch_info(const char *progname)
7575
printf(" build time: %s\n", ULPATCH_COMPILE_TIME);
7676
printf(" OS: %s\n", OS_PRETTY_NAME);
7777
printf(" GNUC(GCC): %d.%d.%d\n", __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__);
78-
printf(" GNU(GLibc): %d.%d\n", __GLIBC__, __GLIBC_MINOR__);
78+
printf(" GNU(GLibc): (buildtime version %d.%d, runtime version %s)\n",
79+
__GLIBC__, __GLIBC_MINOR__, gnu_get_libc_version());
7980
printf("\n");
8081
printf("Support\n");
8182
#if defined(HAVE_BINUTILS_BFD_H)
@@ -93,6 +94,12 @@ void ulpatch_info(const char *progname)
9394
capstone_buildtime_version(), capstone_runtime_version());
9495
#else
9596
printf(" capstone no\n");
97+
#endif
98+
#if defined(CONFIG_OPENSSL)
99+
printf(" openssl yes (buildtime version %d.%d.%d)\n",
100+
OPENSSL_VERSION_MAJOR, OPENSSL_VERSION_MINOR, OPENSSL_VERSION_PATCH);
101+
#else
102+
printf(" openssl no\n");
96103
#endif
97104
printf("\n");
98105
printf("ULPatch\n");

0 commit comments

Comments
 (0)