Quellcode durchsuchen

refactor: 调整符号可见性的设定

SongZihuan vor 3 Jahren
Ursprung
Commit
99ae837ec9
4 geänderte Dateien mit 14 neuen und 9 gelöschten Zeilen
  1. 0 3
      CMakeLists.txt
  2. 13 4
      cmake/aFunHeader.cmake
  3. 0 1
      src/core/core_init.c
  4. 1 1
      src/core/env.c

+ 0 - 3
CMakeLists.txt

@@ -16,9 +16,6 @@ set(C_STANDARD_REQUIRED OFF)
 set(BUILD_SHARED_LIBS OFF)  # 默认编译静态库 (该设定不可被修改)
 list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
 
-set(VISIBILITY_INLINES_HIDDEN TRUE)  # 默认内联函数不可见
-set(CMAKE_C_VISIBILITY_PRESET "hidden")  # 默认所有符号不可见
-
 set(CMAKE_BUILD_TYPE DEBUG CACHE STRING "Build type")
 
 # 系统检查

+ 13 - 4
cmake/aFunHeader.cmake

@@ -12,10 +12,19 @@ generate_export_header(aFun-xx-libs
                        EXPORT_FILE_NAME "${CMAKE_BINARY_DIR}/${INSTALL_INCLUDEDIR}/aFunlangExport.h"  # 导出的位置
                        BASE_NAME "AFUN_LANG")
 
-target_compile_definitions(tool-static PUBLIC AFUN_TOOL_STATIC_DEFINE)  # 静态库需要定义 AFUN_TOOL_STATIC_DEFINE
+target_compile_definitions(tool-static PUBLIC AFUN_TOOL_STATIC_DEFINE=1)  # 静态库需要定义 AFUN_TOOL_STATIC_DEFINE
+target_compile_definitions(core-static-s PUBLIC AFUN_CORE_STATIC_DEFINE=1)
 
 target_compile_definitions(core-shared-s PRIVATE core_shared_t_EXPORTS)
-target_compile_definitions(core-static-s PUBLIC AFUN_CORE_STATIC_DEFINE)
-
 target_compile_definitions(aFun-cx-libs PRIVATE aFun_xx_libs_EXPORTS)
-target_compile_definitions(aFun-ct-libs PRIVATE aFun_xx_libs_EXPORTS)
+target_compile_definitions(aFun-ct-libs PRIVATE aFun_xx_libs_EXPORTS)
+
+set_property(TARGET tool-shared core-shared-t core-shared-s aFun-xx-libs aFun-cx-libs aFun-ct-libs
+             PROPERTY C_VISIBILITY_PRESET "hidden")
+set_property(TARGET tool-shared core-shared-t core-shared-s aFun-xx-libs aFun-cx-libs aFun-ct-libs
+             PROPERTY VISIBILITY_INLINES_HIDDEN TRUE)
+
+set_property(TARGET tool-static core-static-s
+             PROPERTY C_VISIBILITY_PRESET "default")
+set_property(TARGET tool-static core-static-s
+             PROPERTY VISIBILITY_INLINES_HIDDEN FALSE)

+ 0 - 1
src/core/core_init.c

@@ -75,7 +75,6 @@ bool aFunCoreInit(aFunCoreInitInfo *info) {
     } else
         HT_initaFunGetText(NULL);
     writeDebugLog(aFunCoreLogger, "aFunCore init success");
-    printf("aFunCoreInit: %p\n", initLogSystem);
     return true;
 }
 

+ 1 - 1
src/core/env.c

@@ -812,7 +812,7 @@ af_Environment *makeEnvironment(enum GcRunTime grt) {
 
     pthread_mutexattr_t attr;
     pthread_mutexattr_init(&attr);
-    pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK_NP);
+    pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK);
     pthread_mutex_init(&env->in_run, &attr);  // 检测锁
     pthread_mutexattr_destroy(&attr);