mirror of
				https://github.com/isar/libmdbx.git
				synced 2025-10-31 03:29:01 +08:00 
			
		
		
		
	mdbx: require linux >= 4.0
This commit is contained in:
		
							
								
								
									
										11
									
								
								src/core.c
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								src/core.c
									
									
									
									
									
								
							| @@ -11499,6 +11499,17 @@ __cold int mdbx_env_create(MDBX_env **penv) { | ||||
|     return MDBX_INCOMPATIBLE; | ||||
|   } | ||||
|  | ||||
| #if defined(__linux__) || defined(__gnu_linux__) | ||||
|   if (unlikely(linux_kernel_version < 0x04000000)) { | ||||
|     /* 2022-09-01: Прошло уже больше двух после окончания какой-либо поддержки | ||||
|      * самого "долгоиграющего" ядра 3.16.85 ветки 3.x */ | ||||
|     ERROR("too old linux kernel %u.%u.%u.%u, the >= 4.0.0 is required", | ||||
|           linux_kernel_version >> 24, (linux_kernel_version >> 16) & 255, | ||||
|           (linux_kernel_version >> 8) & 255, linux_kernel_version & 255); | ||||
|     return MDBX_INCOMPATIBLE; | ||||
|   } | ||||
| #endif /* Linux */ | ||||
|  | ||||
|   MDBX_env *env = osal_calloc(1, sizeof(MDBX_env)); | ||||
|   if (unlikely(!env)) | ||||
|     return MDBX_ENOMEM; | ||||
|   | ||||
| @@ -937,9 +937,8 @@ MDBX_INTERNAL_FUNC int osal_fsync(mdbx_filehandle_t fd, | ||||
|       break /* error */; | ||||
| #if defined(__linux__) || defined(__gnu_linux__) | ||||
|     case MDBX_SYNC_SIZE: | ||||
|       if (linux_kernel_version >= 0x03060000) | ||||
|       assert(linux_kernel_version >= 0x03060000); | ||||
|       return MDBX_SUCCESS; | ||||
|       __fallthrough /* fall through */; | ||||
| #endif /* Linux */ | ||||
| #endif /* _POSIX_SYNCHRONIZED_IO > 0 */ | ||||
|     default: | ||||
| @@ -1076,7 +1075,7 @@ MDBX_INTERNAL_FUNC int osal_msync(osal_mmap_t *map, size_t offset, | ||||
|     return (int)GetLastError(); | ||||
| #else | ||||
| #if defined(__linux__) || defined(__gnu_linux__) | ||||
|   if (mode_bits == MDBX_SYNC_NONE && linux_kernel_version > 0x02061300) | ||||
|   assert(linux_kernel_version > 0x02061300); | ||||
|   /* Since Linux 2.6.19, MS_ASYNC is in fact a no-op. The kernel properly | ||||
|    * tracks dirty pages and flushes them to storage as necessary. */ | ||||
|   return MDBX_SUCCESS; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user