Fix windows link error and clear windows warnings (#2463)
- Fix windows wamrc link error: aot_generate_tempfile_name undefined. - Clear windows compile warnings. - And rename folder `samples/bh_atomic` and `samples/mem_allocator` to `samples/bh-atomic` and `samples/mem-allocator`.
This commit is contained in:
22
samples/mem-allocator/CMakeLists.txt
Normal file
22
samples/mem-allocator/CMakeLists.txt
Normal file
@ -0,0 +1,22 @@
|
||||
# Copyright (C) 2023 Midokura Japan KK. All rights reserved.
|
||||
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
project(mem_allocator_create)
|
||||
|
||||
string (TOLOWER ${CMAKE_HOST_SYSTEM_NAME} WAMR_BUILD_PLATFORM)
|
||||
if(APPLE)
|
||||
add_definitions(-DBH_PLATFORM_DARWIN)
|
||||
endif()
|
||||
|
||||
set(WAMR_BUILD_INTERP 1)
|
||||
set(WAMR_BUILD_LIBC_BUILTIN 0)
|
||||
|
||||
set(WAMR_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../..)
|
||||
include(${WAMR_ROOT_DIR}/build-scripts/runtime_lib.cmake)
|
||||
|
||||
add_library(vmlib ${WAMR_RUNTIME_LIB_SOURCE})
|
||||
|
||||
add_executable(mem_alloc_test main.c)
|
||||
|
||||
target_link_libraries(mem_alloc_test vmlib -lm -lpthread)
|
||||
58
samples/mem-allocator/main.c
Normal file
58
samples/mem-allocator/main.c
Normal file
@ -0,0 +1,58 @@
|
||||
/*
|
||||
* Copyright (C) 2023 Midokura Japan KK. All rights reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "mem_alloc.h"
|
||||
|
||||
char store[1000];
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
mem_allocator_t a = mem_allocator_create(store, sizeof(store));
|
||||
uint8_t *p;
|
||||
uint8_t *p2;
|
||||
|
||||
p = mem_allocator_malloc(a, 256);
|
||||
printf("%p\n", p);
|
||||
if (p == NULL) {
|
||||
exit(1);
|
||||
}
|
||||
p = mem_allocator_realloc(a, p, 256 + 12);
|
||||
printf("%p\n", p);
|
||||
if (p == NULL) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/*
|
||||
* write some values to confuse the ems allocator.
|
||||
*
|
||||
* hmu = p + 256
|
||||
* hmu_set_ut(hmu, HMU_FC)
|
||||
* hmu_set_size(hmu, 256)
|
||||
* hmu_set_free_size(hmu)
|
||||
*/
|
||||
*(uint32_t *)(p + 256) = (1 << 30) | 0x20;
|
||||
*(uint32_t *)(p + 256 + 12 - 4) = 12;
|
||||
|
||||
p2 = mem_allocator_malloc(a, 256);
|
||||
printf("%p\n", p2);
|
||||
if (p2 == NULL) {
|
||||
exit(1);
|
||||
}
|
||||
mem_allocator_free(a, p2);
|
||||
|
||||
p2 = mem_allocator_malloc(a, 256);
|
||||
printf("%p\n", p2);
|
||||
if (p2 == NULL) {
|
||||
exit(1);
|
||||
}
|
||||
mem_allocator_free(a, p2);
|
||||
|
||||
mem_allocator_free(a, p);
|
||||
}
|
||||
Reference in New Issue
Block a user