Skip to content

fix duplicate symbol with openssl #1327

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from

Conversation

Mojicode
Copy link

fix duplicate symbol when link both gmssl and openssl:

duplicate symbol '_OPENSSL_hexchar2int' in:
/opt/homebrew/opt/[email protected]/lib/libcrypto.a(o_str.o)
/.../.nih_c/xcode/AppleClang_13.1.6.13160021/lib/libgmssl.a(hex.o)
duplicate symbol '_OPENSSL_hexstr2buf' in:
/opt/homebrew/opt/[email protected]/lib/libcrypto.a(o_str.o)
/.../.nih_c/xcode/AppleClang_13.1.6.13160021/lib/libgmssl.a(hex.o)
duplicate symbol '_sm2_encrypt' in:
/.../.nih_c/xcode/AppleClang_13.1.6.13160021/lib/libgmssl.a(sm2_lib.o)
/opt/homebrew/opt/[email protected]/lib/libcrypto.a(sm2_crypt.o)
duplicate symbol '_sm2_decrypt' in:
/.../.nih_c/xcode/AppleClang_13.1.6.13160021/lib/libgmssl.a(sm2_lib.o)
/opt/homebrew/opt/[email protected]/lib/libcrypto.a(sm2_crypt.o)
duplicate symbol '_sm2_do_verify' in:
/.../.nih_c/xcode/AppleClang_13.1.6.13160021/lib/libgmssl.a(sm2_lib.o)
/opt/homebrew/opt/[email protected]/lib/libcrypto.a(sm2_sign.o)
duplicate symbol '_sm2_verify' in:
/.../.nih_c/xcode/AppleClang_13.1.6.13160021/lib/libgmssl.a(sm2_lib.o)
/opt/homebrew/opt/[email protected]/lib/libcrypto.a(sm2_sign.o)
duplicate symbol '_sm2_do_sign' in:
/.../.nih_c/xcode/AppleClang_13.1.6.13160021/lib/libgmssl.a(sm2_lib.o)
/opt/homebrew/opt/[email protected]/lib/libcrypto.a(sm2_sign.o)
duplicate symbol '_sm2_sign' in:
/.../.nih_c/xcode/AppleClang_13.1.6.13160021/lib/libgmssl.a(sm2_lib.o)
/opt/homebrew/opt/[email protected]/lib/libcrypto.a(sm2_sign.o)
duplicate symbol '_sm3_init' in:
/.../.nih_c/xcode/AppleClang_13.1.6.13160021/lib/libgmssl.a(sm3.o)
/opt/homebrew/opt/[email protected]/lib/libcrypto.a(sm3.o)
duplicate symbol '_sm3_update' in:
/.../.nih_c/xcode/AppleClang_13.1.6.13160021/lib/libgmssl.a(sm3.o)
/opt/homebrew/opt/[email protected]/lib/libcrypto.a(sm3.o)

@Mojicode
Copy link
Author

@guanzhi 关老师,我同时依赖OpenSSL和GMSSL的时候遇到符号重复的问题,做了上述修改,您看是否可行?

@guanzhi
Copy link
Owner

guanzhi commented Oct 13, 2022

感谢思路及贡献。建议基于这个思路实现一个自动替换的脚本,可以为项目中所有公开的符号添加前缀,比如gmssl_。另外objcopy等工具也可以提供类似的功能。

@Mojicode
Copy link
Author

关老师,也就是说咱们不考虑从源代码层面就保证跟OpenSSL的独立性吗?需要每次都修改?

@guanzhi
Copy link
Owner

guanzhi commented Oct 19, 2022

这是符号冲突问题,我计划在3.2 或 3.3 版本中引入一组专用于导出的函数接口来解决这个问题。我建议您可以提供一个脚本,统一给所有函数、类型、常量加固定的前缀,给出一个一致的解决方案(而非仅修改冲突的函数名)。

@Mojicode
Copy link
Author

这是符号冲突问题,我计划在3.2 或 3.3 版本中引入一组专用于导出的函数接口来解决这个问题。我建议您可以提供一个脚本,统一给所有函数、类型、常量加固定的前缀,给出一个一致的解决方案(而非仅修改冲突的函数名)。

好的,明白

@guanzhi
Copy link
Owner

guanzhi commented Nov 1, 2022

最新版本加入了初步设计的公共API,参见 include/gmssl/api.h

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants