mirror of
https://github.com/tobast/libunwind-eh_elf.git
synced 2024-12-23 12:03:41 +01:00
Use mincore instead of msync when available
This commit is contained in:
parent
75b76d1f45
commit
ee99dbec87
4 changed files with 21 additions and 1 deletions
|
@ -76,7 +76,7 @@ dnl Checks for library functions.
|
||||||
AC_FUNC_MEMCMP
|
AC_FUNC_MEMCMP
|
||||||
AC_TYPE_SIGNAL
|
AC_TYPE_SIGNAL
|
||||||
AC_CHECK_FUNCS(dl_iterate_phdr dl_phdr_removals_counter dlmodinfo getunwind \
|
AC_CHECK_FUNCS(dl_iterate_phdr dl_phdr_removals_counter dlmodinfo getunwind \
|
||||||
ttrace)
|
ttrace mincore)
|
||||||
is_gcc_m64() {
|
is_gcc_m64() {
|
||||||
if test `echo $CFLAGS | grep "\-m64" -c` -eq 1 ; then echo ppc64;
|
if test `echo $CFLAGS | grep "\-m64" -c` -eq 1 ; then echo ppc64;
|
||||||
else
|
else
|
||||||
|
|
|
@ -24,6 +24,10 @@ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
@ -83,6 +87,9 @@ static int
|
||||||
validate_mem (unw_word_t addr)
|
validate_mem (unw_word_t addr)
|
||||||
{
|
{
|
||||||
int i, victim;
|
int i, victim;
|
||||||
|
#ifdef HAVE_MINCORE
|
||||||
|
char mvec[1];
|
||||||
|
#endif
|
||||||
|
|
||||||
addr = PAGE_START(addr);
|
addr = PAGE_START(addr);
|
||||||
|
|
||||||
|
@ -95,7 +102,11 @@ validate_mem (unw_word_t addr)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_MINCORE
|
||||||
|
if (mincore ((void *) addr, 1, mvec) == -1)
|
||||||
|
#else
|
||||||
if (msync ((void *) addr, 1, MS_ASYNC) == -1)
|
if (msync ((void *) addr, 1, MS_ASYNC) == -1)
|
||||||
|
#endif
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
victim = lga_victim;
|
victim = lga_victim;
|
||||||
|
|
|
@ -86,6 +86,9 @@ static int
|
||||||
validate_mem (unw_word_t addr)
|
validate_mem (unw_word_t addr)
|
||||||
{
|
{
|
||||||
int i, victim;
|
int i, victim;
|
||||||
|
#ifdef HAVE_MINCORE
|
||||||
|
char mvec[1];
|
||||||
|
#endif
|
||||||
|
|
||||||
addr = PAGE_START(addr);
|
addr = PAGE_START(addr);
|
||||||
|
|
||||||
|
@ -98,7 +101,11 @@ validate_mem (unw_word_t addr)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_MINCORE
|
||||||
|
if (mincore ((void *) addr, 1, mvec) == -1)
|
||||||
|
#else
|
||||||
if (msync ((void *) addr, 1, MS_ASYNC) == -1)
|
if (msync ((void *) addr, 1, MS_ASYNC) == -1)
|
||||||
|
#endif
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
victim = lga_victim;
|
victim = lga_victim;
|
||||||
|
|
|
@ -39,6 +39,7 @@ endif #ARCH_IA64
|
||||||
Gtest-concurrent Ltest-concurrent \
|
Gtest-concurrent Ltest-concurrent \
|
||||||
Gtest-resume-sig Ltest-resume-sig \
|
Gtest-resume-sig Ltest-resume-sig \
|
||||||
Gtest-dyn1 Ltest-dyn1 \
|
Gtest-dyn1 Ltest-dyn1 \
|
||||||
|
Gtest-simple \
|
||||||
test-async-sig test-flush-cache test-init-remote \
|
test-async-sig test-flush-cache test-init-remote \
|
||||||
test-mem test-setjmp test-ptrace \
|
test-mem test-setjmp test-ptrace \
|
||||||
Ltest-nomalloc rs-race
|
Ltest-nomalloc rs-race
|
||||||
|
@ -89,6 +90,7 @@ Ltest_cxx_exceptions_SOURCES = Ltest-cxx-exceptions.cxx
|
||||||
|
|
||||||
Gtest_dyn1_SOURCES = Gtest-dyn1.c flush-cache.S
|
Gtest_dyn1_SOURCES = Gtest-dyn1.c flush-cache.S
|
||||||
Ltest_dyn1_SOURCES = Ltest-dyn1.c flush-cache.S
|
Ltest_dyn1_SOURCES = Ltest-dyn1.c flush-cache.S
|
||||||
|
Gtest_simple_SOURCES = Gtest-simple.cxx
|
||||||
test_static_link_SOURCES = test-static-link-loc.c test-static-link-gen.c
|
test_static_link_SOURCES = test-static-link-loc.c test-static-link-gen.c
|
||||||
test_static_link_LDFLAGS = -static
|
test_static_link_LDFLAGS = -static
|
||||||
forker_LDFLAGS = -static
|
forker_LDFLAGS = -static
|
||||||
|
|
Loading…
Reference in a new issue